top of page
owlga4unassigned.webp
London, UK · Serving UK/EU · GBP pricing

How to Fix Unassigned Traffic in GA4.

Unassigned Traffic in GA4: What it is, why it happens, and how to fix it.

Unassigned traffic in GA4 is one of those problems that looks minor until you realise how much of it there is. If a meaningful percentage of your sessions are landing in the Unassigned channel, or if you are seeing (not set) appearing where source, medium, or campaign data should be, something in your setup is preventing GA4 from categorising that traffic correctly.

The frustrating part is that Unassigned is not one problem. It is a catch-all label GA4 uses whenever it cannot match a session to any of its Default Channel Grouping rules. The traffic is real. The visits happened. GA4 just does not know what to do with them, so it puts them in a box labelled Unassigned and moves on.

This guide covers the most common causes, what is actually happening in each case, and how to fix it.

What Unassigned actually means in GA4.

Before getting into causes, it helps to understand how GA4's Default Channel Grouping works.

When a session arrives, GA4 looks at the source and medium values, either from UTM parameters you have applied, or from the referrer information the browser sends automatically and tries to match them against a set of channel definitions.

 

Organic Search, Paid Search, Email, Paid Social, Organic Social, Referral, and so on each have specific rules. If a session's source and medium combination matches one of those rules, the session gets assigned to that channel.

If no rule matches because the medium value is unrecognised, the source is missing, the UTM parameters are malformed, or the traffic is coming from a platform GA4 does not have a rule for, the session lands in Unassigned.

(not set) is a related but slightly different problem. It appears when GA4 has recorded a session or event but the specific dimension you are looking at, source, medium, campaign,has no value attached to it. This typically happens when attribution data was not available at the time the session was recorded.

The distinction matters for diagnosis: Unassigned usually points to a channel grouping mismatch, while (not set) often points to a session timeout or data collection timing issue.

Cause 1: Session timeouts producing (not set) attribution.

GA4 sessions expire after 30 minutes of inactivity by default. When a session expires and the user then interacts with the page again, scrolling, clicking, or navigating, GA4 starts a new session.

 

The problem is that the new session has no referrer and no UTM parameters, because the user never clicked a new link. They simply came back to a tab they already had open.

The result is a new session recorded with no source information, which appears as (not set) in your acquisition reports.

This matters most for email campaigns and paid ads, where users frequently open a link, get distracted, come back to it later, and then convert. The conversion gets attributed to a (not set) session rather than the original email or ad click.

 

Your campaign performance is understated, and (not set) is overstated.

How to fix it: Extend the session timeout in GA4 to better reflect how your users actually behave.

 

Go to GA4 → Admin → Data Streams → select your web data stream → Configure tag settings → Adjust session timeout.

 

The default is 30 minutes; you can extend it up to 7 hours and 55 minutes.

For most sites, setting this to 4 hours captures the majority of returning users without materially distorting session data. If your product is the kind that people research over several hours, property, finance, B2B software, a longer timeout makes sense. If your site is transactional and sessions are typically short, 2 hours is usually sufficient.

This is a configuration change that requires no code, takes about two minutes to implement, and typically produces a noticeable reduction in (not set) attribution within a few weeks as the new session handling takes effect.

One caveat worth knowing: extending the session timeout does not retroactively fix historical data. It only affects sessions from the point you make the change.

 

If you want to understand the full scale of the problem before fixing it, pull a month of data first and note what percentage of conversions are attributed to (not set), that gives you a baseline to compare against after the fix.

Cause 2: Unrecognised or incorrect UTM medium values.

This is the most common cause of Unassigned traffic for sites running paid campaigns, email sends, or social activity. GA4's Default Channel Grouping relies on specific, recognised medium values to categorise traffic.

 

When the medium value does not match what GA4 expects, the session cannot be assigned to any channel and lands in Unassigned.

The channel grouping rules are strict. GA4 expects cpc for paid search, paid_social for paid social, email for email campaigns, social for organic social, and so on.

 

Any variation — ppc, paid-social, social_paid, e-mail, newsletter, produces Unassigned, because GA4 cannot map those values to a channel definition.

This problem compounds quickly. If one person on a marketing team uses paid_social and another uses paidsocial, every campaign that person ran is now Unassigned. If the same inconsistency has been running for six months, a significant portion of your historical attribution data is incorrect and cannot be retroactively fixed.

How to diagnose it: In GA4, go to Reports → Acquisition → Traffic Acquisition and add Session medium as a secondary dimension.

 

Look at what medium values are appearing alongside Unassigned traffic. You will usually see the culprit immediately, a misspelled or custom medium value that should have mapped to a recognised channel but did not.

You can also go to Explore → create a Free Form exploration, add Session medium as a dimension, and sort by sessions descending. Any medium value that is not on GA4's approved list is a candidate for causing Unassigned traffic.

How to fix it: Update your UTM taxonomy to use only approved medium values going forward, and audit any campaign templates, email platforms, or ad platforms where UTM parameters are being set automatically.

 

The fix needs to happen at the source, in the URLs themselves, not in GA4. Changing a medium value after the fact is not possible; the data has already been recorded with the incorrect value.

For a full breakdown of approved medium values and how to structure a UTM taxonomy that prevents this problem recurring, see the UTM Parameters guide →.

Cause 3: Missing UTM parameters on campaign links.

A simpler but equally common version of the UTM problem: links from campaigns that have no UTM parameters at all. When a user arrives with no UTM parameters and no identifiable referrer, GA4 records the session as Direct.

 

When they arrive with a partial set of UTM parameters, a utm_source but no utm_medium, for example, the session often lands in Unassigned because the incomplete information cannot match a channel rule.

Common scenarios where UTM parameters go missing: email platforms that do not have auto-tagging configured, social media scheduling tools that strip UTMs from URLs, team members building campaign links manually without following a consistent process, and QR codes that link directly to an untagged URL.

How to diagnose it: Look at your Direct traffic volume alongside your known campaign activity. If Direct traffic spikes on the same day you send an email or launch a paid campaign, the campaign links are probably untagged and the traffic is collapsing into Direct rather than the correct channel.

 

You can also check in GA4 → Traffic Acquisition → add Session source / medium as a secondary dimension and look for sessions where medium is (none) arriving on dates that correspond to known campaign activity.

How to fix it: Every link in every campaign that drives traffic to your site should have utm_source, utm_medium, and utm_campaign applied consistently.

 

Use a UTM builder or a custom spreadsheet with controlled dropdowns — to ensure the parameters are always present and correctly formatted.

 

Review your email platform's UTM auto-tagging settings, and check that social scheduling tools are not stripping parameters before publishing.

A pre-launch QA step, where every campaign URL is checked before going live, is the most reliable way to prevent this. One person spot-checking URLs takes five minutes and prevents weeks of corrupted attribution data.

Cause 4: AI referral traffic from ChatGPT, Perplexity, and similar platforms.

Traffic from AI tools like ChatGPT, Perplexity, Gemini, Claude, and others that surface links to external websites is a growing source of Unassigned traffic, and one that will become more significant over time as AI-driven discovery increases.

 

The problem has two parts. First, some AI platforms do not send a standard HTTP referrer header when users click through to external sites, or they send one that

 

GA4 does not recognise as a valid referral source. Second, GA4's Default Channel Grouping has no built-in rule for AI referral traffic, there is no AI channel in the standard grouping, so even traffic that does arrive with a recognisable referrer from chatgpt.com or perplexity.ai will not automatically be placed into a named channel.

 

The result is that this traffic either appears in Referral (if the referrer comes through cleanly), lands in Unassigned (if GA4 cannot categorise it), or is absorbed into Direct (if the referrer is stripped entirely).

 

None of these are useful. You end up with no clear picture of how much AI-driven discovery your site is benefiting from.

How to diagnose it: In GA4, go to Reports → Acquisition → Traffic Acquisition and add Session source as a secondary dimension. Look for chatgpt.com, perplexity.ai, gemini.google.com, or similar in the source list.

 

If you find traffic from these sources sitting in Referral or Unassigned rather than a named channel, your AI traffic is not being categorised.

 

You can also check under Direct traffic: some AI referrals arrive without a referrer at all and disappear into Direct, which is harder to identify without more granular exploration.

How to fix it: Create a custom channel group in GA4 that defines an AI Referral channel. Go to GA4 → Admin → Channel Groups → Create new channel group.

 

Add a new channel called AI Referral and set the conditions to match sources containing chatgpt, perplexity, gemini, claude, copilot, or any other AI platforms you want to capture. Set the medium condition to referral or leave it open depending on how these platforms are sending traffic.

This gives you a dedicated channel for AI-driven traffic without affecting your other channel groupings, and means you can track AI referral volume, engagement, and conversion contribution separately from standard organic or referral traffic.

Note that custom channel groups apply going forward and can also be applied retrospectively to historical data in GA4, unlike UTM fixes, which only affect future sessions. This means you can create the AI Referral channel group today and immediately see how much historical traffic should have been attributed to it.

How to prioritise the fixes.

Not all causes are equally urgent or equally fixable, and the right order depends on what is driving the most Unassigned volume in your specific property.

Start by diagnosing before fixing. Spend fifteen minutes in GA4 pulling the Session medium breakdown and the Session source breakdown for your Unassigned traffic. In most cases, one cause dominates and knowing which one it is means you fix the right thing first rather than working through a checklist.

If the bulk of your Unassigned traffic has a recognisable but incorrect medium value (like ppc or newsletter), the UTM taxonomy fix is the most impactful and should be the priority.

 

This is also the hardest to fix historically, you cannot change past data, so stopping the bleeding quickly matters.

If (not set) is the dominant problem and your campaigns are otherwise tagged correctly, the session timeout change is a quick win that requires no technical implementation and can be done today.

If you are seeing chatgpt.com or perplexity.ai in your source data without a clear channel attribution, the custom channel group fix is straightforward and can be set up in under ten minutes.

Summary.

Unassigned traffic in GA4 is always fixable but the fix depends on the cause, and the cause is almost never obvious from the Unassigned label alone. The diagnosis step matters as much as the fix itself.

The four causes covered here account for the vast majority of Unassigned traffic across most GA4 properties: session timeouts producing (not set), incorrect or custom UTM medium values breaking channel grouping, missing UTM parameters collapsing campaign traffic into Direct, and AI referral traffic arriving with no recognised channel definition.

Of these, the UTM medium problem is the most common, the most damaging to historical data, and the most preventable with a clear taxonomy and a pre-launch QA process. The session timeout fix is the quickest to implement.

 

The AI channel grouping is the most forward-looking and given the direction of travel on AI-driven discovery, worth doing sooner rather than later.

Related services

bottom of page