Why do I only see “(not set)” as a traffic source in GA4?

Kilian Müller
Kilian MüllerOwner of 1hold.de · Google PartnerUpdated
Google AnalyticsGoogle Certified Specialist

“(not set)” as a traffic source means GA4 received no source for that session, or has not finished processing it yet. The most common reasons are events sent without a page view or before the Google tag, a missing link to Google Ads, and data from the last two days that GA4 has not attributed yet.

“(not set)” is not the same as “(direct)”. “(direct)” means GA4 saw a session but found no referrer and no campaign. “(not set)” means the value is missing altogether. And “Unassigned” in the channel group is different again: source and medium exist but match no rule, often because of a custom utm_medium.

Where does “(not set)” in the traffic source come from?

  • Events without a session. If events are sent through the Measurement Protocol or a server without the matching client ID and session ID, GA4 cannot tie them to a session or a source. Purchases reported later by a shop system are a typical example.
  • Events before the Google tag. If an event tag fires before the Google tag has loaded, the session context is missing. This often happens with very early triggers in Tag Manager, or when a consent banner releases the Google tag later.
  • Google Ads not linked. Without a link between GA4 and Google Ads, or with auto-tagging switched off, Google Ads dimensions such as the session campaign stay empty.
  • Data that is too fresh. According to Google, GA4 usually needs 24 to 48 hours to process data completely. During that time sessions often still show “(not set)”.

How do I find the cause?

  1. Open Reports → Acquisition → Traffic acquisition and choose a date range that leaves out the last two days. If “(not set)” disappears, it was only processing.
  2. Add the secondary dimension Event name. If “(not set)” sits almost entirely in single events such as purchase or generate_lead, check exactly how those events are sent.
  3. Also check the dimension Landing page. If it shows “(not set)” too, the session had no page view, which points to events sent without a page.
  4. Check the link under Admin → Product links → Google Ads, and auto-tagging in the Google Ads account settings.
  5. Use Tag Assistant or DebugView to see in which order events arrive. The page view must come before all other events.

How much “(not set)” is normal?

Google does not give a threshold. A small share appears in almost every property. The trend tells you more than the level: if the share rises after a new consent banner, after introducing server-side tagging or after a new shop plugin, that change is usually the trigger. To make sure campaigns are attributed cleanly, build links with complete UTM parameters, for example with our UTM generator.

Always leave out the last two days when you check, look at “(not set)” per event, and send server-side events only with the client ID and session ID of the website session.

Sources

Want to know where your property loses the source? We check tagging, consent and links and show you which data you can recover. Book a free intro call or read more about our tracking and reporting.

Need personal advice?

Our Google-certified experts are happy to help – free and without obligation.

Book a meeting