Direct Traffic in Google Analytics 4: What Direct, Unassigned and Cross-network Mean

Direct Traffic in Google Analytics 4: What Direct, Unassigned and Cross-network Mean

analyticsNovember 4, 2026
By Antonio Fernandez

TL;DR

  • GA4 labels a session Direct only when its source is exactly (direct) and its medium is (none) or (not set), meaning no referrer and no campaign tags reached Analytics.
  • Unassigned is the bucket GA4 uses when a session's source and medium match none of the default channel rules, for example utm_medium=edm or utm_medium=qr.
  • Cross-network holds Google Ads traffic from Performance Max, App, Smart, Demand Gen and Local campaigns, so PMax clicks never appear under Paid Search.
  • The default channel group cannot be edited, but a custom channel group can be set as the primary group and can absorb mediums no default rule covers.

In Google Analytics 4, a session is labelled Direct when its source is exactly "(direct)" and its medium is "(none)" or "(not set)", which happens when GA4 receives no referrer and no campaign tags for that visit. So Direct does not prove someone typed your URL; it means the visit arrived without any information GA4 could use to name its origin, and that is why it so often runs higher than expected.

This guide explains the rules GA4 uses to sort every session into a channel, why Direct and Unassigned grow, what the Cross-network channel actually holds, how Referral differs from Organic Search, and how consistent UTM tagging shrinks the share of direct traffic Google Analytics cannot attribute.

What does Direct mean in GA4?

GA4 groups traffic into channels using rules applied to the source, medium and campaign values attached to each session. Google's documentation defines the Direct channel with a single rule: the source must exactly match "(direct)" and the medium must be "(not set)" or "(none)". Nothing else qualifies.

Those values are what GA4 writes when no information about the referral source is available. In practice, that covers several different real-world situations that all look identical in the report:

  • Someone typed the address into the browser or opened a bookmark.
  • A link was opened from a place that does not pass a referrer to the browser, such as some desktop and mobile apps, documents saved on a device, or messages copied and pasted between apps.
  • A browser's referrer policy removed the referring page before the request reached your site.
  • A link carried no UTM parameters and no auto-tagging identifier, so there was nothing to fall back on.

The important point: Direct describes missing data. It says nothing about user intent. A loyal customer typing your brand into the address bar and a campaign click that lost its referrer inside a chat app end up in the same row.

Why one Direct visit does not erase an earlier source

Google's documentation on traffic-source dimensions states that a direct-traffic visit that follows a referred visit will never override an existing referrer. Session attribution in GA4 follows a non-direct last-click approach. In plain terms: if a user first arrives from an email campaign and later returns by typing the URL, GA4 keeps crediting the earlier known source rather than replacing it with Direct. Direct only shows up when GA4 has no earlier non-direct source to carry forward for that user.

This has a practical consequence. A high Direct share usually means a lot of first touches arrived untagged, not that a lot of people are returning by memory.

Why is my direct traffic so high?

When the Direct row grows, check these causes in order. Each one has a specific test you can run in the Traffic acquisition report.

  1. Untagged links in owned channels. Newsletter links, chat broadcasts, QR codes, PDF brochures and links in app profiles often go out without UTMs. If the destination opens without a referrer, every one of those clicks becomes Direct. Test: compare the landing pages of Direct sessions against the pages you promote in those channels. If a campaign landing page that nobody would type by hand shows mostly Direct sessions, tagging is the gap.
  2. Tag firing problems. If the Google tag fires late or on some templates only, the first page view may be missed and the session can lose its source. Test: open the landing page report, filter for Direct, and look for pages that should never be entry points, such as thank-you pages or checkout steps.
  3. Redirect chains. A redirect that drops the query string removes UTM parameters before the page loads. Test: click your own tagged link and confirm the final URL in the address bar still contains utm_source, utm_medium and utm_campaign.
  4. Internal links tagged with UTMs. This is the reverse problem. Putting UTMs on links between your own pages forces a new campaign value in the middle of a visit and distorts the channel picture. UTMs belong on links that point to your site from somewhere else, not on internal navigation.
  5. Genuine direct visits. Brand awareness, repeat customers and bookmarks are real. A site with strong offline promotion or a well-known brand name will have a meaningful Direct share no matter how clean the tagging is.

Where to look in the GA4 interface

Open Reports, then Acquisition, then Traffic acquisition (in the default Life cycle collection). The primary dimension is Session default channel group. Click the plus icon next to the dimension header and add Session source / medium as a secondary dimension. Then add Landing page + query string as a further breakdown in an Exploration if you need to see which URLs collect the Direct sessions.

Keep the difference between two dimension families in mind. Session-scoped dimensions such as Session default channel group describe how each session started. User-scoped dimensions such as First user default channel group describe how the user was first acquired. A user who first came from Organic Search and later returned three times will appear once under Organic Search in the user-scoped view and may appear across several channels in the session-scoped view. Comparing the two is often the quickest way to see whether Direct is a first-touch problem or a returning-visit pattern.

What is Unassigned traffic in GA4?

Unassigned is the value GA4 uses when no other channel rule matches the event data. It is not a channel in the marketing sense. It is the bucket for sessions whose source and medium exist but do not fit any rule in the default channel group.

That makes Unassigned different from Direct. Direct means GA4 had no source information. Unassigned usually means GA4 had source information, but your values did not match the rules. Most Unassigned traffic is therefore fixable at the tagging stage.

A worked example of a UTM that lands in Unassigned

Illustrative example: a business sends a newsletter with links tagged utm_source=newsletter, utm_medium=edm, utm_campaign=nov_sale. The Email channel rule requires the source or medium to match "email", "e-mail", "e_mail" or "e mail". Neither "newsletter" nor "edm" matches, and these values match no other rule, so those sessions fall into Unassigned.

Changing the medium to utm_medium=email fixes it for every future click, because the Email rule now matches. Channel definitions are not case sensitive, so "Email" and "email" are treated the same, but consistent lower case keeps your source/medium reports tidy.

A second illustrative case: printed flyers with a QR code tagged utm_source=flyer, utm_medium=qr. There is no default rule for a "qr" medium, so those sessions also land in Unassigned. Here the better fix is a custom channel group with a rule such as medium exactly matches "qr", named something like Offline QR. That keeps the offline traffic separate instead of forcing it into a channel that does not describe it.

What is Cross-network in Google Analytics?

Cross-network is the channel for Google Ads campaigns that serve across several networks at once, so GA4 cannot honestly file them under Paid Search, Display or Video. According to the default channel group definitions, a session lands here when the Google Ads ad network type is "Cross-network" or "Google owned channels", or when the campaign type is Performance Max, App, Smart, Demand Gen or Local.

If you run Performance Max, its traffic will appear as Cross-network, not as Paid Search, even when a particular click came from a search results page. To analyse those campaigns further, use the Google Ads reports linked to GA4 or the campaign-level dimensions, rather than expecting the channel row to split by network.

There is also a manual rule: a campaign name containing "cross-network" will be sorted into this channel. Avoid that string in your own UTM campaign names unless you mean it.

Both channels describe visits that came from another site, but GA4 separates them with different rules.

  • Organic Search applies when the source matches Google's list of search sites, or when the medium is exactly "organic".
  • Referral applies when the medium is "referral", "app" or "link".

So a visit from a well-known search engine is classed as Organic Search because the source is on Google's list. A visit from a smaller search tool that is not on that list arrives with medium "referral" and is classed as Referral. If you see a search product in your Referral rows, that is why. You can move it with a custom channel group rule that matches its source.

Organic Social works the same way: the source is matched against a list of social sites, or the medium is one of "social", "social-network", "social-media", "sm", "social network" or "social media". A social link that is opened without a referrer and without UTMs is not Organic Social at all. It is Direct.

How GA4 default channel groups work

Every session gets one value of Session default channel group, based on the source, medium and campaign attached to it. Google's documentation stresses three points about this grouping:

  • The default channel group cannot be edited. Google maintains it for every property.
  • You can create custom channel groups with your own rules, and you can set one as the primary channel group used across reports.
  • For Google Ads traffic, GA4 uses the ad network type and falls back to the campaign type when the network type is not available.

Because each session is associated with only one campaign or traffic source, the cleanest way to improve channel reporting is upstream: get the right values onto the link before the click happens. Fixing labels after the fact with custom channel groups is useful, but it cannot recover information that was never collected.

How UTMs reduce Direct and Unassigned

UTM parameters are read from the page URL. GA4 maps utm_source, utm_medium and utm_campaign to the source, medium and campaign dimensions, and those values feed the channel rules. A practical tagging standard looks like this:

  1. Write a short list of approved mediums that match a default rule: email, social, cpc, display, referral, affiliate, organic. Anything outside that list needs a custom channel group rule before it goes live.
  2. Use lower case for every value. The rules are not case sensitive, but your source/medium reports are easier to read when "Facebook" and "facebook" do not appear as separate rows.
  3. Tag every link you control that points to the site: newsletters, chat broadcasts, QR codes, bios, PDFs, partner placements.
  4. Leave Google Ads to auto-tagging. Auto-tagging appends a Google Click ID (gclid) to the landing URL, and a linked Google Ads account supplies the campaign details.
  5. Never tag internal links.
  6. After launch, click one tagged link yourself, then check the Realtime report or the next day's Traffic acquisition report to confirm the session landed in the channel you intended.

Channel rules at a glance

Channel rules at a glance
ChannelRule in the default channel groupMost common fix
DirectSource exactly "(direct)" and medium "(none)" or "(not set)"Tag owned links with UTMs; check redirects keep the query string
UnassignedNo other channel rule matches the event dataUse a medium a rule recognises, or add a custom channel group rule
Cross-networkGoogle Ads network type Cross-network, or campaign type Performance Max, App, Smart, Demand Gen or LocalAnalyse by campaign; do not expect a split by network
ReferralMedium is "referral", "app" or "link"Move known search tools with a custom rule
Organic SearchSource on Google's search-site list, or medium exactly "organic"Nothing to fix; segment brand vs non-brand in Search Console

What this means for Thai websites

Chat apps, LINE Official Accounts and printed QR codes in stores and on packaging are common brand channels in Thailand. All three are places where a link can be opened without a referrer. If a link shared in a LINE chat or an OA broadcast arrives with no referrer and no UTMs, GA4 has nothing to classify it with, and the session lands in Direct.

Two mechanics matter here. First, tag every LINE OA link before it is sent, with a consistent source such as "line" and a medium you have tested. Second, check where your chosen values land. Whether a given source string matches Google's social-site list is something you should confirm with a test click rather than assume; if "line" with your chosen medium does not land where you want, add a custom channel group rule that matches the source exactly.

A related point: when a user opens a link inside an app's built-in browser and later switches to their usual browser, the two browsers hold different cookies. Without User-ID, GA4 has no way to know it is the same person, so the second visit can appear as a new user arriving through Direct.

Thai-language sites also carry percent-encoded Thai URLs. Make sure any redirect you add for Thai slugs preserves the full query string, or the UTMs will be lost on the way and the session will be reported as direct traffic Google Analytics cannot attribute.

Frequently asked questions

What does Direct mean in Google Analytics 4?

Direct means GA4 received no referrer and no campaign information for the session, so its source is "(direct)" and its medium is "(none)" or "(not set)". It includes typed URLs and bookmarks, but also any untagged click whose referrer was lost on the way.

Why is my direct traffic so high in GA4?

Direct traffic is usually high because links in owned channels go out without UTMs and open without a referrer. Check landing pages of Direct sessions, test your redirects for dropped query strings, and confirm the Google tag fires on every template.

What is Unassigned traffic in GA4?

Unassigned is the value GA4 uses when a session's source and medium match none of the default channel rules. It is usually caused by non-standard UTM values such as a medium of "edm" or "qr", and is fixed by using recognised mediums or a custom channel group.

What is Cross-network in Google Analytics?

Cross-network is the channel for Google Ads campaigns that run across several networks, including Performance Max, App, Smart, Demand Gen and Local campaign types. GA4 files them together because a single campaign can serve on Search, Display, YouTube and more.

Can I change how GA4 assigns channels?

You cannot edit the default channel group, but you can create custom channel groups with your own rules and set one as the primary channel group. That is the right tool for mediums such as "qr" that no default rule covers.

Get your channel data to tell the truth

If your Direct or Unassigned rows are too large to make decisions with, the fix is usually a mix of tagging standards, redirect checks and a custom channel group built for your real channels. Relevant Audience's Google Analytics 4 setup and migration service covers tagging plans, channel group configuration and tag audits. If your organic numbers are what you need to read correctly, the SEO team in Thailand and the technical SEO audit both start from clean analytics. For paid media, the Google Ads management team works with auto-tagging and linked accounts so that Cross-network campaigns are read correctly.

Antonio Fernandez

Antonio Fernandez

Founder and CEO of Relevant Audience. With over 15 years of experience in digital marketing strategy, he leads teams across southeast Asia in delivering exceptional results for clients through performance-focused digital solutions.

Share to:
Copy link:

Read us often? Add Relevant Audience as a preferred source so our articles surface more in your Google results.