What does Unassigned mean in GA4?
GA4 assigns every session to a channel based on source, medium and campaign, such as Organic Search, Paid Search or Email. The rules for this are fixed and cannot be changed in the default channel group. According to Google’s help, Unassigned is the value used when none of these rules matches the data.
So Unassigned does not describe an origin. It shows that GA4 could not classify where visitors came from. Four values are often confused:
| Value | Meaning | Channel |
|---|---|---|
| Unassigned | no channel rule matches | Unassigned |
| (not set) | GA4 has not received any information for this dimension | for session source / medium: Unassigned |
| (direct) / (none) | a visit with no recognisable origin, e.g. from a bookmark | Direct |
| (data not available) | origin not yet processed, e.g. for Google Ads clicks | Cross-network |
Cause 1: events fire before the Google tag
Google recommends initialising the Google tag before any events are sent. If custom events are sent before the configuration, GA4 batches them with the session_start event, according to Google, and the page view and later events can no longer be associated with that session. This can result in “(not set)” for source and medium, and therefore in Unassigned.
In Google Tag Manager, this typically happens when the Google tag fires on “Page View” and a GA4 event tag fires on the same or an earlier trigger. Google’s fix is to move the Google tag to the “Initialization – All Pages” trigger:
- In Tag Manager, open the Google tag under Tags.
- Under Triggering, remove the existing trigger and select “Initialization – All Pages”.
- Keep the consent tool and the consent mode defaults on “Consent Initialization – All Pages”. According to Google, this is the only trigger that fires even earlier.
- Move GA4 event tags to later triggers, such as Page View, DOM Ready, Window Loaded or a custom event.
- In preview mode, check that the Google tag fires in the “Initialization” step and before every event tag.
Since 2024, for most properties GA4 no longer sends events at all if there is no Google tag on the page. Today, the risk therefore lies mainly in the order of tags on the same page.
Cause 2: UTM values without a matching channel rule
The second large group is links with UTM parameters whose values GA4 cannot match to a rule. The channel rules ignore upper and lower case, and they expect specific terms. Examples based on the rules of the default channel group:
| utm_medium | Channel in GA4 |
|---|---|
| newsletter | Unassigned |
| affiliate | Affiliates |
| paid_social (source facebook) | Paid Social |
| influencer | Unassigned |
Define a fixed list of values for utm_source and utm_medium, and always use utm_source, utm_medium and utm_campaign together. A newsletter then runs as utm_medium=email and lands in the Email channel.
Other causes
- Consent mode implemented incorrectly: if the banner sets consent with the “default” command when it should use “update”, or tags keep sending with “denied” after consent has been given, Google says this creates sessions without session_start. More on the setup in our article on Consent Mode v2.
- Server-side tagging alongside the browser: Google advises against sending data to the same property both server-side and directly from the browser. If the client ID is managed on the server, every measurement must go through the server container. Background in the article on client-side vs. server-side tracking.
- Measurement Protocol: events that a server sends later need the session_id of the session and must arrive within 24 hours of the session start. Otherwise they form sessions with no origin.
- Cross-domain measurement: a linker that loads too late, redirects that strip the _gl parameter, different cookie prefixes or self-defined client and session IDs lead to “(not set)” in session dimensions, according to Google.
Midnight, on the other hand, is not a cause: unlike Universal Analytics, GA4 does not start a new session at midnight, according to Google.
How to find the cause
- Open the report: Reports > Acquisition > Traffic acquisition, with the session default channel group as the dimension. Do not analyse today’s data, as GA4 needs 24 to 48 hours to process it.
- Add source and medium: in the Unassigned row, add “Session source / medium” as a secondary dimension. If it shows a custom pair such as “newsletter / mail”, it is a UTM problem. If it shows “(not set) / (not set)”, the cause lies in the tagging.
- Check the landing page: “(not set)” as the landing page means that the session has no page view. This points to events sent later, for example via the Measurement Protocol.
- Check Tag Manager: in preview mode or with Tag Assistant, check whether the Google tag fires before all event tags. Tag diagnostics in Tag Manager also report missing Google tags.
- Compare after the fix: compare the share of Unassigned before and after the change over several weeks.
Since March 2025, GA4 has also shown a notification icon in the report when the share of missing session_start events or of “(not set)” is high.
When is Unassigned a problem?
Google does not give a threshold. A small share is normal in most properties, for example due to individual faulty links or events sent outside a normal session. Watch the trend: if the share rises after a relaunch, a new consent solution or a switch to server-side tracking, one of these changes is almost always the cause. Because Unassigned also affects key events, these conversions are missing from the channels that actually brought them in.
New in 2026: a channel for AI assistants
Since 13 May 2026, GA4 has had its own “AI Assistant” channel, according to Google. Visits from known AI assistants such as ChatGPT or Gemini automatically receive the medium “ai-assistant”. AI Overviews and AI Mode in Google still count as Organic Search. Before this change, such visits often ended up under Referral or Unassigned.
