Unassigned, Direct, (not set) and (other): the difference
Updated by the UTM Builder team at Limner.
All four show up when something is missing, but each one is missing something different. Mixing them up leads you to fix the wrong problem.
Direct: the visit came with no source
Direct is the channel for visits with source (direct) and medium (none). Google’s help docs list the causes: links without UTMs, redirects that strip the parameters, URL shorteners, links in offline documents such as PDF and Word files, people typing the address, and ad blockers. In short, GA4 doesn’t know where the person came from.
First step: tag every link you control with UTMs and check that the URL arrives intact after any redirects.
(not set): a dimension is missing its value
Google describes (not set) as a placeholder used when GA4 didn’t receive information for a dimension. For campaigns, the classic case is an incomplete UTM: the link has utm_source but no utm_medium, so the medium comes through as (not set). It also shows up when the session has no session_start event, because of a misconfigured tag trigger or a consent mode error, and in Google Ads reports when the account isn’t linked or auto-tagging is turned off.
First step: always use source, medium and campaign, and review your tag and consent setup.
Unassigned: the value arrived, but no rule fits
By Google’s definition, Unassigned is the value used when no channel rule matches the event data. Source and medium are there, but the Default channel group has nowhere to put them. That’s what happens with utm_medium=qr, utm_medium=whatsapp or utm_medium=mail. The same help page about (not set) notes that a (not set) source and medium also end up in Unassigned.
First step: use a medium GA4 recognizes, such as email, social, cpc or referral, or create a custom channel group, which also applies to historical data.
(other): too many rows in the report
(other) is the row that groups values when a report goes over its cardinality limits, that is, when there are too many unique values. It doesn’t mean your UTM is wrong. During the day, before the daily data is processed, the limit can be stricter and the row shows up more often.
First step: cut down on unique values. A different ID per click or per person inside a UTM is a recipe for (other).
Quick reference
| Value | What it means |
|---|---|
| Direct | Arrived with no source: no UTM, no referrer, or the URL got cut along the way. |
| (not set) | A dimension has no value: a missing parameter, the tag or consent. |
| Unassigned | Source and medium exist, but they don’t match any default channel. |
| (other) | Too many unique values, grouped into a single row. |