troubleshootingUpdated 2025

Why Your GA4 Traffic Shows as 'Unassigned' (And How to Fix It)

20% of your traffic stuck in 'Unassigned' channel? Here's why GA4 doesn't recognize your utm_medium values and the exact fix.

8 min readtroubleshooting

You just launched a $15,000 email campaign.

You check GA4 under Traffic Acquisition.

20% of your traffic is sitting in "Unassigned."

Not in "Email." Not in "Direct." In a black hole called "Unassigned" where you can't attribute performance, can't measure ROI, and can't make informed decisions about where to invest next month's budget.

This isn't a GA4 bug. It's a utm_medium problem—and it's destroying your channel attribution.

Here's what's happening and how to fix it in 5 minutes.

🚨 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

What is the "Unassigned" Channel in GA4?

"Unassigned" is GA4's catch-all bucket for traffic it can't classify.

When GA4 receives a session, it runs traffic through its Default Channel Grouping logic to assign it to a channel:

  • Organic Search - Traffic from Google, Bing with no paid parameters
  • Paid Search - Traffic with utm_medium = cpc, ppc, paidsearch
  • Email - Traffic with utm_medium = email
  • Social - Traffic with utm_medium containing "social"
  • Direct - No referrer, no UTM parameters
  • Referral - External site referrer without UTM parameters
  • Display - Traffic with utm_medium = display, banner, cpm
  • Affiliate - Traffic with utm_medium = affiliate

If your traffic doesn't match any of these patterns, GA4 dumps it into "Unassigned."

Why "Unassigned" Destroys Your Attribution

Problem 1: Budget Misallocation

You're running campaigns across 5 channels:

  • Email: $5,000/month
  • Paid Search: $8,000/month
  • Social: $4,000/month
  • Display: $3,000/month
  • Affiliates: $2,000/month

GA4 shows:

  • Email: 3,200 sessions
  • Paid Search: 5,400 sessions
  • Social: 2,100 sessions
  • Display: 1,800 sessions
  • Affiliates: 900 sessions
  • Unassigned: 4,600 sessions (25% of total)

Questions you can't answer:

  • Which channel is the 4,600 "Unassigned" traffic from?
  • Is email actually underperforming or is its traffic hidden in "Unassigned"?
  • Should you increase social budget or is social traffic misclassified?

You're flying blind on $5,500+ worth of marketing spend.

Problem 2: Broken Conversion Attribution

"Unassigned" traffic converts. But GA4 can't tell you which channel drove those conversions.

Example:

  • Total conversions: 280
  • Email: 45 conversions
  • Paid Search: 112 conversions
  • Unassigned: 68 conversions

You know 68 conversions happened. You don't know from which $22,000/month campaigns.

Problem 3: False Performance Signals

If 30% of your email traffic ends up in "Unassigned," your Email channel metrics look worse than reality:

What GA4 shows (with Unassigned traffic):

  • Email sessions: 2,100
  • Email conversions: 32
  • Email conversion rate: 1.52%

What it actually is:

  • Real email sessions: 3,000 (900 trapped in Unassigned)
  • Real email conversions: 54 (22 trapped in Unassigned)
  • Real email conversion rate: 1.80%

You think email underperforms. Reality: email is your best channel.

😰 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: $18,000 Budget Nearly Shifted to Wrong Channel

Client: B2B SaaS company Marketing budget: $32,000/month across 4 channels

GA4 Traffic Acquisition report (before fix):

  • Paid Search: 6,200 sessions, 124 conversions, $12,000 spent
  • Email: 3,100 sessions, 52 conversions, $6,000 spent
  • Social: 2,400 sessions, 31 conversions, $8,000 spent
  • Display: 1,900 sessions, 19 conversions, $6,000 spent
  • Unassigned: 4,100 sessions, 67 conversions

Client's plan: Cut display by 50%, shift $3,000 to paid search.

We investigated the "Unassigned" traffic.

Root cause: Email campaigns used utm_medium=newsletter (not recognized by GA4).

After fixing utm_medium to "email":

  • Email: 7,200 sessions (was 3,100), 119 conversions (was 52)
  • Unassigned: 340 sessions (was 4,100)

Revelation: Email was actually the best performing channel at 1.65% conversion rate vs paid search's 2.0%.

New decision: Increase email budget by $4,000/month, maintain display spend.

Result over 6 months: Email generated $240,000 in new ARR. Would have cut the wrong channel based on "Unassigned" traffic.

Why GA4 Creates "Unassigned" Traffic

Cause 1: Non-Standard utm_medium Values

GA4's channel grouping logic uses regex pattern matching on utm_medium.

These utm_medium values create "Unassigned" traffic:

  • newsletter (should be email)
  • paid-social (should be social or paidsocial)
  • banner is recognized, but banners (plural) is not
  • cpc-display (should be cpc OR display, not both)
  • retargeting (should be display or cpc depending on platform)
  • partner-referral (should be affiliate or referral)
  • sponsored (not recognized—use affiliate or cpc)
  • content-syndication (not recognized—use display or cpm)

GA4 doesn't have a "close enough" match. Either utm_medium matches the regex pattern or traffic goes to "Unassigned."

Cause 2: Creative utm_medium Naming

Marketers often create descriptive utm_medium values:

  • utm_medium=email-promotional
  • utm_medium=email-transactional
  • utm_medium=email-onboarding

Intent: Segment email campaigns by type.

Problem: GA4 doesn't recognize any of these as "email" because the regex pattern requires utm_medium to EXACTLY match email or e-mail.

Result: All three end up in "Unassigned."

Cause 3: Campaign-Specific Medium Values

Some teams put campaign context into utm_medium:

  • utm_medium=black-friday-email
  • utm_medium=spring-promo-social
  • utm_medium=webinar-paid-search

GA4 sees:

  • black-friday-email → Not "email" → Unassigned
  • spring-promo-social → Not "social" → Unassigned
  • webinar-paid-search → Not "cpc" or "ppc" → Unassigned

Cause 4: Typos and Inconsistency

  • utm_medium=emai (missing "l")
  • utm_medium=emial (transposed letters)
  • utm_medium=socail (typo)
  • utm_medium=PPC (uppercase—doesn't match regex)

Every typo creates "Unassigned" traffic.

How to Check If You Have This Problem

Quick Test (2 minutes)

  1. GA4 → Reports → Traffic Acquisition
  2. Check "Session default channel group" dimension
  3. Look for "Unassigned" row
  4. Note percentage of total sessions

Healthy threshold: < 2% Unassigned (minor edge cases) Warning threshold: 5-10% Unassigned (review utm_medium values) Critical threshold: > 10% Unassigned (major attribution problem)

Diagnostic Test (5 minutes)

  1. GA4 → Explore → Free Form
  2. Add dimension: Session manual medium (shows actual utm_medium values)
  3. Add dimension: Session default channel group
  4. Add metric: Sessions
  5. Filter to: Session default channel group = "Unassigned"

You'll see exactly which utm_medium values are creating "Unassigned" traffic.

Example output:

Code
utm_medium          | Channel Group | Sessions
--------------------|---------------|----------
newsletter          | Unassigned    | 2,340
paid-social         | Unassigned    | 1,890
sponsored-content   | Unassigned    | 1,120
retargeting         | Unassigned    | 780
partner             | Unassigned    | 450

The Complete Fix (Step-by-Step)

Step 1: Identify All Problematic utm_medium Values

Run the diagnostic test above to get your complete list.

Export the list:

  1. Click "Share" → "Download CSV"
  2. Sort by Sessions (highest to lowest)
  3. Focus on top utm_medium values causing most Unassigned traffic

Step 2: Map to GA4-Recognized Values

For each problematic utm_medium, choose the correct GA4-recognized value:

GA4-recognized utm_medium values:

Use ThisFor This Traffic Type
emailAll email campaigns
cpcPaid search ads (Google, Bing, etc.)
ppcAlternative for paid search
paidsearchAlternative for paid search
socialOrganic social posts
paidsocialPaid social ads
displayDisplay banner ads
cpmAlternative for display ads
affiliateAffiliate links
referralPartner referral links

Mapping examples:

  • newsletteremail
  • paid-socialpaidsocial or social (depending on whether paid)
  • sponsored-contentaffiliate or display
  • retargetingdisplay
  • partneraffiliate or referral
  • banner-adsdisplay

For each campaign type:

  1. Email platforms:

    • Update email templates
    • Change utm_medium=newsletter to utm_medium=email
    • Test one email before deploying to all templates
  2. Social media schedulers:

    • Update link templates
    • Change utm_medium=paid-social to utm_medium=paidsocial
    • Apply to all future scheduled posts
  3. Ad platforms:

    • Update URL parameters in ad destination URLs
    • Change utm_medium=retargeting to utm_medium=display
    • Test one ad to verify GA4 receives correct channel classification
  4. Partner/Affiliate links:

    • Update partner link templates
    • Change utm_medium=partner to utm_medium=affiliate
    • Send updated link guidelines to partners

Step 4: Document Standard utm_medium Values

Create a utm_medium reference guide for your team:

Markdown
# UTM Medium Standards
 
## Approved utm_medium Values
 
- **email** - All email campaigns (newsletters, promotional, transactional)
- **paidsocial** - Paid social ads (Facebook, LinkedIn, TikTok, etc.)
- **cpc** - Paid search ads (Google Ads, Microsoft Ads)
- **display** - Display ads and retargeting
- **affiliate** - Affiliate and partner links
- **social** - Organic social posts
 
## Examples
 
✅ utm_medium=email (correct)
❌ utm_medium=newsletter (wrong - creates Unassigned)
 
✅ utm_medium=paidsocial (correct)
❌ utm_medium=paid-social (wrong - creates Unassigned)
 
✅ utm_medium=cpc (correct)
❌ utm_medium=PPC (wrong - case sensitive)

Step 5: Verify in GA4 (24-48 Hours Later)

  1. GA4 → Reports → Traffic Acquisition
  2. Check "Session default channel group"
  3. "Unassigned" should drop significantly (50-90% reduction)
  4. Verify channels now show correct traffic volumes

Prevention: 5 Rules to Avoid "Unassigned" Traffic

Rule 1: Use Only GA4-Recognized utm_medium Values

GA4-recognized values:

  • email
  • cpc / ppc / paidsearch
  • social / paidsocial
  • display / cpm / banner
  • affiliate
  • (organic) / organic-search / organic-social / organic-video
  • referral
  • sms
  • audio
  • video

If you need to segment further, use utm_campaign or utm_content—NOT utm_medium.

Rule 2: Always Lowercase

GA4's regex patterns are case-sensitive and expect lowercase:

  • utm_medium=email
  • utm_medium=Email (creates Unassigned)
  • utm_medium=EMAIL (creates Unassigned)

Rule 3: Test Every New utm_medium Value

Before launching a campaign with a new utm_medium value:

  1. Create test link with new utm_medium
  2. Click the link
  3. Wait 24 hours
  4. GA4 → Realtime → Check channel classification
  5. If "Unassigned" → change utm_medium

Rule 4: Use Campaign Details in utm_campaign, Not utm_medium

Wrong approach:

Code
utm_medium=email-black-friday
utm_medium=email-spring-sale
utm_medium=email-welcome-series

Right approach:

Code
utm_medium=email&utm_campaign=black-friday
utm_medium=email&utm_campaign=spring-sale
utm_medium=email&utm_campaign=welcome-series

utm_medium = channel type (stable, GA4-recognized) utm_campaign = campaign name (changes frequently)

Rule 5: Quarterly Audit

Every 3 months:

  1. Run the diagnostic test (GA4 Explore → Unassigned traffic by utm_medium)
  2. Check for new problematic utm_medium values
  3. Update campaign links
  4. Verify "Unassigned" < 2% of total 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

FAQ

Will fixing utm_medium affect historical data?

No. Historical data remains classified as "Unassigned." The fix only improves future traffic classification. Consider adding a GA4 annotation marking when you implemented the fix.

Can I create custom channel groups instead?

Yes. GA4 allows custom channel groups where you can define your own rules. However, custom channel groups don't appear in standard reports and require manual setup for every user. Fixing utm_medium to use GA4-recognized values is simpler and works across all reports automatically.

What if I need to track email types (promotional vs transactional)?

Use utm_campaign or utm_content for segmentation:

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

Does this apply to GA4 vs Universal Analytics?

Yes and no. Universal Analytics also had channel grouping rules, but they were slightly different. If you're still using UA, check your "Unassigned" traffic there too. The principles are the same—use standard medium values.

What about traffic with NO utm_medium?

If traffic has utm_source but no utm_medium, GA4 may also classify it as "Unassigned" depending on other parameters. Always include utm_medium in campaign links.

Can "Unassigned" traffic be from bot traffic or spam?

Yes. Some "Unassigned" traffic may be from bots, scrapers, or spam referrals that don't match GA4's channel rules. Use GA4's data filters to exclude known bot traffic, but if you have > 10% Unassigned from legitimate campaigns, you have a utm_medium problem.


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.