Free tool by Clarvivo · no login
Upload a GA4 traffic acquisition export. We measure how much traffic GA4 could not classify, and tell you whether it behaves like real campaign traffic that was simply mistagged.
Export Reports → Acquisition → Traffic acquisition as CSV. Include the engagement columns so we can tell mistagged campaigns from junk.
This tool answers: Why are my sessions landing in Unassigned or (not set)?
Enable JavaScript to run the check — the diagnosis itself is free and needs no account.
Unassigned is the most misunderstood row in GA4, because people treat it as a variant of Direct. It is closer to the opposite.
Direct means GA4 found no campaign or referrer information at all. Unassigned means it found campaign information and could not match it to any channel rule. The data arrived intact and got binned.
That difference decides the entire fix. If you have a Direct problem, you go and look at redirects, consent ordering and whether anything persists the campaign. If you have an Unassigned problem, all of that is already working — your utm_medium is simply a value GA4's default channel grouping does not recognise, and no amount of redirect debugging will change it.
The good news is that Unassigned is the cheaper problem. The campaign data is real, it is arriving, and the fix is a naming convention rather than an engineering change.
These answer the questions this one tends to raise.
So you can trust the result — and your developer can verify it.
GA4 writes this as "Unassigned" in some reports and "(not set)" in others, and a property can show both at once. We combine them, because to the person reading the report they are the same failure.
Share of sessions alone is not a diagnosis. We compare the engagement of your Unassigned traffic against a session-weighted baseline built from your classified channels only — so a large problem cannot flatten the average it is measured against.
Unassigned traffic that engages like your classified channels is real marketing traffic that was mistagged — visitors you are paying for, sitting in a bucket you cannot report on. Unassigned traffic that engages far below baseline is more likely automated traffic carrying campaign-shaped parameters, and the fix is different.
The report tells you which bucket is larger and therefore where to start, because the two have completely different remedies and working on the wrong one is the usual way weeks get lost here.
Fixing the tagging stops it happening again. Clarvivo goes further by connecting acquisition to payment data directly, so a naming convention is not the only thing standing between a campaign and its revenue.
Get cleaner channel-to-revenue reporting