(not set) and Unassigned values
GA4 shows `(not set)` when no value was collected for a dimension at the time data was recorded, and `Unassigned` when traffic could not be matched to any defined channel group. These are not errors so much as honest placeholders — but each has distinct, documented causes worth diagnosing rather than ignoring. This page separates the placeholders and what produces them.
What this means
`(not set)` is GA4's placeholder for a dimension value that was not available when the event was processed — a landing page recorded before the page path was known, a campaign with no source, and so on. `(not provided)` historically marks organic-search queries withheld by the search engine.
`Unassigned` is different: the session was collected fine, but its source/medium combination did not match any rule in the active channel grouping, so GA4 could not place it in a channel.
Why each appears
Unassigned commonly results from custom or misspelled `utm_medium` values that no channel rule recognizes, from consent-driven gaps, or from sessions where the source was lost. (not set) commonly results from timing — the dimension simply had no value at collection — or from dimensions that do not apply to a given hit.
- (not set): no value collected for that dimension
- Unassigned: source/medium matched no channel rule
- Misspelled utm_medium is a leading Unassigned cause
How it appears in analytics and logs
(not set) means the dimension had no value when the hit landed; Unassigned means the session's source/medium did not match any channel-group rule. Both point to upstream collection or configuration gaps, not random noise.
Diagnostic use case
Tell apart (not set), (not provided), and Unassigned so you treat a tracking gap differently from an unclassifiable channel.
What WebmasterID can help detect
WebmasterID's first-party model reduces the channel-classification gaps that produce Unassigned by capturing campaign parameters at the source.
Common mistakes
- Treating Unassigned and (not set) as the same problem.
- Using non-standard utm_medium values that match no channel rule.
- Ignoring a rising (not set) share instead of tracing the gap.
Privacy and accuracy notes
These placeholders often appear because identifying detail was withheld (for example, organic-search keywords). They are privacy-preserving by design, not data to be reverse-engineered.
Related pages
- Direct traffic as a catch-all bucket
Direct traffic is often misread as 'people who typed the URL'. In practice it is a catch-all for any session with no usable referrer or campaign: untagged links, stripped referrers, app and messaging clicks, and redirects that lose data. When other attribution fails, direct swells. This page explains what really lands in the direct bucket and how to shrink it.
- URL parameters splitting page reports
When URLs carry query parameters — campaign tags, ad-click IDs, session tokens, sort and filter state — analytics often treats each variant as a different page. One article scatters across dozens of rows, no single line shows its true total, and cardinality balloons. This page explains how URL parameter noise fragments page reports and how normalising paths fixes it.
- Consent-driven data loss
Under consent frameworks, visitors who decline analytics cookies cause measurement to be blocked or sent in a cookieless, anonymized form. The lost data is not random — it skews toward privacy-conscious users and certain regions — so totals understate reality in a structured way. This page distinguishes consent-driven loss from ad-blocking and explains the modeling response, as education rather than legal advice.
- Attribution Analytics
Reduce unclassified traffic with clean source capture.
Sources and verification notes
Last reviewed 2026-06-24. Facts are checked against primary/official sources where available; uncertain specifics are marked “Data not yet verified” rather than guessed.