UTM Campaign Naming Conventions: Complete Standards Guide
"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:
| Marketer | Campaign Name | Format |
|---|---|---|
| Sarah | Black Friday 2024 | Title Case, spaces |
| Mike | black_friday_2024 | Lowercase, underscores |
| Lisa | black-friday-24 | Lowercase, hyphens, abbreviated year |
| Tom | BlackFriday2024 | PascalCase, no separators |
| Amy | bf2024 | Abbreviated |
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:
- Type - Campaign category (optional but recommended)
- Initiative - What the campaign is about (required)
- 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:
| Type | Usage |
|---|---|
ppc | Paid search campaigns |
display | Display advertising |
social | Paid social media |
email | Email campaigns |
retarget | Retargeting campaigns |
brand | Brand awareness |
promo | Promotional campaigns |
event | Event-related |
partner | Partnership campaigns |
affiliate | Affiliate 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
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
Paid Search (Google Ads, Bing)
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)
Paid Social (Facebook, LinkedIn, TikTok)
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
Google Ads
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
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 launchStep 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:
- Why naming matters (5 min)
- The convention rules (5 min)
- 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