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.
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.
Table of contents
- What is the "Unassigned" Channel in GA4?
- Why "Unassigned" Destroys Your Attribution
- Problem 1: Budget Misallocation
- Problem 2: Broken Conversion Attribution
- Problem 3: False Performance Signals
- Real Example: $18,000 Budget Nearly Shifted to Wrong Channel
- Why GA4 Creates "Unassigned" Traffic
- Cause 1: Non-Standard utmmedium Values
- Cause 2: Creative utmmedium Naming
- Cause 3: Campaign-Specific Medium Values
- Cause 4: Typos and Inconsistency
- How to Check If You Have This Problem
- Quick Test (2 minutes)
- Diagnostic Test (5 minutes)
- The Complete Fix (Step-by-Step)
- Step 1: Identify All Problematic utmmedium Values
- Step 2: Map to GA4-Recognized Values
- Step 3: Update All Active Campaign Links
- Step 4: Document Standard utmmedium Values
- Step 5: Verify in GA4 (24-48 Hours Later)
- Prevention: 5 Rules to Avoid "Unassigned" Traffic
- Rule 1: Use Only GA4-Recognized utmmedium Values
- Rule 2: Always Lowercase
- Rule 3: Test Every New utmmedium Value
- Rule 4: Use Campaign Details in utmcampaign, Not utmmedium
- Rule 5: Quarterly Audit
- FAQ
- Will fixing utmmedium affect historical data?
- Can I create custom channel groups instead?
- What if I need to track email types (promotional vs transactional)?
- Does this apply to GA4 vs Universal Analytics?
- What about traffic with NO utmmedium?
- Can "Unassigned" traffic be from bot traffic or spam?
- Related Issues
🚨 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
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 beemail)paid-social(should besocialorpaidsocial)banneris recognized, butbanners(plural) is notcpc-display(should becpcORdisplay, not both)retargeting(should bedisplayorcpcdepending on platform)partner-referral(should beaffiliateorreferral)sponsored(not recognized—useaffiliateorcpc)content-syndication(not recognized—usedisplayorcpm)
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-promotionalutm_medium=email-transactionalutm_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-emailutm_medium=spring-promo-socialutm_medium=webinar-paid-search
GA4 sees:
black-friday-email→ Not "email" → Unassignedspring-promo-social→ Not "social" → Unassignedwebinar-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)
- GA4 → Reports → Traffic Acquisition
- Check "Session default channel group" dimension
- Look for "Unassigned" row
- 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)
- GA4 → Explore → Free Form
- Add dimension: Session manual medium (shows actual utm_medium values)
- Add dimension: Session default channel group
- Add metric: Sessions
- Filter to: Session default channel group = "Unassigned"
You'll see exactly which utm_medium values are creating "Unassigned" traffic.
Example output:
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:
- Click "Share" → "Download CSV"
- Sort by Sessions (highest to lowest)
- 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 This | For This Traffic Type |
|---|---|
email | All email campaigns |
cpc | Paid search ads (Google, Bing, etc.) |
ppc | Alternative for paid search |
paidsearch | Alternative for paid search |
social | Organic social posts |
paidsocial | Paid social ads |
display | Display banner ads |
cpm | Alternative for display ads |
affiliate | Affiliate links |
referral | Partner referral links |
Mapping examples:
newsletter→emailpaid-social→paidsocialorsocial(depending on whether paid)sponsored-content→affiliateordisplayretargeting→displaypartner→affiliateorreferralbanner-ads→display
Step 3: Update All Active Campaign Links
For each campaign type:
-
Email platforms:
- Update email templates
- Change
utm_medium=newslettertoutm_medium=email - Test one email before deploying to all templates
-
Social media schedulers:
- Update link templates
- Change
utm_medium=paid-socialtoutm_medium=paidsocial - Apply to all future scheduled posts
-
Ad platforms:
- Update URL parameters in ad destination URLs
- Change
utm_medium=retargetingtoutm_medium=display - Test one ad to verify GA4 receives correct channel classification
-
Partner/Affiliate links:
- Update partner link templates
- Change
utm_medium=partnertoutm_medium=affiliate - Send updated link guidelines to partners
Step 4: Document Standard utm_medium Values
Create a utm_medium reference guide for your team:
# 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)
- GA4 → Reports → Traffic Acquisition
- Check "Session default channel group"
- "Unassigned" should drop significantly (50-90% reduction)
- 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:
- 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:
- Create test link with new utm_medium
- Click the link
- Wait 24 hours
- GA4 → Realtime → Check channel classification
- If "Unassigned" → change utm_medium
Rule 4: Use Campaign Details in utm_campaign, Not utm_medium
Wrong approach:
utm_medium=email-black-friday
utm_medium=email-spring-sale
utm_medium=email-welcome-series
Right approach:
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:
- Run the diagnostic test (GA4 Explore → Unassigned traffic by utm_medium)
- Check for new problematic utm_medium values
- Update campaign links
- 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
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-saleutm_medium=email&utm_campaign=transactional-receiptutm_medium=email&utm_content=promotionalorutm_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 Issues
- Uppercase utm_medium - CPC vs cpc creates Unassigned → Fix Case Sensitivity
- Typos in utm_medium - emial, socail create Unassigned → Data Fragmentation
- Full list of GA4-recognized values - Complete Medium Reference