UTM Campaign Naming Conventions: Complete Standards Guide

UTMGuard Team
9 min readbest-practices

"summer_sale" vs "Summer Sale" vs "summer-sale" vs "SUMMER_SALE" vs "summersale"

These all look like the same campaign, right?

To GA4, they're five completely different campaigns. Your $50,000 summer sale budget is now fragmented across five separate entries, making performance analysis impossible.

The solution: Campaign naming conventions that everyone on your team follows religiously.

🚨 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

Why Campaign Naming Conventions Matter

The Problem: Inconsistent Naming

Your team creates campaigns with random names:

MarketerCampaign NameFormat
SarahBlack Friday 2024Title Case, spaces
Mikeblack_friday_2024Lowercase, underscores
Lisablack-friday-24Lowercase, hyphens, abbreviated year
TomBlackFriday2024PascalCase, no separators
Amybf2024Abbreviated

GA4 sees these as 5 different campaigns.

Budget: $50K total GA4 shows:

  • Black Friday 2024: $12K
  • black_friday_2024: $15K
  • black-friday-24: $10K
  • BlackFriday2024: $8K
  • bf2024: $5K

You can't aggregate performance. You can't compare year-over-year. Your reports are chaos.

The Solution: One Standard, Everyone Follows

Same campaign, one name format:

black-friday-2024

Everyone uses it. No exceptions.

GA4 shows:

  • black-friday-2024: $50K

Clear, aggregated, actionable data.

Campaign Naming Structure

The Formula

`{"{"}{"{"}type{"}"}{"}"}}`_`{"{"}{"{"}initiative{"}"}{"}"}}`_`{"{"}{"{"}timing{"}"}{"}"}}`

Components:

  1. Type - Campaign category (optional but recommended)
  2. Initiative - What the campaign is about (required)
  3. Timing - When it runs (required)

Examples:

ppc_product-launch_2024-q4
email_weekly-newsletter_2024-w45
social_blog-promotion_nov-2024
retarget_cart-abandoners_automated
brand_awareness_2024-q4

Component 1: Type (Campaign Category)

Purpose: Quickly identify campaign type without looking at medium

Common types:

TypeUsage
ppcPaid search campaigns
displayDisplay advertising
socialPaid social media
emailEmail campaigns
retargetRetargeting campaigns
brandBrand awareness
promoPromotional campaigns
eventEvent-related
partnerPartnership campaigns
affiliateAffiliate marketing

Examples:

ppc_summer-sale_2024-q3
email_product-launch_nov-2024
retarget_cart-abandoners_automated

Component 2: Initiative (Campaign Focus)

Purpose: What the campaign is about

Guidelines:

  • Be specific but concise
  • Use hyphens for spaces
  • Avoid abbreviations unless universally understood
  • Include product/offer if relevant

Good examples:

product-launch
summer-sale
webinar-registration
ebook-download
free-trial
cart-abandonment
brand-awareness

Bad examples:

campaign1 (too generic)
plnov24 (too abbreviated)
buy-our-new-premium-enterprise-product-now (too long)

😰 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

Component 3: Timing (When)

Purpose: Know when campaign ran without checking dates

Formats:

For campaigns with specific timeframes:

2024-q4 (quarterly)
2024-11 (monthly)
2024-w45 (weekly)
nov-2024 (month name)
black-friday-2024 (event date)
2024-11-15 (specific date)

For ongoing/automated campaigns:

automated
evergreen
ongoing
2024 (year-long)

Examples:

ppc_summer-sale_2024-q3
email_weekly-digest_2024-w45
retarget_cart-abandon_automated
brand_awareness_2024

Formatting Rules

Rule 1: Always Lowercase

Correct:

black-friday-2024
product-launch-q4
summer-sale

Wrong:

Black-Friday-2024
Product-Launch-Q4
Summer-Sale
SUMMER-SALE

Why: Case-sensitivity fragmentation. "summer" ≠ "Summer" in GA4.

Rule 2: Use Hyphens for Spaces

Correct:

product-launch
cart-abandonment
free-trial-signup

Wrong:

product_launch (underscores)
product launch (spaces - breaks URLs)
productlaunch (no separator - hard to read)
product.launch (periods)

Why: Hyphens are URL-safe, readable, and industry standard.

Rule 3: Use Underscores to Separate Components

Correct:

ppc_product-launch_2024-q4
email_newsletter_2024-w45

Why: Underscores separate major components. Hyphens separate words within components.

Alternative (if you prefer): Just use hyphens for everything:

ppc-product-launch-2024-q4

Pick one style and be consistent.

Rule 4: No Special Characters

Allowed:

  • Letters: a-z
  • Numbers: 0-9
  • Hyphens: -
  • Underscores: _

Not allowed:

❌ Spaces: "black friday"
❌ Ampersands: "black&friday"
❌ Slashes: "black/friday"
❌ Parentheses: "black-friday(2024)"
❌ Exclamation: "black-friday!"
❌ Hashtags: "#blackfriday"

Rule 5: Keep It Concise (But Clear)

Target length: 20-40 characters

Too short:

bf24 (unclear)
c1 (meaningless)

Too long:

black-friday-cyber-monday-holiday-shopping-event-2024-november-december-q4

Just right:

black-friday-2024 (18 chars)
holiday-shopping-q4-2024 (24 chars)

Channel-Specific Conventions

Format:

ppc_`{campaign-focus}`_`{"{"}{"{"}timing{"}"}{"}"}}`

Examples:

ppc_brand-shoes_2024-q4
ppc_competitor-nike_2024-11
ppc_product-running-shoes_nov-2024

ValueTrack alternative (uses Google campaign name):

{{_campaign}} (set as custom parameter)

Format:

social_`{"{"}{"{"}platform{"}"}{"}"}}`_`{"{"}{"{"}objective{"}"}{"}"}}`_`{"{"}{"{"}timing{"}"}{"}"}}`

Examples:

social_facebook_lead-gen_2024-q4
social_linkedin_awareness_nov-2024
social_tiktok_conversions_2024-11

Or use platform's dynamic naming:

{"{"}{"{"}campaign.name{"}"}{"}"}} (Facebook/LinkedIn)
__CAMPAIGN_NAME__ (TikTok)
{"{"}{"{"}CampaignName{"}"}{"}"}} (Microsoft)

Email Campaigns

Format:

email_`{"{"}{"{"}type{"}"}{"}"}}`_`{"{"}{"{"}timing{"}"}{"}"}}`

Examples:

email_weekly-newsletter_2024-w45
email_promotional_black-friday-2024
email_abandoned-cart_automated
email_onboarding_day-1
email_re-engagement_2024-q4

Social Organic Posts

Format:

organic-social_`{"{"}{"{"}topic{"}"}{"}"}}`_`{"{"}{"{"}date{"}"}{"}"}}`

Examples:

organic-social_blog-post-promo_2024-11-09
organic-social_product-launch_nov-2024
organic-social_event-registration_2024-11-15

Partnerships & Affiliates

Format:

partner_`{partner-name}`_`{"{"}{"{"}initiative{"}"}{"}"}}`_`{"{"}{"{"}timing{"}"}{"}"}}`

Examples:

partner_acme-corp_co-marketing_2024-q4
affiliate_influencer-jane_product-review_nov-2024
referral_customer-program_2024

Platform-Specific Implementation

Method 1: Auto-tagging (Recommended)

Enable auto-tagging
Campaign names come from Google Ads directly

Method 2: Custom parameter

Tracking template: `{"{"}{"{"}lpurl{"}"}{"}"}}`?utm_campaign={{_campaign}}
Custom parameter: _campaign = ppc_product-launch_2024-q4

Facebook/Instagram Ads

Use dynamic campaign name:

utm_campaign={"{"}{"{"}campaign.name{"}"}{"}"}}

Name your campaign in Ads Manager:

social_instagram_product-launch_2024-q4

Email Platforms

Mailchimp:

Campaign name: email_newsletter_2024-w45
This becomes utm_campaign automatically

HubSpot:

Email name: email_product-launch_nov-2024
Add manually: utm_campaign=email_product-launch_nov-2024

Campaign Naming Template Library

Copy-Paste Templates

Paid Search:

ppc_[product/service]_[timeframe]
Example: ppc_running-shoes_2024-q4

Paid Social:

social_[platform]_[objective]_[timeframe]
Example: social_facebook_lead-gen_nov-2024

Email:

email_[type]_[timeframe]
Example: email_weekly-newsletter_2024-w45

Retargeting:

retarget_[audience]_[timeframe]
Example: retarget_cart-abandoners_automated

Promotional:

promo_[offer]_[timeframe]
Example: promo_black-friday_2024

Brand Awareness:

brand_[target-audience]_[timeframe]
Example: brand_awareness_2024-q4

✅ 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

Creating Your Team's Naming Standard

Step 1: Document Your Convention

Create a shared document: "UTM Campaign Naming Standards"

# Campaign Naming Convention
 
## Format
`{"{"}{"{"}type{"}"}{"}"}}`_`{"{"}{"{"}initiative{"}"}{"}"}}`_`{"{"}{"{"}timing{"}"}{"}"}}`
 
## Rules
1. Always lowercase
2. Hyphens for spaces
3. Underscores between components
4. No special characters
5. Include timing/date
 
## Examples
- ppc_product-launch_2024-q4
- email_newsletter_2024-w45
- social_awareness_nov-2024
 
## Approved Types
- ppc, display, social, email, retarget, brand, promo, event
 
## Review Required
All campaign names must be approved before launch

Step 2: Create a UTM Builder Tool

Enforce standards with a tool:

<select id="type">
  <option value="ppc">PPC</option>
  <option value="social">Social</option>
  <option value="email">Email</option>
</select>
 
<input id="initiative" placeholder="product-launch">
<input id="timing" placeholder="2024-q4">
 
<button onclick="generateCampaign()">Generate</button>
 
<script>
function generateCampaign() {
  const type = document.getElementById('type').value;
  const initiative = document.getElementById('initiative').value
    .toLowerCase()
    .replace(/\s+/g, '-')
    .replace(/[^a-z0-9-]/g, '');
  const timing = document.getElementById('timing').value;
 
  const campaign = `${"{"}{"{"}type{"}"}{"}"}}_${"{"}{"{"}initiative{"}"}{"}"}}_${"{"}{"{"}timing{"}"}{"}"}}`;
  alert(`Campaign name: ${"{"}{"{"}campaign{"}"}{"}"}}`);
}
</script>

Step 3: Training & Onboarding

15-minute team training:

  1. Why naming matters (5 min)
  2. The convention rules (5 min)
  3. Tool walkthrough (5 min)

Quiz before launch access:

Q: Format a campaign name for a Black Friday email
A: email_black-friday_2024

Step 4: Review Process

Before any campaign launches:

  • Campaign name follows convention?
  • Timing component included?
  • All lowercase?
  • Documented in tracking sheet?

FAQ

Can I use the same campaign name across multiple platforms?

Yes! If it's the same marketing initiative:

Google Ads: utm_campaign=product-launch-2024-q4
Facebook Ads: utm_campaign=product-launch-2024-q4
Email: utm_campaign=product-launch-2024-q4

Benefit: Aggregate cross-channel performance for the same campaign.

Should I include the year in campaign names?

Yes, always.

Why:

  • Year-over-year comparisons
  • Prevents reusing old campaign names
  • Clear historical context

Format: 2024-q4 or 2024-11 or nov-2024

What if a campaign runs across multiple months?

Use quarter or year:

summer-sale-2024-q3 (runs June-August)
holiday-campaign-2024-q4 (runs Oct-Dec)
annual-sale-2024 (runs all year)

Can I change a campaign name mid-flight?

Not recommended. GA4 will treat it as two separate campaigns.

Better: Use utm_content for variants:

utm_campaign=product-launch-2024
utm_content=phase-1 (first month)
utm_content=phase-2 (second month)

What about A/B test variants?

Same campaign name, different content:

utm_campaign=black-friday-2024
utm_content=variant-a
utm_campaign=black-friday-2024
utm_content=variant-b

Related: ROI Tracking for Paid Campaigns Guide