Attributing ChatGPT and Perplexity Traffic in GA4: What You Can See and What You Can't
Direct traffic grew this quarter and nobody ran a campaign. No email send, no new placement, no press. Nine times out of ten when a brand brings us that, the answer is that people are arriving from an AI assistant and GA4 has nowhere sensible to put them.
The question we get asked next is whether that traffic can be attributed at all. Partly. You can isolate most of it with about ten minutes of configuration, you cannot recover all of it, and the gap between those two facts is the part worth understanding before you report a number to anyone. We run this setup on every site we touch, including the website SEO and analytics work we do for brands whose DTC site is carrying real revenue, so the shortcuts and the dead ends below are the ones we have hit ourselves.
Can you attribute traffic from ChatGPT or Perplexity?
Yes for the sessions that arrive with a referrer, and no for the ones that don't. That single sentence is the whole problem. When somebody clicks a link inside a ChatGPT answer or a Perplexity citation, the browser usually passes a referring hostname, and GA4 records it like any other referral. When the same person copies your URL out of the answer and pastes it into a new tab, or taps through from a mobile app that strips the referrer, nothing is passed and GA4 files the session as Direct. Same conversation, same intent, two different buckets.
So the honest framing is that you are measuring a floor, not a total. Every number you produce for AI-referred sessions is the smallest the real figure could be. We say that out loud in client reporting, because the alternative is a chart that looks precise and isn't.
Where each AI surface lands in GA4 by default
Google has started recognizing some AI assistants inside the default channel group, and the coverage is uneven and still moving. Which engines are included has changed more than once this year, and the vendor write-ups contradict each other. Check your own property rather than trusting any list, this one included. As of our last look, the default behaviour sorts out roughly like this.
| Surface | How the session arrives | Where GA4 tends to file it | What to do about it |
|---|---|---|---|
| ChatGPT | Referrer from chatgpt.com or chat.openai.com | Recognized as an AI assistant in newer properties, Referral in older ones | Add to a custom channel group so the classification is yours, not Google's |
| Perplexity | Referrer from perplexity.ai | Referral, mixed in with blogs and directories | Add to the custom channel group explicitly |
| Gemini and AI Mode | Referrer from gemini.google.com, or no referrer from within Search | Split between AI assistant, Referral and Organic Search | Separate the assistant hostnames from Organic Search before you read either |
| Copilot | Referrer from copilot.microsoft.com or Bing edge services | Referral | Add to the custom channel group |
| Any of the above, copied and pasted | No referrer at all | Direct | Nothing recovers these. Model the gap instead |
| Amazon Rufus | Does not leave Amazon | Never reaches your GA4 | Read it in Search Query Performance, not analytics |
The last two rows are the ones that catch people out. A brand can spend a week building channel rules and still be looking at a minority of its AI-influenced traffic, because the pasted sessions and the on-Amazon conversations were never in the property to begin with.
Build the custom channel group
Do this rather than relying on whatever Google's defaults are doing this month, because a channel group you built is a channel group you can explain in six months.
- In GA4, open Admin, then Data display, then Channel groups, and create a new group. Copy the default group as your starting point so you keep every existing channel.
- Add a new channel named AI Assistants. The condition is Session source matches regex, and the expression is a list of the assistant hostnames you care about: chatgpt.com, chat.openai.com, perplexity.ai, gemini.google.com, copilot.microsoft.com, claude.ai.
- Drag that channel above Referral and above Organic Search. GA4 evaluates channels top to bottom and assigns the first match, so a rule sitting underneath Referral will never fire.
- Save, then check a past month. Whether a new group reclassifies history depends on the property, and the published guidance disagrees with itself, so confirm it rather than assume it.
- Build one exploration on the new channel with landing page as a dimension. The channel total is a vanity number. The landing pages are the thing you can act on.
One warning from running this across more than one property. If your GA4 property receives more than one site, and plenty do, every report you build on this needs a hostname filter or the numbers are somebody else's. One property we work in takes two separate storefronts, and the smaller one is about five percent of the sessions. An unfiltered AI-referral chart there is not wrong by a little.
Tag the links you control
You cannot tag a citation. When a model quotes your page, the URL it hands the user is whatever the model has, and you have no say in it. What you can tag is every surface you own that an AI engine reads and reproduces: the canonical links in your own content, the URLs in your help docs and PDFs, the links in syndicated placements you negotiated, the addresses in your llms.txt if you publish one.
That matters more than it sounds. Models reproduce the URL they found, query string and all. A product URL you published with a campaign parameter will come back to you carrying that parameter months later, from a surface you never bought. It is the one way to get an attributable signal out of a channel you cannot buy into.
Keep the tagging boring. One source value per surface, lower case, never a per-post variant, or you will spend next quarter merging twelve spellings of the same thing.
Check the crawl separately from the clicks
Server and CDN logs answer a different question, and brands conflate the two constantly. Requests from GPTBot, OAI-SearchBot, PerplexityBot and ClaudeBot tell you your pages are being read. They say nothing about whether anyone arrived. A page can be crawled daily and cited never.
Both numbers are useful, for different decisions. Crawl access is a technical problem: if your category pages render client side and the bot sees an empty shell, no amount of content strategy fixes it. Citation is an authority problem. Pull them into the same monthly view and keep them in separate columns.
What the number is actually worth
We'd argue with most agencies about this part. AI referral volume is not the metric. It is small on almost every site we look at, it is undercounted by design, and chasing it as a volume target produces the same behaviour that ruined blog traffic reporting a decade ago.
What the segment is good for is a quality read. Pull it alongside your other channels and look at conversion rate and revenue per session, not sessions. If the AI segment converts better than Organic Search on your site, which it often does, that tells you the assistant is pre-qualifying people before they arrive, and the useful response is to make sure the pages it cites are the ones that can take an order. If it converts worse, you are being cited in the wrong context, and the fix is content, not configuration.
Either way the lever is the same one that has always worked in organic: be the source that gets quoted. We have been running that play on Amazon's own search for years, where the mechanics are stricter and the feedback is faster. For Sparkle it put 40-plus keywords on page one and captured over 500,000 monthly searches, by fixing the things the ranking system actually reads rather than the things that are easy to publish. You can see how that worked on Sparkle. The engines changed. The job didn't.
A sane monthly view
Four lines, reviewed monthly, is enough for almost any brand:
- AI Assistants sessions and conversion rate, next to Organic Search and Direct.
- Top ten landing pages inside the AI segment.
- Direct sessions landing on deep URLs, meaning product and category pages nobody types from memory. That is your proxy for the referrer-less gap, and its trend is more honest than its absolute value.
- AI crawler hits by bot and by section, from logs.
If you want this built once and read properly every month after, tell us which property it is and we'll set it up against your real revenue rather than against sessions.
The one thing to get right
Build the channel group this week, and report the segment as a floor with the gap named next to it. A measurement you can defend is worth more than a bigger one you can't, and the brands that get this wrong are the ones who will spend 2027 explaining why a number they published went backwards when Google changed a default. If the site itself is the thing that needs the work rather than the reporting, that's our website SEO engagement.
More on Website SEO
Ecommerce Content Strategy in 2026: The Topic Cluster Model That Builds Topical Authority
Most brands publish ten shallow blog clusters and wonder why nothing ranks. The brands winning organic build fewer, deeper topic clusters that earn topical authority and route link equity to money pages. Here's the content system that compounds.
Off-Page SEO for Ecommerce in 2026: Why Authority, Not Just Content, Decides Who Ranks
Two-thirds of all pages have never earned a single backlink, and 90% of those get zero Google traffic. Off-page authority is the SEO pillar that decides who ranks, and in 2026 the same signals now drive AI citations too. Here's the operator's take on link building, digital PR, and brand authority for ecommerce.
Technical SEO for Ecommerce in 2026: Core Web Vitals, Crawl Budget, and Product Schema
Googlebot burns your crawl budget on filter URLs while your product pages go months without a recrawl, and roughly 43% of sites fail INP. This is the technical SEO that decides whether Google can find, load, and rank your best pages in 2026.