utm.new
guide ·

GA4 now has a native AI Assistants channel — here's how it works

GA4 detects AI assistants by referrer and files them automatically. Here's the exact rule, what it catches, what it misses, and why you should never set utm_medium=ai-assistant yourself.

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?

It already does, and Google built it. GA4 ships a native AI Assistants default channel that fills itself from the referrer. There is no setup, no tagging, and no admin work — and, importantly, there is one thing you should actively avoid doing.

The rule, verbatim

Google’s own channel-group documentation defines AI Assistants like this:

The medium exactly matches ai-assistant. The medium is set to ai-assistant and the campaign is set to (ai-assistant) if the referrer matches a list of AI Assistants.

Two sentences that do two different jobs, and the order matters:

  1. GA4 inspects the referrer. If it matches an assistant Google recognizes, GA4 writes medium = ai-assistant and campaign = (ai-assistant) onto the session itself.
  2. The channel rule then reads that medium and files the session under AI Assistants.

So ai-assistant is GA4’s own output — a value it stamps on your data after it has already identified the source. The channel rule is Google reading its own handwriting. Google describes the channel as covering arrivals “from sources like ChatGPT, Gemini, Deepseek, Copilot, or Grok,” and explicitly excludes AI Overviews and AI Mode.

None of that requires anything from you. A visitor clicks a citation in ChatGPT, the referrer arrives, GA4 classifies it. Done.

Don’t set utm_medium=ai-assistant yourself

Every guide that tells you to “tag your links with utm_medium=ai-assistant” has the mechanism backwards, and following it does real damage.

Think about which link you’d be tagging. You can’t reach into ChatGPT’s answer — the model cites your canonical URL, the address it read off your own page. The only way to get a UTM onto that citation is to publish your canonical URL with the parameters already attached. Which means:

  • Every visitor on that URL reports as an AI assistant. Someone arriving from organic search, your newsletter, a partner’s link, or a bookmark hits the same tagged address and gets stamped ai-assistant. Your AI channel now contains traffic from everywhere.
  • You overwrite a correct answer with a wrong one. UTM parameters on the URL take precedence over referrer detection. GA4 had already identified the source correctly; your hand-typed medium replaces it.
  • You’re forging the classifier’s output. ai-assistant is a value GA4 assigns to mean “I recognized an assistant referrer.” Writing it manually makes that claim on GA4’s behalf for sessions where it isn’t true.

The old advice to avoid the bare utm_medium=ai was right about one thing — ai isn’t a recognized medium and lands in Unassigned. But the conclusion drawn from it was wrong. The answer isn’t to use a different medium value. It’s to not set a medium for organic AI traffic at all, because GA4 sets it for you and does it correctly.

What the native channel catches, and what it misses

The channel does a lot for free. Go in clear-eyed about the edges.

  • Auto-detection is a referrer list. Google names ChatGPT, Gemini, Deepseek, Copilot, and Grok, and doesn’t publish the list in full. Perplexity and Claude aren’t among the named sources — those referrals land in Referral under perplexity.ai and claude.ai. Still visible, still correctly sourced, just one bucket over.
  • No referrer means no detection. A click that arrives with the Referer header stripped lands in Direct. Referrer auto-detection can’t fire on a signal that never arrived, and no tag fixes it — you didn’t author the link the model wrote.
  • AI Overviews and AI Mode are excluded by design. They render inside google.com, so those clicks are ordinary organic search. Google says so explicitly. There’s no separate referrer, and nothing to configure.
  • It isn’t retroactive. Sessions that arrived before the channel existed stay classified the way they were at the time.
TrafficWhere it landsWhat you’d do
ChatGPT, Gemini, Copilot, Grok, Deepseek (with referrer)AI AssistantsNothing
Perplexity, Claude (with referrer)Referral, under their hostnameNothing, or a custom channel group
Any assistant, referrer strippedDirectNothing recovers it
Google AI Overviews / AI ModeOrganic SearchNothing — that’s what it is
Your own URL tagged utm_medium=ai-assistantAI Assistants, wrongly, for all its visitorsRemove the tag

When a custom channel group is worth it

One legitimate use remains: pulling Perplexity and Claude in alongside the assistants Google detects, so a single row answers “how much traffic came from AI?”

This is an admin-level change, and it matches on source, not on a tag you invented:

  1. In Admin → data stream reporting settings, create a custom channel group (you get a limited number — plan the whole thing at once).
  2. Add a channel named AI Assistants (or your own label).
  3. Give it a condition that catches both halves: session medium exactly matches ai-assistant — which picks up everything GA4 already detected — OR session source matches perplexity.ai or claude.ai.
  4. Order it above Referral and Direct. Rules evaluate top-down and first match wins.

That’s the supported way to widen the definition. It reads referrer data GA4 already collected; it doesn’t ask you to falsify a medium on your own pages.

Custom groups apply going forward, and they still can’t recover Direct sessions — GA4 has nothing to match on there.

So — what should you do?

For organic AI traffic: nothing. Open Traffic acquisition, look at the AI Assistants row, and check Referral for perplexity.ai and claude.ai. The data is already correct because Google classified it from a signal you don’t control and don’t need to.

Build a custom channel group only if you want Perplexity and Claude counted in the same row. Audit your existing links for a stray utm_medium=ai-assistant or utm_medium=ai and strip it — that’s mislabeled traffic sitting in your reports right now.

Save the UTM discipline for links you genuinely author. When an assistant sells you an ad placement, you’ll set that destination URL yourself and tag it per that platform’s own documented template — the same way you tag Google or Meta. Until then, the referrer has it covered. The utm_id mechanics that make GA4’s cost reporting work are worth understanding for the campaigns you do author.

More in this series