Is (not set) the same as direct traffic in GA4?
No. Direct traffic is generally shown as (direct) / (none). (not set) means GA4 does not have a value available for that dimension in the report context.
Seeing (not set) in GA4 source/medium or channel reports makes it harder to understand where leads come from. It usually means GA4 did not have a value available for that dimension in the context of the report. The cause depends on which dimension and events you are looking at, so the fix starts with identifying where the missing value enters your tracking.
(not set) is a placeholder GA4 uses when it cannot provide a value for a particular dimension. It is not a marketing channel, and it does not automatically mean the visit was direct or that a campaign failed.
First, check the exact dimension in the report. Session source / medium, first user source / medium, and session default channel group describe different scopes. A missing value in one does not necessarily mean the same thing as a missing value in another.
| Value | What it generally indicates |
|---|---|
(direct) / (none) | GA4 has no usable campaign or referral information to identify a source for that session. |
(not set) | GA4 has no value available for that dimension in the report's context. |
| A named source / medium | GA4 assigned a source and medium, such as google / organic or newsletter / email. |
The important distinction is that direct is a source classification, while (not set) is a missing dimension value. Treating every (not set) row as direct can hide a tracking or implementation issue.
There is no single cause for every (not set) value. Common areas to investigate include:
Do not assume a particular cause from the label alone. Start with the report, date range, dimension scope, and event names where the value appears.
If the missing values are concentrated in one event or one integration, start there rather than changing every tag on the site.
Do not try to fix every (not set) value by relabeling it as direct or overwriting acquisition fields. That may make a report look tidier without repairing the underlying data.
For a lead-generation business, missing source data can mean a form submission reaches the CRM without a reliable indication of whether it came from organic search, paid search, paid social, or another channel. For agencies, the same problem makes campaign comparisons less trustworthy and can lead to budget decisions based on incomplete data.
GA4 should help you understand website behavior, but it is not a replacement for saving campaign context with the actual lead. Where appropriate, capture UTMs and landing-page information in hidden form fields, validate that the values reach the CRM, and connect them to qualified leads and closed deals.
Read the guide to hidden form fields for UTM tracking and lead attribution, or explore Google Tag Manager setup and analytics audits if you need to find the source of the issue.
No. Direct traffic is generally shown as (direct) / (none). (not set) means GA4 does not have a value available for that dimension in the report context.
No. UTMs help identify tagged campaign traffic, but they do not fix missing session context, incorrectly implemented events, or all dimension-scope issues.
Those events may be sent through a different tag or integration, may lack session context, or may be viewed with a dimension that is not available for that event. Compare the affected events and implementation.
Not automatically. Doing so can conceal missing tracking data. Diagnose the cause first and keep unknown values separate from genuine direct sessions.