GA4 Unassigned Traffic: Why UTM Links Land There

By · · 8 min read

Key takeaways

  • Unassigned means the session's source/medium combination matched none of GA4's default channel group rules. For tagged links, the cause is almost always a non-standard utm_medium.
  • GA4 checks the rules in a fixed order and stops at the first match, so source, medium, and campaign name all matter.
  • Mediums that always work: email, social, cpc, referral, affiliate, display, audio, sms, organic. Common mediums that fail: newsletter, blast, facebook, qr, podcast, influencer.
  • Fix future links by mapping your vocabulary to GA4's rules. Fix existing reports with a custom channel group, which GA4 applies to historical data.

You tag every campaign link carefully, open GA4's Traffic acquisition report, and a big share of your campaign traffic sits in a channel called Unassigned. GA4 recorded those visits. It just couldn't work out which channel they belong to, and the cause is almost always in the UTM tags themselves.

This guide covers the exact rules GA4 uses to assign channels, the common utm_medium values that don't match any of them, and how to fix both future links and data you've already collected.

What "Unassigned" means

Every session in GA4 gets a default channel group: a label like Email, Paid Search, or Organic Social, derived from the session's source, medium, and campaign name. GA4 assigns it by checking an ordered list of rules. If a session gets through the whole list without matching, it's labeled Unassigned.

So Unassigned isn't a tracking failure. It's a classification failure, and for UTM-tagged traffic it almost always means utm_medium, or occasionally utm_source, has a value the rules don't recognize.

How GA4 assigns channels

GA4 evaluates the channels in this order and stops at the first match. This is how the default channel group is defined in Google's documentation, and the order matters more than most people realize:

# Channel Matches when…
1 Direct source is (direct) and medium is (none) or (not set)
2 Cross-network campaign name contains cross-network
3 Paid Shopping (source is a shopping site or campaign name matches the shopping pattern) and medium is paid
4 Paid Search source is a search engine and medium is paid
5 Paid Social source is a social site and medium is paid
6 Paid Video source is a video site and medium is paid
7 Display medium is display, banner, expandable, interstitial, or cpm
8 Paid Other medium is paid (and nothing above matched)
9 Organic Shopping source is a shopping site or campaign name matches the shopping pattern
10 Organic Social source is a social site or medium is social, social-network, social-media, sm, social network, or social media
11 Organic Video source is a video site or medium contains video
12 Organic Search source is a search engine or medium is organic
13 Referral medium is referral, app, or link
14 Email source or medium is email, e-mail, e_mail, or e mail
15 Affiliates medium is affiliate
16 Audio medium is audio
17 SMS source or medium is sms
18 Mobile Push Notifications medium ends with push, or contains mobile or notification, or source is firebase
— Unassigned nothing above matched

Two patterns do a lot of the work:

  • "Medium is paid" means the medium matches the regular expression ^(.*cp.*|ppc|retargeting|paid.*)$: anything containing cp (cpc, cpm, cpv, cpa), exactly ppc or retargeting, or anything starting with paid (paid, paid-social, paid_search).
  • The shopping campaign pattern is ^(.*(([^a-df-z]|^)shop|shopping).*)$. It matches campaign names containing shopping, or shop at the start of a word (summer-shop, eshop). It deliberately doesn't match words like workshop.

"Search engine", "social site", "video site", and "shopping site" refer to lists of known domains that Google maintains, such as google, bing, and duckduckgo for search, or facebook, instagram, linkedin, and reddit for social. Google updates these lists over time, and you can view the current rules in GA4 under Admin → Data display → Channel groups.

Why order matters: three surprises

1. The source can override the medium. utm_source=google&utm_medium=email is classified as Organic Search, not Email. Rule 12 ("source is a search engine") comes before rule 14 (Email). If you put your newsletter link inside a Google-branded asset and tag the source as google, GA4 files it under search.

2. cpm isn't always Display. cpm contains cp, so it counts as a paid medium. With utm_source=facebook, rule 5 catches it first and the session becomes Paid Social. It only reaches Display (rule 7) when the source isn't a known search, social, or video site.

3. Paid traffic from unknown sources isn't lost, it's "Paid Other." utm_source=partner-blog&utm_medium=cpc matches no site list, so it falls through to rule 8. That's a valid channel, but if you expected Paid Search, check the source spelling. GA4 matches sources against a list of known names, so a home-grown label like adwords isn't recognized as a search engine the way google is.

The utm_medium values that end up Unassigned

These are the mistakes we see most often in real campaign links, and what to use instead:

You used GA4 channel Use instead Result
utm_medium=newsletter Unassigned utm_medium=email, newsletter name in utm_source Email
utm_medium=blast, mailchimp, edm Unassigned utm_medium=email Email
utm_medium=facebook Unassigned* utm_source=facebook&utm_medium=social Organic Social
utm_medium=organic-social Unassigned* utm_medium=social Organic Social
utm_medium=influencer Unassigned* utm_medium=social or affiliate Organic Social or Affiliates
utm_medium=podcast Unassigned utm_medium=audio Audio
utm_medium=qr Unassigned No default channel fits. See below. —
utm_medium=partner Unassigned utm_medium=referral or affiliate Referral or Affiliates
utm_medium=affiliates Unassigned utm_medium=affiliate (singular) Affiliates
utm_medium=ad, ads, banner-ad Unassigned cpc, cpm, or display Paid channel or Display
(source set, medium empty) Unassigned Always set a medium —

* Unless utm_source is a recognized social site. utm_source=instagram&utm_medium=influencer is still classified as Organic Social, because rule 10 matches on the source alone.

Note affiliates versus affiliate. The Affiliates rule is an exact match, so one extra letter sends the traffic to Unassigned.

QR codes, print, and offline media don't have a default channel. You have two reasonable options:

  1. Tag them as the channel the code lives in. A QR code on a direct-mail flyer is closest to utm_medium=referral with a descriptive source like spring-flyer.
  2. Keep utm_medium=qr for clarity and add a custom channel group rule (next section) that maps it to a channel you define, such as "Offline".

How to find your Unassigned sources

  1. Open Reports → Acquisition → Traffic acquisition.
  2. Make sure the primary dimension is Session default channel group.
  3. Click the + next to the dimension name and add Session source / medium as a secondary dimension.
  4. Filter or search for Unassigned.

Each row is now a source/medium pair that matched no rule, which is your fix list. Sort by sessions and fix from the top.

For a tagged link you're unsure about, paste it into the URL parser to check the actual parameter values. Stray spaces, %20, or a duplicated utm_medium are easy to miss in a long link.

Fixing it

Write your team's allowed utm_medium values down, and check that each one matches a default channel. A compact vocabulary that maps cleanly:

Channel you mean utm_medium utm_source examples
Newsletter / lifecycle email email weekly-digest, onboarding, mailchimp
Organic social posts social linkedin, instagram, x, reddit
Paid social ads paid-social or cpc facebook, linkedin, tiktok
Paid search cpc google, bing
Display / programmatic display network name
Affiliate partners affiliate partner name
Partner or guest-post links referral site name
Podcast sponsorships audio show name
Text messages sms twilio, campaign name

The UTM naming conventions guide covers how to keep a team on one vocabulary. The UTM builder on this site shows a predicted GA4 channel as you type, using the rules above, so you can catch an Unassigned link before it goes out.

Past data: create a custom channel group

Changing a link doesn't change sessions already recorded. Those keep the source and medium they arrived with. To reclassify them in reports:

  1. Go to Admin → Data display → Channel groups and click Create new channel group. (You can copy the default group as a starting point.)
  2. Add rules for your non-standard values. For example, create a channel Email with Medium exactly matches newsletter or Medium exactly matches blast, and a channel Offline with Medium exactly matches qr.
  3. Move each new rule above the rules it might collide with. Order still means first match wins.
  4. Save, then pick your custom group as the primary dimension in Traffic acquisition or Explorations.

Custom channel groups apply to historical data, so this fixes reports retroactively. The default channel group itself can't be edited, which is why you copy it.

Other causes, briefly

If Unassigned sessions show (not set) as source and medium rather than a UTM value, the cause isn't your tags. Typical culprits are events sent before the session is established, server-side or Measurement Protocol hits that lack session information, and consent-mode setups that drop attribution data. Those need a tagging audit, not a naming fix.

Bonus: the newer GA4 UTM parameters

Beyond the classic five, GA4 recognizes four more campaign parameters:

Parameter What it carries Example
utm_id A campaign ID, used to join with imported cost data utm_id=spring26
utm_source_platform The buying platform that directs traffic utm_source_platform=dv360
utm_creative_format The creative type utm_creative_format=video
utm_marketing_tactic The targeting tactic utm_marketing_tactic=remarketing

utm_id is the one most teams should adopt: it's how GA4 matches sessions to campaign data you import, such as costs from non-Google ad platforms. The other three are optional, and depending on your property, they may not be available as reporting dimensions yet. Check before you build a convention around them.

None of these four affect channel assignment, which is decided only by source, medium, and campaign name. You can add them to any link built with the UTM builder by appending them to the generated URL. They're ordinary query parameters, as the complete UTM guide explains.

Frequently asked questions

What does Unassigned mean in GA4?
Unassigned is GA4's catch-all channel for sessions whose traffic source didn't match any rule in the default channel group. It isn't an error in data collection: the visit was recorded, but GA4 couldn't decide which channel it belongs to, usually because utm_medium has a value the rules don't recognize.
Which utm_medium should I use for a newsletter?
Use utm_medium=email and put the newsletter's name in utm_source, for example utm_source=weekly-digest&utm_medium=email. GA4's Email channel matches when either source or medium is exactly email, e-mail, e_mail, or e mail. A medium of newsletter matches nothing and lands in Unassigned.
Can I fix Unassigned traffic that GA4 already recorded?
Not by changing the links, because past sessions keep the source and medium they arrived with. You can reclassify them in reports by creating a custom channel group under Admin → Data display → Channel groups. Custom channel groups apply to historical data, so a rule like 'medium exactly matches newsletter → Email' fixes past reports too.
Is utm_medium case-sensitive in GA4?
GA4 stores and reports values exactly as they arrive, so Email and email appear as separate rows. Use lowercase for every UTM value. It keeps reports clean and matches the channel rules exactly as Google documents them.
Does utm_source=facebook with utm_medium=cpc count as Paid Social?
Yes. Paid Social requires a source on GA4's list of social sites and a medium matching the paid pattern ^(.*cp.*|ppc|retargeting|paid.*)$, which cpc does. The same medium with a search engine source, like google, is classified as Paid Search instead.