Free guide
Unassigned means one specific thing: no rule in GA4's channel group matched the traffic's data. This page walks through the values that cause it, the report that finds the offending links, and the fix for future and past data.
GA4 assigns every session to a channel in the default channel group using rules keyed on the traffic's source, medium, and campaign values. There are 19 default channels, from Paid Search to Email to the 2026 addition AI Assistants, each with its own matching conditions. Source: Default channel group, Analytics Help.
Unassigned is not one of those channels. It is the label GA4 reports when no channel rule matches the traffic's event data: the values it carries fit no channel's conditions, or the data a rule needs is missing. Sessions and conversions are still recorded, and where the URL carried source and medium values, those stay visible in the source and medium dimensions. Only the channel classification is missing.
The cause this guide focuses on: campaign URLs carrying utm_source and utm_medium values that GA4's rules do not recognize. The pattern looks reasonable to a human and means nothing to the rule engine. Common examples:
One report, three steps:
Pairs that match links your team sent trace straight back to their templates: correct the templates and the pair stops growing. Concrete pairs you cannot match to any sent link can come from other inputs, such as an ad platform integration writing its own values.
Rows that show (not set) instead of concrete values are a different problem. Those are not link problems: Google documents causes such as sessions missing the automatically collected session_start event, and they need a tracking audit rather than a link fix. Source: (not set) in Session source / medium, Analytics Help.
Standardize your utm_source and utm_medium values on ones GA4's channel rules recognize, and make the standard the path of least resistance for everyone building links. Three parts:
1. Pick recognized values per channel. Email sends use medium email. Paid campaigns use cpc or paid. Organic social posts use one of GA4's social mediums. The full 19-channel rule table lists what each channel matches.
2. Write the convention down with one row per channel: allowed source values, the exact medium, campaign naming. Ambiguity is where new Unassigned traffic comes from.
3. Put a governed builder in front of the team. A documented convention still depends on everyone typing it correctly into every URL. A builder that only emits allowed values removes the typing, and validation against channel rules catches the mistakes a template cannot see.
In the default channel group, no. Historical sessions keep the source and medium they arrived with, and the default rules are Google's to define.
In your reports, yes. Custom channel groups can be applied to your reports retroactively (source: Custom channel groups, Analytics Help). Build a custom group that adds rules for the legacy source and medium pairs you found in the report above, and those historical sessions report under named channels in every report that uses the custom group. The raw values were always stored; classification happens at reporting time.
Three categories, and they check different things:
Google's Campaign URL Builder concatenates whatever values you type into a syntactically valid URL. It validates nothing against channel rules; a URL that produces Unassigned traffic passes it without a warning.
Template-based governance tools such as UTM.io and CampaignTrackly enforce your naming template: required fields, dropdown values, conventions. That prevents freestyle values, but a template that itself contains an unrecognized medium passes every check and still produces Unassigned traffic.
Channel-validating builders check the produced URL against GA4's channel definitions. Trakr resolves every URL against the channel rules mirrored in your workspace configuration and shows the resulting channel before you copy, so a URL headed for Unassigned is visible while it is still one click from being fixed. The comparison pages hold the tool-by-tool detail.
Build a governed URL in the free builder. No signup, no credit card. The channel check runs before you copy.
Open the App, free →