GA4 Now Has an AI Assistant Channel. Here's What It Misses
If you've been hand-rolling a regex channel to spot ChatGPT and Perplexity visits in Google Analytics, GA4 quietly started doing it for you this year. It's good, not complete. I pulled 90 days of data from DevToolLab's o
If you've been hand-rolling a regex channel to spot ChatGPT and Perplexity visits in Google Analytics, GA4 quietly started doing it for you this year. It's good, not complete. I pulled 90 days of data from DevToolLab's own property to see exactly where the built-in version falls short, and wrote up the full method with the Data API script on DevToolLab. Here's the condensed version.
What GA4 does now
Google added an AI Assistant channel to the default channel group in its release notes on May 13, 2026. The rule is simple: when a session's referrer is on Google's list of AI assistants, GA4 stamps the session with an ai-assistant medium and an (ai-assistant) campaign, and the channel collects everything carrying that medium. Google's examples are ChatGPT, Gemini, DeepSeek, Copilot and Grok, and its docs say outright that AI Overviews and AI Mode are not included.
To see it, open Reports, Acquisition, Traffic acquisition, and look at the channel column. On our property, the first ai-assistant sessions showed up the week of June 1, 2026.
The history doesn't move
The new label only applies going forward. Every chatgpt.com or claude.ai visit before that June week is still sitting in Referral, so a year-over-year chart of "AI Assistant" starts from zero in June and looks like explosive growth that's mostly a relabel.
The old picture was worse than "it was all Referral", too. For the eight full weeks before the switch, somewhere between 21% and 59% of our AI-sourced sessions each week landed in Unassigned. Anyone who counted AI referrals from the Referral row back then was low by that much.
Also worth knowing: Google doesn't publish the list of referrers it treats as AI assistants. Its downloadable default-channel source sheet (819 sources, checked October 1, 2026) has search, shopping, social and video categories and nothing for AI. Your own data is the only way to find out what counts.
Where the 5.5% goes
Over the 90 days to September 30, 2026, the built-in channel caught 94.5% of our AI-sourced sessions. The rest split like this: 4.2% Unassigned, 1.2% Referral, 0.1% Organic Search.
The Unassigned chunk isn't a referrer problem at all. Sources like perplexity and copilot.com arrive with a medium of (not set), which means the link carried a source tag but no medium. The perplexity one was still showing up on September 24, so it's not just rollout noise.
The Referral chunk is assistants GA4 doesn't seem to recognize: duck.ai (DuckDuckGo's chat), l.meta.ai, copilot.cloud.microsoft. The odd one is gemini.google.com. Google lists Gemini as an example, yet every Gemini web session we got since June went to Referral, the last one on July 5.
The original post has the Python script that produces this breakdown for your own property through the GA4 Data API, so you can check your numbers instead of trusting mine.
One custom channel catches all three
Custom channel groups apply to past data, which the built-in channel doesn't, so this also fixes the June discontinuity. You need Editor access; standard properties get 2 custom groups, 360 properties get 5, with up to 50 channels each.
- Admin, then Data display, then Channel groups, then Create new channel group (it starts as a copy of the default).
- Add a channel called something like "AI assistants (all)".
- Condition one: Medium exactly matches
ai-assistant. - OR condition two: Source matches regex, using the pattern below.
- Reorder so the new channel sits first. GA4 assigns traffic to the first channel that matches, so anything below Referral never gets the chatgpt.com referrals.
- Save and pick the group as the dimension in Traffic acquisition.
(.*\.)?(chatgpt\.com|chat\.openai\.com|openai|perplexity|perplexity\.ai|claude\.ai|gemini|gemini\.google\.com|copilot\.com|copilot\.microsoft\.com|copilot\.cloud\.microsoft|meta\.ai|duck\.ai|poe\.com|chat\.deepseek\.com|grok\.com|chat\.mistral\.ai)
GA4's "matches regex" has to match the whole value, so the (.*\.)? prefix is what lets l.meta.ai through while keeping every name exact. Before saving, paste your real source list into the Regex Tester with the pattern wrapped in ^(?:...)$ to mimic that whole-value matching.
Skip Google's sample regex
The custom channel help page includes a sample AI regex. Don't paste it. Because GA4 matches the whole value, its first alternative, ^.*ai, matches any source ending in "ai". On our property that pulled in five .ai domains GA4 itself didn't consider assistants, and .*gemini.* also matches gemini.com, the crypto exchange. Meanwhile it misses poe.com, grok.com and chat.deepseek.com, even though DeepSeek and Grok are in Google's own examples.
Google's own AI traffic stays hidden
Clicks from AI Overviews and AI Mode count as Organic Search in GA4. Google's Search Central docs say they're included in Search Console's Performance report under the "Web" search type, mixed in with regular results. That makes Search Console the only first-party view of them, and it doesn't break them out on their own.
The logs see what GA4 can't
A lot of AI usage never becomes a click: the assistant fetches your page, quotes it, and the user never visits. Those fetches land in your access log. OpenAI's agent for a user's live question is ChatGPT-User (alongside OAI-SearchBot and GPTBot), Perplexity's is Perplexity-User, and Anthropic's is Claude-User.
grep -E 'ChatGPT-User|Perplexity-User|Claude-User' access.log | awk '{print $7}' | sort | uniq -c | sort -rn
That prints the pages assistants pulled into answers, most-fetched first.
A few things that trip people up
- No AI Assistant row at all? Check the date range: it probably stops before GA4 started applying the label to your property.
-
perplexity / (not set)in Unassigned is the medium-less tag; the source condition in the custom channel catches it. - A custom channel stuck at zero is almost always sitting below a channel that matched first. Move it to the top.
- If you tag your own links, give them a medium as well as a source. The UTM Link Builder puts the medium field right next to the source, which makes it hard to forget.
Bottom line
For a trend line from June 2026 on, the built-in AI Assistant channel is enough. Anyone who has to put AI traffic in a report should build the custom group, since it covers the gaps and backfills history. Tell stakeholders plainly that Google's AI Overviews can't be separated in GA4. And if the question is whether assistants read your content at all, count the -User agents in your logs.
References
- Original article on DevToolLab: How to Track AI Referral Traffic in GA4
- GA4 default channel group definitions
- GA4 release notes (May 13, 2026 entry)
- GA4 custom channel groups
- GA4 regular expressions
- AI features and your website, Google Search Central
- OpenAI crawlers, Perplexity crawlers, Anthropic crawlers
Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.

