BACK TO BLOG
TOOL HOW-TOOctober 27, 20267 min read

How to Find What Your Direct Traffic Is Hiding in GA4

JH

By Joris van Huët

Enterprise Interim CMO & Marketing Leader · 15+ years · 50+ orgs

Published

2026-10-27

The short answer: Direct is the biggest row in your GA4 revenue report. Read it as the door buyers used, not the reason they came. In one store's read, donated with consent and shown on Causality Engine's start page, 61.67% of Direct's credit belonged to Paid Shopping, Organic Search and Cross-network. The free preview on that page runs the same split on your own export. The steps: check which Direct you are looking at, tag the links you control and find the untagged landing pages. Then split Direct by hand from the paths export, and let the causal read do it per channel.

Disclosure: I founded Causality Engine and own it, and this page recommends it. Every claim about it links to Causality Engine's own pages.

What Direct is made of, before anyone is blamed for it:

  1. Untagged links, counted in euros. The UTM coverage calculator works an example store: 26,000 of 40,000 sessions tagged is 65.0%. With €72,000 of €120,000 revenue tagged, €48,000 arrives on sessions GA4 cannot tie to a campaign.
  2. Visits GA4 cannot trace at all. Google's (direct) / (none) page lists typed addresses, links in PDFs and other offline documents, ad blockers, redirects that strip UTM parameters and URL shorteners.
  3. The report you happen to be reading. Google's attribution help says every GA4 attribution model withholds credit from Direct unless the whole path was Direct. So the Direct row means one thing in Traffic acquisition and another in the Advertising reports.

The start page puts it in one line: Direct is where buyers arrive, not why they came, and last-click files the sale there and stops asking. This page is about asking. The product behind the last step is described in the Causality Engine glossary entry.

Step 1: Check which Direct you are looking at

GA4's default channel group puts a session in Direct when its source is exactly (direct) and its medium is (not set) or (none). Traffic acquisition counts those sessions, and the revenue in them, by session. The Advertising reports work on paths instead. They give Direct no credit whenever another channel was in the path.

So if Direct looks huge in Traffic acquisition and modest in the key event reports, you read both correctly. It is not a contradiction. The first is where sessions began; the second is how GA4's model shares the sale. A store platform's last-click report behaves like the first. Causality Engine's Shopify attribution guide notes that in many stores a large share of revenue lands in direct, part of it paid traffic with broken UTMs.

Step 2: Shrink the part that is yours

Some of Direct is people typing your address, and that part should stay. The part you can remove is your own links arriving bare. Tag every email, influencer link, affiliate link, social post and QR code with utm_source and utm_medium. Causality Engine's free UTM builder shows which GA4 channel a link will land in before you send it, and why a made-up medium ends in Unassigned.

Then check what still slips through. Google's tagging guide traces unexpected Direct to tags firing in the wrong order and to server-side containers running beside a client-side tag. It also names cross-domain linking set up late, for example on a separate checkout domain.

Step 3: Let an agent find the untagged landing pages

Google documents a read-only Google Analytics MCP server whose run_report tool calls the Data API. Ask a connected assistant for sessions and purchaseRevenue by landingPage over the last 90 days, filtered to the Direct session channel group. A product-drop page or a discount-code page that collects a large share of Direct revenue is worth checking. Look for a link that went out untagged: in a newsletter, a creator's bio, a packaging insert.

The human check: a person confirms which campaign used each page before anything is retagged, because the agent sees landing pages, not who sent the link. The server can read and not change anything, per Google's page.

Step 4: Split Direct by hand from the paths export

Download the Key event attribution paths report for 12 months, purchase only. How to export GA4 data for attribution has the settings and checks. In a spreadsheet, keep the paths whose last touch is Direct and sort them into two piles: all Direct, and Direct after at least one other channel.

For example, say 400 purchases end in Direct. If 140 came on paths that were Direct throughout, those buyers arrived with no trace. The other 260 had another channel first, and the touch just before Direct was Paid Social in 110, Organic Search in 90 and Email in 60. Then 110 + 90 + 60 = 260, and 260 ÷ 400 = 65% of those Direct sales had another channel in the path first.

That pile is evidence, not yet an answer. Handing each sale to the channel before Direct is tempting, and it does empty the row. It is also the same position rule as GA4's last non-direct click: it moves credit to whoever touched the buyer earlier, whether or not that touch changed anything.

Position is not cause.

Step 5: Run the causal split

Drop the same file on the start page. The free preview runs in your browser, the file stays there, and it shows the channels behind your Direct.

The €99 read takes it to every channel, per the pricing page. Each gets its share once Direct is split back, last-click's share with Direct left out, a data-health score and a next step. The donated example on the start page shows why the by-hand pile is not enough. Last-click without Direct gave Paid Shopping, Organic Search and Cross-network 89.45% of the credit. The engine gave them 63.02%. Two methods, 26.43 points apart, agree on which three channels to fund first and disagree on how much. That store's read covered 1 January to 13 October 2026 and €905,898 of purchase revenue.

Who gains from a large Direct row

Direct is the one row no vendor invoices you for, so no vendor has a reason to empty it. The platform whose ad started the journey still counts the sale in its own dashboard. The Shopify attribution guide describes the common case: a buyer sees a Meta ad without clicking and later comes to the store directly. Meta counts the sale. The store files it as direct.

Free first, then the full split

The tagging fix and the by-hand split cost nothing and stand on their own. After them you know how much of Direct is your own untagged links, and how much arrived behind another channel. If a budget decision rests on that second number, Causality Engine, which I founded, splits it channel by channel from the same export. That costs €99 once, refundable within 30 days (pricing, checked on 27 October 2026), after a free preview on the start page. How the split works is on how it works.

FAQ

Is a large Direct share always a tagging problem?

No. Typed addresses, bookmarks, links in PDFs and ad blockers all land there, per Google's (direct) / (none) page. Loyal customers returning by name are a real share of it.

Why is Direct smaller in GA4's Advertising reports?

Because GA4's models withhold credit from Direct unless the whole path was Direct, per Google's attribution help. Session reports keep counting the visit.

Does splitting Direct need a pixel?

No. The read takes the GA4 export alone, with no pixel or SDK, per how it works.

TAGS
Direct TrafficGA4UTM TaggingAttribution PathsCausality EngineLast-Click

ABOUT THE AUTHOR

I am Joris van Huët, an enterprise interim CMO. 15+ years, 50+ organizations, including ING, P&G, Nestlé, BNP Paribas, WeTransfer and Vinted. I take on innovation projects (venture building, design sprints), agentic marketing (setting up and running AI agents) and hands-on multi-channel work. See the track record.

I wrote and published this with AI assistance, and I answer for it. Claims about my own experience are limited to the track record above, and a statistic links to its source or is labelled as an example. I sell interim and fractional CMO work, which is why this site exists. How this site is written.

Senior marketing execution

A senior operator doing the work: campaigns, channels, CRM and AI agents, live from day one.