Guide

Measure AI traffic in GA4, what you see and what you miss

GA4 has had an AI Assistants channel since 13 May 2026. It isolates clicks from ChatGPT, Gemini, Claude, Copilot and Grok, it excludes Google AI Overviews, and it sees nothing once the referrer is stripped. We show where the data lives, how to build a custom channel group that holds up over time, and how to tie that traffic to key events and revenue.

Gabriel Toledano15 min readUpdated July 29, 2026
In short

Since 13 May 2026, GA4 automatically assigns the medium "ai-assistant" and the campaign "(ai-assistant)" to sessions whose referrer is a recognised assistant, then groups them into an AI Assistants channel. That channel excludes Google AI Overviews and AI Mode, which stay inside Organic Search. A custom channel group is still worth building, to add assistants Google does not recognise and to apply your own definition retroactively. Neither method captures visits whose referrer was stripped, nor citations that never got clicked.

Framing

What does GA4 actually measure when you say AI traffic?

GA4 measures clicks. When someone reads a ChatGPT answer, clicks a link to your site and loads the page, GA4 records a session. When that same person reads your brand name in the answer and never clicks, GA4 records nothing. Settle this before you configure anything, because it decides what your reporting can honestly claim.

Since 13 May 2026, Google Analytics automatically assigns the medium "ai-assistant" to a session when the referrer matches a recognised assistant. The campaign is set to "(ai-assistant)" and the session lands in the AI Assistants channel of the default channel group. Google describes that channel as the one by which users arrive at your site from sources like ChatGPT, Gemini, Deepseek, Copilot or Grok, and states that it excludes Google AI Overviews and AI Mode. Those two surfaces stay in organic search, since the official Organic Search definition now includes them explicitly. A GA4 property therefore gives you two separate views of AI traffic, one named view for conversational assistants, and one invisible view mixed into the rest of Google Search.

Google does not publish the list of referrers it treats as assistants. We cannot promise that a given assistant is covered on a given day. The only reliable check is your own report, reading the real values of the Session source dimension.

Google Analytics default channel table showing the AI Assistants row
Default channel descriptions in the Google Analytics help centre. The AI Assistants channel excludes AI Overviews and AI Mode, which the Organic Search row includes. Captured 29 July 2026.
  • GA4 sees clicks, not citations. A heavily cited brand with no clicked link stays invisible in GA4.
  • The AI Assistants channel excludes Google AI Overviews and AI Mode, which are counted as organic search.
  • The list of referrers Google recognises is not public and can change without notice.
  • Sessions that lose their referrer fall into Direct and never surface in any AI channel.

Google Analytics Help, default channel group | What's new in Google Analytics, 13 May 2026

Location

Where this data lives in GA4

It all happens in one report, Traffic acquisition. It describes where sessions come from, new and returning, unlike the User acquisition report which only covers first visits. For AI traffic that distinction matters, because the same person often comes back several times after one assistant answer.

  • Open Reports, then Acquisition, then Traffic acquisition.
  • Keep "Session default channel group" as the primary dimension so the AI Assistants row shows up.
  • Switch to "Session source / medium" to read the raw values, for example chatgpt.com / ai-assistant.
  • Use the search bar above the table to isolate one referrer, typing chatgpt.com and pressing Enter.
  • Add "Landing page + query string" as a secondary dimension to see which pages receive those visits.
Traffic source dimensions available in the Traffic acquisition report, per Google Analytics Help.
DimensionWhat it holdsHow to read it for AI traffic
Session default channel groupThe channel computed by Google's rulesThe AI Assistants row, aggregated across every assistant
Session sourceThe referrer host, or the utm_source valuechatgpt.com, perplexity.ai, gemini.google.com
Session mediumThe acquisition methodai-assistant for recognised assistants, otherwise referral
Session source / mediumBoth values combinedThe most reliable read before you write any rule
Session campaignThe campaign name(ai-assistant) for assistants Google recognises
Session source platformThe platform where media buying is managedManual for any non-ad traffic, including assistants

Google Analytics Help, Traffic acquisition report

Decision

Do you still need a custom channel group?

The native channel covers the basics, but you cannot edit it. Default channel groups are not editable in Google Analytics. If you want to track an assistant Google does not recognise yet, split ChatGPT from Perplexity inside one view, or freeze a definition that will not shift when Google updates its list, you need a custom channel group. Those groups apply to your reports retroactively, so you can re-read history with your own definition. Two limits matter. A standard property allows two custom groups on top of the default one, five on 360, and fifty channels per group. And custom groups are neither exported to BigQuery nor available in the Key events paths report.

One setting deserves attention. Any custom group can become the property primary channel group, from the top of the Channel groups page in Admin. That switch does not behave like retroactive reporting, it populates the primary channel group dimension with the new criteria from that point forward only.

Official Google Analytics steps to create an AI assistants channel
The AI assistants example published in the Google Analytics help page on custom channel groups. Captured 29 July 2026.
  • You want one channel per assistant instead of a single aggregated row.
  • You track an assistant missing from Google list, or one specific to your market.
  • You need to re-read twelve months of history under the same definition.
  • You want a written, versioned definition your team reviews every month.

Google Analytics Help, custom channel groups

Read next. How to measure GEO ROI | AI visibility, definition

Procedure

Build the AI assistants channel step by step

Everything happens in Admin, under Data display. You need an Editor role or above on the property. A group is always created by copying an existing one, the default group if you have never built any.

The example Google publishes does not say which dimension the condition should use. The supported fields for a custom channel group are Campaign id, Campaign name, Default channel group, Manual ad content, Medium, Source and Source platform. For referral traffic, Source is the field that matters.

  • In Admin, under Data display, open Channel groups.
  • Click Create new channel group to start from a copy of the default group, then name it.
  • Click Add new channel and name it AI assistants.
  • Add a condition group on the Source dimension, choose "matches regex", then paste your expression.
  • Add a second condition on Medium, with "exactly matches" and the value ai-assistant, so you also catch whatever Google recognises on its side.
  • Save the channel, click Reorder, drag AI assistants above Referrals and Organic Search, then Apply.
  • Save the group, then select it as the primary dimension in Traffic acquisition.
Limits documented in the Google Analytics help page on custom channel groups.
Watch out forConsequence
Channel order decides the outcomeTraffic lands in the first channel whose definition it matches, a channel sitting below Referrals will never see anything
Definitions are not case sensitiveNo need to plan for uppercase variants in your expression
Deletion is irreversibleReports, audiences and expanded data sets using the deleted group need a manual update
Large field counts degrade reportsGoogle recommends keeping definitions short and readable
Real test

The official Google regex, and where it breaks

Google publishes an example regular expression in its help centre. Here it is, unmodified.

Expression published by Google
^.*ai|.*\.openai.*|.*chatgpt.*|.*gemini.*|.*gpt.*|.*copilot.*|.*perplexity.*|.*google.*bard.*|.*bard.*google.*|.*bard.*|.*.*gemini.*google.*$

Google Analytics Help, about regular expressions

Results

What the test shows, and what we take from it

Inside a GA4 property, "matches regex" runs as a full match. Universal Analytics ran partial matches, which explains a lot of expressions copied from one tool to another without checking. So we tested the Google expression as a full match, in the RE2 syntax Google uses, against a list of real referrer hosts. Out of twelve hosts, nine match, three do not, and three of the nine that match are not assistants at all. This is not a Google mistake, it is a teaching example copied verbatim into hundreds of properties, where it inflates the AI assistants row with unrelated sites while missing the newest assistants.

Testing the Google regex against a list of real referrer hosts
Test run on 29 July 2026 on regex101, Golang engine, the RE2 syntax Google uses. The Google expression is wrapped in ^(?: )$ to reproduce the GA4 full match.
Results of the 29 July 2026 test, full match, RE2 engine.
Referrer hostResultComment
chatgpt.comMatchedBranch .*chatgpt.*
gemini.google.comMatchedBranch .*gemini.*
claude.aiMatchedBranch ^.*ai, through the top level domain
perplexity.aiMatchedBranch .*perplexity.*
copilot.microsoft.comMatchedBranch .*copilot.*
grok.comMissedNo branch matches, although Google names Grok for the native channel
chat.deepseek.comMissedNo branch matches, although Google names Deepseek for the native channel
you.comMissedNo branch matches
gptzero.meFalse positiveBranch .*gpt.*, on a site that is not an assistant
www.lombardodier.comFalse positiveBranch .*bard.*, which catches any string containing bard
lovable.aiFalse positiveBranch ^.*ai, which catches every dot ai domain
Template

A safer expression, to be maintained monthly

We prefer an explicit host list. It takes longer to write, it needs a regular review, and it produces no false positives. The optional www prefix covers both forms you will see in the Source dimension. We ran this expression against the same hosts, with fifteen correct matches and no false positive.

Expression tested by Hikoo, 29 July 2026
^(www\.)?(chatgpt\.com|chat\.openai\.com|openai\.com|gemini\.google\.com|claude\.ai|perplexity\.ai|copilot\.microsoft\.com|grok\.com|x\.ai|chat\.deepseek\.com|chat\.mistral\.ai|meta\.ai|you\.com|poe\.com)$
  • Review the list every month, assistants appear and disappear quickly.
  • Only add a host after seeing it in your own Session source / medium report.
  • Keep the Medium exactly matches ai-assistant condition alongside it, so you catch what Google recognises before you do.
  • Store the expression in your internal documentation, with its last review date.
UTM

Which UTM parameters actually exist

Exactly one parameter is publicly documented today. OpenAI states in its help centre that ChatGPT automatically includes utm_source=chatgpt.com in referral URLs, so publishers can track inbound traffic from ChatGPT search results. No utm_medium or utm_campaign comes with it.

That detail matters more than it looks. A UTM parameter travels inside the URL, so it survives where the referrer does not, for instance when the link opens from a native app. Google recommends always setting utm_source, utm_medium and utm_campaign together, and warns that missing parameters produce (not set) values in reporting. You inherit a useful but incomplete signal that you do not control.

For Gemini, Claude, Copilot and Perplexity, we found no public documentation describing an outbound UTM parameter as of this guide publication date. We cannot give you a complete list, and we would not copy the lists circulating elsewhere without checking them first.

OpenAI help centre documenting the utm_source=chatgpt.com parameter
The OpenAI help centre, Publishers and Developers FAQ, documents the utm_source=chatgpt.com parameter added to referral URLs. Captured 29 July 2026.
  • Open Traffic acquisition and switch to Session source / medium.
  • Search for chatgpt, perplexity, gemini, claude, copilot and grok, one at a time.
  • Write down the exact values, they are the input to your regular expression.
  • Repeat the exercise monthly, referrers and parameters change without notice.

OpenAI Help Center, Publishers and Developers FAQ | Google Analytics Help, collect campaign data with URLs

ROI

Tie that traffic to key events and revenue

Counting sessions proves nothing. What matters is what those sessions produce, and how they compare with your other channels over the same period.

  • Mark your decisive events as key events, in Admin then Events.
  • In Traffic acquisition, keep the Key events, Session key event rate and Total revenue columns.
  • Compare the AI Assistants row with Organic Search and Direct over the same date range.
  • Open a free-form exploration, dimension Session source, metrics Sessions, Key events and Total revenue, to drill down to the referrer.
  • Cross it with the landing page to learn which content actually converts that traffic.
Traffic acquisition report metrics, per Google Analytics Help.
MetricWhat it tells youThe trap
SessionsHow many visits started from an assistantA small volume can hide a high value per visit
Key eventsHow many times an event marked as key was triggeredNothing shows up if you never marked an event as key
Session key event rateThe share of sessions that trigger a key eventUnstable on small volumes, read it over a long window
Total revenuePurchases, in-app purchases, subscriptions and ad revenueZero when the purchase event ships without value or currency

Go further. How to measure GEO ROI | AI share of voice, definition

Blind spot

Why part of your AI traffic stays in Direct

A session lands in Direct when GA4 receives no source information at all. Google groups the causes into three families, missing tracking information, direct access, and ad blockers. Links without UTM parameters, redirects between protocols and URL shorteners can strip the referral detail. Assistants are hit particularly hard by this. An answer read inside a desktop or mobile app is not a web page, and depending on how the link opens, no referrer is passed at all. The AI Assistants channel is a floor, not a total. Treat it as a minimum, and watch how Direct moves over the same periods before you conclude anything from a drop.

Browser referrer policy adds another layer. Since the November 2020 revision of the specification, the default is strict-origin-when-cross-origin, meaning only the origin is sent when navigating to another site, and nothing is sent when going from HTTPS down to HTTP. That is why the Source dimension holds a hostname rather than a conversation URL, and why a site still served over HTTP loses its referrers entirely.

  • Native and desktop apps do not always pass a referrer.
  • Going from HTTPS to HTTP, the browser drops the referrer.
  • URL shorteners and redirect chains can lose the source information on the way.
  • Ad blockers and privacy extensions can prevent collection entirely.
  • A strict Referrer-Policy on the platform side trims the referrer to the origin or removes it.

Google Analytics Help, understand (direct) / (none) traffic | MDN, Referrer-Policy header

Comparison

GA4, server logs, citations and visibility tracking

These four measurements answer four different questions. Conflating them produces reports that contradict each other month to month. Here is what each one covers.

Four complementary measurements, never to be added together or swapped for one another.
MeasurementQuestion it answersWhat it cannot see
GA4How many people clicked through from an assistant, and what those visits produceCitations without a click, sessions that lost their referrer, AI Overviews counted as organic
Server logsWhich AI crawlers hit which pages, how often, with which response codeHuman behaviour, conversion, and how the fetched content is actually used
CitationsWhich of your URLs are genuinely cited inside assistant answersTraffic volume, revenue, and how you stack up against competitors
Visibility trackingWhich prompts surface your brand, in which position, against whomVisit counts and the revenue generated

Hikoo resources on these four measurements. Search Console for AI | Search Console generative AI report | Find the sources shaping LLM answers | Check AI crawler access

Routine

Your monthly checklist

This is not a set-and-forget configuration. Referrers change, assistants appear, and Google updates its list without announcing it. Here is the routine we run.

  • Re-read Session source / medium over thirty days and note any new hosts.
  • Update the AI assistants channel expression, and stamp it with the review date.
  • Check the channel is still ordered above Referrals and Organic Search.
  • Compare AI Assistants, Organic Search and Direct over the last three months.
  • Check key events and revenue attributed to the AI Assistants row.
  • Cross it with generative AI impressions in Search Console to cover AI Overviews.
  • Log any unexplained gap, most of them come from a lost referrer.

Hikoo tools for this routine. Spotlight | Analyzer | Battlemap | Free AI audit

Frequently asked questions

Does GA4 separate ChatGPT, Gemini and Perplexity automatically?

No. The AI Assistants channel aggregates every recognised assistant into a single row. To split platforms, switch to the Session source dimension, or build a custom channel group with one channel per assistant. The second option costs more maintenance, but it gives you rows that stay stable over time.

Does the AI Assistants channel include Google AI Overviews?

No, and the documentation says so explicitly. Clicks from AI Overviews and AI Mode are counted in the Organic Search channel, whose official definition now includes them. To follow those two surfaces you need the generative AI performance report in Search Console.

Does a custom channel group apply to my historical data?

Yes for reports, Google states that custom channel groups can be applied retroactively. No for BigQuery, where they are not exported, and no for the Key events paths report. Promoting a custom group to the property primary channel group, by contrast, only affects data from that point forward.

How many channel groups can I create?

Two custom groups on top of the default one on a standard property, five on a 360 property, with a maximum of fifty channels per group. Deletion is irreversible and leaves the affected reports, audiences and expanded data sets showing the dimension as unavailable.

Why does my ChatGPT traffic sometimes show up as Direct?

Because GA4 received no source information. That happens when the link opens from a native app, when a redirect or URL shortener strips the referrer, when the destination drops from HTTPS to HTTP, or when an extension blocks collection. The utm_source=chatgpt.com parameter OpenAI adds limits the problem without solving it.

Should I use the regex Google publishes as is?

We would not. Our 29 July 2026 test shows it misses grok.com and chat.deepseek.com, and catches unrelated hosts such as gptzero.me or any dot ai domain. An explicit host list, reviewed monthly, gives cleaner rows.

Is GA4 enough to run an AI visibility strategy?

No. GA4 only counts clicks, while most of the value of a citation happens before the click, inside the answer itself. You need citation tracking on top of it, log analysis for crawlers, and visibility tracking across a stable prompt set.

Is the AI Assistants channel available on every property?

Google announced the feature on 13 May 2026 for Google Analytics properties, without publishing a detailed rollout schedule or the list of recognised referrers. If the row does not appear in your report, first check that you had matching traffic during the period, then inspect the raw Session source / medium values.

Where to start

Start small. Open Traffic acquisition, read Session source / medium over thirty days, write down the hosts you actually see. Then create an AI assistants channel from an explicit list, order it above Referrals, and wire your key events to it. That gives you an honest baseline in about an hour.

What GA4 will never tell you is which prompts surface your brand, against which competitors, and which pages assistants actually cite. That is exactly what Hikoo measures, alongside your GA4 reports. Our free audit gives you a first read without any installation.

Sources

  1. Google Analytics Help Default channel group. Google, consulté le 29 juillet 2026
  2. Google Analytics Help What's new in Google Analytics, 13 May 2026. Google, consulté le 29 juillet 2026
  3. Google Analytics Help Custom channel groups. Google, consulté le 29 juillet 2026
  4. Google Analytics Help Traffic acquisition report. Google, consulté le 29 juillet 2026
  5. Google Analytics Help Understand (direct) / (none) traffic. Google, consulté le 29 juillet 2026
  6. Google Analytics Help About regular expressions (regex). Google, consulté le 29 juillet 2026
  7. Google Analytics Help Collect campaign data with custom URLs. Google, consulté le 29 juillet 2026
  8. OpenAI Help Center Publishers and Developers FAQ. OpenAI, consulté le 29 juillet 2026
  9. MDN Web Docs Referrer-Policy header. Mozilla, consulté le 29 juillet 2026
About the author
Gabriel Toledano
Co-founder Hikoo - Expert AEO/GEO
View LinkedIn profile

Go further

Related Articles

Book a personalized demo

See how Hikoo can boost your visibility on AI search engines.