Short answer. Out of the box, GA4 files visits from ChatGPT, Perplexity, Gemini and Copilot under generic Referral, Direct or Unassigned. To see them, build a custom channel group with a source-only regex matching the AI referrer domains, place it above the default Referral rule, and verify it live. Treat the result as a floor, because app clicks and Google AI Overviews clicks stay hidden.
Key takeaways
- GA4's default channel definitions predate the AI assistants, so AI visits land as generic Referral, Unassigned or Direct until a custom channel is built.
- The fix is a custom GA4 channel group that matches AI referrer domains by regex on session source only, never constrained to referral medium, and ordered above the default Referral channel.
- ChatGPT links tagged with utm_source=chatgpt.com but no medium can be routed to Unassigned, so a rule limited to referral medium silently drops a large share of ChatGPT visits.
- App clicks and privacy-stripped referrers arrive as Direct, and Google AI Overviews and AI Mode clicks are reported inside ordinary Search totals, so measured AI traffic is a floor rather than the whole channel.
- Traffic corroborates AI visibility but does not measure it; pair the channel with share-of-answer monitoring and carry the traffic source into the CRM if revenue attribution matters.
Why doesn't my analytics show AI traffic already?
GA4's default channel definitions were written before AI assistants existed, so a session from ChatGPT, Claude, Perplexity, Copilot or Gemini has no AI bucket to land in. It falls into Referral, Unassigned or Direct, where it is mixed with unrelated traffic.
AI referral traffic is the set of website sessions that begin with a click from an AI assistant's answer or citation link. Three places hold it by default.
Generic Referral. When the browser passes a referrer such as chatgpt.com or perplexity.ai, GA4 files the session under Referral, next to forum backlinks, directory listings and random linking domains. The data is there; it is just unlabelled and buried.
Unassigned. ChatGPT sometimes appends utm_source=chatgpt.com to citation links with no utm_medium, and GA4 can route source-without-medium traffic to Unassigned with medium "(not set)". OpenAI began this habit in mid-2025, which made desktop citations traceable for the first time, provided your rules actually catch them.
Direct. When no referrer survives the journey, as with mobile app clicks, privacy-stripping browsers and some in-app webviews, the session is indistinguishable from someone typing your URL. This is the genuinely dark portion, and no GA4 configuration recovers it.
The result is a channel that is growing fast while reporting as noise. If leadership asks whether AEO and GEO work is producing visitors, the honest first answer is that the default reports cannot say. The setup below makes them able to.
Traffic is the second metric of AI visibility, not the first. Assistants answer most questions without sending a click, which is why share-of-answer measurement, covered in measuring AI visibility without fooling yourself, leads and traffic corroborates. The clicks that do come are valuable and countable, and counting them properly is the purpose of this guide.
Which referrer domains should I track for AI traffic?
Track chatgpt.com, perplexity.ai, gemini.google.com, copilot.microsoft.com and claude.ai as the core list, and add a few long-tail engines. The list below is in rough order of volume for most sites in 2026.
chatgpt.com: ChatGPT's primary web domain, plus legacychat.openai.com, still seen in logs.perplexity.ai: the most citation-dense assistant, usually the cleanest referrer.gemini.google.com: Gemini's app surface, distinct from AI Overviews, which do not refer as Gemini.copilot.microsoft.com: plusedgeservices.bing.comfor Edge sidebar traffic.claude.ai: Claude's web app.- Worth including for completeness:
you.com,meta.ai,deepseek.comandgrok.com, honourable mentions that show up in logs more than in reports.
Two inclusion decisions need making deliberately rather than by copy-paste.
Broad match versus exact match. A loose pattern like .*openai.* catches subdomain changes automatically but risks false positives from any domain containing the string. An anchored exact list is precise but needs maintenance as platforms move domains; ChatGPT's own migration from chat.openai.com to chatgpt.com is the cautionary tale. The pragmatic middle is anchored alternation over the known domains, reviewed quarterly.
What is not on the list. Google AI Overviews and AI Mode do not send a distinguishable referrer. Their clicks arrive as ordinary google.com organic and are reported inside the Web search type totals in Search Console, per Google's own documentation. No regex recovers them as a separate channel, and the section on blind spots below covers how to reason about them anyway.
How do I set up an AI traffic channel in GA4, step by step?
Create a custom channel group, add an AI channel that matches AI referrer domains by regex on session source, and drag it above the default Referral channel. Then verify it with a real click and tag the links you control.
A custom channel group is a copy of GA4's default channel grouping that you can edit, so you can add channels such as AI and control the order in which rules are evaluated.
Step 1: Create a custom channel group. Go to Admin, then Data display, then Channel groups, and create a copy of the default group, because the default itself cannot be edited. Name it something your reports will use, for example Channels incl. AI.
Step 2: Add the AI channel with a source regex. Add a new channel with a condition on Session source, match type matches regex, and a pattern covering the list above:
.*(chatgpt\.com|chat\.openai\.com|openai\.com|perplexity\.ai|claude\.ai|gemini\.google\.com|copilot\.microsoft\.com|edgeservices\.bing\.com|you\.com|meta\.ai|deepseek\.com|grok\.com).*
Step 3: Do not constrain it to medium = referral. This is the mistake that silently halves the channel. The utm_source=chatgpt.com clicks arrive as chatgpt.com / (none) or (not set), and constraining to referral medium misses them, around 30 to 40% of visible ChatGPT traffic in practitioner experience. Match on source alone.
Step 4: Drag the AI channel above Referral. GA4 evaluates channel rules top to bottom, so rule order decides attribution. Below Referral, the referral rule catches chatgpt.com first and your AI channel stays empty. This single drag is the difference between a working channel and a mysteriously zero one.
Step 5: Verify live. Open your site from a real ChatGPT or Perplexity citation in another tab and confirm the session lands in Realtime with the expected source and medium, for example perplexity.ai / referral. For history, build an Explore with Session source against Sessions, filtered by the regex chatgpt|perplexity|claude|gemini|copilot|deepseek|you|grok. Explore works retroactively, even though channel-group attribution applies from creation onward.
Step 6: Tag what you control. For links you place yourself, such as directories, profiles and anywhere an assistant might lift a URL, a consistent convention keeps the channel clean: utm_source as the platform domain, utm_medium=ai_referral to group the channel, and utm_campaign as a descriptive label.
Step 7: Carry the source past the session. For B2B, the channel only proves value if it survives to revenue. A hidden form field capturing the session source, mapped into CRM lead and opportunity records, is the difference between "AI sent 400 sessions" and "AI sourced three closed deals". The DarwinApps guide in the sources details the end-to-end pattern.
Where AI visits land before and after the setup
| Arrival path | Default GA4 | After setup |
|---|---|---|
| Desktop click, referrer passed | Referral (generic) | AI channel |
| ChatGPT link with utm_source, no medium | Unassigned / (not set) | AI channel (source-only rule) |
| Mobile app click, no referrer | Direct | Direct (dark) |
| AI Overviews or AI Mode click | Organic Search | Organic Search (Search Console Web totals) |
The setup converts the first two rows from noise into channel. The last two are structural limits, not configuration errors.
What will this AI traffic setup still miss?
It will still miss dark AI traffic, clicks from Google AI Overviews and AI Mode, and the much larger group of people who read an AI answer and never click. Naming these three blind spots is what keeps your reporting honest.
Dark AI traffic is AI-assistant traffic that arrives in analytics as Direct because the referrer was stripped, as with app-based clicks and privacy-focused browsers. There is no recovery, only inference. A practical heuristic is that if Direct traffic to deep technical pages rises alongside your measured AI referrals, dark AI traffic is the likely cause, since nobody types a four-directory URL from memory. Watch Direct-to-deep-pages as a companion series, and add a self-reported "how did you hear about us?" field to catch what referrers drop.
The Google fold. AI Overviews and AI Mode clicks sit inside ordinary Search totals. Google's documentation confirms they are counted in the Performance report's "Web" search type, with no separate breakout. The usable signal is indirect: impressions and position holding while click-through rate declines on informational queries is the pattern of an overview answering the question without the click.
The influence iceberg. The largest omission is not a tracking gap at all. Most assistant answers end without any click, so the sessions you now measure are the visible fraction of a much larger exposure. This is why the mature reporting stack pairs this traffic channel with answer-side monitoring, the citation and mention tracking covered in what AI visibility tools can and cannot measure. It is also why the better analyses treat traffic as the conversion of visibility rather than its measure, the argument of what an AI citation is actually worth.
Report the channel as a floor, in exactly those words, and every later number you show will be trusted more, not less.
What should I report once the AI channel exists?
Report four cuts: volume and trend, quality against other channels, the landing pages receiving AI traffic, and the per-engine split. Together they turn the channel from a curiosity into a management instrument.
Volume and trend, with small-number honesty. For most sites AI referrals are still low single-digit percentages of sessions. Report the growth rate and the trend, and resist percentage-change theatre on tiny bases.
Quality versus other channels. This is where the channel usually earns its keep: engagement rate, pages per session and conversion for AI-referred visitors against organic and paid baselines. Published industry panels may suggest what to look for, but your own numbers are the ones that move budgets.
Landing pages receiving AI traffic. A simple table of landing pages filtered to the AI regex, sorted by sessions, is the most actionable view in the set. It shows which content assistants actually cite with links, which is your working map of what to create more of, and it feeds directly back into content strategy.
Per-engine split. Perplexity, ChatGPT, Gemini and Copilot cite with very different frequencies, so the engine mix in your referrals tells you where your citations live and where the gaps are. The same per-engine logic governs the answer-side measurement in the guide to AI visibility audits for ChatGPT and Gemini, and the wider KPI set is covered in measuring GEO success beyond clicks.
How does Lifewood wire traffic tracking into AEO and GEO programmes?
Lifewood treats this GA4 setup as a first-fortnight deliverable in its AEO and GEO engagements, so the traffic baseline is frozen before citations start moving. Traffic is then reported alongside, never instead of, share-of-answer measurement.
In Lifewood's AEO engagements, the baseline matters because a programme that starts moving citations needs its before picture saved first; otherwise the before-and-after comparison is unrecoverable. The standing configuration follows this article: a source-only regex channel ordered above Referral, the UTM convention for controlled placements, and the landing-page table as the monthly content-feedback loop. For multi-market clients, the same channel is verified per property and market, since the engine mix that dominates referrals differs sharply by country. Traffic reports in the floor-not-total framing described above.
The surrounding tooling is worth knowing whoever runs your programme. GA4 and Search Console carry the traffic side natively once configured. Answer-side platforms such as Semrush's AI toolkit, Ahrefs' Brand Radar, Profound and Otterly track the mentions and citations GA4 cannot see. The practitioner guides listed in the sources document the configuration details that change as platforms move domains. The configuration is two hours of work; the discipline is keeping it maintained and reported honestly, which is where programmes differ.
What should I do this week to stop flying blind on AI traffic?
Run the retroactive Explore, build and verify the channel, and freeze a baseline before any AEO or GEO work changes the numbers. The steps below take well under a day.
- Run the retroactive Explore first, with Session source against Sessions and the AI regex filter, so you know today what the channel has been doing all along.
- Build the channel: copy the default group, add the AI channel on a source-only regex, and drag it above Referral.
- Verify live from a real ChatGPT and Perplexity click before telling anyone it works.
- Freeze the baseline: export the trailing-twelve-months Explore as the before picture for any AEO or GEO work.
- Add the landing-page table to your monthly reporting, since it is the content team's best feedback loop.
- Set the Direct-to-deep-pages watch as your dark-traffic proxy, and add the self-reported source field to your highest-value forms.
- Diary a quarterly regex review. The domain list is a living document, and platform migrations are the known failure mode. Crawler behaviour is a separate question, covered in which AI bots to allow or block.