TL;DR, Quick Answer
8 min readUnassigned is the value Google Analytics uses when no channel rule matches the event data, which is a different failure from (not set), the placeholder Analytics uses when it received no information for a dimension at all. A session tagged utm_medium=newsletter has a perfectly populated medium and still lands in Unassigned, because Google's Email rule only matches email, e-mail, e_mail and e mail. The default channel group cannot be edited, so the two real fixes are to change the tag to a medium Google recognizes, or to build a custom channel group. Google publishes no acceptable percentage of Unassigned.
What is unassigned traffic in GA4?
Google defines unassigned traffic GA4 shows in one sentence: it is "the value Analytics uses when there are no other channel rules that match the event data." The Default channel group help article places that line directly beneath the full rule table, which is the right place for it. Unassigned is not a channel. It is the remainder left over after every channel rule has been tried and none has matched.
Google's troubleshooting article puts the same thing in operational terms: "the unassigned row appears when Analytics cannot categorize the source of traffic," and "there may be no predefined rule to categorize a traffic source if your traffic comes from a user-defined source or medium, or is (not set) because it is missing session or user identity information." Those are two separate causes with two separate fixes, and most teams only ever hunt for the second one.
How is Unassigned different from (not set) in GA4?
Unassigned means a value arrived and matched nothing. (not set) means no value arrived. Google's own definition of the second is "a placeholder name that Analytics uses when it hasn't received any information for a dimension," and the seven documented causes of (not set) are dimension-specific failures rather than channel logic.
| (not set) | Unassigned | |
|---|---|---|
| Scope | A single dimension | The channel group |
| Meaning | Analytics received no value | Analytics received a value that matched no rule |
| Appears in | Any dimension, including landing page and content group | Channel group dimensions only |
| Typical fix | Fix collection so the value is sent | Fix the tag value, or write a custom rule |
The two overlap in one direction only. Google's (not set) article states that when session source and medium report (not set), "your traffic will be shown as Unassigned in the default channel group as there are no channel rules that match the event data." So every (not set) source and medium becomes Unassigned. The reverse is false, and that asymmetry is the useful part: a row can sit in Unassigned with utm_source and utm_medium both populated, readable and correct by any human standard, simply because Google's rule list does not contain that medium.
A third placeholder is worth separating out while you are here. Google says "(other) is the value Analytics uses for an aggregated row due to cardinality limits." That one is not an attribution failure at all, it is a reporting limit.
Which utm_medium values does GA4 actually recognize?
Google publishes the complete manual traffic rule set, and it is shorter than most people assume. These are the rules that decide whether a hand-tagged link gets a channel or gets Unassigned.
| Channel | Google's rule for manual traffic |
|---|---|
| Direct | Source exactly matches (direct) AND Medium is one of (not set), (none) |
| Organic Search | Source matches Google's search site list OR Medium exactly matches organic |
| Organic Social | Source matches the social site list OR Medium is one of social, social-network, social-media, sm, social network, social media |
| Organic Video | Source matches the video site list OR Medium matches ^(.*video.*)$ |
| Referral | Medium is one of referral, app, link |
Source or Medium matches email|e-mail|e_mail|e mail | |
| Affiliates | Medium is affiliate |
| SMS | Source exactly matches sms OR Medium exactly matches sms |
| Audio | Medium exactly matches audio |
| AI Assistant | Medium exactly matches ai-assistant |
| Mobile Push Notifications | Medium ends with push, contains mobile or notification, OR Source exactly matches firebase |
| Display | Medium is one of display, banner, expandable, interstitial, cpm |
| Paid Other | Medium matches ^(.*cp.*|ppc|retargeting|paid.*)$ |
Google adds that "channel definitions aren't case sensitive and can't be edited," so capitalization is never the problem. The word is.
This is why utm_medium=newsletter produces Unassigned while utm_medium=email produces the Email channel. Newsletter is not in the Email pattern, is not referral, app or link, and does not match the paid regex. The same fate meets partner, qr, influencer, podcast, banner-ad and every other medium a marketer invents on a Friday afternoon. Fixing the tag is cheaper than fixing the report, and the UTM parameter conventions worth standardizing on are the ones in that table.

What tagging mistakes create unassigned traffic?
Google's troubleshooting article names four configuration causes, all of them affecting session or user identity rather than the campaign values themselves.
| Cause | What Google says happens |
|---|---|
Inconsistent cookie_prefix | "Users cannot be tied across sessions, and events cannot be included in sessions" |
Late automatic cross-domain linker | "User identity will suddenly change at that point," and short sessions get discarded |
Manual client_id or session_id | Events "dissociated from their original client and session IDs" cause "unexpected attribution issues" |
| Server-side tagging with mixed sends | A server-managed client ID is substituted for some measurements but not others |
Two ordering rules sit underneath all four. Google says to "provide all relevant configuration for the page as part of the config command (for Google tag) or the Google tag settings (for Google Tag Manager) as early as possible on the page, and before any events," and to "avoid firing custom events before the config command, or they will be batched with the session_start event." On custom identity its instruction is blunt: "Use user_id to provide a custom user identity. Don't use these APIs to modify or provide custom client or session IDs."
For server-side tagging in particular, Google warns that if you use the server-managed client ID option "you must ensure that all measurements for your stream flows through your server tag, and none is sent directly to Google servers." A half-migrated setup that sends some hits client-side and some through the container is the fastest way to manufacture an Unassigned spike, and it looks identical in the report to a broader GA4 data gap.
Why does the Unassigned share differ between reports?
Because there are three separate channel dimensions with three separate scopes and two different attribution models, and they do not have to agree.
| Dimension | Scope | Attribution |
|---|---|---|
| Default channel group | Event | The attribution model set for the property, data-driven by default |
| Session default channel group | Session | Paid and organic channels last click |
| First user default channel group | User | Paid and organic channels last click |
A session whose session_start event carries no usable source can be Unassigned at session scope while individual later events resolve differently, so the Traffic acquisition report and the User acquisition report can show different Unassigned totals for the same date range without either being wrong. Check which dimension a dashboard is built on before comparing two numbers.

Flowsery
Start Your 14-Day Free Trial
Real-time dashboard
Goal tracking
Cookie-free tracking
How do you get rid of unassigned traffic in GA4?
There are exactly two levers, and editing the default channel group is not one of them. Google states that "default channel groups can't be edited in Google Analytics" and explains why: "Google maintains a universal default for all users that can be kept current, accurate, and serve as a reference for the life of every property."
The first lever is the tag. Rename every medium to a value in the rule table above, then leave it alone. The second is a custom channel group, or the primary channel group, which Google describes as the editable default for your property. A custom rule can route utm_medium=newsletter into Email for your own reporting, though it will not change how the default channel group reads historical rows.
There is a third, slower option for source misclassification specifically. Google invites site owners to email googleanalytics-channelgrouprequests@google.com to have a search, social, video or shopping site added to its list, and says these requests are reviewed "at least once per year and often more frequently."
Google publishes no threshold for an acceptable share of Unassigned, and none of its help articles name a percentage. Measure your own share per week, split it by source and medium, and treat any medium outside the rule table as a tagging bug rather than a reporting mystery. Traffic that genuinely arrives with no referrer is a different problem, covered by the (direct) / (none) rules.
Frequently asked questions
What does Unassigned mean in GA4?
Unassigned is Google's label for traffic that matched no channel rule. Its Default channel group article defines it as "the value Analytics uses when there are no other channel rules that match the event data." It appears only in channel group dimensions, never as a source or medium value in its own right.
Is Unassigned the same as (not set) in GA4?
No. (not set) means Analytics received no value for a dimension, while Unassigned means it received a value that matched no channel rule. Google's documentation states that a (not set) session source and medium will be shown as Unassigned, but traffic with fully populated source and medium can also be Unassigned.
Why does my newsletter traffic show as Unassigned?
Because Google's Email rule matches only the patterns email, e-mail, e_mail and e mail in either source or medium. A link tagged utm_medium=newsletter matches no channel rule and falls through to Unassigned. Changing the medium to email moves it into the Email channel.
Can I edit the default channel group to remove Unassigned?
No. Google states that default channel groups cannot be edited, because it maintains one universal definition across all properties. You can create a custom channel group, or enable the primary channel group, which Google describes as the editable default channel group for your property.
What percentage of Unassigned traffic is normal in GA4?
Google does not publish one. No GA4 help article names an acceptable share of Unassigned, so the only meaningful benchmark is your own property's share over previous weeks. A sudden jump usually traces to a tagging or container change rather than to a change in visitor behavior.
Does server-side tagging cause Unassigned traffic?
It can, when the migration is partial. Google warns that if you use the server-managed client ID setting you must ensure all measurement for that stream flows through the server tag and none goes directly to Google servers. Running a server-side and a standalone client-side implementation on the same page for the same property produces exactly this failure.
Why do my Traffic acquisition and User acquisition reports show different Unassigned totals?
Traffic acquisition uses Session default channel group and User acquisition uses First user default channel group, both on paid and organic last click, so one report classifies each session's own source while the other classifies the user's first ever source. A user whose first visit landed in Unassigned stays Unassigned in User acquisition even after later sessions resolve to a real channel. Check which channel dimension a dashboard is built on before treating the two totals as comparable.
Does traffic with no referrer also count as Unassigned?
Traffic that arrives with no referrer is usually not Unassigned, because Google's Direct rule in the same table catches it. Direct requires the source to match (direct) exactly and the medium to be (not set) or (none), which differs from a value that arrived but matched no rule.
Is (other) the same as Unassigned in GA4?
(other) and Unassigned are different placeholders. (other) is the value Analytics uses for an aggregated row due to cardinality limits, a reporting limit rather than an attribution failure. Unassigned specifically means a channel rule failed to match campaign data, so the two problems call for different fixes.
How often does Google update its channel rule list?
Google reviews requests to add a search, social, video or shopping site to its channel rule list at least once per year, and often more frequently. Site owners can email googleanalytics-channelgrouprequests@google.com to request an addition. This only fixes source-based misclassification, not medium values like newsletter, which need a tag change or a custom channel group.
Was This Article Helpful?
Let us know what you think!
See us more often in Google
One click marks Flowsery as a preferred source, so our articles sit higher in your Top Stories, AI Mode, and AI Overviews.
Before you go...
Flowsery
Revenue-first analytics for your website
Track every visitor, source, and conversion in real time. Simple, powerful, and cookie-free.
Real-time dashboard
Goal tracking
Cookie-free tracking
Related Glossary Terms


Google Lists Seven Separate Causes of not set in GA4
Google's docs give not set in GA4 a different cause per dimension, from a missing session_start to an empty content_group. Here is each cause and its fix.


How to Build GA4 Calculated Metrics Inside a Five-Slot Quota
Google caps GA4 calculated metrics at 5 per standard property. Learn the formula syntax, the units, where they appear and what a formula can't use.


Setting Up GA4 Content Grouping With One Parameter
Set up GA4 content grouping with the content_group parameter in gtag or Tag Manager, read the Content group dimension and keep (not set) rows out.


How GA4 Channel Rules Settle utm_source vs utm_medium
Google defines utm_source vs utm_medium in one line each. GA4's channel rules decide which parameter actually sorts your traffic. Both, quoted exactly.


What direct / none in GA4 Means and How It Differs From (not set)
Seeing direct / none in GA4 means a session arrived with no referrer and no campaign tag. How it differs from (not set), Unassigned and the Direct channel.


Reading Engagement Rate in Google Analytics 4
GA4 reports engagement rate as engaged sessions divided by total sessions. A session counts as engaged at 10 seconds, one key event, or two page views.
Related Articles


Why Unique Visitors Meaning Changes From Tool to Tool
The unique visitors meaning depends on the tool: GA4 estimates it, Matomo refuses to compute it on long ranges, Adobe dedupes it across the whole report.


What the Numbers Say About Average Bounce Rate by Industry
Nine tracked industries return a documented average bounce rate by industry ranging from 35.76% to 48.38%, sourced from Databox data dated September 2024.


What Average Session Duration Actually Measures
In classic analytics, average session duration gives zero recorded time to the very last pageview of every session, which quietly drags the average down.

