How to Fix Generic UTM Source Names (Complete Guide)
Marcus Rodriguez had been running Facebook and LinkedIn campaigns for six months. Both used utm_source=social.
When his manager asked "Which platform should we invest more in?", Marcus opened GA4 and saw a single line:
social: 67,234 sessions, $245,000 revenue
He had no idea which $85,000 went to Facebook and which went to LinkedIn. No idea which platform drove better ROI. No idea which to scale.
"I spent six months building a data black hole," he later admitted.
This guide will show you exactly how to fix generic UTM sources and prevent this attribution nightmare.
🚨 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
What Are Generic Source Names?
Generic source names are vague utm_source values that don't identify specific platforms:
Examples of Generic Sources
| Generic (Wrong) | Why It's Wrong | Impact |
|---|---|---|
utm_source=social | Doesn't say which platform | Can't compare Facebook vs LinkedIn |
utm_source=newsletter | Doesn't say which tool | Can't evaluate email platform ROI |
utm_source=partner | Doesn't identify partner | Can't measure individual partnerships |
utm_source=email | Too broad | Lumps all email together |
utm_source=ad | Extremely vague | Zero platform visibility |
The pattern: If multiple distinct platforms share the same source value, it's too generic.
How to Identify Generic Sources
Step 1: Audit Your GA4 Sources
Open GA4:
- Navigate to Reports → Acquisition → Traffic Acquisition
- Primary dimension: Session source
- Date range: Last 90 days
- Export to CSV
Look for these red flags:
Source Value Sessions Red Flag?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
social 45,892 ❌ Too generic
newsletter 12,443 ❌ Too generic
facebook 23,501 ✅ Specific
linkedin 8,234 ✅ Specific
mailchimp 6,789 ✅ Specific
partner 15,667 ❌ Too generic
email 9,234 ❌ Too generic
google 34,556 ⚠️ Depends (if lumping Search+Display)
Step 2: Calculate Impact
For each generic source, ask:
-
How many platforms does this represent?
- "social" → 5 platforms = CRITICAL issue
- "newsletter" → 3 email tools = HIGH priority
-
How much spend is unattributable?
- Total ad spend on platforms using this source
- Higher spend = higher priority to fix
-
How many sessions?
- More traffic = more attribution data lost
Prioritization matrix:
| Source | Platforms | Monthly Spend | Sessions | Priority |
|---|---|---|---|---|
| social | 5 | $45,000 | 67,234 | CRITICAL |
| newsletter | 3 | $8,000 | 12,443 | HIGH |
| partner | 12 | $2,500 | 4,332 | MEDIUM |
Fix in priority order.
😰 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
How to Fix Generic Sources: Step-by-Step
Phase 1: Create Naming Convention
Document approved utm_source values for every platform you use.
Example naming standard:
# UTM Source Naming Convention
## Social Media Platforms
- Facebook (organic): facebook
- Facebook Ads: facebook-ads
- Instagram (organic): instagram
- Instagram Ads: instagram-ads
- LinkedIn (organic): linkedin
- LinkedIn Ads: linkedin-ads
- Twitter: twitter
- TikTok: tiktok
## Email Marketing Platforms
- Mailchimp: mailchimp
- SendGrid: sendgrid
- Klaviyo: klaviyo
- HubSpot: hubspot
- ActiveCampaign: activecampaign
- Customer.io: customerio
## Paid Advertising
- Google Search Ads: google-search
- Google Display Ads: google-display
- Google Shopping: google-shopping
- Google YouTube Ads: google-youtube
- Microsoft Ads: microsoft-ads
- Meta Ads (FB+IG): meta-ads
## Affiliate Partners
- Partner ACME Corp: partner-acme
- Partner TechReview: partner-techreview
- Partner BloggerJohn: partner-bloggerjohn
## NEVER USE:
❌ social
❌ newsletter
❌ email
❌ partner
❌ adStore this document in your team wiki, shared drive, or project management tool.
Phase 2: Update Active Campaigns
For EACH active campaign using generic sources:
Email Campaign Example
Current setup (generic):
Platform: Mailchimp
Link: https://yoursite.com/offer?utm_source=newsletter&utm_medium=email&utm_campaign=june_sale
Fixed setup:
Platform: Mailchimp
Link: https://yoursite.com/offer?utm_source=mailchimp&utm_medium=email&utm_campaign=june_sale
How to update:
Mailchimp:
- Go to Campaigns → Select campaign
- Edit email content
- Click each tracked link
- Update URL with new utm_source
- Save and republish
SendGrid:
- Marketing → Single Sends
- Edit campaign
- Update all URLs in content
- Save draft
HubSpot:
- Marketing → Email
- Edit email
- Update links (or use HubSpot's built-in tracking with proper naming)
Social Media Example
Current setup (generic):
Platform: Facebook
Link: https://yoursite.com/promo?utm_source=social&utm_medium=cpc&utm_campaign=spring_launch
Fixed setup:
Platform: Facebook
Link: https://yoursite.com/promo?utm_source=facebook&utm_medium=cpc&utm_campaign=spring_launch
How to update:
Facebook Ads:
- Go to Ads Manager
- Select campaign → Ad set → Ad
- Click ad creative
- Update "Website URL" parameters
- Publish changes
LinkedIn Campaign Manager:
- Select campaign
- Edit ads
- Update destination URL
- Save
Partner/Affiliate Example
Current setup (generic):
Partner: TechCrunch
Link: https://yoursite.com?utm_source=partner&utm_medium=referral&utm_campaign=launch
Fixed setup:
Partner: TechCrunch
Link: https://yoursite.com?utm_source=techcrunch&utm_medium=referral&utm_campaign=launch
How to update:
- Contact partner/affiliate
- Provide new tracking URL
- Ask them to replace existing links
- Verify in GA4 Realtime after update
Phase 3: Update Campaign Templates
Prevent future generic sources by fixing templates.
Email Platform Templates
Mailchimp:
Template name: "Mailchimp Campaign URL"
URL structure:
https://yoursite.com/[page]?utm_source=mailchimp&utm_medium=email&utm_campaign=|CAMPAIGN:|&utm_content=|VARIANT:|
Usage: Replace [page] with actual page, Mailchimp fills campaign/variant automatically
SendGrid:
Template: "SendGrid Email Link"
https://yoursite.com/[page]?utm_source=sendgrid&utm_medium=email&utm_campaign={"{"}{"{"}campaign_name{"}"}{"}"}}&utm_content={"{"}{"{"}subject_line{"}"}{"}"}}
Social Media Scheduler Templates
Hootsuite / Buffer:
Facebook template:
utm_source=facebook&utm_medium=social&utm_campaign=[campaign_name]
LinkedIn template:
utm_source=linkedin&utm_medium=social&utm_campaign=[campaign_name]
Twitter template:
utm_source=twitter&utm_medium=social&utm_campaign=[campaign_name]
Google Ads URL Templates
Search campaigns:
Final URL suffix:
utm_source=google-search&utm_medium=cpc&utm_campaign=`{"{"}{"{"}campaignid{"}"}{"}"}}`&utm_content=`{"{"}{"{"}adgroupid{"}"}{"}"}}`&utm_term=`{"{"}{"{"}keyword{"}"}{"}"}}`
Display campaigns:
Final URL suffix:
utm_source=google-display&utm_medium=cpc&utm_campaign=`{"{"}{"{"}campaignid{"}"}{"}"}}`&utm_content=`{"{"}{"{"}creative{"}"}{"}"}}`
Phase 4: Validate Changes
For each updated campaign:
- Click test link
- Check GA4 Realtime:
- Go to Reports → Realtime
- Look at "Traffic sources" card
- Verify new source appears (not old generic one)
- Document change:
- Campaign name
- Old source → New source
- Date changed
- Who changed it
Validation checklist:
✅ Clicked test link from actual platform
✅ New source appears in GA4 Realtime (within 30 seconds)
✅ Old generic source no longer receiving new traffic
✅ Change documented in tracking sheet
✅ Team notified of new source namePhase 5: Monitor Transition
Track migration progress:
Week 1 after changes:
- Generic sources should show declining sessions
- New specific sources should appear and grow
GA4 comparison report:
Source This Week Last Week Change
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
social 1,234 8,456 -85% ✅
facebook 6,234 0 NEW ✅
linkedin 2,988 0 NEW ✅
newsletter 456 4,667 -90% ✅
mailchimp 3,445 0 NEW ✅
sendgrid 1,109 0 NEW ✅
If generic sources still have significant traffic:
- You missed updating some campaigns
- Audit platforms again
- Find and fix remaining instances
Prevention: Never Use Generic Sources Again
1. Enforce Naming Convention
Add validation to UTM builders:
// Example: Validate utm_source before allowing campaign launch
const FORBIDDEN_SOURCES = [
'social', 'newsletter', 'email', 'partner', 'ad', 'ads',
'campaign', 'promo', 'marketing'
];
function validateUTMSource(source) {
if (FORBIDDEN_SOURCES.includes(source.toLowerCase())) {
throw new Error(
`Generic source "${"{"}{"{"}source{"}"}{"}"}}" not allowed. ` +
`Use specific platform name (e.g., "facebook", "mailchimp").`
);
}
return true;
}
// Block form submission if validation fails
document.getElementById('utm-form').addEventListener('submit', (e) => {
const source = document.getElementById('utm_source').value;
try {
validateUTMSource(source);
} catch (error) {
e.preventDefault();
alert(error.message);
}
});2. Create Platform-Specific UTM Builders
Instead of one generic builder, create separate tools:
- Facebook UTM Builder: Pre-fills
utm_source=facebook - Email UTM Builder: Dropdown for email platforms (mailchimp, sendgrid, etc.)
- Partner UTM Builder: Dropdown of approved partners
Benefits:
- Impossible to use generic sources
- Faster campaign setup
- Consistent naming
3. Campaign Approval Process
Before ANY campaign launches:
| Review Step | Checked By | Criteria |
|---|---|---|
| UTM source is specific | Marketing Ops | Source identifies exact platform |
| Source matches convention | Marketing Ops | Source in approved list |
| All links use same source | Campaign Manager | Consistency check |
| GA4 Realtime validation | Campaign Manager | Source appears correctly |
Rejection reasons:
- ❌ Generic source used
- ❌ Source not in approved list
- ❌ Inconsistent sources in same campaign
4. Quarterly Audit
Every 90 days:
- Export all utm_source values from GA4
- Flag any new generic patterns
- Trace back to campaign owner
- Fix and retrain team member
- Update documentation if needed
5. Team Training
Onboarding checklist for new marketers:
- Read UTM naming convention documentation
- Understand why generic sources fail
- Know where to find approved source names
- Complete practice exercise: build UTMs for 5 platforms
- Get UTM review approval before first campaign launch
✅ 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
Do I need to delete old generic source data from GA4?
No. Historical data remains unchanged. Your new specific sources will provide accurate attribution going forward.
Tip: Note the date you fixed sources. Filter GA4 reports by date ranges before/after the change.
What if I have hundreds of active campaigns to update?
Prioritize by spend and traffic:
- Update highest-spend campaigns first (biggest attribution impact)
- Update templates to fix all future campaigns
- Update remaining active campaigns in batches
- Let old, low-traffic campaigns naturally expire
Time investment: Usually 2-4 hours for most teams to update active campaigns.
Can I use abbreviated platform names?
Consistency matters more than length:
✅ GOOD: Always use "fb" for Facebook ❌ BAD: Sometimes "fb", sometimes "facebook", sometimes "facebook-ads"
Recommendation: Use full, clear names. Storage is cheap. Clarity is expensive.
What if my agency uses generic sources?
Require them to change or switch agencies.
Email template:
Subject: Required Change to UTM Tracking
Our analytics team has identified that generic utm_source values
(like "social", "newsletter") destroy our attribution reporting.
Effective immediately, all campaigns must use specific platform names:
- Use "facebook" not "social"
- Use "mailchimp" not "newsletter"
- See attached naming convention document
Please update all active campaigns by [date]. Let me know if you
have questions.
Most agencies will comply. It's standard best practice.
How do I analyze all social platforms together if they have different sources?
Use GA4 custom channel groupings or filters:
Option 1: Channel grouping
- GA4 → Admin → Data Display → Channel Groups
- Create "All Social" group
- Include sources: facebook, instagram, linkedin, twitter, tiktok
Option 2: Filter in reports
- Add filter: Source matches regex
facebook|instagram|linkedin|twitter|tiktok - Save as comparison segment
You get granular data AND grouped analysis. Best of both worlds.
What if I want to track organic vs paid from the same platform?
Use different sources:
- Organic Facebook:
utm_source=facebook - Paid Facebook:
utm_source=facebook-ads
OR use the same source with different mediums:
- Organic:
utm_source=facebook&utm_medium=social - Paid:
utm_source=facebook&utm_medium=cpc
Both approaches work. Pick one and be consistent.
Related: Generic Source Attribution Rule