technical-guidesUpdated 2025

Complete List of GA4-Recognized utm_medium Values (2025 Guide)

The definitive reference for utm_medium values that GA4 actually recognizes. Includes regex patterns, channel mappings, and validation rules.

9 min readtechnical-guides

You're creating UTM parameters for a new campaign.

You type utm_medium=paid-social.

Will GA4 recognize it? Will it go to "Paid Social" or "Unassigned"?

Without a definitive reference list, you're guessing. And guessing wrong means broken attribution.

This is the complete, verified list of every utm_medium value that GA4 recognizes in 2025—with regex patterns, channel mappings, and real-world examples.

Bookmark this page. Use it before every campaign.

🚨 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 rules to classify traffic into channels.

When a session arrives, GA4 checks UTM parameters against predefined regex patterns in this order:

  1. Paid Search - Highest priority
  2. Paid Social
  3. Paid Shopping
  4. Paid Video
  5. Display
  6. Paid Other
  7. Organic Search
  8. Organic Social
  9. Organic Video
  10. Email
  11. Affiliates
  12. Audio
  13. SMS
  14. Referral
  15. Direct
  16. Unassigned - Catch-all when nothing matches

Each channel has specific rules. If utm_medium doesn't match ANY rule, traffic goes to "Unassigned."

Complete utm_medium Reference (Alphabetical)

✅ Recognized Values

utm_mediumMaps To ChannelRegex PatternNotes
affiliateAffiliatesExact match: ^affiliate$Only exact match works
audioAudioExact match: ^audio$For podcast ads
bannerDisplayExact match: ^banner$Singular, not "banners"
cpcPaid SearchMatches: cpcMost common for paid search
cpmDisplayExact match: ^cpm$Cost per mille (1000 impressions)
cpvPaid VideoContains: cpvCost per view (video ads)
displayDisplayExact match: ^display$Standard display ads
emailEmailExact match: ^email$Most reliable email value
e-mailEmailExact match: ^e-mail$Hyphenated version (also works)
organicOrganic SearchContains: organicUsually auto-set by GA4
paidsearchPaid SearchExact match: ^paidsearch$Alternative to cpc/ppc
paidsocialPaid SocialContains: paidsocialRecommended for paid social
ppcPaid SearchExact match: ^ppc$Pay-per-click
referralReferralExact match: ^referral$Usually auto-set
smsSMSExact match: ^sms$SMS marketing
socialOrganic SocialContains: socialOrganic social posts
social-mediaOrganic SocialExact match: ^social-media$Alternative
social-networkOrganic SocialExact match: ^social-network$Alternative
videoOrganic VideoContains: videoOrganic video platforms

🚫 Not Recognized (Common Mistakes)

utm_mediumIntended ChannelWhy It FailsUse Instead
newsletterEmailNot in patternemail
paid-socialPaid SocialHyphen may break patternpaidsocial
paid_socialPaid SocialUnderscore not recognizedpaidsocial
retargetingDisplayGoes to "Paid Other" insteaddisplay
remarketingDisplayNot recognizeddisplay
partnerAffiliatesNot in patternaffiliate
influencerAffiliatesNot recognizedaffiliate
bannersDisplayPlural not recognizedbanner (singular)
sponsoredAffiliates/DisplayNot recognizedaffiliate or display
PPCPaid SearchCase-sensitiveppc (lowercase)
EmailEmailCase-sensitiveemail (lowercase)
socailSocialTyposocial
emaiEmailTypoemail

😰 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

Channel-by-Channel Deep Dive

Email Channel

Recognized utm_medium values:

  • email ✅ (recommended)
  • e-mail ✅ (hyphenated version)

Regex pattern: Exact match ^(email|e-mail)$

Not recognized:

  • newsletter
  • mail
  • emails ❌ (plural)
  • e_mail ❌ (underscore)
  • Email ❌ (uppercase)
  • email-promotional ❌ (has suffix)
  • promo-email ❌ (has prefix)

Examples:

Code
✅ CORRECT
utm_source=mailchimp&utm_medium=email&utm_campaign=spring-sale

✅ CORRECT (hyphenated)
utm_source=newsletter&utm_medium=e-mail&utm_campaign=weekly-digest

❌ WRONG (creates Unassigned)
utm_source=mailchimp&utm_medium=newsletter&utm_campaign=spring-sale

❌ WRONG (case sensitive)
utm_source=mailchimp&utm_medium=Email&utm_campaign=spring-sale

Best practice: Always use utm_medium=email (no hyphen) for consistency.


Recognized utm_medium values:

  • cpc ✅ (most common)
  • ppc ✅ (alternative)
  • paidsearch ✅ (descriptive)

Regex pattern: Matches (cpc|ppc|paidsearch) anywhere in value

Additional pattern: Contains cp.* (anything starting with "cp")

Not recognized:

  • paid-search ❌ (hyphen version)
  • paid_search ❌ (underscore)
  • CPC or PPC ❌ (uppercase)
  • sem
  • search ❌ (alone)
  • google-ads

Examples:

Code
✅ CORRECT
utm_source=google&utm_medium=cpc&utm_campaign=brand-keywords

✅ CORRECT (alternative)
utm_source=bing&utm_medium=ppc&utm_campaign=competitor-keywords

✅ CORRECT (descriptive)
utm_source=google&utm_medium=paidsearch&utm_campaign=shopping

❌ WRONG (hyphen)
utm_source=google&utm_medium=paid-search&utm_campaign=brand

❌ WRONG (uppercase)
utm_source=google&utm_medium=CPC&utm_campaign=brand

Best practice: Use utm_medium=cpc for all paid search campaigns.


Recognized utm_medium values:

  • paidsocial ✅ (recommended, no hyphen)
  • Values matching pattern .*cp.* with social utm_source ✅

Regex pattern:

  1. Contains paidsocial OR
  2. Contains cp (like cpc) AND utm_source indicates social platform

Not recognized:

  • paid-social ⚠️ (depends on GA4 version—avoid)
  • paid_social ❌ (underscore)
  • social-paid
  • facebook ❌ (platform name)
  • linkedin ❌ (platform name)

Examples:

Code
✅ CORRECT
utm_source=facebook&utm_medium=paidsocial&utm_campaign=spring-promo

✅ CORRECT (alternative with cpc pattern)
utm_source=linkedin&utm_medium=cpc&utm_campaign=lead-gen

❌ WRONG (hyphen—risky)
utm_source=facebook&utm_medium=paid-social&utm_campaign=spring-promo

❌ WRONG (platform in medium)
utm_source=spring-campaign&utm_medium=facebook&utm_campaign=promo

❌ WRONG (underscore)
utm_source=facebook&utm_medium=paid_social&utm_campaign=spring-promo

Best practice: Use utm_medium=paidsocial (no hyphen, no underscore) to ensure recognition across all GA4 versions.


Organic Social Channel

Recognized utm_medium values:

  • social ✅ (most common)
  • social-media ✅ (alternative)
  • social-network ✅ (alternative)
  • Values containing social

Regex pattern: Contains social

Not recognized:

  • sm ❌ (abbreviation)
  • socail ❌ (typo)
  • socialmedia ❌ (no hyphen)

Examples:

Code
✅ CORRECT
utm_source=twitter&utm_medium=social&utm_campaign=product-launch

✅ CORRECT (alternative)
utm_source=linkedin&utm_medium=social-media&utm_campaign=thought-leadership

❌ WRONG (abbreviation)
utm_source=facebook&utm_medium=sm&utm_campaign=organic-post

❌ WRONG (typo)
utm_source=twitter&utm_medium=socail&utm_campaign=announcement

Note: For organic social, you often don't need UTM parameters at all (GA4 will classify as "Organic Social" based on referrer). Use UTMs only when you need campaign-level tracking.


Display Channel

Recognized utm_medium values:

  • display ✅ (recommended)
  • cpm ✅ (cost per thousand impressions)
  • banner ✅ (singular only)

Regex pattern: Exact match ^(display|cpm|banner)$

Not recognized:

  • banners ❌ (plural)
  • retargeting ❌ (goes to "Paid Other" instead)
  • remarketing
  • programmatic
  • native
  • display-ads ❌ (has suffix)

Examples:

Code
✅ CORRECT
utm_source=google-display&utm_medium=display&utm_campaign=retargeting-cart-abandoners

✅ CORRECT (alternative)
utm_source=programmatic-platform&utm_medium=cpm&utm_campaign=awareness

✅ CORRECT (banner ads)
utm_source=ad-network&utm_medium=banner&utm_campaign=homepage-placement

❌ WRONG (plural)
utm_source=ad-network&utm_medium=banners&utm_campaign=homepage

❌ WRONG (not recognized—goes to Paid Other)
utm_source=google&utm_medium=retargeting&utm_campaign=cart-abandoners

Best practice: Use utm_medium=display for all display advertising, including retargeting.


Affiliates Channel

Recognized utm_medium values:

  • affiliate ✅ (only this exact value works)

Regex pattern: Exact match ^affiliate$

Not recognized:

  • affiliates ❌ (plural)
  • partner
  • influencer
  • ambassador
  • referral-partner

Examples:

Code
✅ CORRECT
utm_source=impact&utm_medium=affiliate&utm_campaign=bloggers

✅ CORRECT
utm_source=shareasale&utm_medium=affiliate&utm_campaign=q1-2025

❌ WRONG (plural)
utm_source=cj&utm_medium=affiliates&utm_campaign=influencers

❌ WRONG (different term)
utm_source=partner-network&utm_medium=partner&utm_campaign=referrals

Best practice: Always use singular affiliate.


Additional Channels

SMS

  • Recognized: sms
  • Pattern: Exact match ^sms$
  • Not recognized: text, SMS (uppercase)

Audio

  • Recognized: audio
  • Pattern: Exact match ^audio$
  • Use for: Podcast ads, audio streaming platforms

Video

  • Recognized: video
  • Pattern: Contains video
  • Use for: YouTube organic, video platform placements
  • Recognized: cpv ✅ (cost per view)
  • Pattern: Contains cpv
  • Use for: YouTube ads, video advertising

Validation Testing: How to Verify utm_medium Works

Method 1: Realtime Testing (Fastest)

  1. Create test link with utm_medium:

    Code
    https://yoursite.com?utm_source=test&utm_medium=YOURVALUE&utm_campaign=test
    
  2. Click the link in incognito browser

  3. GA4 → Realtime (wait 30-60 seconds)

  4. Check "Traffic acquisition" card → Session default channel group

  5. If shows correct channel (not "Unassigned") → utm_medium works ✅

Method 2: Campaign URL Builder Preview

Use Google's Campaign URL Builder with GA4 preview:

  1. Go to ga-dev-tools.google/campaign-url-builder/
  2. Enter your utm_medium value
  3. Check preview (shows which channel GA4 will assign)

Note: Preview isn't always 100% accurate for complex patterns. Realtime testing is definitive.

Method 3: Regex Testing (Advanced)

Test your utm_medium against GA4 regex patterns:

Email pattern test:

Regex
^(email|e-mail)$

Paid Search pattern test:

Regex
^(cpc|ppc|paidsearch)$|cp.*

Social pattern test:

Regex
.*social.*

Display pattern test:

Regex
^(display|cpm|banner)$

Use regex101.com to test your utm_medium values against these patterns.

✅ 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

Quick Reference Cheat Sheet

Print this and pin it to your desk:

Code
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GA4-RECOGNIZED utm_medium VALUES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

✅ Email Campaigns
   utm_medium=email

✅ Paid Search (Google Ads, Bing Ads)
   utm_medium=cpc

✅ Paid Social (Facebook, LinkedIn, etc.)
   utm_medium=paidsocial

✅ Organic Social Posts
   utm_medium=social

✅ Display Ads & Retargeting
   utm_medium=display

✅ Affiliate Links
   utm_medium=affiliate

✅ SMS Campaigns
   utm_medium=sms

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
RULES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

1. Always lowercase
2. Use exact values above
3. No hyphens in compound words (paidsocial, not paid-social)
4. No typos (automated validation recommended)
5. Platform names go in utm_source, NOT utm_medium

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

FAQ

Why does "paid-social" (with hyphen) sometimes work?

GA4's channel grouping rules have evolved. In some GA4 versions, paid-social may match the Paid Social pattern because it contains "social." However, this isn't guaranteed across all GA4 implementations. Use paidsocial (no hyphen) to ensure consistent recognition.

Can I use multiple medium values in one URL?

No. utm_medium accepts only one value. If you need to track multiple dimensions, use utm_campaign or utm_content.

What if I need more granular tracking than these channels provide?

Use utm_campaign or utm_content for granularity:

  • utm_medium=email (channel)
  • utm_campaign=promotional-spring-sale (specific campaign)
  • utm_content=hero-banner (specific placement)

Does case matter?

Yes. GA4's regex patterns are case-sensitive and expect lowercase. Always use lowercase utm_medium values.

Can I create custom values and map them in GA4?

You can create custom channel groups in GA4 to map non-standard values, but:

  1. They don't work in standard reports (only Explorations)
  2. They must be manually created for every GA4 property
  3. They don't transfer to Looker Studio automatically

It's better to use GA4-recognized values from the start.

How often does Google update these patterns?

Rarely. GA4's Default Channel Grouping patterns have been stable since GA4 launched (2020). They're unlikely to change significantly.

What about GA4 360 vs standard GA4?

Channel grouping rules are identical between GA4 and GA4 360. Both use the same utm_medium recognition patterns.


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.