AI Search Traffic Tracking: ChatGPT, Perplexity, Copilot

No tool catches every AI-search visit. A big slice of that traffic shows up as Direct with no referrer at all. GA4's native AI Assistant channel now buckets ChatGPT, Gemini, and Copilot but misses Perplexity, and the one signal that survives referrer stripping is ChatGPT's utm_source=chatgpt.com. Good AI search traffic tracking means picking a tool by whether it separates AI sources and honestly flags the Direct blind spot, not by whichever dashboard shows the biggest AI number.

The eval that kicked this off

I spent an afternoon doing something deliberately dumb: clicking the same set of cited links from ChatGPT, Perplexity, Copilot, and Gemini, on both desktop Chrome and the iOS apps, then reading exactly what each session left behind in my analytics. Same landing page, four assistants, two surfaces each.

The results were all over the place. Desktop ChatGPT tagged its outbound click cleanly. Perplexity on desktop showed up as a plain referral with no tag whatsoever. And the iOS app clicks? Half of them landed as Direct, looking identical to me typing the URL from memory.

That's the thesis for this whole piece. Whatever number your tool reports for AI traffic is a floor, not a ceiling. The gap between that floor and reality depends almost entirely on how much of your AI traffic comes from mobile apps and copy-paste, the two places a referrer goes to die. So when a vendor shows you a tidy "AI Assistants" line, the honest question isn't "is it accurate." It's "how much is it missing, and does it admit it."

First, why this is suddenly worth tracking

The commercial case is no longer speculative. Adobe Analytics, drawing on more than a trillion visits to U.S. retail sites, reported that referrals from generative AI platforms rose 693% year over year across November and December 2025, according to Digital Commerce 360. That's a category going from rounding-error to something you have to explain in a board deck.

If you're reading a comparison this deep, you already believe AI referrals matter. The problem isn't belief. It's measurement, and you can't optimize a channel you're systematically under-counting. So let's get precise about what these clicks actually look like before we score anyone.

What an AI-search click actually looks like in your analytics

Here's the reference table I wish someone had handed me before the eval. It's built from my own testing plus the documented behavior of each source. The rows are what matter, because desktop and in-app behave differently, and that difference is the whole story.

Source Referrer emitted UTM appended Desktop vs in-app
ChatGPT chatgpt.com utm_source=chatgpt.com on cited links Desktop sends both; iOS app often drops the referrer but keeps the UTM
Perplexity perplexity.ai (bare) none Desktop sends bare referrer; app frequently drops it to Direct
Copilot copilot-family referrer none consistently Desktop referrer usually intact; in-app varies
Gemini gemini.google.com (bare) none Bare referrer on desktop; app strips it
iOS apps / rel=noreferrer / copy-paste none none (unless a UTM was in the link) Lands in Direct across the board

ChatGPT auto-appends utm_source=chatgpt.com to links it cites from live web results, while Perplexity and Gemini generally send only a bare referrer with no tags. Surface Local documents this well: most Perplexity traffic arrives as a perplexity.ai referral with nothing attached.

Here's the thing. A UTM parameter lives in the query string, not the referrer header. That means it survives the exact situations that destroy a referrer: native in-app browsers, strict referrer policies, cross-origin redirects. As Infinacode puts it, a click from the ChatGPT iOS app often lands as Direct with no referrer, yet still carries utm_source=chatgpt.com if the link was tagged, a session you'd otherwise lose entirely. The UTM surviving what kills the referrer is the whole game. It's why ChatGPT is the one AI source you can actually trust your numbers on, and why everyone else is guesswork.

The Perplexity problem, and why an "AI channel" isn't enough

Perplexity sends a bare perplexity.ai referrer, no UTM, and it's absent from Google's official AI Assistants channel definition. So it lands in generic Referral. Per Digital Applied, Perplexity's visits "continue to fall into the Referral channel" and need a custom channel group to separate.

The consequence for tool-shopping is direct. Any product that leans only on GA4's native AI channel mis-files Perplexity by design. If Perplexity is a meaningful chunk of your AI traffic, and for a lot of research-heavy B2B sites it is, a native-channel-only tool will quietly under-report your AI footprint and over-report generic referral. That's not a bug you can configure away without custom work.

How I scored each tool

I scored on three axes, pass / partial / fail, and nothing else. No feature-checklist theater.

First axis: does the tool split ChatGPT, Perplexity, and Copilot out of the box, without me writing regex? Second: does it catch the UTM signal when the referrer is gone, the mobile-app case that's growing fastest? Third, and the one most vendors flunk: does it honestly surface and flag the Direct blind spot, or does it pretend its number is complete?

A tool can be genuinely useful and still fail axis three. Failing it doesn't make the tool bad. It makes the tool something you have to babysit. I'd rather know that going in.

The tools, scored

GA4 (native AI Assistant channel)

Pricing gotcha first. GA4 is free, so the "gotcha" isn't money, it's coverage and timing. The channel isn't retroactive and it's referrer-dependent, which means it's blind to exactly the traffic you most want to catch.

On May 13, 2026, Google added a dedicated AI Assistant channel to Default Channel Group reports, automatically classifying recognized AI referrers, per Delante. Wider property availability followed in June 2026. Google's live documentation, quoted by Digital Applied, defines the channel as covering "sources like ChatGPT, Gemini, Deepseek, Copilot, or Grok" and explicitly excluding Google's own AI Overviews and AI Mode.

Two limits hurt. Perplexity isn't in the definition, so it stays in Referral. And as Nice Looking Data spells out, the channel "only works for sessions that arrive with an intact referrer — traffic with a stripped or missing referrer still lands in Direct," and it isn't retroactive. Sessions collected before your rollout keep their old classification.

Scoring: partial on separation (ChatGPT and Copilot yes, Perplexity no), fail on catching the UTM when the referrer dies (the native channel is referrer-based, full stop), partial on the blind spot. GA4 doesn't hide that stripped referrers go to Direct, but it doesn't flag them as suspected AI either.

GA4 + a custom channel group (the regex workaround)

This is the manual fix, and it's the honest one. You build a custom channel group that catches perplexity.ai in the referral dimension and pulls utm_source=chatgpt.com out of Direct into a proper AI bucket. It closes the Perplexity gap and recovers the tagged iOS clicks that the native channel abandons.

The trade-off is effort and maintenance. Every time a new assistant appears or an existing one changes its referrer string, your regex is stale until you notice. If you've ever kept a GA4 channel group alive across a redesign, you know it's not a set-and-forget job.

Scoring: pass on separation, pass on catching the UTM (once you write the rule), partial on the blind spot, since you can recover tagged Direct traffic but untagged app clicks are still gone. If you want the mechanics of where GA4 runs out of road generally, our breakdown of GA4 versus dedicated product analytics covers the wider limits.

Specialist AI-visibility tools

There's a whole category focused on AI visibility, meaning how often your brand gets cited in AI answers, your share of zero-click responses, which prompts surface you. Treated fairly, these tools are good at what they do.

But they answer a different question than the one this article is about. Visibility is "am I being mentioned in the answer." On-site attribution is "did that mention send me a session, and can I tie it to a conversion." A citation-tracking tool won't tell you a Perplexity user landed on your pricing page and converted. If your problem is downstream attribution, this category is adjacent, not a substitute. I'm not scoring them on the three-axis rubric because they're not competing on it.

Adobe Analytics

Adobe belongs here honestly, because it's the source of the 693% number that opens the commercial case. At enterprise scale, its large-sample AI-referral reporting is strong. That trillion-visit dataset exists precisely because Adobe sits on that volume.

The caveat is the obvious one. Adobe Analytics is an enterprise purchase with enterprise pricing and implementation weight. If you're evaluating free GA4 against a Perplexity regex, Adobe isn't in your consideration set, and I won't pretend it is. For the org that already runs it, the AI-referral reporting is a real asset. For everyone else, it's a different tier of commitment.

Scoring at scale: pass on separation, partial on the UTM-when-referrer-dies case (still fundamentally referrer-and-tag dependent like everyone), pass on surfacing the blind spot honestly given how Adobe frames its own referral data.

Kixo

Pricing first, as always. Kixo runs per-project plans (FREE, GROWTH, and ENTERPRISE) bracketed by monthly active users, sold as B2B contracts. The MAU bracket is the thing to watch, because a spike in tracked users can push you into the next tier the way it does with any usage-priced analytics product.

Kixo (kixo.io) is an AI-native product and marketing analytics platform. Teams drop its iOS, Android, and Web SDKs into their own product; end users never log in. What's relevant to AI-traffic work here is the attribution side, meaning mobile attribution and deep links, including deferred deep links via kixo.cc short links, plus the chat-first querying that lets you ask, in plain language, how your sources split and get a chart back with a visible reasoning trail. There's also product analytics (funnels, retention, cohorts, user flows) and session replay with heatmaps, if you're consolidating.

Honest maturity caveat. I'm not going to claim Kixo ships a native AI-assistant auto-classification channel, because that's not something I can confirm from what's documented. Frame it as source and attribution tooling you'd interrogate through chat: you'd tag your links, land the traffic, then ask the dashboard to break down what came from where. That's a workflow, not a one-click AI channel.

Scoring against the rubric, conservatively: partial on out-of-the-box separation (depends on your tagging and querying rather than a labeled channel), partial on the UTM case (tagged links flow through attribution like any UTM), and I'll leave the blind-spot axis as partial, since chat-first querying makes it easy to ask about Direct anomalies, which is more than most dashboards invite.

Scorecard: who separates AI traffic out of the box

Tool Splits ChatGPT/Perplexity/Copilot Catches UTM when referrer is gone Flags the Direct blind spot
GA4 native AI channel Partial (no Perplexity) Fail Partial
GA4 + custom channel group Pass Pass Partial
Adobe Analytics Pass Partial Pass
Kixo Partial Partial Partial
Specialist visibility tools N/A (different question) N/A N/A

Nobody scores three passes. That's not me being stingy. It's the referrer economics. The one full-pass path to catching stripped-referrer AI traffic runs through UTMs, and UTMs only exist reliably for ChatGPT.

The blind spot nobody's tool fully fixes

Worth knowing: the Direct bucket is where truth goes to hide. TapClicks notes that many AI apps, especially mobile ones, don't pass a referrer when a user taps a link, and people copy-paste links out of AI answers constantly instead of clicking them. Both cases file a real AI visit as Direct, indistinguishable from someone typing your URL.

No tool on this list fully solves that, because the data physically isn't there to solve it with. The practical mitigation is two-part. Lean hard on the ChatGPT UTM, because it's the one signal that punches through, and every tagged ChatGPT click you recover from Direct is a real gain. Beyond that, treat unexplained Direct spikes as suspect rather than as brand strength. When Direct jumps and it doesn't line up with a campaign or a press hit, assume some of it is AI traffic wearing a disguise, and watch whether it moves with your AI-referral line. If you're wrestling with attribution across app and web more broadly, the MMP comparison is the companion read.

Verdict

If your AI traffic is mostly desktop ChatGPT, Copilot, and Gemini, GA4's native channel is the right starting point. It's free, it shipped in 2026, and it does the boring classification for you. Add a custom channel group for Perplexity and to rescue tagged ChatGPT clicks from Direct, and you've got a stack that scores well without a new invoice. Heavier attribution needs, or a mobile-first product, push you toward paid tooling where you can query source splits and tie them to conversions.

Who should not buy the winner: if your AI traffic is mostly mobile-app and iOS, where referrers die on contact, GA4's native channel will lie to you by omission. It'll show a confident, incomplete number and file the rest as Direct. In that case, skip the native-channel comfort and build a UTM-first setup with active Direct-anomaly monitoring. The classification convenience isn't worth trusting a metric that's structurally blind to your biggest source.

FAQ

Why does Perplexity traffic show up as Referral instead of AI in GA4? Because Perplexity isn't in Google's official AI Assistants channel definition, per Digital Applied, and it sends a bare perplexity.ai referrer with no UTM. You need a custom channel group to pull it into an AI bucket.

Does the ChatGPT UTM work from the mobile app? Often, yes. Even when the app strips the referrer and the session lands as Direct, the utm_source=chatgpt.com tag rides along in the query string, per Infinacode, because query strings survive what kills a referrer header.

Is GA4's AI Assistant channel retroactive? No. Nice Looking Data confirms sessions collected before your property's rollout keep their original classification, so historical AI traffic stays mis-filed.

Is any single tool accurate for total AI traffic? No. Every number is a floor because mobile-app and rel=noreferrer clicks strip the referrer and land in Direct, indistinguishable from direct navigation.