UTM tracking: the operator's guide to campaign attribution
UTM tracking is the discipline of tagging every campaign URL with consistent parameters so your analytics tools can attribute traffic correctly. Done well, UTMs let you see exactly which channel, campaign, and creative drove every visit and conversion in GA4 and downstream attribution.
The five UTM parameters
| Parameter | What it does | Example |
|---|---|---|
| utm_source | The traffic source | google, meta, newsletter, tiktok |
| utm_medium | The marketing channel category | cpc, email, social, organic, referral |
| utm_campaign | The specific campaign | summer-sale-2026, b2b-q3-launch |
| utm_term | Keyword (for paid search) | best-running-shoes |
| utm_content | Creative variant or placement | headline-a, retargeting-carousel |
The naming convention that scales
UTM hygiene is mostly about consistency. The discipline:
- Lowercase always. "Google" and "google" create two separate entries in GA4.
- No spaces. Use hyphens or underscores.
- Standardized source/medium taxonomy. Build the taxonomy once; apply it always.
- Campaign names include date or quarter for chronological sorting.
- Document the taxonomy and share with everyone who creates UTMs.
UTM examples by channel
| Channel | Source / Medium | Campaign example |
|---|---|---|
| Google Ads Search | google / cpc | brand-search-2026q3 |
| Meta Ads | meta / paid-social (or facebook/instagram + paid-social) | summer-launch-2026 |
| LinkedIn Ads | linkedin / paid-social | abm-tier1-2026q3 |
| TikTok Ads | tiktok / paid-social | creator-collab-2026q3 |
| Klaviyo email | klaviyo / email | welcome-flow-email-2 |
| Newsletter sponsorship | newsletter-name / sponsored | q3-sponsorship-2026 |
| Organic social post | twitter / social | founder-thread-2026-08 |
How GA4 handles UTMs
GA4 reads UTM parameters from the landing URL and assigns them to the session's traffic source. The data appears in Reports → Acquisition and in any custom report or exploration that uses session-source dimensions.
The gotchas:
- UTMs persist for the session, not forever. Subsequent pageviews inherit the session's source; new sessions get fresh UTMs.
- Default channel grouping aggregates source/medium combinations into broader categories. Verify your channel grouping matches your taxonomy.
- If UTM medium is missing, GA4 may classify traffic as "direct" or "not set" — both common signs of broken UTM hygiene.
Auto-tagging vs UTMs
Some platforms auto-tag URLs:
- Google Ads auto-tags with
gclidwhen linked to GA4. - YouTube Ads same.
- Most other platforms (Meta, LinkedIn, TikTok) require manual UTM addition.
Auto-tagging captures more granular detail than manual UTMs (campaign-level metadata flows through gclid). For Google traffic, prefer auto-tagging plus utm_source/medium/campaign as backup. For non-Google traffic, manual UTMs are required.
How many UTMs should I track?
Source, medium, campaign — required. Content for creative variants — useful. Term for keyword — only relevant for paid search and usually auto-tagged.
What breaks UTM tracking?
Inconsistent casing, redirects that drop parameters, single-page apps that don't capture URL changes properly, and missing utm_medium values that send traffic to "direct."
Should I use a UTM builder tool?
Yes — a shared UTM builder enforces taxonomy. Google's free Campaign URL Builder is fine for small teams; specialized tools (UTM.io, Terminus UTM Builder) work for larger.
Operating checklist
- Define the business outcome before building.
- Audit the existing state honestly.
- Build the foundation before the advanced layer.
- Establish ownership and operating cadence.
- Measure what compounds, not what looks good.
- Refresh quarterly based on what's working.
- Document so the next operator can pick it up.