How-to · Updated October 11, 2026
Fix "Unassigned" or "(not set)" traffic in GA4
Updated October 11, 2026
30 minutes
In Traffic acquisition, switch the table to session source / medium to see what sits under Unassigned. A named source with an odd or missing medium is a link tag to fix. (not set) for both can mean sessions lost their start, so fire the Google tag on Initialization. Never relabel unknown visits as organic or direct.
Before you start
- Editor access to the GA4 property, which Google requires to create channel groups.
- Access to Tag Manager, or whatever loads your Google tag.
- A list of the tagged links you use: the Business Profile website link, email links, QR codes, social posts and any ads tagged by hand.
See what sits under Unassigned
This part splits the Unassigned row into the sources and mediums behind it, which decides the fix.
- In Google Analytics, open Reports, then Acquisition > Traffic acquisition. The table opens on Session default channel group; note how many sessions show as Unassigned.
- Click the drop-down at the top of the table's first column (Session default channel group) and choose Session source / medium.
- Read the rows that do not belong to a channel you recognize. A named source with an unusual medium, such as a listing or QR tag, is a link tag. A named source with (not set) as the medium may be a link tagged without utm_medium. A row where both source and medium read (not set) points to how the tag is set up on the site.
Fix the cause at the source
Each kind of row has its own fix, and fixing it at the source is the only change that keeps future visits out of Unassigned.
- A link tag with a medium no rule matches. GA4 files a visit under a channel only when its source or medium fits Google's rules, for example medium exactly organic for Organic Search, referral for Referral or email for Email. A medium such as cpc, ppc or one starting with paid files the visit as Paid Other unless the source is on Google's list of search, social, video or shopping sites. Retag the link with a medium from those rules. Google's own UTM best-practice table shows organic_search as an example medium, yet the Organic Search rule needs the medium to be exactly organic or the source to be a search site, so that tag can land in Unassigned.
- A link tag with no medium. Google says missing UTM parameters result in (not set) values, and recommends setting all the relevant ones, especially utm_source, utm_medium and utm_campaign. Add the missing medium to the link.
- (not set) source and medium. Google says this happens when a session is missing its session_start event, which can happen when the Google tag does not fire on an Initialization trigger. In Tag Manager, open your Google tag, click Triggering, choose Initialization - All pages, remove the old trigger, save, then Submit and Publish.
- (not set) on a site with a cookie banner. Google names two consent mode mistakes: using the default command where the update command belongs after the visitor answers the banner, and sending events marked denied after the visitor granted consent. Either splits a session from its start. Have whoever set up the banner check both.
- (not set) that persists after both checks. Google also lists tag settings that break session identity: the Google tag firing after other events on the page, an inconsistent cookie prefix across the site, a cross-domain linker that starts late, and custom client or session IDs. Have whoever installed the tag check each one.
Tags and triggers count from the day they change. Sessions already recorded as Unassigned stay that way in the default channel group. (not set) in the Google Ads columns of Advertising reports, such as campaign or ad group, is a different problem: Google points to an unlinked Google Ads account, auto-tagging switched off, or another Google Ads account advertising the site that is not linked to this property.
Relabel only what you can identify
A custom channel group can file traffic you know the origin of, retroactively, while leaving true unknowns as Unassigned.
- Click Admin and, under Data display, click Channel groups.
- Click Create new channel group. Google starts it as a copy of the default group.
- Click Add new channel, name it, click Add condition group, and set a condition that matches only the tag you identified, such as Medium exactly matching the value your listing link uses. Click Save channel.
- Click Reorder, drag the new channel above the channels that would otherwise catch it, click Apply, then Save group.
- Use the new group as the first column in Traffic acquisition. Google applies custom channel groups to past data too.
Never add a channel that catches (not set) and calls it organic or direct. A visit with no recorded source is unknown, and labeling it organic makes a channel look stronger than it is.
Check it worked
Open one retagged link in a private window and browse a page. A day or two later (Google says processing can take 24 to 48 hours), filter Traffic acquisition by Session source / medium for that tag: it should sit under the channel you expected, not Unassigned.
After a week, compare the Unassigned share in Session default channel group with the week before the fix. It should fall from the date of the change. Some (not set) always remains; Google notes, for example, that a shared link carrying Google's srsltid parameter without a Google referrer may show as (not set) and is not classified as organic.
Unassigned is not Direct
Google files a visit under Direct only when the source is exactly (direct) and the medium is (not set) or (none), meaning someone typed the address or used a saved link. Unassigned is what GA4 uses when no channel rule matches at all. Both are real readings, and neither should be moved into a channel by guesswork.
Why the default channel group cannot be edited
Google keeps the default channel group the same for every property and does not allow edits. The editable copy is the primary channel group: in Channel groups, a custom group can be set as the property's primary group, and its rules then fill that dimension from that point forward.