AI referral traffic: classifying clicks from ChatGPT, Perplexity, and friends
Humans arriving from AI assistants are real, growing, and mis-bucketed into Referral, Organic, or Direct by default. The referrer signatures to match, a ready-to-paste GA4 custom channel group, the Adobe/CJA equivalent, and the dark-traffic caveat.
last verified 2026-07-11
When someone asks ChatGPT or Perplexity a question, gets an answer that cites your site, and clicks through — that is AI referral traffic: a human, in a browser, running your JavaScript like any other visitor. It is the measurable half of AI-driven discovery (the bots themselves are the other half, and they never reach your analytics). The problem is that no major analytics tool ships a default “AI” channel as of mid-2026, so these sessions scatter into Referral, Organic Search, and — worst — Direct, and the trend line your leadership keeps asking about does not exist until you build it. Building it is one custom channel definition, and this guide includes it ready to paste.
The source signatures
Clicks from the major assistants arrive with these referrer hosts (or the source values derived from them):
chatgpt.comand the olderchat.openai.com— ChatGPT also appendsutm_source=chatgpt.comon some clickthroughs, which conveniently survives even when the referrer does notperplexity.aigemini.google.comand the legacybard.google.comcopilot.microsoft.com, plus Copilot surfaces underbing.com/chatclaude.aiyou.com,poe.com
Two structural warts to know before writing rules. First, session source in most tools is a
hostname, not a full URL — so Copilot clicks that arrive via bing.com/chat collapse into plain
bing.com and cannot be split from Bing search by source alone. Second, this list changes; new
assistants and new domains appear, so treat the rule set as versioned configuration, reviewed
quarterly, not a one-time setup.
Why the defaults get it wrong
- GA4 classifies these sources as Referral (or, where a source has been categorized as a search engine, Organic Search) — and a large share lands in Direct, because in-app browsers, apps, and some assistant surfaces strip the referrer entirely.
- Adobe Analytics and CJA behave the same way: without a custom Marketing Channel processing rule or a derived field, assistant referrers fall into the generic referral bucket.
- Either way, the damage is the same: AI-assisted acquisition is invisible as a category, and the portion that became Direct is silently misattributed.
The fix follows the same first-match-wins waterfall logic as the channel classification standard: add an “AI Assistants” rule, place it above Organic Search and Referral so it wins the match, and mirror the identical rule in every system that classifies traffic — analytics UI and warehouse both.
GA4: the custom channel group
GA4’s default channel group is read-only, so create a custom channel group (Admin → Data
display → Channel groups), add a channel named AI Assistants as the first rule above Organic
Search, with the condition Source matches regex:
^(chatgpt\.com|chat\.openai\.com|perplexity\.ai|gemini\.google\.com|bard\.google\.com|copilot\.microsoft\.com|claude\.ai|you\.com|poe\.com)$
GA4 regex conditions are full-match, hence the anchors and the explicit alternation — resist the
temptation of a loose .*ai.* pattern, which will happily swallow mail.ru and half the internet.
The utm_source=chatgpt.com case is covered automatically, since a UTM source of chatgpt.com
matches the same expression. Custom channel groups in GA4 apply retroactively in reporting, so you
get history back to the start of your data, not just from today — one of the few genuinely forgiving
corners of GA4. If you also run paid placements inside AI surfaces, split AI Assistants — Paid out
first by medium, following the paid-before-organic ordering the
standard prescribes.
Adobe Analytics / CJA: the rule equivalent
In Adobe Analytics, add a Marketing Channel processing rule near the top of the stack (they are
first-match-wins, like everything else here): if Referring Domain matches one of
chatgpt.com, chat.openai.com, perplexity.ai, gemini.google.com, bard.google.com,
copilot.microsoft.com, claude.ai, you.com, poe.com — the same list as the GA4 rule, always;
divergent lists are how cross-tool reconciliation dies — → set channel to AI Assistants, and set
channel value to the referring domain. Order it above the generic Referrals rule and below your paid rules. Processing
rules are not retroactive — history before the rule stays as it was, so note the deployment date on
the dashboard.
In CJA, a derived field on the referrer gives you the same channel at query time — and is retroactive, since derived fields evaluate over stored data:
CASE
WHEN Referring Domain matches regex
^(chatgpt\.com|chat\.openai\.com|perplexity\.ai|gemini\.google\.com|bard\.google\.com|copilot\.microsoft\.com|claude\.ai|you\.com|poe\.com)$
THEN "AI Assistants"
ELSE <existing channel logic>
END
Keep the evidence: capture the referrer yourself
Referrer-based attribution is session-scoped and fragile — one redirect or one consent-delayed tag and the source is gone. A cheap insurance policy is to capture the referrer host into your own first-party parameter on the first hit, per the dataLayer spec convention:
// As early as possible on a landing page, before tags fire
(function () {
var host = '';
try { host = document.referrer ? new URL(document.referrer).hostname : ''; } catch (e) {}
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ landing_referrer_host: host });
})();
Send it as an event-scoped parameter and you keep AI-source evidence in your warehouse even after the session is rewritten to Direct downstream — and you can audit how often the channel rule and the raw referrer disagree.
The dark-traffic caveat
Now the honest part: a substantial share of AI-assisted discovery produces no referrer at all. The assistant summarizes you and the user never clicks; or they read the answer on mobile and visit your site later by typing the URL; or the click happens in a surface that sends nothing. That traffic lands in Direct and no channel rule can reclaim it. Anyone promising to measure “all AI traffic” from referrers is overclaiming.
What you can do is triangulate. Watch for branded-search and direct-traffic lift that correlates with your citation visibility in AI answers; add “an AI assistant (ChatGPT, Perplexity, …)” as an option in your post-conversion “how did you hear about us?” survey and track its share over time; and treat the AI Assistants channel as a floor, not a total. Report it that way explicitly — “verified click-throughs from AI assistants, excluding non-referred exposure” — and your number stays defensible while everyone else’s inflates.
Total setup time is under an hour in each tool. Given that this is among the fastest-shifting acquisition categories of the mid-2020s, it is the cheapest new trend line you will add this year.