UTM Source Should Be Platform Name Only (Not Campaign Details)
Stop putting campaign names, dates, and details in utm_source. Learn the proper UTM structure that prevents data fragmentation and enables accurate GA4 reporting.
Your marketing manager asks a simple question: "Which platform is driving more conversionsFacebook or LinkedIn?"
You open GA4. Instead of a clean comparison, you see this chaos:
Facebook traffic spread across:
- facebook-ads
- facebook_spring
- facebook_summer_promo
- fb
- facebook-retargeting
- facebook_jan_2024
LinkedIn traffic spread across:
- linkedin-sponsored
- linkedin_campaign
- linkedin_jan
- li
You can't answer a simple question because nobody understood the fundamental principle: utm_source should identify the platform onlynothing else.
Let me show you the exact structure that Fortune 500 companies use to keep their marketing data clean, consolidated, and actually useful for decision-making.
Table of contents
- The Golden Rule: utmsource = Platform Name Only
- What Belongs in utmsource (and What Doesn't)
- Correct utmsource Values
- L Wrong utmsource Values
- Why Platform-Only utmsource Matters
- Problem 1: Data Fragmentation
- Problem 2: Broken Cross-Platform Comparison
- Problem 3: Loss of Multi-Touch Attribution
- The Correct UTM Structure
- The 4 Core Parameters
- Example: Holiday Sale Across 3 Platforms
- Real-World Example: Product Launch
- Common utmsource Mistakes (and How to Fix Them)
- Mistake 1: Abbreviations and Variations
- Mistake 2: Campaign Type in Source
- Mistake 3: Ad Format in Source
- Mistake 4: Time Periods in Source
- Mistake 5: Product Names in Source
- When Is It OK to Modify utmsource?
- Acceptable Variation 1: Multiple Accounts on Same Platform
- Acceptable Variation 2: Organic vs Paid (with caution)
- Acceptable Variation 3: Newsletter Types
- Building a utmsource Standard for Your Team
- Step 1: List All Your Traffic Sources
- Step 2: Define Naming Rules
- Step 3: Create a UTM Builder
- Step 4: Audit Quarterly
- FAQ
- Should I use 'newsletter' or 'email' as utmsource?
- Can I use utmsource for A/B testing different audiences?
- What if I need to track different Facebook Pages?
- Should utmsource include country for international campaigns?
- How do I handle partner/affiliate links?
- Can I change my utmsource standards mid-year?
🚨 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
The Golden Rule: utm_source = Platform Name Only
Think of UTM parameters like mailing address fields:
- utm_source = City (consistent, stable, limited options)
- utm_medium = State (standardized abbreviations)
- utm_campaign = Street address (unique, changes frequently)
You wouldn't write "New York Spring Sale" as your city. Don't do it with utm_source either.
utm_source answers ONE question: "Which platform sent this traffic?"
Not:
- "Which campaign?"
- "Which time period?"
- "Which creative?"
- "Which audience?"
- "Which campaign type?"
Just: "Which platform?"
What Belongs in utm_source (and What Doesn't)
Correct utm_source Values
Platform names only:
utm_source=facebook
utm_source=linkedin
utm_source=google
utm_source=twitter
utm_source=instagram
utm_source=tiktok
utm_source=pinterest
utm_source=reddit
utm_source=newsletter
utm_source=partner_company_name
utm_source=affiliate_network_name
Simple, stable, reusable across all campaigns on that platform.
L Wrong utm_source Values
Campaign details in source:
utm_source=facebook_spring_sale � Campaign name
utm_source=linkedin_product_launch � Product name
utm_source=google_jan_2024 � Date/period
utm_source=twitter_video_campaign � Campaign type
utm_source=email_newsletter_weekly � Content type
utm_source=facebook_retargeting � Campaign tactic
utm_source=linkedin_sponsored_content � Ad format
All of these belong in utm_campaign or utm_contentnot utm_source.
Why Platform-Only utm_source Matters
Problem 1: Data Fragmentation
Wrong approach:
Campaign 1: utm_source=facebook_spring&utm_campaign=promo
Campaign 2: utm_source=facebook_summer&utm_campaign=promo
Campaign 3: utm_source=facebook_fall&utm_campaign=promo
GA4 shows:
- facebook_spring: 2,340 sessions
- facebook_summer: 3,120 sessions
- facebook_fall: 1,890 sessions
You can't answer: "How is Facebook performing overall?"
You have to manually add up three rows to get total Facebook traffic. Now multiply that across 12 campaigns and you're adding up 36+ rows.
Correct approach:
Campaign 1: utm_source=facebook&utm_campaign=spring_promo
Campaign 2: utm_source=facebook&utm_campaign=summer_promo
Campaign 3: utm_source=facebook&utm_campaign=fall_promo
GA4 shows:
- facebook: 7,350 sessions (automatic consolidation)
Click on "facebook" to see campaign breakdown.
Problem 2: Broken Cross-Platform Comparison
You're running the same promotion across three platforms. You want to compare performance.
Wrong:
Facebook: utm_source=facebook_holiday_sale&utm_campaign=promo
LinkedIn: utm_source=linkedin_holiday_sale&utm_campaign=promo
Twitter: utm_source=twitter_holiday_sale&utm_campaign=promo
To compare platforms, you have to manually extract platform names from source. GA4 can't do this automatically.
Correct:
Facebook: utm_source=facebook&utm_campaign=holiday_sale
LinkedIn: utm_source=linkedin&utm_campaign=holiday_sale
Twitter: utm_source=twitter&utm_campaign=holiday_sale
Now GA4 can:
- Show traffic by source (facebook vs linkedin vs twitter)
- Show traffic by campaign (holiday_sale across all platforms)
- Show source/campaign combinations in one drill-down
Problem 3: Loss of Multi-Touch Attribution
Imagine a customer journey:
- First click: Facebook ad (awareness campaign)
- Second click: LinkedIn ad (consideration campaign)
- Conversion: Google search (brand search)
If you use campaign details in utm_source:
Session 1: utm_source=facebook_awareness
Session 2: utm_source=linkedin_consideration
Session 3: utm_source=google_brand
GA4's attribution models can't consolidate these by platform. Each source is treated as a completely different channel.
With platform-only utm_source:
Session 1: utm_source=facebook&utm_campaign=awareness
Session 2: utm_source=linkedin&utm_campaign=consideration
Session 3: utm_source=google&utm_campaign=brand
Now attribution models properly credit:
- First touch: Facebook
- Last touch: Google
- Linear: Facebook + LinkedIn + Google
The Correct UTM Structure
The 4 Core Parameters
utm_source = Platform/site sending traffic
utm_medium = Marketing channel type
utm_campaign = Campaign/promo/product name
utm_content = Creative/audience variation (optional)
Example: Holiday Sale Across 3 Platforms
Facebook ads:
utm_source=facebook
utm_medium=cpc
utm_campaign=holiday_sale_2024
utm_content=video_30sec
LinkedIn sponsored content:
utm_source=linkedin
utm_medium=cpc
utm_campaign=holiday_sale_2024
utm_content=carousel_product
Email newsletter:
utm_source=newsletter
utm_medium=email
utm_campaign=holiday_sale_2024
utm_content=header_banner
Notice:
- utm_source = stable platform names (reused for every campaign)
- utm_campaign = specific to this promotion (changes with each campaign)
- utm_content = creative variations (optional, for A/B testing)
Real-World Example: Product Launch
You're launching a new product. You're running campaigns across 5 channels.
Correct structure:
| Platform | utm_source | utm_medium | utm_campaign | utm_content |
|---|---|---|---|---|
| Facebook Ads | cpc | product_launch_beta | video_feature_demo | |
| LinkedIn Ads | cpc | product_launch_beta | carousel_benefits | |
| Twitter Ads | cpc | product_launch_beta | image_cta | |
| Email List | newsletter | product_launch_beta | header_cta | |
| Partner Site | techcrunch | referral | product_launch_beta | sponsored_article |
GA4 reporting capabilities:
- Traffic by source: See all 5 platforms side-by-side
- Traffic by campaign: See total product_launch_beta performance
- Traffic by source + campaign: Drill down to platform-specific campaign performance
- Traffic by content: Compare creative variations within each platform
All because utm_source is clean and consistent.
😰 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
Common utm_source Mistakes (and How to Fix Them)
Mistake 1: Abbreviations and Variations
Wrong:
utm_source=fb � Abbreviation
utm_source=facebook � Full name
utm_source=Facebook � Capitalized
utm_source=FACEBOOK � All caps
All four create separate rows in GA4.
Fix: Choose ONE version and use it consistently:
utm_source=facebook � Use this for all Facebook campaigns
Guideline:
- Use full platform names (not abbreviations)
- Always lowercase
- No spaces or special characters
Mistake 2: Campaign Type in Source
Wrong:
utm_source=facebook_retargeting
utm_source=facebook_prospecting
utm_source=facebook_lookalike
Fix: Platform in source, campaign type in campaign:
utm_source=facebook&utm_campaign=retargeting_spring_sale
utm_source=facebook&utm_campaign=prospecting_new_product
utm_source=facebook&utm_campaign=lookalike_holiday
Mistake 3: Ad Format in Source
Wrong:
utm_source=linkedin_sponsored_content
utm_source=linkedin_text_ads
utm_source=linkedin_message_ads
Fix: Platform in source, format in content:
utm_source=linkedin&utm_content=sponsored_content
utm_source=linkedin&utm_content=text_ads
utm_source=linkedin&utm_content=message_ads
Mistake 4: Time Periods in Source
Wrong:
utm_source=newsletter_jan_2024
utm_source=newsletter_feb_2024
utm_source=newsletter_mar_2024
Fix: Platform in source, date in campaign:
utm_source=newsletter&utm_campaign=monthly_digest_jan_2024
utm_source=newsletter&utm_campaign=monthly_digest_feb_2024
utm_source=newsletter&utm_campaign=monthly_digest_mar_2024
Mistake 5: Product Names in Source
Wrong:
utm_source=email_product_a
utm_source=email_product_b
utm_source=email_product_c
Fix: Platform in source, product in campaign:
utm_source=newsletter&utm_campaign=product_a_launch
utm_source=newsletter&utm_campaign=product_b_update
utm_source=newsletter&utm_campaign=product_c_promo
When Is It OK to Modify utm_source?
Acceptable Variation 1: Multiple Accounts on Same Platform
If you manage multiple Facebook ad accounts:
utm_source=facebook_business
utm_source=facebook_personal
Or:
utm_source=facebook_account_1
utm_source=facebook_account_2
Rule: Variation identifies different traffic sources, not campaigns.
Acceptable Variation 2: Organic vs Paid (with caution)
Some teams differentiate:
utm_source=facebook_organic � Organic social posts
utm_source=facebook_paid � Paid ads
Better approach: Use utm_medium instead:
utm_source=facebook&utm_medium=social � Organic
utm_source=facebook&utm_medium=cpc � Paid
This lets GA4's channel grouping automatically classify traffic.
Acceptable Variation 3: Newsletter Types
If you have multiple newsletters:
utm_source=newsletter_weekly
utm_source=newsletter_monthly
utm_source=newsletter_alerts
Or better:
utm_source=newsletter&utm_campaign=weekly_digest_jan_15
utm_source=newsletter&utm_campaign=monthly_roundup_jan
utm_source=newsletter&utm_campaign=alert_price_drop
Guideline: If the source variation is permanent and represents truly different traffic sources, it's acceptable. If it's campaign-specific, use utm_campaign.
Building a utm_source Standard for Your Team
Step 1: List All Your Traffic Sources
Create a master list of platforms:
Paid advertising:
- microsoft
- tiktok
Email:
- newsletter (or your ESP name: mailchimp, sendgrid, etc.)
Partners:
- partner_company_name
- affiliate_network_name
Other:
- sms_platform
- podcast_sponsor_name
Step 2: Define Naming Rules
Document your standards:
UTM SOURCE STANDARDS
1. Platform name only (no campaign details)
2. Lowercase only
3. Full name (no abbreviations)
4. Underscores for multi-word names (not hyphens or spaces)
5. Reusable across all campaigns on that platform
Approved values:
- facebook
- instagram
- linkedin
- twitter
- google
- newsletter
- partner_acme_corp
Step 3: Create a UTM Builder
Use a Google Sheet or web form that:
- Dropdown for utm_source (limited to approved values)
- Free text for utm_campaign (campaign-specific names)
- Dropdown for utm_medium (approved values only)
- Optional free text for utm_content
This prevents team members from creating new utm_source values on the fly.
Step 4: Audit Quarterly
Every 3 months:
- GA4 � Traffic acquisition
- Export sources to CSV
- Check for fragmentation:
- Multiple variations of same platform (facebook, fb, Facebook)
- Campaign details in source (facebook_spring_sale)
- Typos (faceboook, lnkedin)
- Fix active campaigns
- Update team documentation
✅ 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
FAQ
Should I use 'newsletter' or 'email' as utm_source?
Either works, as long as you're consistent.
- Use
newsletterif you want source-level specificity (vs other email types like transactional) - Use
emailfor simplicity (differentiate types in utm_campaign)
Example approaches:
Approach 1 (source-level):
utm_source=newsletter&utm_medium=email
utm_source=transactional_email&utm_medium=email
Approach 2 (campaign-level):
utm_source=email&utm_campaign=newsletter_weekly
utm_source=email&utm_campaign=transactional_receipt
Both work. Pick one and stick to it.
Can I use utm_source for A/B testing different audiences?
No. Use utm_content or utm_campaign for testing:
Wrong:
utm_source=facebook_audience_a
utm_source=facebook_audience_b
Correct:
utm_source=facebook&utm_content=audience_a
utm_source=facebook&utm_content=audience_b
Or:
utm_source=facebook&utm_campaign=spring_sale_audience_a
utm_source=facebook&utm_campaign=spring_sale_audience_b
What if I need to track different Facebook Pages?
If you manage multiple brand Pages:
Option 1 (source-level):
utm_source=facebook_brand_a
utm_source=facebook_brand_b
Option 2 (content-level):
utm_source=facebook&utm_content=page_brand_a
utm_source=facebook&utm_content=page_brand_b
Option 1 is acceptable because each Page is truly a different source.
Should utm_source include country for international campaigns?
Generally no. Use utm_campaign or utm_content:
Wrong:
utm_source=facebook_us
utm_source=facebook_uk
utm_source=facebook_au
Correct:
utm_source=facebook&utm_campaign=spring_sale_us
utm_source=facebook&utm_campaign=spring_sale_uk
utm_source=facebook&utm_campaign=spring_sale_au
Exception: If you have completely separate ad accounts per country that you manage as independent sources, source-level differentiation is acceptable.
How do I handle partner/affiliate links?
Use the partner/affiliate name as utm_source:
utm_source=techcrunch&utm_medium=referral
utm_source=producthunt&utm_medium=referral
utm_source=affiliate_network_name&utm_medium=affiliate
Don't put campaign details in source:
L utm_source=techcrunch_sponsored_post
utm_source=techcrunch&utm_campaign=sponsored_post_jan_2024
Can I change my utm_source standards mid-year?
Yes, but it creates a data discontinuity.
Example: Switching from fb to facebook means:
- Historical data:
fb - New data:
facebook - They'll appear as separate sources in GA4
Best practice:
- Make changes at natural boundaries (start of quarter/year)
- Add a GA4 annotation marking the change
- Be consistent going forward
- Accept that historical data won't align perfectly