A channel group, a maintained regex, and a clear account of what this method cannot see.
Create a custom channel group in GA4 with a rule matching AI assistant hostnames in the session source, then read it as a floor rather than a total — a large share of assistant traffic arrives with no usable referrer at all.
GA4 has no built-in AI channel, so assistant traffic lands in Referral and gets mixed in with everything else. The fix takes about ten minutes. The caveats matter more than the setup.
^(chatgpt\.com|chat\.openai\.com|openai\.com|perplexity\.ai|.*\.perplexity\.ai|gemini\.google\.com|copilot\.microsoft\.com|claude\.ai|you\.com|poe\.com|grok\.com|deepseek\.com|mistral\.ai|phind\.com|iask\.ai|andisearch\.com|felo\.ai|genspark\.ai)$
Add a second condition on the same channel — Session source contains chatgpt.com — to catch the utm_source=chatgpt.com parameter that ChatGPT appends to some outbound links. That parameter is the reason a slice of this traffic is attributable at all.
Reports → Acquisition → Traffic acquisition, then switch the dimension to your new channel group. Channel groups are not retroactive in every report, so expect the useful view to start from the day you create it. Build it now even if you are not ready to act on it.
What this will never capture. Clicks from Google AI Overviews arrive as ordinary google / organic and cannot be separated from any other Google click — there is no referrer distinction to filter on. Assistants running inside apps, desktop clients and browser extensions frequently send no referrer at all. And a buyer who first met you inside an answer may arrive days later through a branded search, which will be recorded as organic and attributed to nothing. Read the AI channel as a floor, never as a total, and never as the sole measure of whether AEO is working.
This list changes. New assistants appear, hostnames move, and a regex written a year ago silently undercounts. Re-check it quarterly against your raw Referral report — sort by sessions and look for hostnames you do not recognise. That is where the next entry comes from.
Referral volume is the weakest of the three proof layers because so much of it is invisible. Citation share on a frozen prompt set, measured across repeated runs, is the one that actually reflects the work. The protocol, in full →
Partially. Clicks that carry a referrer land in Referral as chatgpt.com, and ChatGPT appends utm_source=chatgpt.com to some outbound links. There is no built-in AI channel, so without a custom channel group it is mixed in with all other referral traffic.
No. AI Overview clicks arrive as ordinary google / organic with no distinguishing referrer, so they cannot be separated from any other Google organic click in GA4.
Because a large share of assistant traffic carries no usable referrer — app and desktop clients, extensions, and users who arrive later through a branded search after first encountering you inside an answer. Treat the number as a floor rather than a total.
Quarterly. Sort your raw Referral report by sessions and look for assistant hostnames not yet in the expression. New tools appear regularly and a stale regex undercounts silently.
Citation share on a frozen set of buyer questions, run repeatedly, with the spread across runs recorded. That measures the thing the work is supposed to change; referral volume measures only the fraction of it that happens to be visible.