How to trace where direct traffic comes from, step by step
Split Direct in a GA4 free-form exploration by the channel that first brought each visitor in. Then check the lookback window and read what comes before Direct in purchase paths. Last, open ten Shopify orders to see where each first visit came from.
By Joris van Huët, Founder & CEOUpdated 7 min read
Run the numbers for your store: the free UTM coverage calculator.
To trace where direct traffic comes from, first split it in GA4 by the channel that first brought each visitor in. Then check the lookback window and read what comes before Direct in your purchase paths. If you sell on Shopify, open ten recent orders: each can show where the buyer's first visit came from.
Step by step
Use the last full month everywhere, so GA4 and Shopify describe the same buyers. Changing GA4's attribution settings needs the Marketer role or above on the property.
- Build a free-form exploration of Direct. In GA4, click Explore and choose the Free form template. Add Session default channel group and First user default channel group as dimensions, and Sessions and Key events as metrics. Put Session default channel group in Rows and filter the exploration to Direct. Menu path: Explore > Start a new exploration > Free form.
- Add the channel that first brought each visitor. Put First user default channel group in Columns. Google defines it as the default channel group by which the user was first acquired. Each cell of the Direct row now says where those Direct visitors started out. Menu path: the exploration's Columns, with Sessions and Key events as Values.
- Read the cells in two groups. Direct under Direct means the visitor arrived with no source from the very first visit, so the origin sits off the record. A channel you run under Direct means that channel won the visitor once. A later visit then came back without a campaign GA4 could hand it. Menu path: the Direct row of the exploration table.
- Check how long GA4 holds on to a campaign. GA4 gives a direct entrance the UTM values it holds for that user. Google says the key event lookback window also applies to that session attribution. For purchases the window defaults to 90 days, with 30 or 60 days as options. A short window pushes more of step 3's second group into Direct. Menu path: Admin > Data display > Events > Attribution settings > Key event lookback window.
- Read what comes right before Direct in purchase paths. Click Advertising, then Attribution paths under Attribution, select purchase and set Path length to greater than or equal to 2 touchpoints. Note the channel just before each Direct touch. In this report, Direct also stands for key events with no path data, such as imported ones. Menu path: Advertising > Attribution > Attribution paths > Path length.
- Open ten orders in Shopify. In your Shopify admin, go to Orders, click an order number and find the Conversion summary section. Click View conversion details for the origin of the customer's first visit, their total visits and the days between the first and most recent visit. Tally the first-visit origins over ten recent orders. Menu path: Shopify admin > Orders > order number > Conversion summary > View conversion details.
- Sort each origin into fixable or not. Untagged links you send or hand out, and redirects that drop tags, are fixable: tag them and test them on a phone. Ad blockers and new devices mostly are not. Google says GA4 identifies users through the reporting identity you choose. Blended identity factors in the user ID, so signed-in buyers are easier to follow. Menu path: Reports > Acquisition > Traffic acquisition, a week after each fix.
A worked example
For illustration, say the Direct row shows 3,000 sessions for last month. In this worked example, the First user columns split them three ways: 1,800 under Direct, 700 under Email and 500 under Paid Social.
The biggest cell, Direct under Direct, never had a source GA4 could read. For illustration, the 1,200 sessions under Email and Paid Social came from people your own channels won earlier. If your lookback window reads 30 days, many of those campaigns may simply have timed out between visits.
Then Shopify. Suppose ten recent orders show a first visit from Instagram in four, from a Google search in three and no summary in three. If GA4 shows Instagram near zero at the same time, that gap is your lead: Instagram starts journeys that GA4 files elsewhere.
The fix there is a tag, not a budget move. Put the platform's name in utm_source on your bio and story links, with utm_medium and utm_campaign, and a creator's handle in utm_content. If the tags hold, the next Instagram visitors arrive with a name.
Now set the steps beside one store's export, which counts shares of revenue, not sessions. On its Channels sheet, Direct's share is 57.7% of revenue in all three views: last click, first click and touched. On the Channels sheet, the touched view adds up to 110.4% by design. A journey that touched two channels counts in both.
So in this one store, journeys that mixed channels can only hold a small part of revenue. Step 5 would find little: Direct opens the record as often as it closes it, and little of that revenue has a channel before it. For that store, steps 2, 3 and 6 carry the trace, because the trail starts before the first recorded touch.
What should you check when the trail goes cold?
- Many Shopify orders show no conversion summary. Shopify's help says that happens when apps and private browsers prevent cookie tracking, and for orders that began as drafts. Summary details can also take up to 48 hours to display.
- Shopify names a first visit that GA4 files under Direct. The two tools record visits separately, and Shopify's summary depends on cookie tracking. Trust the pattern across ten orders, not any single order.
- Direct-only paths dominate the paths report. Check whether key events reach GA4 by data import first. That report uses Direct when there is no path data to credit.
- New visitors in Direct pile onto one deep page. A link went out without tags. The fixes are in how to reduce direct traffic in GA4.
- The First user columns show Unassigned. GA4 uses Unassigned when no channel rule matches the event data, usually a tag with an odd medium. Fix the tag and the channel name follows.
What to do this week
- Build the Direct exploration today. Work through steps 1 to 3 on last month's data. Pass: a channel you run tops the First user columns of the Direct row, so you know whose visitors keep coming back unlabelled. Fail: Direct tops them, so the origin sits off the record and Shopify's orders are your next lead.
- Tag the links you hand out by hand. Give bio links, story links, chat broadcasts and creator links a utm_source named after the platform, plus utm_medium and utm_campaign. Pass: a week on, Reports > Acquisition > Traffic acquisition lists them under their own source. Fail: they still land in Direct, so tap one on your phone and check the tags survive.
- Hold Shopify's tally against GA4's. Compare step 6's first-visit origins with the First user columns from step 2. Pass: both name the same top channel behind Direct. Fail: they disagree, so neither tool holds the whole trail; test the channel in dispute with a holdout before you fund it.
Check the homework. Your GA4 Attribution paths export already holds the evidence. Causality Engine reads that one file and shows what each channel caused next to what last-click gave it, in 1 to 2 minutes, for €99 once (excluding VAT), refundable within 30 days. Check the homework
Sources, 1 October 2026: Free-form exploration (Google); Analytics dimensions and metrics (Google); Scopes of traffic-source dimensions (Google); Select attribution settings (Google); Get started with attribution (Google); Key events attribution paths report (Google); Viewing order conversion summary (Shopify); URL builders: Collect campaign data with custom URLs (Google); Traffic acquisition report (Google)
Related answers
Frequently asked questions
What does Shopify's conversion summary show for an order?
The customer's number of orders, their visits to your store in the last 30 days and the origin of their first visit. Click View conversion details for total visits and the days between the first and most recent visit. Summary details might take up to 48 hours to display.Why do some Shopify orders have no conversion summary?
Shopify shows none when apps and private browsers prevent cookie tracking, or when the order began as a draft. It also skips orders that did not come from your Online Store or Hydrogen sales channels and carry no source or landing page.Does GA4 treat a new device as a new user?
Often, yes. Google says GA4 identifies users through the reporting identity you choose and the user's browser or device settings. Without a signed-in user ID, a buyer who shopped on a work computer can look new on their phone. If that return visit carries no tags, it lands in Direct.
Go deeper: Causal attribution, explained.
Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.
Keep reading
Terms in this article
- AnalyticsAnalytics is the systematic computational analysis of data. It reveals customer behavior and measures campaign performance.
- AttributionAttribution identifies user actions that contribute to a desired outcome and assigns value to each. It reveals which marketing touchpoints drive conversions.
- CausalityCausality is the relationship where one event directly causes another, essential for identifying specific actions that drive desired outcomes in marketing.
- ConversionConversion is a specific, desired action a user takes in response to a marketing message, such as a purchase or a sign-up.
- Direct TrafficDirect Traffic refers to website visitors who arrive by typing the URL directly into their browser or through bookmarks. They do not come from search engines or referrals.
- IncrementalityIncrementality measures the true causal impact of a marketing campaign. It quantifies the additional conversions or revenue directly from that activity.
- TouchpointTouchpoint is any interaction a customer has with a brand throughout their journey. In marketing attribution, each touchpoint is a data signal to understand marketing impact.
- UTM ParametersUTM Parameters are URL tags marketers use to track campaign effectiveness across traffic sources. They provide data for accurate campaign tracking and attribution in analytics platforms.