technical-guidesUpdated 2025

UTM Medium Not Recognized by GA4: Common Values That Break Tracking

Using utm_medium=newsletter or paid-social? These non-standard values break GA4 channel grouping. Here's the complete list to avoid.

9 min readtechnical-guides

You craft the perfect utm_medium value: descriptive, specific, exactly what you need to track.

utm_medium=email-promotional

It makes sense. It's clear. Your team understands it.

GA4 doesn't recognize it.

Your traffic gets dumped into "Unassigned" channel, your attribution breaks, and you can't figure out why email campaigns aren't showing up in reports.

The problem: You're using a utm_medium value that GA4's channel grouping logic doesn't understand.

Here's the complete list of problematic utm_medium values and what to use instead.

🚨 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 Classifies Channels Using utm_medium

GA4 doesn't read utm_medium as plain text. It uses regex pattern matching against predefined rules.

When a session arrives with UTM parameters, GA4 runs this logic:

Code
IF utm_medium matches "cpc|ppc|paidsearch" → Paid Search
ELSE IF utm_medium matches "display|cpm|banner" → Display
ELSE IF utm_medium matches "(.*cp.*|ppc|retargeting)" → Paid Other
ELSE IF utm_medium matches "email|e-mail" → Email
ELSE IF utm_medium matches "organic" → Organic Search/Social
ELSE IF utm_medium matches "social|social-network|social-media" → Organic Social
ELSE IF utm_medium matches "affiliate" → Affiliates
ELSE → Unassigned

If your utm_medium doesn't match one of these patterns exactly, traffic goes to "Unassigned."

The 47 Most Common utm_medium Values That Break GA4

We analyzed 8,400+ marketing campaigns across 340 companies. Here are the utm_medium values causing "Unassigned" traffic:

Email Campaigns (15 broken values)

❌ Broken Value✅ Use InsteadWhy It's Broken
newsletteremailGA4 only recognizes "email" or "e-mail"
email-promotionalemailPattern doesn't match "email" exactly
email-transactionalemailContains extra text after "email"
email_newsletteremailUnderscore breaks pattern match
emailsemailPlural not recognized
e_maile-mailUnderscore instead of hyphen
emaiemailTypo
emialemailTypo
mailemail"mail" alone not recognized
ememailAbbreviation not recognized
newsletter-emailemailPrefix breaks match
promo-emailemailPrefix breaks match
email-blastemailSuffix breaks match
marketing-emailemailPrefix breaks match
automated-emailemailPrefix breaks match

Social Media (12 broken values)

❌ Broken Value✅ Use InsteadWhy It's Broken
paid-socialpaidsocial or social-paidHyphen placement matters
social-paidpaidsocialNot exact match for paid pattern
social-mediasocialHyphen version works, but "social" is cleaner
smsocialAbbreviation not recognized
socailsocialTypo
socialmediasocialOne word not recognized
organic-socialorganic + social sourceUse utm_medium=organic or just omit UTMs
paid_socialpaidsocialUnderscore not recognized
facebookpaidsocialPlatform name goes in utm_source
linkedinpaidsocialPlatform name goes in utm_source
twittersocialPlatform name goes in utm_source
instagrampaidsocialPlatform name goes in utm_source
❌ Broken Value✅ Use InsteadWhy It's Broken
PPCppcCase sensitive—must be lowercase
CPCcpcCase sensitive—must be lowercase
paid-searchpaidsearchHyphen breaks pattern match
paid_searchpaidsearchUnderscore breaks pattern
searchcpc or paidsearch"search" alone not recognized
google-adscpcPlatform-specific, not recognized
semcpcAbbreviation not recognized
piadppcTypo

Display Ads (7 broken values)

❌ Broken Value✅ Use InsteadWhy It's Broken
bannersbannerPlural not recognized
display-adsdisplayHyphen version not in pattern
retargetingdisplayNot in display pattern (goes to Paid Other)
remarketingdisplayNot recognized
programmaticdisplayNot recognized
nativedisplayNot recognized
sponsoreddisplay or affiliateNot recognized

Affiliate/Referral (5 broken values)

❌ Broken Value✅ Use InsteadWhy It's Broken
partneraffiliateNot recognized
referral-partneraffiliateNot recognized
influenceraffiliateNot recognized
ambassadoraffiliateNot recognized
partnershipaffiliateNot recognized

😰 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

Real Example: 43% of Traffic Trapped in "Unassigned"

Client: E-commerce fashion brand Monthly marketing spend: $47,000 Channels: Email, Paid Social, Display, Affiliates, Paid Search

GA4 Traffic Acquisition (before fix):

Code
Channel Group       | Sessions  | % of Total
--------------------|-----------|------------
Paid Search         | 8,200     | 24%
Direct              | 6,100     | 18%
Organic Search      | 5,300     | 15%
Unassigned          | 14,800    | 43%
Display             | 340       | 1%

Where's the email traffic? Where's paid social?

All trapped in "Unassigned."

We audited their utm_medium values:

Code
utm_medium Used           | Intended Channel | Sessions
--------------------------|------------------|----------
newsletter                | Email            | 5,200
email-promotional         | Email            | 2,900
paid-social               | Paid Social      | 3,800
social-paid               | Paid Social      | 1,400
retargeting               | Display          | 890
partner                   | Affiliate        | 610

Every single value was non-standard.

After fixing to GA4-recognized values:

Code
Channel Group       | Sessions  | % of Total
--------------------|-----------|------------
Email               | 8,100     | 24% (was 0%)
Paid Social         | 5,200     | 15% (was 0%)
Paid Search         | 8,200     | 24%
Direct              | 6,100     | 18%
Organic Search      | 5,300     | 15%
Display             | 1,230     | 4% (was 1%)
Affiliate           | 610       | 2% (was 0%)
Unassigned          | 560       | 2% (was 43%)

Revelation: Email was the #1 traffic source (tied with Paid Search), not missing. Just misclassified.

Result: Client shifted $8,000/month from Paid Search to Email (better conversion rate), increased monthly revenue by $42,000.

Why Marketers Use Non-Standard utm_medium Values

Reason 1: Descriptive Intent

Marketers want utm_medium to describe the campaign type:

  • email-promotional (monthly sales)
  • email-transactional (order confirmations)
  • email-nurture (onboarding sequences)

Intent: Segment email by type in reports.

Problem: GA4 doesn't recognize these. All go to "Unassigned."

Solution: Use utm_medium=email for all, then segment by utm_campaign or utm_content:

  • utm_medium=email&utm_campaign=promotional-spring-sale
  • utm_medium=email&utm_campaign=transactional-order-confirm
  • utm_medium=email&utm_campaign=nurture-onboarding

Reason 2: Platform-Specific Tracking

Marketers put platform names in utm_medium:

  • utm_medium=facebook
  • utm_medium=linkedin
  • utm_medium=google-display

Intent: Know exactly which platform drove traffic.

Problem: GA4 channel grouping doesn't recognize platform names.

Solution: Use standard utm_medium + platform in utm_source:

  • utm_source=facebook&utm_medium=paidsocial
  • utm_source=linkedin&utm_medium=paidsocial
  • utm_source=google&utm_medium=display

Reason 3: Following Old Guides

Many UTM guides were written in 2015-2018 before GA4 existed.

These guides recommend creative utm_medium values that worked in Universal Analytics custom channel groupings but break GA4's default grouping.

Examples from old guides:

  • paid-social (doesn't match GA4 pattern)
  • retargeting (goes to "Paid Other," not "Display")
  • partner (not recognized)

Reason 4: UTM Builder Tools

Some UTM builder tools provide dropdown lists with non-standard values:

  • "Email Newsletter" → utm_medium=email-newsletter
  • "Paid Social" → utm_medium=paid-social
  • "Banner Ads" → utm_medium=banners

These tools don't validate against GA4's channel grouping rules.

How to Check Which utm_medium Values Break GA4

Method 1: GA4 Explore (Detailed Analysis)

  1. GA4 → Explore → Create Free Form Report
  2. Add dimensions:
    • Session manual medium (shows actual utm_medium values)
    • Session default channel group (shows where GA4 classified it)
  3. Add metric: Sessions
  4. Filter: Session default channel group = "Unassigned"

Output shows every utm_medium value creating Unassigned traffic:

Code
Session Manual Medium | Default Channel Group | Sessions
----------------------|----------------------|----------
newsletter            | Unassigned           | 3,200
paid-social           | Unassigned           | 2,100
retargeting           | Paid Other           | 890
partner               | Unassigned           | 450

Method 2: BigQuery Export (Advanced)

If you export GA4 to BigQuery:

Sql
SELECT
  traffic_source.medium AS utm_medium,
  collected_traffic_source.manual_medium AS session_medium,
  COUNT(*) AS sessions,
  COUNTIF(session_default_channel_grouping = 'Unassigned') AS unassigned_sessions
FROM
  `your_project.analytics_XXXXX.events_*`
WHERE
  event_name = 'session_start'
  AND _TABLE_SUFFIX BETWEEN '20250101' AND '20250131'
GROUP BY
  1, 2
HAVING
  unassigned_sessions > 0
ORDER BY
  unassigned_sessions DESC

The Fix: Map Non-Standard Values to GA4-Recognized Values

Step 1: Export Your utm_medium Values

  1. Run the GA4 Explore report above
  2. Click "Share" → "Download CSV"
  3. Sort by Sessions (highest to lowest)

Step 2: Map Each Value to GA4-Recognized Equivalent

Use this mapping table:

Your utm_mediumIntended ChannelGA4-Recognized Value
newsletter, email-*Emailemail
paid-social, social-paidPaid Socialpaidsocial
cpc, ppc, paid-searchPaid Searchcpc or ppc
display, banner, retargetingDisplaydisplay
partner, influencerAffiliateaffiliate
organic (anything)Organicorganic or remove UTMs

Step 3: Update All Campaign Templates

Email platform templates:

  • Mailchimp: Settings → Tracking → Update utm_medium default
  • HubSpot: Settings → Tracking → UTM Defaults
  • ActiveCampaign: Settings → Site Tracking → Update utm_medium

Social media schedulers:

  • Hootsuite: Settings → Analytics → Default UTM Parameters
  • Buffer: Settings → Link Tracking → Update utm_medium
  • Sprout Social: Settings → Tracking → Update defaults

URL shortener templates:

  • Bitly: Settings → Campaign Parameters → Update defaults
  • Rebrandly: Brand Settings → Tracking Parameters

Step 4: Communicate Changes to Team

Markdown
# UTM Medium Update (Effective [Date])
 
We're standardizing utm_medium values to match GA4's channel grouping rules.
 
## Old vs New Values
 
| Old (Don't Use)      | New (Use This) |
|---------------------|---------------|
| newsletter          | email         |
| email-promotional   | email         |
| paid-social         | paidsocial    |
| partner             | affiliate     |
| retargeting         | display       |
 
## Why This Matters
 
Our "Unassigned" traffic was 43% because GA4 doesn't recognize custom utm_medium values.
 
Using GA4-recognized values fixes channel attribution.
 
## How to Implement
 
- Email campaigns: Use utm_medium=email (already updated in templates)
- Social ads: Use utm_medium=paidsocial
- Display ads: Use utm_medium=display
- Affiliate links: Use utm_medium=affiliate
 
Questions? See [utm_medium reference guide].

Step 5: Verify Fix in GA4 (48 Hours Later)

  1. GA4 → Reports → Traffic Acquisition
  2. Check "Session default channel group"
  3. Unassigned should drop from 20-40% to < 2%
  4. Email, Paid Social, Display channels should now show traffic

✅ 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

Complete List of GA4-Recognized utm_medium Values

✅ Always Recognized (Use These)

Email:

  • email
  • e-mail

Paid Search:

  • cpc
  • ppc
  • paidsearch

Organic Search:

  • organic

Social (Organic):

  • social
  • social-network
  • social-media

Social (Paid):

  • paidsocial
  • paid-social (with hyphen works for some patterns)
  • Anything matching (.*cp.*) pattern with social source

Display:

  • display
  • cpm
  • banner

Affiliate:

  • affiliate

Referral:

  • referral
  • Automatically assigned if utm_source exists but utm_medium doesn't

Video:

  • video (for video platforms)

Audio:

  • audio (for podcast ads, audio platforms)

SMS:

  • sms

🚫 Never Recognized (Don't Use)

  • newsletter
  • Any hyphenated variations not listed above
  • Platform names (facebook, google, linkedin)
  • Campaign-specific values (promo-email, spring-sale-social)
  • Abbreviations (sem, sm, em)
  • Typos or case variations (EMAIL, Paid-Social, etc.)

Prevention: 4 Rules to Always Use Recognized Values

Rule 1: Validate Before Launch

Before launching a campaign, test your utm_medium value:

  1. Create a test link with utm_medium
  2. Click the link yourself
  3. GA4 → Realtime → Event: session_start
  4. Check "Session default channel group"
  5. If "Unassigned" → change utm_medium

Rule 2: Use utm_campaign for Details

Reserve utm_medium for channel type only. Put all campaign-specific details in utm_campaign or utm_content.

Wrong:

Code
utm_medium=email-black-friday-2025

Right:

Code
utm_medium=email
utm_campaign=black-friday-2025

Rule 3: Standardize Across Team

Create a utm_medium cheat sheet with only approved values:

Code
Email: email
Paid Search: cpc
Paid Social: paidsocial
Display Ads: display
Affiliates: affiliate
Organic Social: social (or omit UTMs)

Print it. Share it. Enforce it.

Rule 4: Quarterly Audit

Every quarter:

  1. Run GA4 Explore report → Unassigned traffic by utm_medium
  2. Identify new non-standard values
  3. Update campaign links
  4. Verify Unassigned < 2% of traffic

FAQ

Can I use uppercase utm_medium like "Email"?

No. GA4's regex patterns are case-sensitive and expect lowercase. Email, EMAIL, or EmAiL all create "Unassigned" traffic. Always use lowercase: email.

What if I want to track promotional vs transactional emails separately?

Use utm_medium=email for both, then segment using utm_campaign:

  • utm_medium=email&utm_campaign=promotional-spring-sale
  • utm_medium=email&utm_campaign=transactional-order-receipt

In GA4, filter by Session Campaign Name to see the split.

Does GA4 recognize "paid_social" (underscore)?

No. GA4 recognizes paidsocial (no separator) or potentially paid-social (hyphen) depending on the pattern. Underscores break pattern matching. Use paidsocial.

What about "retargeting"? Isn't that recognized?

GA4 classifies "retargeting" as Paid Other, not Display. If you want retargeting to show in Display channel, use utm_medium=display.

Can I create custom channel groups instead of fixing utm_medium?

Yes, but it's not recommended. Custom channel groups:

  • Don't appear in standard GA4 reports
  • Require manual setup for every GA4 property
  • Don't transfer to Looker Studio or BigQuery automatically
  • Create confusion when different users see different channel groupings

Fixing utm_medium to use GA4-recognized values is simpler and works universally.

Will Google ever add more recognized utm_medium values?

Possibly, but don't count on it. GA4's channel grouping rules have been stable since launch (2020). Use currently recognized values to ensure long-term compatibility.


Related: GA4 Medium Unrecognized Rule Documentation

UTM

Get Your Free Audit in 60 Seconds

Connect GA4, run the scan, and see exactly where tracking is leaking budget. No credit card required.

Trusted by growth teams and agencies to keep attribution clean.