URL SyntaxUpdated 2025

UTM Naming Conventions 2024: The Complete Standard

Master UTM naming conventions with this comprehensive guide. Learn industry standards, avoid common pitfalls, and ensure consistent campaign tracking across your entire organization.

11 min readURL Syntax

"Before we standardized our UTM naming, we had 1,247 unique variations across our campaigns. After implementing conventions, we're down to 47 distinct, meaningful segments. Our reporting time dropped from 2 days to 2 hours per month."

This transformation happened at a B2B SaaS company managing $500K annually in paid marketing. Their secret? A comprehensive, enforced UTM naming convention.

Why Naming Conventions Matter

Without standards:

  • 1,247 campaign variations (chaos)
  • 2 days/month spent consolidating reports
  • Inconsistent attribution
  • Inability to compare campaigns over time
  • Decision-making based on incomplete data

With standards:

  • 47 organized segments (clarity)
  • 2 hours/month for reporting
  • Accurate attribution
  • Easy year-over-year comparison
  • Confident, data-driven decisions

Cost difference: 14 hours saved monthly = $4,200/month in analyst time (at $50/hour loaded cost)

The UTMGuard Standard: 2024 Edition

This comprehensive standard is based on analyzing 10M+ campaign URLs and consulting with 500+ marketing teams.

Core Principles

  1. All lowercase - No exceptions
  2. Hyphens for word separation - Never spaces or underscores
  3. Descriptive but concise - Clear meaning, minimal length
  4. Consistent across team - Everyone follows same rules
  5. Future-proof - Easy to scale and maintain

🚨 Not sure what's breaking your tracking?

Run a free 60-second audit to check all 40+ ways UTM tracking can fail.

Scan Your Campaigns Free

✓ No credit card ✓ See results instantly

Parameter-by-Parameter Standards

utm_source: Where Traffic Originates

Format: [platform-name] or [website-domain]

Standard sources:

Code
Paid Platforms:
- google (Google Ads)
- facebook (Facebook Ads)
- instagram (Instagram Ads)
- linkedin (LinkedIn Ads)
- twitter (Twitter/X Ads)
- tiktok (TikTok Ads)
- pinterest (Pinterest Ads)
- snapchat (Snapchat Ads)
- reddit (Reddit Ads)

Organic/Owned:
- email (Internal email system)
- newsletter (Newsletter platform)
- website (Your own website)
- blog (Your blog)
- app (Mobile app)

External:
- [partner-domain] (e.g., techcrunch, forbes)
- [affiliate-name]
- [referral-domain]

Examples:

Code
✅ CORRECT:
utm_source=facebook
utm_source=google
utm_source=techcrunch
utm_source=affiliate-john-smith

❌ WRONG:
utm_source=Facebook (uppercase)
utm_source=FB (abbreviation)
utm_source=facebook_ads (medium included)
utm_source=face book (space)

utm_medium: Type of Marketing Channel

Format: [channel-type] or [paid/organic]-[channel]

Standard mediums:

Code
Paid Channels:
- paid-search (Google Ads, Bing Ads search)
- paid-social (Facebook, Instagram, LinkedIn, etc. ads)
- display (Display/banner ads)
- video (Video ads)
- shopping (Google Shopping, product ads)
- retargeting (Remarketing campaigns)
- sponsored (Sponsored content, native ads)

Organic Channels:
- organic-search (SEO traffic)
- organic-social (Unpaid social posts)
- organic-video (YouTube organic)

Owned Channels:
- email (Marketing emails)
- newsletter (Newsletter sends)
- sms (Text messages)
- push (Push notifications)

Referral:
- referral (Link from another site)
- affiliate (Affiliate links)
- partner (Partnership traffic)

Examples:

Code
✅ CORRECT:
utm_medium=paid-social
utm_medium=email
utm_medium=organic-search
utm_medium=affiliate

❌ WRONG:
utm_medium=Paid Social (spaces + uppercase)
utm_medium=ppc (vague abbreviation)
utm_medium=facebook (that's a source)
utm_medium=email_campaign (unnecessary suffix)

utm_campaign: Specific Initiative/Promotion

Format: [time-period]-[theme]-[promotion-type] or [theme]-[season]-[year]

Recommended structures:

Code
Seasonal Promotions:
- q4-black-friday-2024
- spring-sale-2024
- summer-campaign-2024
- holiday-gift-guide-2024

Product Launches:
- product-launch-widget-v2
- feature-release-analytics-dashboard
- new-service-consulting-package

Ongoing Campaigns:
- evergreen-welcome-series
- nurture-free-trial-users
- retention-at-risk-customers

Event-Based:
- webinar-seo-mastery-nov-2024
- conference-saas-summit-2024
- workshop-google-ads-basics

Examples:

Code
✅ CORRECT:
utm_campaign=q4-black-friday-2024
utm_campaign=product-launch-crm-v3
utm_campaign=webinar-email-marketing-oct
utm_campaign=evergreen-demo-request

❌ WRONG:
utm_campaign=Black Friday Sale!!! (spaces + special chars)
utm_campaign=BF2024 (not descriptive)
utm_campaign=Campaign_123 (meaningless)
utm_campaign=october campaign (space + not specific)

utm_content: Creative Variation/Placement

Format: [ad-type]-[version] or [placement]-[variant]

Standard structures:

Code
Ad Variations:
- text-ad-v1
- text-ad-v2
- video-ad-30s
- carousel-ad-v1
- story-ad-v3

Creative Elements:
- headline-benefit-focused
- headline-feature-focused
- image-product-shot
- image-lifestyle-scene

Placements:
- header-banner
- sidebar-banner
- footer-cta
- popup-modal
- inline-content

A/B Test Variants:
- button-red
- button-blue
- cta-buy-now
- cta-learn-more

Examples:

Code
✅ CORRECT:
utm_content=carousel-ad-v2
utm_content=header-banner-cta
utm_content=email-hero-image
utm_content=text-ad-benefit-focused

❌ WRONG:
utm_content=Ad Version 2 (spaces)
utm_content=NEW!!! (not descriptive)
utm_content=test (vague)
utm_content=the big blue button on top (too long)

utm_term: Keyword or Audience Segment

Format: [keyword-phrase] (search) or [audience-segment] (display)

Paid search:

Code
- running-shoes-men
- best-crm-software
- email-marketing-tools
- project-management-app

Display/Social audiences:

Code
- lookalike-purchasers
- retargeting-cart-abandoners
- interest-fitness-enthusiasts
- demographic-ceo-tech-startups

Examples:

Code
✅ CORRECT:
utm_term=running-shoes-men
utm_term=lookalike-purchasers
utm_term=interest-digital-marketing

❌ WRONG:
utm_term=running shoes (spaces)
utm_term=Keyword123 (not descriptive)
utm_term=all keywords (vague)

😰 Is this your only tracking issue?

This is just 1 of 40+ ways UTM tracking breaks. Most marketing teams have 8-12 critical issues they don't know about.

• 94% of sites have UTM errors

• Average: $8,400/month in wasted ad spend

• Fix time: 15 minutes with our report

✓ Connects directly to GA4 (read-only, secure)

✓ Scans 90 days of data in 2 minutes

✓ Prioritizes issues by revenue impact

✓ Shows exact sessions affected

Get Your Free Audit Report

Complete Real-World Examples

Example 1: Facebook Ad Campaign

Campaign: Black Friday sale, carousel ad, targeting previous customers

Code
https://example.com/products
  ?utm_source=facebook
  &utm_medium=paid-social
  &utm_campaign=q4-black-friday-2024
  &utm_content=carousel-ad-v1
  &utm_term=retargeting-past-customers

Breakdown:

  • Source: facebook (where traffic comes from)
  • Medium: paid-social (paid Facebook advertising)
  • Campaign: q4-black-friday-2024 (Q4 2024 Black Friday promotion)
  • Content: carousel-ad-v1 (first version of carousel ad)
  • Term: retargeting-past-customers (audience segment)

Example 2: Email Newsletter

Campaign: Monthly newsletter, section linking to new blog post

Code
https://example.com/blog/utm-guide
  ?utm_source=email
  &utm_medium=newsletter
  &utm_campaign=monthly-newsletter-nov-2024
  &utm_content=main-article-link

Breakdown:

  • Source: email (internal email system)
  • Medium: newsletter (newsletter type email)
  • Campaign: monthly-newsletter-nov-2024 (November monthly newsletter)
  • Content: main-article-link (link from main article section)
  • Term: (not needed for email)

Example 3: Google Ads Search Campaign

Campaign: Product launch, text ad, keyword targeting

Code
https://example.com/new-product
  ?utm_source=google
  &utm_medium=paid-search
  &utm_campaign=product-launch-analytics-tool
  &utm_content=text-ad-benefit-focused
  &utm_term=analytics-software-saas

Breakdown:

  • Source: google (Google Ads)
  • Medium: paid-search (Google search ads)
  • Campaign: product-launch-analytics-tool (analytics tool launch)
  • Content: text-ad-benefit-focused (benefit-focused text ad variant)
  • Term: analytics-software-saas (keyword being bid on)

Example 4: Partner Referral

Campaign: Guest post on TechCrunch, inline CTA link

Code
https://example.com/demo
  ?utm_source=techcrunch
  &utm_medium=referral
  &utm_campaign=guest-post-nov-2024
  &utm_content=inline-cta

Breakdown:

  • Source: techcrunch (TechCrunch website)
  • Medium: referral (referral traffic)
  • Campaign: guest-post-nov-2024 (November guest post)
  • Content: inline-cta (inline call-to-action link)
  • Term: (not needed for referral)

Example 5: LinkedIn Sponsored Content

Campaign: Webinar promotion, single image ad, targeting CMOs

Code
https://example.com/webinar-signup
  ?utm_source=linkedin
  &utm_medium=paid-social
  &utm_campaign=webinar-marketing-automation-dec
  &utm_content=single-image-ad-v2
  &utm_term=title-cmo-vp-marketing

Breakdown:

  • Source: linkedin (LinkedIn Ads)
  • Medium: paid-social (LinkedIn paid advertising)
  • Campaign: webinar-marketing-automation-dec (December marketing automation webinar)
  • Content: single-image-ad-v2 (second version of single image ad)
  • Term: title-cmo-vp-marketing (job title targeting)

Implementation Guide

Step 1: Create Your Style Guide

Document template:

Markdown
# [Company Name] UTM Naming Convention
 
Last updated: [Date]
Owner: [Marketing Ops Manager]
 
## Core Rules
 
1. All lowercase
2. Hyphens for word separation
3. No spaces, special characters, or underscores
4. Descriptive and concise
5. Consistent format
 
## Approved Sources
 
### Paid Platforms
- google
- facebook
- instagram
- linkedin
- [add your platforms]
 
### Owned Channels
- email
- newsletter
- website
- app
 
### Partners
- [partner-name-1]
- [partner-name-2]
 
## Approved Mediums
 
- paid-search
- paid-social
- organic-search
- organic-social
- email
- newsletter
- display
- referral
- affiliate
 
## Campaign Naming Structure
 
Format: [time-period]-[theme]-[promotion-type]
 
Examples:
- q4-black-friday-2024
- product-launch-feature-x
- evergreen-demo-request
 
## Content Naming Structure
 
Format: [ad-type]-[version] or [placement]-[variant]
 
Examples:
- carousel-ad-v1
- header-banner
- text-ad-benefit-focused
 
## Examples by Channel
 
### Google Ads
utm_source=google&utm_medium=paid-search&utm_campaign=[campaign]&utm_content=[ad-variant]&utm_term=[keyword]
 
### Facebook Ads
utm_source=facebook&utm_medium=paid-social&utm_campaign=[campaign]&utm_content=[ad-variant]&utm_term=[audience]
 
### Email
utm_source=email&utm_medium=newsletter&utm_campaign=[campaign]&utm_content=[link-location]
 
[Continue for all your channels...]

Step 2: Train Your Team

30-minute training session:

Slides to include:

  1. Why it matters (5 min)

    • Show before/after analytics screenshots
    • Demonstrate cost of inconsistency
    • Share time savings
  2. The standards (10 min)

    • Walk through each parameter
    • Show approved values
    • Explain naming structure
  3. Tools and validation (10 min)

    • Introduce URL builder
    • Demonstrate validation checker
    • Practice creating URLs
  4. Enforcement (5 min)

    • Pre-launch checklist
    • Review process
    • Accountability

Step 3: Create Tools

URL Builder Spreadsheet:

Create a Google Sheet with dropdowns for approved values:

FieldDropdown Options
utm_sourcegoogle, facebook, instagram, linkedin, email...
utm_mediumpaid-search, paid-social, email, organic-search...
utm_campaign[free text, validated on submit]
utm_content[free text, validated on submit]
utm_term[free text, validated on submit]

Formula for URL generation:

Code
=CONCATENATE(A2,"?utm_source=",B2,"&utm_medium=",C2,"&utm_campaign=",LOWER(SUBSTITUTE(D2," ","-")),"&utm_content=",LOWER(SUBSTITUTE(E2," ","-")),"&utm_term=",LOWER(SUBSTITUTE(F2," ","-")))

This automatically:

  • Converts to lowercase
  • Replaces spaces with hyphens
  • Combines into valid URL

Step 4: Implement Validation

Pre-launch checklist:

Code
Before launching any campaign:

[ ] URL built using approved tool
[ ] All parameters lowercase
[ ] No spaces in any parameter
[ ] Source matches approved list
[ ] Medium matches approved list
[ ] Campaign follows naming structure
[ ] Content descriptive and versioned
[ ] Term relevant and hyphenated
[ ] URL tested in browser
[ ] URL tracked in campaign log

Step 5: Regular Audits

Monthly audit process:

Javascript
// Audit script to run on GA4 exports
function auditNamingCompliance(data) {
  const issues = {
    uppercase: [],
    spaces: [],
    nonStandard: [],
    vague: []
  };
 
  const approvedSources = ['google', 'facebook', 'instagram', 'linkedin', 'email'];
  const approvedMediums = ['paid-search', 'paid-social', 'email', 'organic-search'];
 
  data.forEach(row => {
    // Check uppercase
    if (row.source !== row.source.toLowerCase()) {
      issues.uppercase.push(row);
    }
 
    // Check spaces
    if (row.campaign.includes(' ') || row.source.includes(' ')) {
      issues.spaces.push(row);
    }
 
    // Check non-standard sources
    if (!approvedSources.includes(row.source)) {
      issues.nonStandard.push(row);
    }
 
    // Check vague campaign names
    if (row.campaign.length < 5 || row.campaign.match(/^campaign|test|temp/i)) {
      issues.vague.push(row);
    }
  });
 
  return issues;
}

Common Pitfalls to Avoid

1. Inconsistent Word Separation

Wrong:

Code
utm_campaign=black_friday_2024  (underscores)
utm_campaign=blackFriday2024    (camelCase)
utm_campaign=black.friday.2024  (periods)

Correct:

Code
utm_campaign=black-friday-2024  (hyphens)

2. Mixing Campaign Structure

Wrong:

Code
utm_campaign=bf2024              (too short)
utm_campaign=our-big-black-friday-sale-event-nov  (too long)
utm_campaign=11-24-sale          (confusing format)

Correct:

Code
utm_campaign=q4-black-friday-2024  (consistent structure)

3. Meaningless Versioning

Wrong:

Code
utm_content=v1
utm_content=test2
utm_content=final
utm_content=final-FINAL

Correct:

Code
utm_content=carousel-ad-v1
utm_content=text-ad-benefit-v2
utm_content=video-30s-v1

4. Platform-Specific Redundancy

Wrong:

Code
utm_source=facebook&utm_medium=facebook-ads
utm_source=google&utm_campaign=google-ads-campaign

Correct:

Code
utm_source=facebook&utm_medium=paid-social
utm_source=google&utm_campaign=q4-black-friday-2024

✅ Fixed this issue? Great! Now check the other 39...

You just fixed one tracking issue. But are your Google Ads doubling sessions? Is Facebook attribution broken? Are internal links overwriting campaigns?

Connects to GA4 (read-only, OAuth secured)

Scans 90 days of traffic in 2 minutes

Prioritizes by revenue impact

Free forever for monthly audits

Run Complete UTM Audit (Free Forever)

Join 2,847 marketers fixing their tracking daily

FAQ

Q: What if my company already has different conventions?

A: Implement new conventions going forward. Keep historical data for reference but start fresh with standardized naming. Document the transition date in your style guide.

Q: Can I use abbreviations like "fb" for Facebook?

A: No. Use full, clear names. "facebook" is only 2 extra characters and infinitely more clear. Future team members will thank you.

Q: Should I include dates in campaign names?

A: Yes, for time-bound campaigns. Use consistent format: q4-black-friday-2024 or webinar-nov-2024. For evergreen campaigns, skip dates: evergreen-demo-request.

Q: How specific should utm_content be?

A: Specific enough to differentiate variants meaningfully. "carousel-ad-v1" and "carousel-ad-v2" is good. "Carousel ad with blue background showing product feature #2 in slide 3" is too much.

Q: What if I run out of approved sources/mediums?

A: Update your style guide as needed. Add new entries following the same format principles. Document the addition date and notify the team.

Q: Should I create different conventions for different teams?

A: No. One company, one standard. Different conventions fragment data across teams. If teams need different campaign structures, vary the campaign name format, not the core rules.

Q: How do I handle international campaigns?

A: Add language or country code to campaign name: utm_campaign=q4-black-friday-2024-uk or utm_campaign=product-launch-crm-fr. Keep source/medium consistent globally.

Q: What about QR code tracking?

A: Use utm_source=qr-code and utm_medium=offline. Add context in campaign: utm_campaign=conference-booth-tech-summit-2024.


Ready to implement bulletproof UTM naming conventions? UTMGuard validates your UTM parameters against industry best practices and flags any deviations before they fragment your data. Start your free audit today.

UTM

Get Your Free Audit in 60 Seconds

Connect GA4, run the scan, and see exactly where tracking is leaking budget. No credit card required.

Trusted by growth teams and agencies to keep attribution clean.