Skip to content
Implementa.

SEO for ChatGPT (GEO) · Guide 31 of 31

Measuring ChatGPT traffic in GA4: the channel group Google doesn’t build for you

You know people are starting to reach you from ChatGPT, but you open GA4 and it’s nowhere to be found: it lands in “Referral” mixed with everything else, or straight into “Direct” with no trace. GA4 doesn’t ship an AI channel out of the box, so that traffic exists but you can’t read it. The fix isn’t an expensive tool: it’s a custom channel group with a regex that groups ChatGPT, Perplexity, Claude and the rest, splits it out, and puts it where you can see it. Here’s the exact method —and how to read it without fooling yourself.

You know people are starting to reach you from ChatGPT, but you open GA4 and it’s nowhere to be found: it lands in “Referral” mixed with everything else, or straight into “Direct” with no trace. GA4 doesn’t ship an AI channel out of the box, so that traffic exists but you can’t read it. The fix isn’t an expensive tool: it’s a custom channel group with a regex that groups ChatGPT, Perplexity, Claude and the rest, splits it out, and puts it where you can see it. Here’s the exact method —and how to read it without fooling yourself.

Why GA4 doesn’t show you AI traffic by default

GA4 classifies every session by its referrer and has no built-in “AI” channel. When someone clicks a link inside a ChatGPT, Perplexity or Google AI answer, one of two things happens. Either it arrives with the engine domain as referrer (chatgpt.com, perplexity.ai, gemini.google.com…) and GA4 files it under “Referral”, piled in with newsletters, forums and any other site that links you. Or it arrives with no referrer —from the mobile app, or because the model opened the link without propagating the source— and drops into “Direct”, the catch-all for everything whose origin is unknown.

The result is that AI traffic exists in your data but it’s dissolved: not summed, not labeled, not comparable month over month. To read it you have to do the one thing Google doesn’t do for you: create a custom channel group that recognizes those domains and buckets them under a label of your own.

Create a custom channel group for AI traffic

A channel group is how GA4 sorts your sessions into buckets: Organic Search, Direct, Referral, Paid… You can build a custom one and add a new rule ahead of the defaults. The path, in a GA4 property:

  1. Admin → Data display → Channel groups → Create new channel group. Name it (e.g. “With AI”) and describe it. GA4 clones the standard rules so you lose nothing.
  2. Add new channel → “AI Assistants”. This is the new bucket where generative-engine traffic will land. Pick a name you’ll recognize in reports.
  3. Define the condition with a regex on “Source”. This is where the AI-domain expression goes (it’s in the next section). Use “matches regex” on the Source dimension, not on Medium.
  4. Move the rule above “Referral” and “Direct”. Order rules everything: GA4 evaluates top to bottom and assigns the session to the first channel that matches. If “AI Assistants” sits below “Referral”, it will never capture anything because Referral grabs it first.
  5. Save and wait. The group applies from now in the reports that use it, but give it a runway of data before drawing conclusions: one day isn’t a trend.

One catch: a custom channel group doesn’t reprocess history the same way in every report, and some standard reports keep using the default group. For serious analysis, use the new group inside an Exploration where you can pick “Session custom channel group” as a dimension.

The regex that groups ChatGPT, Perplexity, Claude and the rest

The condition is a “matches regex” on Source with the domains of the generative engines you care about. A sensible starting point, covering the big ones:

Three things worth tuning to your case. First: the dots are escaped (\.) so the regex doesn’t treat them as wildcards. Second: add or drop domains for your market —if your audience uses Grok, DeepSeek or You.com, include them; if not, don’t clutter the bucket. Third: revisit every few weeks, because domains change (OpenAI has moved traffic between chat.openai.com and chatgpt.com, and new engines show up unannounced). A GEO regex isn’t set-and-forget: it’s maintained.

EngineDomain(s) to include
ChatGPTchatgpt.com, chat.openai.com
Perplexityperplexity.ai
Google AI / Geminigemini.google.com
Microsoft Copilotcopilot.microsoft.com, bing.com/chat
Claudeclaude.ai
Meta AI / DeepSeek / Youmeta.ai, deepseek.com, you.com

If you want each engine in its own channel instead of one bucket, create several rules (one per engine) above Referral. It gives more detail —seeing Perplexity rise while ChatGPT dips is actionable— in exchange for more upkeep.

How to read it: a directional signal, not an exact number

This is where almost everyone fools themselves. The number GA4 gives you isn’t “how many people ChatGPT sent me”. It’s “how many sessions arrived with the referrer of an AI engine that I managed to capture”. It leaves out everything that arrives with no referrer —mobile apps, links the model opened— which still falls into Direct, and it can’t see the times the AI named you without anyone clicking. It’s a floor, not a total.

So you read it as a directional signal, not an exact metric. The questions it answers well: is AI traffic rising month over month? which pages does it attract —product, blog, pricing? does it convert differently from traditional search? Those trends are reliable even if the absolute value is undercounted, because the bias is consistent. What you can’t do is tell leadership “we had exactly 1,240 ChatGPT visits” as if it were a closed figure. For the full framework of what you can and can’t measure, the guide on how to measure AI visibility puts each metric in its place.

What to do with what you see

Wiring up the channel is the start, not the finish. With clean data you can act. If AI traffic grows but lands on pages that don’t convert, it’s a destination problem: the AI sends you people to a place that doesn’t close. If it mostly attracts one page, that page is the one the AI uses as a source —reinforce it and link from it to what you sell. And if it doesn’t grow at all despite knowing you’re mentioned, the gap is upstream: you’re cited without a link, or named in questions that don’t generate a visit.

The logical next step is to cross the click with the mention. You build GA4 traffic yourself in an afternoon; knowing whether the AI names you, in which questions and against whom takes a GEO audit that looks inside the answer, not just at the click. And if you’d rather not run the protocol or interpret the noise, delegating AI visibility monitoring gives you the mention data and its tracking; when it’s time to move content so the AI sends you more and better traffic, GEO optimization does the work, not the report.

Frequently asked questions

Because GA4 has no built-in “AI” channel and classifies each visit by its referrer. When someone clicks a link inside ChatGPT, Perplexity or Google AI, sometimes it arrives with the engine domain (chatgpt.com, perplexity.ai…) and falls into “Referral” mixed with everything else; other times it arrives with no referrer —from the app, or because the model opened the link without passing it— and drops into “Direct”. In neither case do you see it as “AI traffic” until you build a custom channel group that splits it out.

One that captures the generative-engine domains on the “Source” dimension: chatgpt.com|chat.openai.com|perplexity.ai|claude.ai|gemini.google.com|copilot.microsoft.com|meta.ai|deepseek. Add it to a custom channel group as a new rule, place it above “Referral” so it captures first, and from there GA4 buckets those sessions under a channel you name yourself (“AI Assistants”, for example).

No, and treating it as exact is the most common mistake. It’s a directional signal: it measures well the visits that arrive with a generative-engine referrer, but it misses those arriving from mobile apps or with no referrer (they fall into Direct) and it can’t see the times the AI named you without a click. Use it for trend —is it rising month over month? which pages does it attract?— not to claim “I had exactly X ChatGPT visits”. For the full picture of whether the AI cites you, you need to measure visibility inside the answer, not just the click.

GA4 traffic measures the click: how many people reached your site from a generative engine. Measuring visibility measures the mention: whether the AI names you in its answer, in what position and against whom —click or no click. They’re complementary and neither replaces the other: you can be heavily cited and get few clicks (the AI answers without a visit being needed), or the reverse. GA4 traffic is the part you can build yourself in an afternoon; visibility takes a separate audit.

Free AI Impact Plan

The guide is generic. Your plan isn't.

Tell us about your company and we'll ship back a diagnosis with priorities, numbers and what to implement first. No sales call, no charge.

Measuring ChatGPT traffic in GA4: the channel group Google doesn’t build for you · Implementa