monkeyman.agency
industry

Your ChatGPT Traffic Is Hiding in 'Direct': Measuring AI Referrals on Shopify

AI assistants are sending you buyers, but most of that traffic lands in Direct or Unknown. Here is how to recover it in GA4 and Shopify and build a monthly report.

July 17, 2026 9 min read

“So we’re getting AI traffic or we’re not?”

Devon runs analytics for a $12M outdoor-apparel brand on Shopify. He’d been asked by his founder, twice now, whether the ChatGPT hype was translating into actual visitors. He pulled up GA4, filtered for referrals from chat.openai.com and perplexity.ai, and got a number so small it was embarrassing to report. Forty-one sessions in a month. The founder had personally watched three friends buy the brand’s jacket after asking ChatGPT for recommendations.

Three anecdotes, forty-one sessions. Something was clearly wrong with the count, not the phenomenon.

What’s wrong is that a lot of AI-assistant clicks don’t pass a referrer cleanly. The session shows up as direct or unknown even though it started with an AI answer. So the traffic is real, it’s arriving, and your analytics is quietly filing it under the one bucket nobody investigates.

Let’s fix the count.

Why the referrer disappears in the first place

A normal referral works because the browser tells your site where the click came from. Someone clicks a link on a blog, the browser passes that blog’s domain along, and GA4 files the session under referral with the source attached. Clean handoff.

AI surfaces break that handoff in a few ways. Some assistants render links in a way that strips the referrer before it ever reaches you. Some route the click through an intermediary that erases the origin. Some sit inside apps, not browsers, and mobile apps are notorious for dropping referrer data entirely. And when the referrer’s gone, GA4 has to guess, so it does what it always does with an origin it can’t identify. It calls it direct.

Direct is supposed to mean someone typed your URL or used a bookmark. In practice it’s become the junk drawer for every session whose provenance got lost in transit. Your AI traffic is in there, mixed with genuine direct visits and mislabeled email clicks and half a dozen other orphaned sessions.

That’s the mechanism. Now the recovery.

Three ways to find what’s hiding

You’re never going to recover every AI session, so drop that goal now. What you can do is triangulate, using three signals that each catch a different slice.

The first is the obvious one, the referrers that do come through clean. Perplexity, for instance, tends to pass its domain more reliably than ChatGPT does. Build a segment for known AI domains, chat.openai.com, chatgpt.com, perplexity.ai, copilot.microsoft.com, gemini.google.com, and whatever else emerges, and you’ll capture the honest minority that self-identify. This is your floor, not your ceiling.

The next signal is landing-page fingerprinting, and it’s where the real recovery happens. Think about how a human finds you versus how an AI-referred human finds you. A person browsing lands on your homepage, a category page, a paid campaign URL. Someone sent by an assistant lands deep, on the exact product or the exact answer-shaped page the model cited, often with no UTM and no referrer. When you see a spike of direct sessions hitting a specific deep product page, a page nobody navigates to cold, that’s a fingerprint. Real direct traffic clusters on your homepage. Orphaned AI traffic clusters on the pages assistants like to cite.

Then there’s the behavioral tell. An AI-referred visitor arrives pre-qualified. The assistant already answered their questions, compared options, maybe named your price. So they behave like someone late in the funnel who teleported in: they go straight to the product, they add to cart faster, they bounce less on the pages that matter. When a slice of your “direct” traffic converts noticeably better than the rest of your direct traffic, you’re probably looking at people the machine already sold.

None of these is proof on its own. Stacked together, they turn “forty-one sessions” into a defensible estimate.

Setting it up in GA4 and Shopify

Enough theory. Here’s the build.

In GA4, create a segment or a custom channel group for AI referrals using the known-domain list above. Google’s own default channel grouping won’t do this for you yet, so you’re defining it manually. Once it exists, you can watch it grow month over month instead of re-filtering by hand every time.

For the hidden portion, build an exploration that isolates direct sessions landing on deep product and content pages, then excludes your usual direct-heavy pages like the homepage and account login. What’s left is your best proxy for AI traffic that lost its referrer. It’s not surgical, and it’ll catch a few false positives, but it’s directionally honest and it’s repeatable.

Shopify’s native analytics is blunter here, it leans on the same referrer data and will bucket the same sessions as direct, but it’s still worth cross-checking your Shopify reports against GA4 for the conversion side, since Shopify sees the order data more cleanly than GA4 does. Use GA4 for the traffic-source detective work and Shopify for what those sessions actually bought.

One more thing worth wiring up: a note field or tag for orders that came through your AI segment, so finance can see revenue, not just sessions. Sessions convince nobody. Revenue attached to a channel gets you budget.

The fix that beats all the guessing

Everything above is reconstruction, working backward from broken data. There’s a better move for the links you actually control: stop the data from breaking in the first place.

Any link you can influence, tag it with UTMs. A referrer you set yourself never gets stripped, because it’s baked into the URL. If you syndicate a product feed, if you place links in a knowledge base an assistant might read, if you run a comparison page that AI tools cite, put UTM parameters on those links. Google’s Campaign URL guidance covers the format. When those tagged links get clicked, whether by a human or surfaced through an AI answer, the source rides along and GA4 files it correctly.

You can’t UTM the whole internet, obviously. You can’t reach inside ChatGPT and tag the links it generates. But the share of AI-adjacent traffic you can tag is bigger than most merchants realize once they map out every surface they actually own or feed.

This is the part I wish more teams did before they built elaborate GA4 explorations. Fix what you can fix at the source, then reconstruct the rest. Doing it the other way round means you’re forever chasing data you could’ve just labeled correctly on the way in.

What the numbers look like in 2026

Merchants keep asking for a benchmark, so here’s the honest range rather than a tidy stat.

Across the stores we see, recovered AI traffic tends to land somewhere between 1% and 4% of total sessions right now, and the spread within that range is enormous. A brand whose category gets asked about conversationally, gear, supplements, gift ideas, skincare, sits at the top. A brand selling something people search for by exact name sits near the bottom. Neither is doing anything wrong. Their categories just get discovered differently.

SignalWhat it catchesReliability
Known AI referrer domainsSessions that pass a clean referrerHigh, but small slice
Deep-page direct spikesOrphaned sessions that lost referrerMedium, needs judgment
Pre-qualified behaviorLate-funnel AI visitorsLow alone, strong as corroboration

The trend matters more than the level. A brand sitting at 2% today that was at 0.5% in spring is on a curve worth planning around. A flat 2% that isn’t moving is a different conversation. You only see either shape if you’re tracking monthly, which is the whole reason to build the report instead of pulling a one-off number when a founder asks.

A monthly report you’ll actually keep

The trap with measurement projects is building something so elaborate you run it once and abandon it. Don’t do that here.

Keep it to one page. Total sessions in your AI segment, split into clean-referrer and reconstructed. Revenue attributed to that segment. The top five landing pages AI traffic hit, because that list tells you which of your pages the assistants are citing, which is genuinely useful for content strategy. Month-over-month change on all of it.

Run it the same way every month even though the method is imperfect, because consistency is what makes the trend legible. If you change your reconstruction logic every month chasing precision, you lose the one thing the report is for, comparability over time. Pick a method that’s good enough, write it down, and hold it steady for a quarter before you refine it.

That’s it. No new tool, no vendor, an afternoon to build and twenty minutes a month to run.

What we keep telling clients

The reflex when a founder asks “are we getting AI traffic” is to go find the perfect number. There isn’t one, and chasing it burns weeks. What there is instead is a good-enough estimate you can stand behind and, more importantly, watch move over time.

We keep telling people that the direction is the deliverable. Whether it’s 1.8% or 2.6% this month barely matters. Whether it doubled since spring matters enormously, because that’s the line that tells you how much to invest in being legible to assistants, in structured data, in answer-shaped content, in getting your catalog clean. You can’t make that call off anecdotes, and you can’t make it off a single snapshot. You make it off a trend, and a trend needs a method you repeat.

The other thing we say, gently, is that the reconstruction work has a shelf life. As GA4 and the assistants evolve, some of today’s hidden traffic will start passing clean referrers, and some of your heuristics will drift. That’s fine. Revisit the method every quarter, not every week. Build for good-enough-and-repeatable, not perfect-and-fragile.

Devon rebuilt his measurement over a single afternoon. Known domains, a deep-page direct exploration, UTMs on every feed and comparison link his team controlled. His recovered AI traffic wasn’t forty-one sessions. It was closer to nine hundred, roughly 2.3% of his total, and the pages it clustered on told him exactly which three product stories ChatGPT had latched onto. He didn’t get a perfect number. He got a trend line, and a to-do list, which is more than the founder actually asked for.

Questions we get every week

Why does ChatGPT traffic show up as direct in GA4?

Many AI-assistant clicks don’t pass a referrer cleanly. When GA4 can’t identify where a session came from, it defaults to direct. So your AI visitors get mixed in with genuine bookmark-and-typed-URL traffic. The referrer isn’t wrong, it’s simply missing, and direct is GA4’s catch-all for missing.

Can I ever measure AI traffic with total accuracy?

No, and you should stop trying, because some referrers are stripped before they reach you and a slice will always be unrecoverable. Aim for a defensible estimate you track consistently rather than a precise figure you can never actually verify.

Is Perplexity easier to track than ChatGPT?

Generally yes, because Perplexity tends to pass its referrer domain more reliably, so more of its traffic self-identifies in your reports. ChatGPT strips or routes referrers more often, which is why so much of its traffic lands in direct. Segment for both, but expect cleaner data from Perplexity.

Do I need a paid attribution tool for this?

Most stores don’t, because GA4 segments, a landing-page exploration and disciplined UTM tagging get you a workable report for free. Consider a paid tool only once AI traffic is a big enough share of revenue that a percentage point of precision changes a real decision.

If your AI traffic is buried in Direct and you want it surfaced into a report your founder trusts, talk to us and we’ll build the GA4 segments and tagging with your team.

Need help with this?

Send us your store. We'll send back an audit.

Send us your store URL. We'll send back a free audit within 48 hours.

Phone (optional)