How to Measure Traffic from ChatGPT, Perplexity and AI Mode — Analytics for the AI Era (GA4 + Server Logs)
Here's the 2026 paradox: companies invest in AI visibility, models start recommending them — and the reports show nothing, so the board asks what it was all for. The problem is almost never a lack of results; it's measurement. A default GA4 setup effectively hides AI traffic: some of it falls into the generic "referral" bucket, some into "direct", and clicks from AI Overviews and AI Mode are indistinguishable from regular Google traffic. On top of that sits a layer web analytics never sees at all — an agent reading your page on a user's behalf doesn't execute JavaScript, so GA4 doesn't even know anyone "was here". And the stakes are concrete: Similarweb measurements showed traffic from models converting ~4.4× better than classic organic, and Adobe measured four-digit year-over-year growth of AI traffic to e-commerce.
AI traffic converts up to ~4.4× better than classic organic and grew to stores by four digits — yet default GA4 hides it well: some lands in referrals, some in direct, and AI Overviews clicks are indistinguishable from regular Google. The complete measurement workshop: an AI channel group in GA4 with a ready regex, dark AI traffic, the AI Overviews signature in GSC, and server logs as the other half of the picture.
This post is the complete measurement workshop: what GA4 sees, what it doesn't, and how to work around it — with a ready regex, step-by-step configuration, and server logs as the other half of the picture.
Three measurement layers — map first, tools second
Before you open GA4, let's order what can be measured at all. AI visibility has three layers, and each needs a different tool:
/// THREE LAYERS OF AI VISIBILITY MEASUREMENT
GA4 covers only the middle one — the other two need different tools
- 1.What the models say — whether ChatGPT and Perplexity recommend your brand at all. You won't measure that in GA4; that's what the AI visibility audit and regular Share of Voice measurement are for.
- 2.What arrives at the site — clicks out of AI answers, i.e. the subject of this post. GA4's kingdom.
- 3.What the bots do — whether AI crawlers fetch your content at all. That's visible only in server logs, and I cover reading them in the post on AI crawlers.
The most common mistake is measuring only layer two and concluding "AI doesn't work". Meanwhile an answer without a click does its job too — it builds a brand that later shows up as growing branded search.
How GA4 knows traffic came from AI — and when it doesn't
The good news: most assistants leave a readable trace in the referrer. Since launching search (November 2024), ChatGPT appends utm_source=chatgpt.com to outbound links, so its traffic is exceptionally easy to catch. The bad news: the biggest player — Google — doesn't label its AI traffic at all.
/// HOW AI TRAFFIC SHOWS UP IN GA4
The lower on the list, the more traffic falls out of your reports
| Assistant | How it appears in GA4 | Notes |
|---|---|---|
| ChatGPT | chatgpt.com / referral + utm_source=chatgpt.com | older sessions also as chat.openai.com |
| Perplexity | perplexity.ai / referral | — |
| Gemini | gemini.google.com / referral | don't confuse with google / organic |
| Copilot | copilot.microsoft.com / referral | some entries via Bing domains |
| Claude | claude.ai / referral | — |
| AI Overviews / AI Mode | google / organic — no distinction | Google doesn't label clicks from AI features |
That last row is the most important thing in the whole table: a click from AI Overviews looks identical in GA4 to a click from a classic blue link. Google confirms in its documentation that traffic from AI features is reported together with search — there's no separate dimension in GA4 or Search Console.
Dark AI traffic — what you'll never see
Before we configure reports, an honest list of what will always stay outside them:
- An agent reads the page for the user. When someone asks ChatGPT to analyze your offer, the page is fetched by a bot (ChatGPT-User) that doesn't execute JavaScript — GA4 records no session. The only trace is in server logs.
- Copying instead of clicking. The user sees your brand in an answer, opens a new tab and types the address — in GA4 that's "direct".
- Assistants' desktop and mobile apps tend to drop the referrer — another batch of visits lands in "direct".
- Zero-click. The answer sufficed; there was no click. No session, but there is impact — it shows up later as growing branded search.
The practical takeaway: treat the numbers you see in GA4 as the lower bound of AI's real impact — industry estimates put the undercount at several-fold. That's not a reason to skip measuring; it's a reason to measure more than one layer.
GA4 configuration, step by step
The heart of the whole setup is one regex matching session sources:
chatgpt\.com|chat\.openai\.com|perplexity\.ai|gemini\.google\.com|bard\.google\.com|copilot\.microsoft\.com|claude\.ai|meta\.ai|edgeservices\.bing\.com|you\.com|poe\.comWith this regex you do three things:
- 1.A custom channel group. Admin → Data settings → Channel groups: copy the default group and add an "AI" channel at the top with the condition "source matches regex". From then on every standard acquisition report shows AI as its own channel — next to Organic Search and Direct.
- 2.An exploration for AI traffic. Explore → new exploration: the "session source" dimension filtered by the same regex, plus landing pages, conversions and revenue. This is your microscope: which content attracts traffic from models and what that traffic does next.
- 3.A quality comparison. Put the AI session segment against organic and direct by conversion rate and engagement. At most companies AI traffic is smaller in volume but clearly better in quality — the user arrives after the decision, not before it. This is the slide that convinces the board.
Two habits to finish the setup: add annotations at every major publication of AI-focused content (otherwise in six months you won't connect cause and effect), and wire the report into a recurring send — I describe automating that loop in the post on automated reporting with AI alerts.
Search Console: the AI Overviews signature
Since Google doesn't label AI traffic, indirect measurement remains. Since mid-2025, AI Mode data is included in the performance report (type "Web") — with no separate filter. But AI Overviews leave a characteristic fingerprint:
- Impressions rise, CTR falls on informational queries — your page is being shown (in AI boxes too) but clicked less.
- Compare query cohorts: those with a visible AI box versus those without — the CTR gap is your local cost (or gain) of AI Overviews.
- Watch average position separately from impressions: stable position + falling CTR = the classic signature of an AI answer eating clicks, not a ranking drop.
How to actually get cited inside those AI boxes — because they drive these impressions — is covered in the post on AI Overviews and AI Mode.
Server logs — the other half of the picture
In the logs you see what GA4 will never see — and it's the most commonly skipped part of measurement:
- On-demand bot visits (ChatGPT-User, Perplexity-User, Claude-User) are real "reads" of your page by users via an agent. The bot doesn't execute JavaScript, so it doesn't exist in GA4 — but in the logs these are countable requests with a specific User-agent. A growing number of such visits is hard proof your content works in AI.
- Search crawler activity (OAI-SearchBot, PerplexityBot) precedes citations: first the bot fetches the content, then the model starts recommending it. A drop in crawling of key pages is a warning signal long before traffic falls.
- The pipeline therefore looks like this: the bot crawls (logs) → the model cites (audit/SoV) → the user clicks (GA4). Measuring all three points tells you at which stage things break.
How to filter logs by User-agent and verify impersonating bots is covered in detail in the AI crawlers post.
The KPI set for the AI era
/// AI TRAFFIC IN NUMBERS
The monthly dashboard I consider the minimum for myself and clients:
| KPI | Data source | What it answers |
|---|---|---|
| AI channel sessions + trend | GA4 (channel group) | is traffic from models growing |
| Conversion: AI vs organic vs direct | GA4 (segment comparison) | is that traffic worth anything |
| Top landing pages for AI traffic | GA4 (exploration) | which content the models "like" |
| Impressions and CTR on informational queries | Search Console | the AI Overviews effect |
| User-agent bot visits (ChatGPT-User etc.) | server logs | invisible reads by agents |
| Share of Voice in models | manual audit or monitoring | do models recommend you or competitors |
| Branded searches + trend | GSC / Trends | the delayed zero-click effect |
The 60-minute rollout plan
- 1.Create the "AI" channel group in GA4 with the regex from this post (15 min).
- 2.Build the exploration for AI traffic: sources, landing pages, conversions (15 min).
- 3.Save the comparison report of AI conversion vs the other channels (10 min).
- 4.Check the last 30 days of logs for ChatGPT-User and OAI-SearchBot (15 min).
- 5.Record the baseline: today's numbers from every layer plus the date. Without a reference point no future report will say anything (5 min).
- 6.Put a monthly KPI review from the table above in your calendar.
---
I build AI visibility measurement from the first layer to the board-level dashboard — as part of AI optimization (GEO) and reporting automation. I teach it in the SEO & GEO course. Get in touch — I'll start by configuring your AI channel group and reviewing your logs.
Worth reading next:

SEO & GEO specialist and AI engineer from Białystok. 10 years building search visibility for recognized brands and 3 years delivering AI — agents, automation and LLM integrations (Next.js, React, Node.js).
/// RELATED_SERVICES
Need these concepts implemented? Explore the services related to this topic.
/// SOURCES
- 01OpenAI – Introducing ChatGPT search (official announcement)
- 02Google – AI features and your website (official docs)
- 03Google Analytics (GA4) – dimensions and metrics schema (official docs)
- 04Cloudflare Radar – AI Insights (bot and assistant traffic trends)
- 05Perplexity – crawler documentation (Perplexity-User)
/// RELATED_RECORDS
JavaScript SEO — What Googlebot and AI Crawlers Really See Without Rendering
Googlebot renders JavaScript — late and at its own cost. Most AI crawlers never render it at all: Vercel's study showed GPTBot, ClaudeBot and PerplexityBot fetch JS files but don't execute them. How to check in 5 minutes what bots really see, how CSR differs from SSR/SSG/ISR, and how to fix an SPA without rewriting the whole app.
AI Crawlers — Who Scans Your Site and How to Manage It (robots.txt, Pay-Per-Crawl)
GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended — each does something different, and blocking the wrong one means vanishing from AI answers. The complete AI bot map, a robots.txt decision matrix, verifying impersonating scrapers, and the new crawl economy: Cloudflare's pay-per-crawl (HTTP 402) and the RSL licensing standard.
E-commerce SEO & GEO — How Stores Win Visibility in Google and AI Shopping
AI-driven shopping is already ~$21B in annual spend (4× YoY), AI traffic to stores grew by thousands of percent, and 83% of ChatGPT's shopping carousel data comes from Google Shopping. The complete guide: Product schema, the Merchant Center feed, AI crawler access, the ACP/UCP protocols and a store rollout plan.
Signal received?
Terminate
Silence
Initiate protocol. Establish connection. Let's build something loud.
