How to Fix Conflicting UTM Channel Medium Combinations

UTMGuard Team
8 min readattribution

Laura Bennett discovered that 42% of her paid traffic was showing up in GA4's "Unassigned" channel.

$187,000 in quarterly ad spend with no channel attribution.

After two days of investigation, she found the problem: Her agency had been using conflicting source-medium combinations across all campaigns.

LinkedIn Ads: utm_source=linkedin&utm_medium=social (should be cpc)
Facebook Ads: utm_source=facebook&utm_medium=organic (should be cpc)
Email campaigns: utm_source=mailchimp&utm_medium=referral (should be email)

This guide will show you exactly how to find and fix these conflicts—permanently.

🚨 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

How to Identify Conflicting Pairs

Step 1: Check GA4 Unassigned Channel

Unassigned channel = biggest red flag for conflicts

In GA4:

  1. Reports → Acquisition → Traffic Acquisition
  2. Look for "Unassigned" in Default channel grouping
  3. If Unassigned has significant traffic → you have conflicts

Export the data:

  1. Click "Unassigned" row
  2. Add secondary dimension: Session medium
  3. Add another dimension: Session source
  4. Export to CSV

You'll see problematic pairs:

Channel,Source,Medium,Sessions
Unassigned,linkedin,social,12,445
Unassigned,facebook,organic,8,332
Unassigned,google,email,3,221

Step 2: Audit All Source-Medium Combinations

Complete source-medium inventory:

In GA4:

  1. Explorations → Free Form
  2. Dimensions: Session source, Session medium
  3. Metrics: Sessions, Users, Conversions
  4. Date range: Last 90 days
  5. Export data

Review for logical conflicts:

Source,Medium,Sessions,Conflict?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
facebook,organic,23,445,❌ CONFLICT (ads aren't "organic")
linkedin,social,12,334,⚠️  AMBIGUOUS (organic or paid?)
google,social,8,221,❌ CONFLICT (search ≠ social)
mailchimp,cpc,3,556,❌ CONFLICT (email ≠ paid ads)
twitter,email,1,223,❌ CONFLICT (social ≠ email)
facebook,cpc,34,221,✅ VALID (paid ads)
mailchimp,email,18,445,✅ VALID (email platform)
linkedin,cpc,9,334,✅ VALID (paid ads)

Step 3: Calculate Impact

For each conflict, measure:

ConflictSessionsConversionsRevenueAd SpendPriority
linkedin + social (paid)12,44589$234,000$45,000CRITICAL
facebook + organic (paid)8,33267$178,000$38,000HIGH
google + social3,22112$34,000$12,000MEDIUM

Fix in priority order (highest revenue/spend impact first).

😰 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

How to Fix Common Conflicts

Conflict Type 1: Paid Ads with Wrong Medium

Problem: Paid advertising campaigns using organic or social mediums

LinkedIn Ads

Conflict:

utm_source=linkedin&utm_medium=social

Why it's wrong:

  • Paid ads ≠ organic social posts
  • Creates ambiguity about campaign type
  • May assign to wrong channel

Fix:

utm_source=linkedin&utm_medium=cpc
OR
utm_source=linkedin-ads&utm_medium=cpc

How to update:

  1. LinkedIn Campaign Manager:

    • Navigate to campaign
    • Edit campaign settings
    • Update URL parameters section
    • Change medium from "social" to "cpc"
  2. Bulk update (if many campaigns):

    Campaign Manager → Campaigns → Select all → Edit → URL parameters
    Find: utm_medium=social
    Replace: utm_medium=cpc
    

Facebook Ads

Conflict:

utm_source=facebook&utm_medium=organic

Why it's wrong:

  • Facebook ads aren't organic
  • "Organic" is for unpaid search results
  • Completely illogical combination

Fix:

utm_source=facebook&utm_medium=cpc
OR
utm_source=facebook-ads&utm_medium=cpc

How to update:

  1. Facebook Ads Manager:

    • Select campaign → Ad Set → Ad
    • Edit ad creative
    • Update URL parameters in "Website URL"
    • Change: utm_medium=organicutm_medium=cpc
  2. Use Facebook's auto-tag feature:

    • Settings → URL parameters
    • Template: utm_source={"{"}{"{"}site_source_name{"}"}{"}"}}&utm_medium=cpc&utm_campaign={"{"}{"{"}campaign.name{"}"}{"}"}}

Twitter Ads

Conflict:

utm_source=twitter&utm_medium=organic

Fix:

utm_source=twitter&utm_medium=cpc
OR
utm_source=twitter-ads&utm_medium=cpc

How to update:

  1. Twitter Ads Manager
  2. Select campaign → Edit
  3. Update URL parameters
  4. Change medium to "cpc"

Conflict Type 2: Search Engines with Non-Search Mediums

Google + Social

Conflict:

utm_source=google&utm_medium=social

Common cause: YouTube campaigns thinking it's "social"

Fix:

utm_source=google-youtube&utm_medium=cpc
OR
utm_source=youtube&utm_medium=video

How to update:

  1. Google Ads (YouTube campaigns):

    • Campaign → Settings → Campaign URL options
    • Update Final URL suffix
    • Change: utm_source=google&utm_medium=social
    • To: utm_source=google-youtube&utm_medium=cpc
  2. Organic YouTube links:

    • Update channel/video descriptions
    • Change: utm_source=google&utm_medium=social
    • To: utm_source=youtube&utm_medium=video

Bing + Social

Conflict:

utm_source=bing&utm_medium=social

Fix:

utm_source=bing&utm_medium=cpc (for paid)
utm_source=bing&utm_medium=organic (for organic)

Conflict Type 3: Email Platforms with Wrong Medium

Mailchimp + CPC

Conflict:

utm_source=mailchimp&utm_medium=cpc

Why it's wrong: Email platforms don't run paid ad campaigns

Fix:

utm_source=mailchimp&utm_medium=email

How to update:

  1. Mailchimp:

    • Campaign → Settings → Tracking
    • Google Analytics tracking
    • Verify/update UTM parameters
    • Medium must be "email"
  2. Update all email templates:

    • Search all templates for utm_medium=cpc
    • Replace with utm_medium=email

SendGrid + Social

Conflict:

utm_source=sendgrid&utm_medium=social

Fix:

utm_source=sendgrid&utm_medium=email

How to update:

  1. SendGrid → Marketing → Single Sends
  2. Edit campaign
  3. Update all links
  4. Change medium to "email"

Conflict Type 4: Platform Mismatches

Facebook + Email

Conflict:

utm_source=facebook&utm_medium=email

Possible cause:

  • Facebook notification emails
  • Misunderstood campaign type

Fix (depends on actual source):

If Facebook ads:

utm_source=facebook&utm_medium=cpc

If Facebook email notification:

utm_source=facebook-notification&utm_medium=email

If organic Facebook post:

utm_source=facebook&utm_medium=social

Step-by-Step Fix Process

Phase 1: Prioritize Conflicts

Create fix priority list:

# UTM Conflict Fix Priority
 
## Critical (Fix This Week)
1. LinkedIn Ads: social → cpc (12,445 sessions, $45K spend)
2. Facebook Ads: organic → cpc (8,332 sessions, $38K spend)
3. Google YouTube: social → cpc (3,221 sessions, $12K spend)
 
## High (Fix Next Week)
4. Mailchimp: referral → email (4,556 sessions)
5. Twitter Ads: social → cpc (2,334 sessions, $8K spend)
 
## Medium (Fix Within Month)
6. Various partner links: wrong mediums (1,223 sessions)

Phase 2: Update Active Campaigns

For each platform:

1. LinkedIn Ads

Old: utm_source=linkedin&utm_medium=social
New: utm_source=linkedin&utm_medium=cpc

Where to update:
- Campaign Manager → All campaigns → URL parameters
- Update templates for future campaigns

2. Facebook Ads

Old: utm_source=facebook&utm_medium=organic
New: utm_source=facebook&utm_medium=cpc

Where to update:
- Ads Manager → All active ads → URL parameters
- Ad account settings → Default parameters

3. Email Campaigns

Old: utm_source=mailchimp&utm_medium=referral
New: utm_source=mailchimp&utm_medium=email

Where to update:
- Mailchimp → All campaigns → Tracking settings
- Email templates → All link UTMs

Phase 3: Update Templates

Prevent future conflicts by fixing templates:

Campaign templates spreadsheet:

# Approved Source-Medium Templates
 
| Platform | Type | Source | Medium | Template |
|----------|------|--------|--------|----------|
| Facebook | Paid | facebook-ads | cpc | utm_source=facebook-ads&utm_medium=cpc&utm_campaign=[name] |
| Facebook | Organic | facebook | social | utm_source=facebook&utm_medium=social&utm_campaign=[name] |
| LinkedIn | Paid | linkedin-ads | cpc | utm_source=linkedin-ads&utm_medium=cpc&utm_campaign=[name] |
| LinkedIn | Organic | linkedin | social | utm_source=linkedin&utm_medium=social&utm_campaign=[name] |
| Mailchimp | Email | mailchimp | email | utm_source=mailchimp&utm_medium=email&utm_campaign=[name] |
| Google Ads | Search | google | cpc | Auto-tagged (gclid) |
| Google Ads | YouTube | google-youtube | cpc | utm_source=google-youtube&utm_medium=cpc&utm_campaign=`{"{"}{"{"}campaignid{"}"}{"}"}}` |

Phase 4: Validate Fixes

Test each updated campaign:

Validation checklist:

Platform: LinkedIn Ads
- [ ] Updated UTM: utm_medium=cpc (changed from social)
- [ ] Clicked test ad
- [ ] Checked GA4 Realtime
- [ ] Verified channel: Paid Social (not Unassigned)
- [ ] Confirmed session source: linkedin
- [ ] Confirmed session medium: cpc
- [ ] Update date: 2025-01-14

GA4 Realtime verification:

  1. Click updated campaign link
  2. GA4 → Reports → Realtime
  3. Check "Traffic sources" card
  4. Verify correct source + medium appears
  5. Check it's NOT in Unassigned

Phase 5: Monitor Migration

Track fix progress weekly:

Week 1 (Before fixes):

Unassigned channel: 45,892 sessions
Paid Social channel: 12,334 sessions

Week 2 (After LinkedIn fix):

Unassigned channel: 33,447 sessions (-27%)
Paid Social channel: 24,779 sessions (+101%)

Week 3 (After Facebook fix):

Unassigned channel: 25,115 sessions (-45% from baseline)
Paid Social channel: 33,111 sessions (+169% from baseline)

Goal: Unassigned < 5% of total traffic

Prevention: Stop Conflicts Forever

1. Source-Medium Validation Rules

Implement validation before campaign launch:

const VALID_COMBINATIONS = {
  'facebook': ['social', 'cpc', 'paid-social'],
  'facebook-ads': ['cpc', 'paid-social'],
  'linkedin': ['social', 'cpc', 'paid-social'],
  'linkedin-ads': ['cpc', 'paid-social'],
  'google': ['organic', 'cpc', 'display'],
  'google-youtube': ['cpc', 'video'],
  'youtube': ['social', 'video'],
  'mailchimp': ['email'],
  'sendgrid': ['email'],
  'klaviyo': ['email']
};
 
function validateSourceMedium(source, medium) {
  const validMediums = VALID_COMBINATIONS[source];
 
  if (!validMediums) {
    throw new Error(`Unknown source: ${"{"}{"{"}source{"}"}{"}"}}`);
  }
 
  if (!validMediums.includes(medium)) {
    throw new Error(
      `Invalid medium "${"{"}{"{"}medium{"}"}{"}"}}" for source "${"{"}{"{"}source{"}"}{"}"}}". ` +
      `Valid options: ${validMediums.join(', ')}`
    );
  }
 
  return true;
}
 
// Usage
try {
  validateSourceMedium('linkedin', 'social'); // For paid ads, should be 'cpc'
} catch (error) {
  alert(error.message); // "Invalid medium..."
}

2. Platform-Specific UTM Builders

Create dedicated builders per platform:

LinkedIn Ads Builder:

  • Source: Pre-filled "linkedin-ads" (locked)
  • Medium: Pre-filled "cpc" (locked)
  • Campaign: User input
  • Content: User input

Facebook Organic Builder:

  • Source: Pre-filled "facebook" (locked)
  • Medium: Pre-filled "social" (locked)
  • Campaign: User input

Benefit: Impossible to create conflicts

3. Automated Auditing

Monthly audit script:

// Fetch GA4 data via API
// Check for problematic combinations
 
const FORBIDDEN_PAIRS = [
  { source: 'google', medium: 'social' },
  { source: 'google', medium: 'email' },
  { source: 'facebook', medium: 'organic' },
  { source: 'facebook', medium: 'email' },
  { source: 'linkedin', medium: 'email' },
  { source: 'mailchimp', medium: 'cpc' },
  { source: 'mailchimp', medium: 'social' }
];
 
// Alert if any forbidden pair has sessions
// Notify team to investigate and fix

4. Documentation & Training

Team training checklist:

  • Understand GA4 channel grouping logic
  • Know valid source-medium combinations per platform
  • Use approved templates only
  • Validate in GA4 Realtime before full launch
  • Monthly review of Unassigned channel

✅ 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

How long does it take to fix all conflicts?

Typical timeline:

  • Audit and prioritize: 1-2 hours
  • Fix top 3 conflicts: 2-4 hours
  • Update all templates: 1-2 hours
  • Validate changes: 1 hour
  • Total: 1-2 days

Most teams can fix critical conflicts within one week.

Will fixing conflicts break historical data?

No. Historical data remains unchanged. Future data will have correct attribution.

Tip: Note the fix date so you can filter reports by before/after periods.

Can I bulk-edit UTMs in GA4?

No. GA4 doesn't allow retroactive data editing.

Solution: Fix at the source (campaign platforms) so new data is correct.

What if my agency refuses to fix conflicts?

Require compliance or find new agency.

Email template:

Subject: Required UTM Parameter Fixes

Our GA4 data shows 42% of paid traffic is unattributable due to
conflicting source-medium combinations.

Required fixes (by [date]):
1. LinkedIn Ads: Change utm_medium from "social" to "cpc"
2. Facebook Ads: Change utm_medium from "organic" to "cpc"
3. All email campaigns: Ensure utm_medium="email"

This is non-negotiable for accurate attribution reporting.
Please confirm completion by [date].

Should I fix old paused campaigns?

Only if you plan to restart them. Focus on active campaigns first.

Priority:

  1. Active high-spend campaigns
  2. Templates for future campaigns
  3. Paused campaigns (if restarting)
  4. Archived campaigns (leave alone)

How do I know if my fixes worked?

Check GA4 after 24-48 hours:

  1. Reports → Acquisition → Traffic Acquisition
  2. Unassigned channel traffic should decrease
  3. Correct channels (Paid Social, Email, etc.) should increase
  4. Compare week-over-week changes

Success criteria: Unassigned < 5% of total traffic


Related: Conflicting Channel Medium Attribution Rule