Why utm_medium=email is Critical for Email Campaigns
GA4 relies on utm_medium to categorize traffic. Here's why email campaigns MUST use utm_medium=email.
Picture this: You're in a marketing review meeting. Your CMO asks: "How much revenue did email drive last quarter?"
You pull up GA4. The "Email" channel shows $15,000 in revenue.
But the real number is $45,000.
Why? Because two-thirds of your email traffic is being categorized as:
- "Paid Search" (because you used
utm_medium=cpc) - "Direct" (because UTMs got stripped)
- "Social" (because you copied social UTMs into email campaigns)
This fundamental misattribution happens when email campaigns don't use utm_medium=email. And it costs businesses millions in misallocated budget every year.
Table of contents
- How GA4 Channel Grouping Works
- GA4's Channel Grouping Logic (Simplified)
- What Happens When You Use the Wrong utmmedium
- Scenario 1: Using utmmedium=cpc for Email
- Scenario 2: Using utmmedium=social for Email
- Scenario 3: Using utmmedium=newsletter
- Scenario 4: No UTMs at All (or UTMs Stripped)
- Real Example: $120,000 Budget Misallocation
- What GA4 Showed (Quarterly Report):
- The Reality (After UTM Fix):
- Why "email" Is the Only Accepted Value
- Why not use custom values like "newsletter" or "mailchimp"?
- The Anatomy of a Correct Email UTM
- Standard Format
- Examples (All Correct)
- What to Put in utmsource
- What to Put in utmcampaign
- How to Verify Your Email Tracking
- Test 1: Check Your UTMs (30 seconds)
- Test 2: GA4 Real-Time Report (1 minute)
- Test 3: GA4 Traffic Acquisition Report (After Campaign Send)
- Common Mistakes and How to Fix Them
- Mistake #1: Copying Paid Ad UTMs into Email
- Mistake #2: Using ESP Name as Medium
- Mistake #3: Inconsistent Medium Values
- Mistake #4: No UTMs on Transactional Emails
- What About Other Email Use Cases?
- SMS Campaigns
- Push Notifications
- In-App Messages
- Prevention Checklist
- FAQ
- Can I use utmmedium=e-mail with a hyphen?
- What if I want to differentiate between promotional and transactional emails?
- Will this change affect my historical data?
- I use multiple ESPs (Mailchimp for newsletters, Klaviyo for drips). How should I track them?
- What if my ESP doesn't let me set default UTM parameters?
- Does utmmedium=email affect email deliverability?
- Conclusion
🚨 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 GA4 Channel Grouping Works
GA4 uses Default Channel Grouping to categorize all traffic into channels. This grouping is based primarily on utm_medium (and sometimes utm_source).
GA4's Channel Grouping Logic (Simplified)
IF utm_medium = "email" OR "e-mail" OR "e_mail"
→ Channel = Email
ELSE IF utm_medium contains "cpc" OR "ppc" OR "paidsearch"
→ Channel = Paid Search
ELSE IF utm_medium = "organic"
→ Channel = Organic Search
ELSE IF utm_medium contains "social" OR "social-network"
→ Channel = Paid Social
ELSE IF utm_medium = "display" OR "banner"
→ Channel = Display
ELSE IF utm_medium = "referral"
→ Channel = Referral
ELSE IF utm_source is NOT set AND utm_medium is NOT set
→ Channel = Direct
ELSE
→ Channel = Unassigned
The key insight: utm_medium is the primary determinant. If you use the wrong value, your traffic gets miscategorized.
What Happens When You Use the Wrong utm_medium
Scenario 1: Using utm_medium=cpc for Email
Your UTM setup:
?utm_source=newsletter&utm_medium=cpc&utm_campaign=spring-sale
What GA4 thinks: "This is a Paid Search click (because medium=cpc)"
Result:
- ❌ Traffic shows in "Paid Search" channel
- ❌ Email metrics invisible in "Email" channel
- ❌ Paid Search metrics inflated (includes free email clicks)
- ❌ Cost per click artificially low (email clicks are free)
- ❌ Budget decisions based on wrong data
Scenario 2: Using utm_medium=social for Email
Your UTM setup:
?utm_source=mailchimp&utm_medium=social&utm_campaign=product-launch
What GA4 thinks: "This is Paid Social traffic"
Result:
- ❌ Traffic shows in "Paid Social" channel
- ❌ Email performance hidden
- ❌ Social channel metrics inflated
- ❌ Can't compare email vs social accurately
Scenario 3: Using utm_medium=newsletter
Your UTM setup:
?utm_source=mailchimp&utm_medium=newsletter&utm_campaign=weekly-digest
What GA4 thinks: "This is... unrecognized. Put it in 'Unassigned'"
Result:
- ❌ Traffic shows as "Unassigned" (or sometimes "Other")
- ❌ Email performance completely invisible
- ❌ No way to compare email to other channels
Scenario 4: No UTMs at All (or UTMs Stripped)
Your link:
https://yoursite.com/sale
(no UTM parameters)
What GA4 thinks: "No tracking info. This is Direct traffic."
Result:
- ❌ Traffic shows as "Direct"
- ❌ Email campaigns get no credit
- ❌ Direct traffic artificially inflated
- ❌ True direct traffic (bookmarks, typing URL) mixed with email
😰 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
Real Example: $120,000 Budget Misallocation
Client: E-commerce fashion brand
Email list: 200,000 subscribers
Monthly email sends: 12 campaigns
Problem: Using utm_medium=cpc for all email campaigns
What GA4 Showed (Quarterly Report):
| Channel | Sessions | Revenue | ROAS |
|---|---|---|---|
| Paid Search | 45,000 | $180,000 | 6.0x |
| 0 | $0 | N/A | |
| Direct | 30,000 | $90,000 | N/A |
Decision made: "Paid Search is our best channel! Increase budget from $30k/month to $60k/month."
The Reality (After UTM Fix):
| Channel | Sessions | Revenue | ROAS |
|---|---|---|---|
| Paid Search | 20,000 | $60,000 | 2.0x |
| 25,000 | $120,000 | ∞ (organic channel) | |
| Direct | 18,000 | $45,000 | N/A |
What actually happened:
- 55% of "Paid Search" sessions were actually from email
- Email was driving 2x the revenue of Paid Search
- Paid Search ROAS wasn't 6.0x—it was 2.0x
- Email was the best performing channel (free traffic!)
The cost of the mistake:
- $360,000 overspent on Paid Search (annual overinvestment)
- $120,000 underinvestment in email (missed opportunity)
- Total impact: $480,000 misallocation
After the fix, they cut Paid Search budget by 50% and tripled email sends. Revenue increased 35% with the same total marketing budget.
Why "email" Is the Only Accepted Value
GA4 recognizes these utm_medium values for Email channel grouping:
✅ email
✅ e-mail
✅ e_mail
Industry standard: email (shortest, most common)
Why not use custom values like "newsletter" or "mailchimp"?
Because GA4's Default Channel Grouping won't recognize them. Your traffic will show as:
- "Unassigned" channel (can't compare to other channels)
- "Other" (mixed with miscellaneous traffic)
- Lost in reports (invisible to standard channel analysis)
The rule: If you want GA4 to categorize your email traffic as "Email," you MUST use one of the three accepted values above.
The Anatomy of a Correct Email UTM
Standard Format
?utm_source=`{"{"}{"{"}source{"}"}{"}"}}`&utm_medium=email&utm_campaign=`{"{"}{"{"}campaign{"}"}{"}"}}`
Examples (All Correct)
Newsletter:
?utm_source=newsletter&utm_medium=email&utm_campaign=weekly-digest-jan-2025
Promotional campaign:
?utm_source=mailchimp&utm_medium=email&utm_campaign=spring-sale-2025
Transactional email:
?utm_source=transactional&utm_medium=email&utm_campaign=order-confirmation
Drip sequence:
?utm_source=klaviyo&utm_medium=email&utm_campaign=trial-day3-upgrade-offer
Event invitation:
?utm_source=events&utm_medium=email&utm_campaign=webinar-seo-jan-15
What to Put in utm_source
You have flexibility here. Common approaches:
Option 1: ESP name
utm_source=mailchimp
utm_source=sendgrid
utm_source=klaviyo
Option 2: Email type
utm_source=newsletter
utm_source=promo
utm_source=transactional
Option 3: Campaign category
utm_source=customer-nurture
utm_source=lead-generation
utm_source=retention
Our recommendation: Use campaign type (Option 2) unless you use multiple ESPs and need to compare their performance.
What to Put in utm_campaign
Be specific and descriptive:
✅ Good:
utm_campaign=spring-sale-2025-03-15
utm_campaign=product-launch-widget-pro
utm_campaign=black-friday-early-access-vip
❌ Bad:
utm_campaign=promo
utm_campaign=campaign1
utm_campaign=test
Naming format we recommend:
`{"{"}{"{"}type{"}"}{"}"}}`-`{"{"}{"{"}name{"}"}{"}"}}`-`{"{"}{"{"}date{"}"}{"}"}}`
Examples:
sale-spring-clearance-2025-03
webinar-advanced-seo-jan-15
newsletter-weekly-digest-w02-2025
How to Verify Your Email Tracking
Test 1: Check Your UTMs (30 seconds)
Step 1: Send yourself a test email
Step 2: Click a link
Step 3: Check the browser address bar
Step 4: Confirm you see utm_medium=email
✅ Correct:
https://yoursite.com/sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring
❌ Wrong:
https://yoursite.com/sale?utm_source=newsletter&utm_medium=cpc&utm_campaign=spring
Test 2: GA4 Real-Time Report (1 minute)
Step 1: After clicking test email, open GA4 Step 2: Reports → Real-time Step 3: Look for your session Step 4: Verify:
- Source:
newsletter(or your ESP name) - Medium:
email - Campaign:
[your-campaign-name]
If you see:
- Medium:
cpc→ Fix your ESP UTM settings - Medium:
(none)→ UTMs were stripped (see solutions here)
Test 3: GA4 Traffic Acquisition Report (After Campaign Send)
Step 1: GA4 → Reports → Traffic acquisition Step 2: Date range: Last 7 days Step 3: Look for "Email" in channel list Step 4: Click to see all email sources
Expected: All your email campaigns grouped under "Email" channel with consistent utm_medium=email.
Common Mistakes and How to Fix Them
Mistake #1: Copying Paid Ad UTMs into Email
Wrong:
Google Ads UTM: ?utm_source=google&utm_medium=cpc&utm_campaign=shoes
Email using same: ?utm_source=newsletter&utm_medium=cpc&utm_campaign=shoes
Why it's wrong: Email traffic will show as Paid Search.
Fix: Always use utm_medium=email for email campaigns:
?utm_source=newsletter&utm_medium=email&utm_campaign=shoes-sale
Mistake #2: Using ESP Name as Medium
Wrong:
?utm_source=campaign&utm_medium=mailchimp&utm_campaign=sale
Why it's wrong: GA4 doesn't recognize "mailchimp" as Email channel.
Fix: Put ESP in source, not medium:
?utm_source=mailchimp&utm_medium=email&utm_campaign=sale
Mistake #3: Inconsistent Medium Values
Wrong:
Email 1: utm_medium=email
Email 2: utm_medium=e-mail
Email 3: utm_medium=newsletter
Email 4: utm_medium=e_mail
Why it's wrong: While email, e-mail, and e_mail all work, mixing them fragments your data. And newsletter doesn't work at all.
Fix: Pick ONE standard and use it everywhere:
utm_medium=email (recommended)
Mistake #4: No UTMs on Transactional Emails
Missed tracking:
- Password reset links
- Order confirmations
- Shipping notifications
- Account alerts
Fix: Add UTMs to transactional emails too:
?utm_source=transactional&utm_medium=email&utm_campaign=password-reset
?utm_source=transactional&utm_medium=email&utm_campaign=order-confirm
What About Other Email Use Cases?
SMS Campaigns
Don't use utm_medium=email.
Use utm_medium=sms:
?utm_source=twilio&utm_medium=sms&utm_campaign=flash-sale-text
GA4 will create a separate "SMS" channel.
Push Notifications
Use utm_medium=push:
?utm_source=onesignal&utm_medium=push&utm_campaign=cart-reminder
In-App Messages
Use utm_medium=app or utm_medium=in-app:
?utm_source=intercom&utm_medium=app&utm_campaign=upgrade-prompt
The pattern: Each messaging channel should have its own utm_medium value for proper channel grouping in GA4.
Prevention Checklist
✅ Set utm_medium=email as default in your ESP
✅ Audit all existing email templates (marketing + transactional)
✅ Update automation/drip sequences
✅ Test with real email send before major campaigns
✅ Verify in GA4 real-time reports
✅ Train team on email UTM standards
✅ Document standards in team wiki/playbook
✅ Review quarterly for compliance
✅ 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
Can I use utm_medium=e-mail with a hyphen?
Yes! GA4 recognizes email, e-mail, and e_mail. All three work. But email is the shortest and most common.
What if I want to differentiate between promotional and transactional emails?
Use utm_source or utm_campaign for differentiation, NOT utm_medium:
Promotional:
?utm_source=promo&utm_medium=email&utm_campaign=spring-sale
Transactional:
?utm_source=transactional&utm_medium=email&utm_campaign=order-confirm
Both show in "Email" channel, but you can filter/segment by source or campaign in GA4 reports.
Will this change affect my historical data?
No. Historical data remains as-is. The fix applies to future email traffic only. Consider adding a GA4 annotation marking the change date for future reference.
I use multiple ESPs (Mailchimp for newsletters, Klaviyo for drips). How should I track them?
Option 1: ESP in source
Mailchimp: ?utm_source=mailchimp&utm_medium=email&utm_campaign=weekly
Klaviyo: ?utm_source=klaviyo&utm_medium=email&utm_campaign=drip-day1
Option 2: ESP in content
?utm_source=newsletter&utm_medium=email&utm_campaign=weekly&utm_content=mailchimp
?utm_source=drip&utm_medium=email&utm_campaign=onboarding-day1&utm_content=klaviyo
We recommend Option 1 for easier ESP performance comparison.
What if my ESP doesn't let me set default UTM parameters?
Create a UTM template document and manually add to each campaign:
Standard Email UTM Template:
?utm_source=[campaign-type]&utm_medium=email&utm_campaign=[descriptive-name]
Copy/paste this into every email campaign.
Does utm_medium=email affect email deliverability?
No. UTM parameters are added to links inside your email content, not to email headers. They don't affect spam scores, deliverability, or inbox placement.
Conclusion
Why utm_medium=email is critical:
- GA4 channel grouping depends on it - Without
utm_medium=email, your traffic gets miscategorized - Budget decisions rely on accurate data - Misattribution leads to budget misallocation
- Channel comparison becomes possible - Compare email vs paid vs organic accurately
- Email ROI becomes visible - Prove email's value to stakeholders
The fix:
- Set
utm_medium=emailas default in your ESP - Update all existing email templates (including transactional)
- Test before sending
- Verify in GA4 real-time reports
- Monitor monthly for compliance
This single parameter change ensures GA4 correctly categorizes your email traffic and gives you accurate channel performance data for optimization.