Why Inconsistent UTM Naming Breaks Your Analytics
Consider a real-world scenario: your marketing team runs a February Valentine's Day campaign. Three different team members tag their channels as follows:
Paid Search: utm_source=Google&utm_medium=CPC&utm_campaign=Valentines2025
Email team: utm_source=newsletter&utm_medium=Email&utm_campaign=valentines_day_campaign
Social team: utm_source=facebook&utm_medium=social_ad&utm_campaign=valentine-2025
In your GA4 Campaign report, this single promotion now appears as at least 5 separate campaign rows - impossible to aggregate, compare, or attribute accurately to total spend. Your attribution model is permanently corrupted for that period.
This is exactly why every marketing organization needs a formally documented UTM taxonomy SOP before any campaign goes live.
The 5 Golden Rules of UTM Naming Conventions
-
Always Lowercase. No Exceptions.
Google Analytics 4 treats every character as case-sensitive. Enforce strict lowercase for every parameter value across the entire team. Use tooling (like UTMCraft) to auto-enforce casing rather than relying on human discipline.
-
Use Hyphens or Underscores as Word Separators. Pick One and Never Mix.
The industry standard is hyphens in URLs (brand-awareness) or underscores for parameter values (brand_awareness). Both are acceptable - but document your choice in your SOP and never mix them within the same property.
-
Use a Consistent Campaign Name Formula with Required Suffixes.
Campaign names must be structured enough to filter and aggregate by product, market, and period. See the Campaign Name Formula section below.
-
Maintain a Published Approved Values List for Source and Medium.
Never allow team members to invent new source or medium values. Maintain a shared "Allowed Values" spreadsheet and review it quarterly. Any new channel or partner requires a governance approval process.
-
QA Every Link Before Publishing. Zero Exceptions.
Require every team member to run tagged URLs through a UTM checker (UTMCraft's inspector) and confirm the audit score is 100% before any link is shared, sent, or published.
The Campaign Name Formula
Structure campaign names so they can be filtered, grouped, and compared across quarters. A recommended enterprise formula:
[product/brand]_[initiative-type]_[market/geo]_[quarter-year]
Examples:
utm_campaign=enterprise_brand-awareness_na_q1-2025
utm_campaign=starter-plan_trial-upsell_emea_q4-2025
utm_campaign=annual-sale_conversion_global_q4-2025
utm_campaign=webinar_lead-gen_us_jan-2025
| Component |
Purpose |
Example Values |
| Product / Brand |
Filter by product line in GA4 Explorations |
enterprise, starter, brand, platform |
| Initiative Type |
Categorize by campaign goal or tactic |
brand-awareness, lead-gen, trial-upsell, seasonal-sale |
| Market / Geo |
Segment by geography or audience cluster |
na, emea, apac, us, global |
| Quarter & Year |
Enable trend analysis and YoY comparison |
q1-2025, q4-2026, jan-2025 |
Master Approved Values Taxonomy
Use this reference as the foundation of your organization's UTM SOP. Copy it into a shared Google Sheet or Notion database and make it the single source of truth for your team:
Approved utm_source Values
| Source Value | Platform | GA4 Channel |
google | Google Ads / Organic Google | Paid Search / Organic Search |
bing | Microsoft Advertising | Paid Search |
facebook | Meta Ads (Facebook) | Paid Social / Organic Social |
instagram | Meta Ads (Instagram) | Paid Social / Organic Social |
linkedin | LinkedIn Ads / Organic | Paid Social / Organic Social |
twitter | X (formerly Twitter) | Organic Social |
tiktok | TikTok Ads | Paid Social |
youtube | YouTube (Google) | Paid Video / Organic Video |
newsletter | Email marketing (generic) | Email |
klaviyo | Klaviyo email flows | Email |
mailchimp | Mailchimp campaigns | Email |
partner_affiliate | Affiliate network | Affiliates |
Approved utm_medium Values
| Medium Value | GA4 Channel Group | When to Use |
cpc | Paid Search | Google Ads, Bing Ads, Apple Search Ads |
paid_social | Paid Social | Meta, LinkedIn, TikTok, Pinterest, Reddit sponsored posts |
social | Organic Social | Organic posts, bio links, shared content on social networks |
email | Email | All email sends: newsletters, lifecycle, transactional |
display | Display | Google Display Network, programmatic banners |
video | Organic Video | YouTube organic descriptions, Vimeo |
affiliate | Affiliates | All affiliate and partner commission links |
referral | Referral | Partner blog posts, press coverage, app store links |
qr_code | Custom Offline | Print materials, event signage, packaging |
UTM Taxonomy SOP Template - Copy for Your Team
Use this template as the basis for your organization's formal UTM governance document. Customize it for your brand, tools, and team structure:
# [Your Company] UTM Tracking Taxonomy SOP
## Version 1.0 | Effective Date: [Date] | Owner: [Analytics Lead]
---
### 1. PURPOSE
This document defines the required naming conventions for all UTM tracking parameters
used in digital marketing campaigns. All campaign tracking links must follow these
rules before being shared, scheduled, or published.
### 2. MANDATORY FORMATTING RULES
- ALL parameter values must be LOWERCASE with NO EXCEPTIONS
- Use UNDERSCORES (_) as word separators (or define hyphens if preferred - do not mix)
- No spaces in any parameter value
- No special characters (!, @, #, $, %) in parameter values
- All destination URLs must use HTTPS protocol
- Never add UTM parameters to internal website navigation links
### 3. CAMPAIGN NAME FORMULA
utm_campaign = [product]_[initiative]_[market]_[period]
Examples:
✅ CORRECT: utm_campaign=enterprise_lead-gen_na_q1-2025
❌ INCORRECT: utm_campaign=Enterprise Lead Gen NA Q1 2025
### 4. REQUIRED PARAMETERS (Mandatory for every tagged link)
- utm_source → Required. Use only approved Source Values (see Appendix A)
- utm_medium → Required. Use only approved Medium Values (see Appendix B)
- utm_campaign → Required. Must follow Campaign Name Formula above
### 5. OPTIONAL PARAMETERS
- utm_content → Used for A/B testing: identifies ad creative or CTA variant
- utm_term → Used for paid search keywords or audience targeting identifiers
- utm_id → Required when uploading campaign cost data to GA4
### 6. QA REVIEW PROCESS
Before publishing any campaign link:
1. Paste URL into UTMCraft UTM Checker at https://utmcraft.com/utm-checker/
2. Verify audit score = 100%
3. Confirm GA4 Channel Group matches expected channel
4. Test link in incognito window - confirm page loads correctly
5. Verify live session in GA4 Realtime Report before campaign goes live
### APPENDIX A: Approved Source Values
[See Master Taxonomy Table - maintain in shared Google Sheet]
### APPENDIX B: Approved Medium Values
[See Master Taxonomy Table - maintain in shared Google Sheet]
Enforcing UTM Governance Across Teams
1. Designate a Taxonomy Owner
Assign a single analytics team member or marketing operations lead as the UTM Taxonomy Owner. They are responsible for maintaining the approved values list, reviewing new channel additions, and onboarding new team members.
2. Integrate UTM Tagging Into Campaign Launch Checklists
Add a UTM compliance step to every campaign launch approval workflow. No campaign should go live in your project management tool (Asana, Jira, Monday.com) without a UTM audit score attached.
3. Audit Historical Data Quarterly
At the start of each quarter, run a GA4 Traffic Acquisition report and filter by source/medium. Look for any unexpected row values (often caused by typos or new hires using non-approved values). Create custom channel group overrides in GA4 Admin if historical corrections are needed.
4. Use UTMCraft GA4 Taxonomy Guide as Your Team Reference
The UTMCraft GA4 Taxonomy tab provides a searchable, filterable lookup of all GA4 Default Channel Grouping rules - use it as a real-time reference during campaign planning. Share the URL with your media buyers, email marketers, and agency partners.
🎯 Apply These Conventions Instantly
Use the Campaign URL Builder to generate links that automatically enforce all the naming conventions in this guide. It applies strict lowercase, hyphens/underscores, and validates GA4 channel compliance on every link you build.
Frequently Asked Questions
Should I use hyphens or underscores in UTM values?
Both are technically valid. However, underscores (_) are more commonly used in parameter values (e.g. paid_social) because hyphens in campaign names can be confused with URL-encoded characters in some platforms. Choose one standard for your organization and apply it consistently - never mix both in the same property.
How often should we update our UTM taxonomy SOP?
Review your taxonomy SOP quarterly, aligned with reporting periods. Update it whenever a new marketing channel is added, a new ad platform is contracted, or a channel restructure is reported in GA4. Version-control your SOP document and maintain a changelog.
Can we use branded terms in utm_source?
Yes. For utm_source, descriptive values like mailchimp_automation, klaviyo_welcome, or google_display are acceptable. Avoid brand names in utm_medium - utm_medium must match GA4 channel grouping regex patterns, not brand names.
What should utm_content contain for A/B testing?
For creative A/B testing, use utm_content to describe the specific variation: headline_urgency_v1 vs headline_benefit_v2, or hero_image_product vs hero_image_lifestyle. Keep the description short enough to scan in a GA4 report but specific enough to reconstruct the test from the value alone.