UTM parameters are the foundation of campaign attribution. Without consistent tagging, your analytics will show fragmented data — “Facebook,” “facebook,” and “fb” appearing as three separate traffic sources when they should be one. This guide covers naming conventions, GA4 channel groupings, and governance strategies that scale.
According to Improvado research, 30% of companies don’t use UTM markup in over 30% of their campaigns. Another 20% get inaccurate metrics due to poor UTM implementation. Don’t be in either group.
The Five UTM Parameters
| Parameter | Purpose | Example Values | Required |
|---|---|---|---|
utm_source |
Identifies the platform or site sending traffic | google, linkedin, newsletter, partner-site | Yes |
utm_medium |
Marketing channel type | cpc, email, organic-social, affiliate, referral | Yes |
utm_campaign |
Specific campaign, promotion, or initiative | spring-sale-2025, product-launch, welcome-series | Yes |
utm_content |
Differentiates links or creatives within a campaign | hero-cta, blue-banner, text-link | No |
utm_term |
Paid search keywords or audience segments | analytics-software, remarketing-30d | No |
Naming Convention Rules
GA4 treats UTM values as case-sensitive and does not normalize them. “Instagram” and “instagram” create two separate source entries that cannot be merged retroactively. Establish these rules before tagging your first link.
The Four Rules
- Lowercase only — Never use capital letters.
linkedinnotLinkedIn - Hyphens as separators — Use hyphens between words.
paid-socialnotpaid_socialorpaid social - No spaces — Spaces break URLs or get encoded as
%20, cluttering reports - Consistent terminology — Pick one term and stick with it.
emaileverywhere, nevere-mailornewsletterfor the medium
Good vs Bad Examples
| Parameter | Good ✓ | Bad ✗ | Why It Fails |
|---|---|---|---|
| Source | linkedin |
LinkedIn |
Case sensitivity creates duplicate sources |
| Medium | paid-social |
Paid Social |
Spaces and caps break channel groupings |
| Campaign | spring-sale-2025 |
Spring Sale! |
Special characters and spaces cause encoding issues |
| Content | hero-cta-blue |
Hero CTA (Blue) |
Parentheses get URL-encoded as %28%29 |
| Term | analytics-tools |
analytics tools |
Spaces encoded as %20, hard to read in reports |
GA4 Default Channel Groupings
GA4 automatically categorizes traffic into channels based on source and medium values. Using the correct utm_medium ensures your campaigns appear in the right channel group.
Medium Values by Channel
| Channel Group | utm_medium Values | Additional Requirements |
|---|---|---|
| Paid Search | cpc, ppc, paidsearch |
Source matches search engine list |
| Paid Social | paid-social, paidsocial, cpc, cpm, ppc |
Source matches social network list |
| Organic Social | organic-social, social |
Source matches social network list |
email, e-mail, e_mail |
— | |
| Affiliates | affiliate |
— |
| Referral | referral |
— |
| Display | display, banner, cpm |
Not a social source |
| Paid Shopping | cpc, ppc, paid |
Campaign contains “shop” or “shopping” |
Full list available in Google’s documentation.
Recommended Taxonomy
Use this standardized taxonomy as a starting point. Adapt it to your business, but maintain consistency once established.
utm_source Values
| Category | Recommended Values |
|---|---|
| Search Engines | google, bing, duckduckgo, yahoo, baidu |
| Social Networks | facebook, instagram, linkedin, twitter, tiktok, youtube |
newsletter, transactional, automation, or specific tool: mailchimp, hubspot |
|
| Partners | Partner name: partner-acme, affiliate-techblog |
| Owned Media | blog, podcast, webinar, press-release |
utm_medium Values
| Channel Type | Recommended Value | GA4 Channel Group |
|---|---|---|
| Paid search ads | cpc |
Paid Search |
| Paid social ads | paid-social |
Paid Social |
| Organic social posts | organic-social |
Organic Social |
| Email campaigns | email |
|
| Display/banner ads | display |
Display |
| Affiliate links | affiliate |
Affiliates |
| Partner referrals | referral |
Referral |
| Retargeting ads | retargeting |
Display |
| Video ads | video |
Video |
| SMS campaigns | sms |
SMS |
utm_campaign Structure
Campaign names should follow a predictable pattern. Include enough context to identify the campaign without looking it up.
Recommended Pattern
[year]-[month]-[campaign-type]-[descriptor]
Examples
| Campaign Type | Example |
|---|---|
| Seasonal promotion | 2025-03-spring-sale |
| Product launch | 2025-04-product-analytics-launch |
| Webinar | 2025-02-webinar-ga4-migration |
| Email sequence | 2025-01-welcome-series |
| Always-on | brand-awareness (no date for evergreen) |
Common Mistakes to Avoid
Critical Errors
- Tagging internal links — Never add UTMs to links within your own site. This creates false sessions and breaks attribution
- Inconsistent capitalization —
Email,email,EMAILare three different mediums in GA4 - Using spaces — Spaces become
%20in URLs, fragmenting your data - Redundant information — Don’t repeat source in campaign:
utm_source=facebook&utm_campaign=facebook-spring-sale - No documentation — Without a central reference, teams create conflicting conventions
- Over-complicated naming — Complex conventions won’t be followed consistently
UTM Governance Framework
UTM governance means having formal processes and oversight for how parameters are created and used. Without it, even the best conventions degrade over time.
1. Central Documentation
Maintain a shared spreadsheet or Notion page with approved values for each parameter. Include examples and anti-examples.
2. URL Builder Tool
Use a UTM builder (Google’s Campaign URL Builder, or tools like UTM.io) to generate links. This prevents typos and enforces conventions.
3. Regular Audits
Review GA4 traffic sources monthly. Look for misspellings, case variations, and unexpected values. Fix at the source.
4. Team Training
Ensure everyone who creates links understands the conventions. Document the “why” behind rules, not just the rules themselves.
Documentation Template
Track every tagged URL in a central spreadsheet. This serves as both a reference and an audit trail.
| Column | Purpose | Example |
|---|---|---|
| Campaign Name | Human-readable identifier | Spring Sale 2025 |
| Destination URL | Landing page | https://example.com/sale |
| utm_source | Traffic source | |
| utm_medium | Channel type | paid-social |
| utm_campaign | Campaign ID | 2025-03-spring-sale |
| utm_content | Creative variant | carousel-ad-v2 |
| Full Tagged URL | Complete URL with UTMs | (auto-generated) |
| Created By | Owner | Marketing Team |
| Date Created | For auditing | 2025-03-01 |
Quick Reference Checklist
Before Publishing Any Link
- All UTM values are lowercase
- Words separated by hyphens (not underscores or spaces)
- No special characters except hyphens
- Source, medium, and campaign all present
- Medium matches GA4 channel grouping requirements
- Campaign follows your naming convention
- Link is NOT for internal navigation
- URL is documented in tracking spreadsheet
- Link has been tested and redirects correctly
Tools and Resources
| Tool | Purpose | Link |
|---|---|---|
| Google Campaign URL Builder | Free UTM link generator | ga-dev-tools.google |
| UTM.io | Team UTM management with templates | utm.io |
| GA4 Channel Definitions | Official channel grouping rules | Google Support |
Further Reading
- Default channel group — Google Analytics Help
- UTM Parameters in GA4 — Analytics Mania
- UTM Best Practices: The Ultimate List — AdRoll
- UTM Convention Best Practices — Funnel.io
Product Analytics Specialist based in Munich. Helping teams implement clean, actionable analytics since 2015.