utm naming convention

# CLAIR โ€” UTM Naming Convention

**Version:** 1.0 | **Date:** March 2026 | **Status:** Active
**Tracking platform:** GA4 | **Attribution model:** Last-click (Early Access phase)

---

## UTM Parameter Definitions

| Parameter | Purpose | Format | Required |
|-----------|---------|--------|----------|
| `utm_source` | Where the traffic comes from (platform or partner) | Lowercase, hyphens for spaces | Yes |
| `utm_medium` | The marketing channel type | Lowercase, hyphens | Yes |
| `utm_campaign` | The specific campaign or initiative | `{phase}-{descriptor}` | Yes |
| `utm_content` | The creative variant or placement | `{format}-{variant}` | Recommended |
| `utm_term` | The keyword or audience target (paid only) | Lowercase, hyphens | Paid only |

---

## Parameter Values

### utm_source

| Value | Use When |
|-------|----------|
| `instagram` | Organic Instagram posts, Stories, Reels |
| `tiktok` | Organic TikTok posts |
| `twitter` | Organic X/Twitter posts |
| `linkedin` | Organic LinkedIn posts |
| `meta-ads` | Paid Meta (Instagram + Facebook) campaigns |
| `tiktok-ads` | Paid TikTok campaigns |
| `google-ads` | Paid Google Display campaigns |
| `linkedin-ads` | Paid LinkedIn Sponsored campaigns |
| `klaviyo` | Email campaigns and automation flows |
| `influencer-{handle}` | Influencer referral links (e.g., `influencer-jess-dating`) |
| `referral` | User-to-user referral program |
| `qr-code` | QR codes on physical/OOH materials |
| `podcast-{name}` | Podcast sponsorship or appearance |
| `press-{outlet}` | Press coverage link |

### utm_medium

| Value | Use When |
|-------|----------|
| `social-organic` | Unpaid social media posts |
| `social-paid` | Paid social media ads |
| `email` | All email sends (Klaviyo) |
| `influencer` | Influencer-driven traffic |
| `referral` | User referral program |
| `display` | Google Display Network |
| `search` | Google Search ads (future) |
| `ooh` | Out-of-home (billboard, transit, QR) |
| `podcast` | Podcast sponsorships |
| `press` | Press/media links |

### utm_campaign

Format: `{phase}-{descriptor}`

| Value | Use When |
|-------|----------|
| `silence-mystery-teaser` | SILENCE phase teaser content |
| `silence-influencer-seed` | SILENCE phase influencer seeding |
| `reveal-product-launch` | REVEAL phase launch content |
| `reveal-waitlist-open` | REVEAL phase waitlist promotion |
| `invitation-batch-1` | Batch 1 invitation drop |
| `invitation-batch-2` | Batch 2 invitation drop |
| `invitation-batch-{n}` | Subsequent batch drops |
| `invitation-referral` | Referral program promotion |
| `scale-retargeting` | SCALE phase retargeting campaigns |
| `scale-testimonials` | SCALE phase social proof content |
| `evergreen-safety` | Ongoing safety-themed content |
| `evergreen-product-ed` | Ongoing product education content |
| `reactive-{trigger}` | Reactive content (e.g., `reactive-celeb-breakup`) |

### utm_content

Format: `{format}-{variant}`

| Value | Use When |
|-------|----------|
| `hero-a` | Landing page hero variant A |
| `hero-b` | Landing page hero variant B |
| `carousel-dossier` | Instagram carousel: Inside a CLAIR Dossier |
| `reel-how-it-works` | Instagram Reel: How CLAIR works |
| `video-profile-lie` | TikTok Script 1: The Profile Lie |
| `video-blind-briefing` | TikTok Script 3: Blind Date Briefing |
| `cta-request-invite` | CTA variant: "Request Your Invitation" |
| `cta-join-waitlist` | CTA variant: "Join the Waitlist" |
| `email-vip-1` | VIP Invite Email 1 |
| `email-vip-2` | VIP Invite Email 2 |
| `email-nurture-1` | Waitlist Nurture Email 1 |
| `story-poll` | Instagram Story poll |
| `founder-post` | LinkedIn founder thought leadership |
| `billboard-{city}` | OOH billboard by city |
| `safety-angle` | Safety-first messaging variant |
| `intelligence-angle` | Intelligence-first messaging variant |

### utm_term (Paid campaigns only)

| Value | Use When |
|-------|----------|
| `affluent-singles-28-55` | Core demographic targeting |
| `dating-app-users` | Interest: dating apps |
| `luxury-lifestyle` | Interest: luxury lifestyle |
| `safety-conscious` | Interest: online safety |
| `miami-metro` | Geo: Miami metro area |
| `nyc-metro` | Geo: New York metro area |
| `la-metro` | Geo: Los Angeles metro area |
| `retargeting-site-visitors` | Retargeting: site visitors who didn't sign up |
| `lookalike-waitlist` | Lookalike audience from waitlist |
| `executives-director-plus` | LinkedIn job title targeting |

---

## 10 Example UTM Strings

### 1. Instagram organic launch post
```
askclair.io?utm_source=instagram&utm_medium=social-organic&utm_campaign=reveal-product-launch&utm_content=hero-a
```

### 2. TikTok organic โ€” "The Profile Lie" script
```
askclair.io?utm_source=tiktok&utm_medium=social-organic&utm_campaign=reveal-product-launch&utm_content=video-profile-lie
```

### 3. Meta paid ad โ€” safety angle, Miami
```
askclair.io?utm_source=meta-ads&utm_medium=social-paid&utm_campaign=reveal-waitlist-open&utm_content=safety-angle&utm_term=miami-metro
```

### 4. Klaviyo โ€” VIP Invite Batch 1, Email 1
```
askclair.io?utm_source=klaviyo&utm_medium=email&utm_campaign=invitation-batch-1&utm_content=email-vip-1
```

### 5. Influencer referral link โ€” @jess_dating
```
askclair.io/invite/jess-dating?utm_source=influencer-jess-dating&utm_medium=influencer&utm_campaign=reveal-product-launch&utm_content=bio-link
```

### 6. LinkedIn founder post
```
askclair.io?utm_source=linkedin&utm_medium=social-organic&utm_campaign=reveal-product-launch&utm_content=founder-post
```

### 7. TikTok paid ad โ€” retargeting site visitors
```
askclair.io?utm_source=tiktok-ads&utm_medium=social-paid&utm_campaign=scale-retargeting&utm_content=video-blind-briefing&utm_term=retargeting-site-visitors
```

### 8. QR code on Miami billboard
```
askclair.io?utm_source=qr-code&utm_medium=ooh&utm_campaign=reveal-product-launch&utm_content=billboard-miami
```

### 9. Waitlist nurture email โ€” referral prompt
```
askclair.io?utm_source=klaviyo&utm_medium=email&utm_campaign=invitation-referral&utm_content=email-nurture-4
```

### 10. Google Display โ€” retargeting, NYC
```
askclair.io?utm_source=google-ads&utm_medium=display&utm_campaign=scale-retargeting&utm_content=hero-b&utm_term=nyc-metro
```

---

## Rules

1. **All lowercase.** No capital letters in any UTM parameter value.
2. **Hyphens only.** Use hyphens (`-`) for spaces, never underscores (`_`) or camelCase.
3. **Every link gets UTMs.** No trackable link published without at least `source`, `medium`, and `campaign`.
4. **Influencer links use referral codes.** Format: `askclair.io/invite/{code}` with UTMs appended.
5. **A/B test variants get unique `utm_content`.** If two creatives run, each gets a distinct content tag.
6. **Document new values.** If you create a new source, medium, campaign, or content value, add it to this document before use.
7. **Never edit live UTMs.** Changing UTM values mid-campaign breaks attribution. Create new links instead.
8. **Use a link builder.** Google Campaign URL Builder or equivalent โ€” no hand-typing UTM strings.
9. **QR codes get their own source.** Always `utm_source=qr-code`, never the platform the QR points to.
10. **Organic and paid are separate mediums.** Even on the same platform, organic = `social-organic`, paid = `social-paid`.

---

*CLAIR โ€” Dating, Decoded. | askclair.io | Early Access 2026*