Fix utm_medium Case Errors in 10 Minutes (Complete Guide)
Quick fix guide for uppercase utm_medium values causing Unassigned traffic in GA4. Learn how to find and fix CPC�cpc, EMAIL�email case errors across all platforms.
Problem: Your paid campaigns use utm_medium=CPC (uppercase) instead of utm_medium=cpc (lowercase). Result: 78% of your paid traffic shows as "Unassigned" in GA4.
Solution: 10-minute fix to lowercase all medium values and restore proper channel assignment.
Outcome: Clean channel reporting, accurate ROI, proper attribution.
Let's fix this right now.
Table of contents
- The 10-Minute Fix (Step-by-Step)
- Step 1: Identify Uppercase Medium Values (2 min)
- Step 2: Fix Platform-by-Platform (6 min)
- Step 3: Update URL Builder Templates (1 min)
- Step 4: Verify Fix in GA4 (1 min + 24-48 hours)
- Platform-Specific Fix Instructions
- Fix Google Ads URL Parameters
- Fix Facebook/Meta Ads
- Fix Email Platforms
- Fix Social Media Schedulers
- Common Fix Mistakes
- Mistake 1: Only Fixing Some Platforms
- Mistake 2: Fixing Templates but Not Active Campaigns
- Mistake 3: Not Enforcing Lowercase Going Forward
- Quick Reference: Case-Sensitive Mediums
- Automation: Prevent Future Case Issues
- Method 1: Google Sheets Formula
- Method 2: Data Validation Dropdown
- Method 3: JavaScript Validation
- Method 4: Pre-Launch Checklist
- Historical Data: What About Old Campaigns?
- Option 1: Manual Consolidation
- Option 2: Set Analysis Cutoff Date
- Option 3: Accept and Move Forward
- FAQ
- Do I need to delete old campaigns and start fresh?
- Will changing utmmedium affect ad delivery?
- Can I use title case (Cpc) instead of lowercase?
- What if my ad platform auto-capitalizes?
- How do I bulk-update hundreds of campaigns?
- Should I pause campaigns while fixing?
🚨 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 10-Minute Fix (Step-by-Step)
Step 1: Identify Uppercase Medium Values (2 min)
GA4 � Explore � Free Form
- Dimension: Session medium
- Metrics: Sessions
- Filter: Session default channel group = "Unassigned"
- Export to CSV
Look for:
- CPC, PPC (should be cpc, ppc)
- EMAIL, Email (should be email)
- SOCIAL, Social (should be social)
- DISPLAY, Display (should be display)
Example output:
| Session Medium | Sessions | Should Be |
|---|---|---|
| CPC | 12,400 | cpc |
| 3,200 | ||
| SOCIAL | 1,890 | social |
| Display | 2,100 | display |
Step 2: Fix Platform-by-Platform (6 min)
For each platform, update utm_medium to lowercase:
Google Ads (2 min)
- Campaigns � Settings
- Campaign URL options � Tracking template
- Find:
utm_medium=CPC - Replace:
utm_medium=cpc - Save
Or use URL suffix:
utm_source=google&utm_medium=cpc&utm_campaign={{_campaign}}
Facebook Ads (1 min)
- Ad Manager � All Tools � URL Parameters
- Edit default parameters
- Change:
utm_medium=CPC�utm_medium=cpc - Apply to all campaigns
Email Platform (1 min)
Mailchimp:
- Campaigns � Templates � Edit
- Find:
utm_medium=Emailorutm_medium=EMAIL - Replace:
utm_medium=email - Save as default template
HubSpot:
- Marketing � Email � Templates
- Edit tracking settings
- Change medium to lowercase
LinkedIn Ads (1 min)
- Campaign Manager � Campaign settings
- Website � URL tracking parameters
- Update:
utm_medium=cpc(lowercase)
Other Platforms (1 min)
- Twitter Ads: Update destination URL parameters
- Microsoft Ads: Edit tracking template
- TikTok Ads: Update URL parameters
Step 3: Update URL Builder Templates (1 min)
Google Sheets UTM builder:
Add LOWER() function to utm_medium cell:
=LOWER(B2) // Converts any input to lowercase
Or use data validation dropdown:
List of items: cpc,email,social,display,affiliate,referral
Prevents uppercase from being entered.
Step 4: Verify Fix in GA4 (1 min + 24-48 hours)
Immediate test (GA4 Realtime):
- Click a link with new lowercase medium
- GA4 � Realtime
- Verify traffic appears in correct channel (not Unassigned)
Full verification (24-48 hours):
- GA4 � Traffic acquisition
- Check:
- Unassigned traffic decreased
- Paid Search sessions increased
- Email sessions increased
- Compare with ad platform data to verify alignment
Platform-Specific Fix Instructions
Fix Google Ads URL Parameters
Method 1: Tracking Template (Recommended)
- Google Ads � Settings � Account settings
- Tracking � Tracking template
- Enter:
`{"{"}{"{"}lpurl{"}"}{"}"}}`?utm_source=google&utm_medium=cpc&utm_campaign={{_campaign}}&utm_content={{_ad}}
Applies to all campaigns automatically.
Method 2: Campaign-Level
- Select campaign � Settings
- Campaign URL options � Final URL suffix
- Enter:
utm_source=google&utm_medium=cpc&utm_campaign=`{"{"}{"{"}campaignid{"}"}{"}"}}`
Fix Facebook/Meta Ads
Ad Manager:
- All Tools � URL Parameters
- Build URL parameter:
- Parameter: utm_medium
- Value:
cpc(lowercase)
- Apply to: All campaigns or selected campaigns
For existing campaigns:
- Select campaigns � Bulk edit
- URL parameters � Edit
- Update utm_medium to lowercase
Fix Email Platforms
Mailchimp:
- Audience � Settings � Campaign defaults
- Tracking � Google Analytics link tracking
- Change utm_medium to:
email
SendGrid:
- Settings � Tracking � Google Analytics
- Update utm_medium:
email
ActiveCampaign:
- Settings � Tracking � Google Analytics
- Edit medium:
email
Fix Social Media Schedulers
Buffer:
- Settings � Link Shortening � UTM Tracking
- Medium:
social(lowercase)
Hootsuite:
- Settings � Social Networks � Tracking
- Update medium field to:
social
Common Fix Mistakes
Mistake 1: Only Fixing Some Platforms
Problem: You fix Google Ads but forget Facebook, email, display.
Result: Partial improvement, still have Unassigned traffic.
Solution: Fix ALL platforms in one session.
Mistake 2: Fixing Templates but Not Active Campaigns
Problem: You update email template but scheduled campaigns still use old version.
Result: Old uppercase values keep generating Unassigned traffic.
Solution: Update active/scheduled campaigns too.
Mistake 3: Not Enforcing Lowercase Going Forward
Problem: You fix current campaigns but team creates new ones with uppercase.
Result: Problem returns next month.
Solution: Lock URL builder to lowercase-only values.
Quick Reference: Case-Sensitive Mediums
| Traffic Type | L Wrong (Uppercase) | Correct (Lowercase) |
|---|---|---|
| Paid search | CPC, PPC, Cpc | cpc, ppc |
| EMAIL, Email, E-MAIL | email, e-mail | |
| Social | SOCIAL, Social | social |
| Display | DISPLAY, Display, BANNER | display, banner |
| Affiliate | AFFILIATE, Affiliate | affiliate |
| Referral | REFERRAL, Referral | referral |
Rule: Always lowercase, no exceptions.
😰 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
Automation: Prevent Future Case Issues
Method 1: Google Sheets Formula
Auto-lowercase any input:
Column C (utm_medium):
=LOWER(B2)
Even if someone types "CPC", formula outputs "cpc".
Method 2: Data Validation Dropdown
Only allow approved lowercase values:
Data � Data validation � List of items:
cpc,email,social,display,affiliate,referral,sms
Impossible to enter uppercase.
Method 3: JavaScript Validation
Website URL builder:
function generateUTM() {
const medium = document.getElementById('medium').value;
if (medium !== medium.toLowerCase()) {
alert('utm_medium must be lowercase');
return false;
}
// Generate URL...
}Method 4: Pre-Launch Checklist
Before any campaign goes live:
- utm_medium is lowercase
- Test URL in GA4 Realtime
- Verify traffic assigned to correct channel
- Not appearing in "Unassigned"
Historical Data: What About Old Campaigns?
Q: Will fixing case restore historical data? A: No. Historical data remains "Unassigned." Only new traffic (post-fix) gets correct channel assignment.
Workarounds for historical analysis:
Option 1: Manual Consolidation
Export GA4 data to Google Sheets:
- Download Traffic Acquisition data
- Add column: "Clean Medium" =
LOWER(Medium) - Pivot table on "Clean Medium"
- Now you can see historical performance by corrected medium
Option 2: Set Analysis Cutoff Date
"Analyzing data from [fix date] onward due to UTM parameter correction"
Option 3: Accept and Move Forward
Most teams choose this. Historical data stays broken, but all future data is clean.
✅ 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 campaigns and start fresh?
No. Just update the tracking parameters in existing campaigns. Most platforms allow editing URL parameters without pausing/recreating campaigns.
Will changing utm_medium affect ad delivery?
Google Ads: May require ad re-approval (usually quick) Facebook: No impact on delivery LinkedIn: No impact
Best practice: Make changes during low-traffic periods (weekends, late evenings).
Can I use title case (Cpc) instead of lowercase?
No. GA4's regex patterns expect all-lowercase. "Cpc" won't match and will create Unassigned traffic.
What if my ad platform auto-capitalizes?
Most platforms don't auto-capitalize URL parameters. If yours does, you can usually override it by manually entering lowercase values in the tracking template.
How do I bulk-update hundreds of campaigns?
Google Ads Editor: Download campaigns, find/replace utm_medium=CPC � utm_medium=cpc, upload
Facebook Ads: Bulk edit tool (select all campaigns, edit URL parameters)
Spreadsheet method: Export campaign list, update in Sheets, reimport
Should I pause campaigns while fixing?
Not necessary. You can edit URL parameters on active campaigns. They'll continue running with new lowercase parameters.