You’ve started seeing referrals from perplexity.ai and chatgpt.com in GA4. The question that follows is reasonable: should this traffic get its own channel, the way Paid Search or Organic Social does? As of 2026 the answer is yes — and GA4 finally does most of the work for you. Google rolled out a native AI Assistants default channel (around May 2026), so AI traffic now has a home in the standard reports without any custom setup.
The catch is that the channel only does its job if you tag links the right way and understand which AI clicks it catches automatically. Here’s how AI traffic lands in GA4 today, the exact value to tag (ai-assistant, not ai), and the gaps where you still need to act.
How GA4 classifies AI referrers right now
GA4 sorts every session into a default channel group using rules based on source, medium, and the source category list Google maintains. The big change in 2026 is that this default group now includes an AI Assistants channel, and it fills that channel two ways:
- The medium value
ai-assistantmaps straight to the AI Assistants channel. Any session whose medium is exactlyai-assistant— including links you tag yourself — lands there. - Referrer auto-detection for a fixed list of assistants. GA4 recognizes referrals from ChatGPT, Gemini, Copilot, Grok, and Deepseek by their referrer and assigns them medium
ai-assistantand campaign(ai-assistant)automatically, even when you didn’t tag the link.
That covers a lot. But the classification is only as good as the signal GA4 receives, so three cases still need your attention:
- A referral from an assistant Google doesn’t auto-detect — most importantly Claude (
claude.ai) and Perplexity (perplexity.ai), which are not on Google’s auto-detected list. If such a click arrives with a referrer and no UTMs, GA4 falls back to its generic rules: if it doesn’t categorize that host as Search or Social, it lands in Referral, mixed in with every other site that links to you. Tagging those links is what moves them into AI Assistants. - A click with no referrer — common from assistants that pass nothing, which we cover in Why your AI traffic shows up as Direct / None — lands in Direct, indistinguishable from someone typing your URL. Referrer auto-detection can’t fire when there’s no referrer, so only a tagged link rescues these.
- Google’s own AI Overviews surface inside Search results on
google.com. There’s no distinct AI referrer; those clicks look like ordinary organic search, because that’s structurally what they are.
So out of the box, GA4 now corrals the major assistants into AI Assistants for you — but Claude, Perplexity, referrer-less clicks, and AI Overviews still slip through. Closing those gaps is what the tagging below is for.
Tag with utm_medium=ai-assistant — not ai
The fix is to tag the links you control so AI traffic is self-identifying. The value that works is utm_medium=ai-assistant. That is the exact string GA4’s native AI Assistants channel listens for, so a tagged link drops straight into the channel with no custom setup.
The trap is reaching for the shorter, intuitive value: utm_medium=ai. GA4’s default channel group maps mediums to channels using a fixed set of expected values. cpc maps to Paid Search. email maps to Email. organic maps to Organic Search. ai-assistant maps to AI Assistants. But the literal ai maps to nothing — it isn’t in the list — so GA4 can’t place the session and drops it into Unassigned.
Unassigned is the junk drawer. It’s where sessions go when GA4 has data it doesn’t know how to file. Tagging utm_medium=ai and stopping there means you’ve correctly labeled your AI traffic in spirit and simultaneously hidden it in the one bucket nobody reviews. The fix is a one-character-class change: spell the medium ai-assistant, and GA4’s own rule consumes it.
Pair the medium with a consistent utm_source per assistant — chatgpt, perplexity, gemini, copilot, claude — and you get a clean breakdown underneath the channel. The medium routes the session into AI Assistants; the source tells you which assistant it was.
When a custom channel group still helps (it’s optional now)
A custom channel group used to be the required fix for AI traffic. It isn’t anymore — the native AI Assistants channel handles tagged links and the auto-detected assistants on its own. But a custom group is still worth building for a few edge cases where you want control the default group doesn’t give you.
It’s an admin-level change that does what the default group can’t: define your own rule and your own channel. Reach for it when you want to:
- Group the assistants Google doesn’t auto-detect under your own label. Claude and Perplexity aren’t on GA4’s auto-detected referrer list. If you’d rather not rely solely on tagging — or want a belt-and-suspenders rule that also catches their referrer hostnames — a custom rule can match
claude.aiandperplexity.aiby source. - Combine AI with other custom logic — for example, splitting “AI search” from “AI chat,” or rolling AI in with another bespoke channel you maintain.
- Pull untagged referrals out of Referral for any assistant where you can’t control the link.
The shape of such a rule, in plain terms:
- In Admin, under your data stream’s reporting settings, create a custom channel group (or edit one — you get a limited number, so plan).
- Add a new channel, name it AI Assistants (or whatever label you want).
- Give it a condition that catches your AI traffic. A robust version combines the signals you have:
- Session medium exactly matches
ai-assistant— this catches every link you tagged, plus the assistants GA4 auto-detects. - OR session source matches a host the default group misses — notably
perplexity.aiandclaude.ai— this catches their untagged referrals.
- Session medium exactly matches
- Order the AI channel above Referral and Direct so it claims those sessions first. Channel rules are evaluated top-down; the first match wins, so position matters.
With that in place, untagged referrals from Claude and Perplexity get pulled out of the generic Referral bucket and joined with everything already flowing into AI Assistants — so one row answers “how much traffic came from AI assistants?” under exactly the definition you chose.
A consistent utm_source per assistant keeps the report readable underneath the channel — chatgpt, perplexity, gemini, copilot, claude. That convention is worth standardizing whether or not you build a custom group; a UTM convention for the AI search era lays it out.
The limits (the native channel isn’t magic)
The native AI Assistants channel does a lot for free, but it doesn’t cover everything — and a custom group only stretches so far. Go in clear-eyed:
- Auto-detection is a fixed list. GA4 auto-detects ChatGPT, Gemini, Copilot, Grok, and Deepseek by referrer. Anything else — Claude, Perplexity, the next assistant to launch — only lands in AI Assistants if you tag it
ai-assistant(or build a custom rule). Untagged, those referrals sit in Referral. - The literal
aimedium still goes to Unassigned. GA4 recognizesai-assistant, notai. If any of your links still carryutm_medium=ai, fix them — that traffic is hiding in Unassigned, not in AI Assistants. - Custom channel groups aren’t retroactive in the default reports. They apply going forward and within the reports that use them. Historical sessions stay classified the way they were when they happened.
- You get a limited number of custom channel groups and channels. Don’t burn them casually. If AI is one channel among several customizations you want, plan the whole group at once.
- Neither approach recovers Direct traffic. Sessions that arrived with no referrer and no UTM are in Direct, and no channel rule — or auto-detection — can pull them out, because GA4 has nothing to match on. The only fix there is tagging links you control and capturing server-side.
- AI Overviews stay in Organic Search. Because they’re inside
google.com, neither the native channel nor a custom one will separate them. That’s a limitation of where the traffic originates, not of your rules.
| Approach | Catches tagged ai-assistant links | Auto-detects ChatGPT/Gemini/Copilot/Grok/Deepseek | Catches untagged Claude/Perplexity | Catches Direct AI traffic |
|---|---|---|---|---|
| Native default channel group | Yes (AI Assistants) | Yes | No (Referral) | No (Direct) |
utm_medium=ai (the wrong value) | No (Unassigned) | n/a | No | No |
| Custom channel adding Claude/Perplexity hosts | Yes | Yes | Yes | No |
So — what should you do?
For most teams, the answer is now simple: tag the links you control with utm_medium=ai-assistant and a per-assistant utm_source, and let GA4’s native AI Assistants channel do the rest. That single change lands your tagged links — and the assistants GA4 already auto-detects — into one channel you can report on, with no admin work. The one thing to double-check is that you’re using ai-assistant, not the literal ai, which still falls into Unassigned. The assistant hosts and tokens GA4 expects are worth a quick look while you standardize.
Build a custom channel group only if you have an edge case the native channel doesn’t cover — typically grouping Claude and Perplexity (which GA4 doesn’t auto-detect) under your own label by matching their referrer hosts, or combining AI with other custom rules. If your AI traffic is still a trickle, even that can wait: standardize the ai-assistant tagging now so the data is clean, and revisit a custom group when the volume justifies it. Either way, the utm_id mechanics that make GA4’s cost reporting work are worth understanding alongside this; see GA4 and utm_id: why it matters.
More in this series
- Track AI traffic from ChatGPT, Perplexity, and Gemini
- Why your AI traffic shows up as Direct / None — and how to fix it
- A UTM convention for the AI search era (GEO/AEO)
- Use AI to generate and govern your UTM taxonomy
- Agentic traffic: what AI shopping agents do to your attribution
- Tracking AI-generated ad campaigns without breaking your UTMs
- llms.txt and UTMs: tagging the links AI assistants cite