GA4 Unassigned traffic: what it means and how to fix it

Unassigned in GA4 means a visit matched none of Google's channel rules. The usual causes are made-up UTM mediums, missing tags, server-side or Measurement Protocol events without session data, and consent gaps. Here's how to find the cause and fix it.

Unassigned in Google Analytics 4 means a visit matched none of GA4’s default channel rules, so GA4 couldn’t put it in Paid Social, Email, Organic Search or any other channel. It isn’t a channel at all: it’s GA4 telling you the source and medium it received don’t fit its rules. The most common cause is UTM tags with a medium GA4 doesn’t recognise, such as utm_medium=facebook_ads or utm_medium=banner_ad.

A little Unassigned traffic is normal. If it’s more than a few per cent of sessions, or it’s hiding a paid channel, your channel reports are wrong and budget decisions based on them will be too.

How GA4 decides the channel

GA4 sorts every session into a channel using its default channel group: a fixed list of rules, checked in order, based mainly on the session’s source and medium (and, for a few channels, the campaign name). For example:

  • A recognised social site as the source (facebook, instagram, tiktok, linkedin) plus a paid medium gives Paid Social.
  • A search engine as the source plus a medium such as cpc gives Paid Search.
  • A medium of email gives Email.
  • A medium of referral gives Referral.

GA4 only treats a medium as paid when it contains cp (such as cpc or cpm), is ppc or retargeting, or starts with paid. If a session doesn’t match any rule, it lands in Unassigned.

The most common causes

1. Made-up UTM mediums

This is the cause in most accounts. Mediums like facebook_ads, sponsored, promo, banner_ad, influencer or qr match no rule, so GA4 can’t place them.

Fix: use mediums GA4 recognises: paid_social for paid social ads, cpc for search ads, display or cpm for display and programmatic, email, affiliate, referral or sms. Our free UTM builder shows the channel each link will land in and flags mediums GA4 won’t recognise, with a one-click fix.

2. A platform name in the wrong field

utm_medium=facebook puts the platform where the traffic type should be. GA4 reads facebook as a medium, finds no rule for it, and the visits drop into Unassigned or get counted as unpaid. The same happens with utm_source=meta: GA4 doesn’t list “meta” as a social site, so Meta ads land in Paid Other.

Fix: the platform goes in the source (facebook or instagram), the traffic type in the medium (paid_social).

3. Only one of source or medium set

A link with utm_source but no utm_medium (or the other way round) often can’t be matched. This is common on hand-built links in emails, QR codes and partner sites.

Fix: always set source, medium and campaign together, and keep them lowercase: GA4 treats “Facebook” and “facebook” as two different sources.

4. Server-side or Measurement Protocol events without session data

If events reach GA4 through a server-side tracking set-up or the Measurement Protocol without the session details GA4 needs (a session ID and the session’s source), GA4 can record the event but not attribute it. Offline conversions and CRM events sent this way are a frequent cause.

Fix: make sure server-side events carry the client ID and session ID from the visitor’s browser, and that your server container passes the original page and source details through. If events genuinely have no visit behind them, such as an offline sale, don’t expect GA4 to give them a channel.

5. Events before the session starts

Sometimes an event fires before GA4 has started the session, for example a tag that fires very early on the page, or a single-page app that sends events before the page view. Those events can show as Unassigned.

Fix: let the GA4 configuration (Google tag) load first, and fire custom events after the page view.

When someone declines cookies, GA4 receives only limited signals, and when a visitor moves between your domains without cross-domain tracking set up, the original source can be lost. Both can push sessions towards Unassigned or Direct.

Fix: check Consent Mode is set up properly (in our study of 98 UK Shopify brands, most had it switched on but wired up wrongly), and set up cross-domain measurement for every domain in the journey, such as a separate checkout or booking site. Our free tracking checker checks Consent Mode and click IDs on any page.

How to find what’s causing it

  1. In GA4, go to Reports → Acquisition → Traffic acquisition.
  2. Filter or look for Session default channel group = Unassigned.
  3. Add Session source / medium as a secondary dimension.

The source and medium values tell you which cause you’re dealing with: made-up mediums point to tagging, (not set) usually points to server-side, Measurement Protocol or consent gaps. For more detail, build an exploration with source, medium, campaign and landing page.

Fixing old data with a custom channel group

Fixing your tags only fixes data from now on. To make past reports readable, create a custom channel group in GA4 (Admin → Data display → Channel groups). Copy the default group and add rules for your own mediums, for example a “Paid Social” rule that also matches facebook_ads, or a “QR & print” channel for qr. Custom channel groups apply to historical data as well, so the fix shows up in past reports straight away.

Use it as a safety net, not a replacement for clean tagging: ad platforms, Looker Studio reports and other tools still read the raw source and medium.

Frequently asked questions

What does Unassigned mean in GA4?

It means a session’s source and medium matched none of the rules in GA4’s default channel group, so GA4 couldn’t put it in a channel such as Paid Social, Email or Organic Search. It’s a sign of tagging or tracking problems rather than a real traffic source.

Is some Unassigned traffic normal?

Yes, a small amount is normal, especially from offline events and edge cases. If it’s more than a few per cent of sessions, or a known campaign is showing up there, it’s worth fixing.

Why is my paid social traffic Unassigned?

Usually because the medium isn’t one GA4 treats as paid, such as facebook_ads or sponsored. Use source facebook (or instagram) with medium paid_social and GA4 will count it as Paid Social.

What is the difference between Unassigned and (not set)?

Unassigned is a channel grouping result: the session didn’t match a channel rule. (not set) is a missing value: GA4 didn’t receive a source, medium or other detail at all. (not set) sessions often end up in Unassigned, and usually point to server-side, Measurement Protocol or consent issues rather than UTM tagging.

Can I fix Unassigned traffic retroactively?

Not in the raw data, but a custom channel group applies to historical data, so you can reclassify past sessions in your reports. Fix the tagging as well, so new data comes in clean.

In short

Unassigned means GA4 couldn’t match a visit’s source and medium to a channel. Most of the time it’s made-up UTM mediums; the rest is usually missing tags, server-side or Measurement Protocol events without session data, or consent and cross-domain gaps. Fix the tagging going forward, and use a custom channel group to clean up past reports.

Sources

The documentation this guide is checked against. Last checked October 2026.


Want clean tracking without the guesswork? Build links with our free UTM builder, check your set-up with the tracking checker, or ask us to fix it as part of our measurement work. Let’s chat.

Perry · Founder, Brightpace

Before founding Brightpace, Perry was a Performance Marketing Manager at Ticketmaster, managing paid media at one of the world’s biggest ticketing companies, where on-sales, demand spikes and tight deadlines demand disciplined, commercially focused performance marketing. Brightpace brings that same in-house rigour to every client.