How to find your normal direct traffic share, step by step
Pick one GA4 report and read Direct's share of sessions and revenue month by month. Compare it with last year, check your lookback window and Shopify's session update, then set your own normal band from your highest and lowest months.
By Joris van Huët, Founder & CEOUpdated 7 min read
Run the numbers for your store: the free UTM coverage calculator.
Usually the normal share is your own. Read Direct's share of sessions and of revenue in one GA4 report, month by month, for a full year. Compare it with the same months last year. If it holds steady and dips when you fix tags, that band is your normal, and a jump outside it usually means lost tags.
Step by step
- Open Traffic acquisition. It shows where new and returning users come from, session by session. Its default dimension, Session default channel grouping, has a Direct row. Path: Reports > Acquisition > Traffic acquisition.
- Set a full year of complete months. Open the date picker in the top right and choose a custom range, or the Last 12 months preset. Then set the line chart's drop-down, at the top right of the chart, to month. Path: date picker > custom range; line chart drop-down > month.
- Log two shares for every month. Set the range to one month at a time. Divide Direct sessions by all sessions, then Direct's Total revenue by all revenue. Keep them in separate columns and never compare one with the other. Path: the Direct row, Sessions and Total revenue columns.
- Compare each month with last year. Click Compare in the date picker and pick Previous year. A rise right after a new email tool, checkout app or redirect usually means tags got lost on the way in. Path: date picker > Compare > Previous year.
- Note your lookback window before you trust a trend. Sessions follow the non-direct last click model, so a typed return inside the window keeps its earlier source. For key events other than first visits and first opens, the default window is 90 days. Path: Admin > Data display > Events > Attribution settings.
- Log the new-user view as a third number. Each user keeps the channel that first brought them, whatever they do later. Google advises against comparing metric values between the two acquisition reports, so keep this share apart. Path: Reports > Acquisition > User acquisition.
- Check Direct's share of attributed revenue. Here Direct gets credit only when the whole path was direct. Compare two models side by side, then open the paths report and export it. Path: Advertising > Attribution > Attribution models; Advertising > Key events > Key event attribution paths > Share this report.
- Cross-check in Shopify, after its session update. Sessions by referrer shows whether visitors came directly, from search or by referral. Shopify rolled out a new session measurement from 21 to 23 September 2026, so compare periods after it with each other. Path: Analytics > Reports > Category > Acquisition > Sessions by referrer.
- Turn on benchmarking for the rates it covers. Your property needs the Modeling contributions & business insights setting. Then click the benchmarking badge on a metric card to see the peer median and range. Path: Admin > Account Settings; Reports > Lifecycle > Acquisition > Acquisition overview.
A worked example
For illustration, here are round invented numbers for one month. Say your store had 20,000 sessions in March, and 5,000 of them were Direct: a 25% session share. Say the Direct row also carried 30% of Total revenue that month.
Say the same March last year showed a 20% session share. If nothing in your marketing changed, a rise of 5 points needs a cause. Say you find it: a new email app that sends links without UTM tags. If you tag them and the share falls back to 21% the next month, your band sits near 20% to 21%.
Do the same for the revenue column, with a little more room. A handful of large orders can swing a revenue share in a quiet month, while sessions barely move. A revenue share outside its band for two months running deserves the same hunt for lost tags.
Now set one store's export beside it. On the Channels sheet, Direct holds 57.7% of revenue in last click, first click and touched views. That figure is a revenue share from the paths export, so it belongs in your revenue column, never beside a session share.
Journey length shows why your lookback window matters. On the Journeys sheet, journeys of 2 to 3 touches show 12.5 days to buy. If a buyer like that came back by typing your address, the return sat well inside a 90-day window. Traffic acquisition would then file it under the earlier source, not under Direct.
What should you check when the numbers look wrong?
- Direct jumped on one date. Look for a change that day: a new email tool, checkout app, consent banner or redirect. Google's help on Direct says redirects can strip UTM parameters, and that traffic lands in Direct.
- Direct is nearly the only channel. Google's User acquisition help suggests linking your ad accounts or tagging your destination URLs when a report shows only direct traffic.
- Shopify and GA4 disagree. That is expected. Shopify's help lists different session rules, blocked cookies and time zones among the reasons. Track each tool's trend on its own.
- The share moved right after a settings change. A new lookback window applies from the day you save it. Start a fresh baseline instead of comparing across the change.
- Shopify's session counts shifted in late September 2026. That is the measurement update, not your customers. Shopify says to use data from after the update as the new baseline.
What if your sales are seasonal or your store is new?
Then compare like with like. A month with a big sale can pull in paid and email visitors, so Direct's share may dip. A quiet month can push it up with no change in tracking. Set each month against the same month last year, not against the month before.
If most of your sales land in one season, build the band from those months alone. A gift shop's December and its March answer different questions.
If your store is under a year old, there is no last year to compare with. Use the months you have, and treat the band as a draft until a full year has passed. The same goes for a store that added a big new channel this year. Start a fresh band from that channel's first full month, because the old months measured a different mix.
What to do this week
- Fill in a year of monthly shares. Use Traffic acquisition for sessions and revenue, and User acquisition for new users, all for the same months. Pass: three columns with no gaps. Fail: a month mixes reports or ranges, so redo it from one report.
- Date every tracking change on the same sheet. Add the day you switched email tools, apps, consent banners or redirects. Pass: each jump in Direct lines up with a dated change. Fail: a jump has no change beside it, so test those links for missing tags.
- Fix one leak and recheck next month. Tag your order and shipping emails with utm_source, utm_medium and utm_campaign. Pass: next month that traffic shows under its own source and Direct's session share dips. Fail: nothing moves, so a redirect or app is stripping the tags.
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: [GA4] Traffic acquisition report (Google); Change and compare date ranges in reports (Google); User acquisition report vs. Traffic acquisition report (Google); Select attribution settings (Google); User acquisition report (Google); Key event attribution models report (Google); Key events attribution paths report (Google); Benchmarking (Google); [GA4] Understand (direct) / (none) traffic (Google); Acquisition reports (Shopify); Changes to sessions and conversion rate in Shopify Analytics (Shopify); Analytics discrepancies (Shopify)
Related answers
Frequently asked questions
Which GA4 report should I use to track my direct share over time?
Traffic acquisition, because it counts every session, new or returning, by Session default channel grouping. Pick it once and keep it. Log User acquisition and the attribution reports as separate columns, because each uses a different scope.Why did my Shopify direct sessions change in late September 2026?
Shopify rolled out a new way of measuring sessions from 21 to 23 September 2026. Sessions now run on continued activity, some cart-link checkouts count, and identified bots are filtered out by default. Treat it as a measurement change and start a new baseline.Does a shorter lookback window raise my direct share?
It can. Sessions follow the non-direct last click model within your lookback window. Shorten it, and a typed return after the new limit stops inheriting its earlier source and shows as Direct. The change applies going forward, so start a fresh baseline.
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.
- Attribution ModelAn Attribution Model defines how credit for conversions is assigned to marketing touchpoints. It dictates how marketing channels receive credit for sales.
- 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.
- Conversion rateConversion Rate is the percentage of website visitors who complete a desired action out of the total number of visitors.
- 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.
- 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.