AI Traffic Attribution

Why most AI traffic hides as Direct in GA4, which AI tools pass referrers, GA4's new AI Assistant channel, and how to set up custom tracking that actually works.

First published: Jun 24, 2026 · Last updated: Jul 18, 2026 · Advanced
demand #3 in Measurement and Reporting#24 in AI Search#319 on the site

Most AI traffic doesn't show up as AI traffic. AI tools frequently strip the referrer header, so 35–70% of AI-sourced visits land in GA4 as Direct with no source. GA4's native AI Assistant channel (May 2026) and a custom channel group catch the referred portion — but neither sees the dark sessions, and Google's AI Overviews and AI Mode clicks are permanently merged into regular Organic Search. The data you can see is the floor, not the ceiling. Track what you can, watch your Direct-traffic baseline, and pay attention to conversion quality — AI traffic converts far above average, so a small visible share can drive outsized results.

Session source and medium reflect the acquisition metadata GA4 receives, so they cannot recover a referrer that was never passed. Evidence for this claim GA4 session source and medium dimensions describe where a new session originated, using referrer and campaign information when available. Scope: Google Analytics acquisition dimensions; missing referrers and cross-device behavior limit attribution. Confidence: high · Verified: Google Analytics: Traffic-source dimensions Manual UTM parameters are useful only on inbound links whose URLs you can control. Evidence for this claim Google Analytics supports manually collected campaign parameters such as utm_source and utm_medium for traffic attribution. Scope: Tagged inbound links; publishers cannot add parameters to links controlled by external AI platforms. Confidence: high · Verified: Google Analytics: URL builders and campaign parameters

TL;DR — AI traffic attributionAI traffic attribution is the practice of correctly identifying and measuring website visits that come from AI tools — ChatGPT, Perplexity, Gemini, Claude, AI Overviews, and AI browsers. It's hard because many of those tools strip the referrer header, so the visits land in your analytics as Direct traffic with no source. is hard because AI tools frequently strip the referrer header, so 35–70% of AI-sourced sessions land in GA4 as Direct. GA4’s native AI Assistant channel (added May 13, 2026) and a custom channel group reclassify the referred portion — but neither sees the dark sessions, the AI Assistant channel doesn’t apply retroactively and eats one of your two custom channel slots, and Google AI OverviewsAI Overviews are the AI-generated summary box Google shows above or within its regular search results, written by Gemini models from pages retrieved out of Google's normal Search index. It's a Search feature, not a separate platform or index. / AI Mode clicks are permanently merged into regular Organic Search in both GA4 and GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results.. Referrer behavior varies wildly by platform (Claude and Mistral pass cleanly; Grok standalone, the Copilot Windows app, and the mobile apps don’t). Treat the visible number as the floor, triangulate with your Direct baseline and branded search, and weight it by conversion quality — AI traffic converts far above average.

Why AI traffic is harder to attribute than anything else

Analytics knows where a visit came from because the browser sends a Referer header on the way in. GA4’s whole channel system leans on it: a referrer of perplexity.ai becomes a Referral; no referrer becomes Direct ((direct) / (none)). Every other source you care about — organic search, social, email, referral — plays along with this contract.

AI tools frequently don’t. And there’s no UTM workaround like you’d use for a campaign, because you don’t control the URLs AI tools cite — they link to the canonical URLsHow search engines pick one canonical URL among duplicates and consolidate signals onto it. they foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore. while crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor., without your tracking parameters. This is the part people miss: you can tag your own links, but you can’t tag the link ChatGPT decided to show.

Be precise about what’s actually observable. Analytics attribution is built from a narrow set of signals — the referrer header, any campaign (UTM) parameters on the inbound URL, redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency. the request passed through, and the landing URL itself — captured by whatever your analytics tag sees at collection time. If a signal was never transmitted (referrer stripped, no UTM present, a redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. that drops query parameters), no amount of analytics configuration recovers it after the fact; a missing signal is a gap in the record, not a value analytics can infer.

That also sets the real boundary on UTM parameters: they only help on URLs whose querystring survives to your landing page. You can add utm_source to links you control — your own social posts, email, ads — and GA4 will read them as long as a redirect in the chain doesn’t strip the parameters and no other campaign source takes precedence in GA4’s channel-matching order. You cannot add UTMs to a URL an AI tool cites on its own, because that URL was chosen and rendered by the AI product, not by you. ChatGPT Search’s automatic utm_source=chatgpt.com is the exception precisely because ChatGPT — not you — is the one appending it.

I wrote about this in AI Assistants Are Breaking Web Analytics and Hurting Their Future: “Search is moving from traditional search engines to AI assistants, but traffic from many of these sites isn’t being tracked properly in analytics.” There’s a real social-contract angle here too — “there’s a social contract between search engines and website owners, where search engines add value by sending referral traffic to websites.” AI tools crawl heavily and, too often, send back traffic you can’t even see.

The dark traffic problem

“Dark traffic” is AI-sourced traffic that arrives with no referrer and so gets filed as Direct. Published estimates of how much AI traffic this swallows range from 35% to 70%. The most-cited single figure comes from Loamly’s analysis of 446,405 visits: 70.6% of verifiable AI traffic landed as Direct in GA4 by default. Treat that number as a vendor-sourced upper bound, not gospel — but the direction is not in dispute.

Important nuance, because it’s easy to overstate: dark traffic is not simply “AI traffic = Direct.” Plenty of AI-referred traffic does show up correctly in Referral or the new AI Assistant channel. The problem is the slice that arrives with no referrer at all — and that slice is large enough to make your visible AI number a serious undercount.

Four mechanisms create it:

  1. Referrer policy. Many tools send referrer-policy: strict-origin-when-cross-origin or stricter, passing only the origin (or nothing) cross-origin.
  2. rel="noreferrer" on links. ChatGPT (especially paid tiers) and others add noreferrer directly to outbound links, explicitly stripping the source.
  3. Mobile app architecture. iOS WKWebView and Android Custom Tabs — used by the ChatGPT and Perplexity apps — drop the Referer header when opening external links. There is no analytics-side workaround.
  4. Copy-paste. Per RFC 9110, a URL pasted into the address bar carries no referrer. Copying a link out of an AI answer instead of clicking it registers as Direct.

Those four mechanisms are the AI-specific ones, but they’re not the only way a session lands in Direct — bookmarks, privacy-focused browsers, corporate proxies, and plenty of non-AI apps strip referrers too. A missing referrer is genuinely ambiguous: it can’t distinguish an AI click from any of those other sources, and there is no analytics-side method that recovers which one actually happened. Treat “Direct” as “source unknown,” not as a bucket you can silently relabel “AI” because AI usage happens to be rising.

Analytics can classify only the signal it receives: some AI clicks are visible, Google AI-feature clicks merge into Organic Search, and source-less visits become Direct.

A person clicks a link from an AI surface. If a usable referrer or source arrives, GA4 can classify the session as AI Assistant, a custom AI channel, or Referral. A click from Google AI Overviews or AI Mode is folded into google organic and cannot be separated from other organic clicks in GA4. If no acquisition signal arrives because of an app, a noreferrer link, or copy-paste, GA4 files the session as Direct. Missing referrer data cannot be reconstructed inside GA4, so the classified AI slice is a floor.

Which AI tools pass referrers (and which don’t)

I tested each platform with document.referrer in Chrome DevTools (Ahrefs blog, May 2025). The behavior is all over the map, which is exactly why a one-size regex doesn’t capture reality:

PlatformPasses referrer?Shows in GA4 asNotes
ChatGPT web (free)Partialchatgpt.comBottom citations pass; inline links often noreferrer
ChatGPT web (paid)Partialchatgpt.comPaid accounts apply noreferrer to more inline links
ChatGPT SearchYes (UTM)chatgpt.com + utm_source=chatgpt.comAppends a UTM — survives even when the header is stripped
ChatGPT iOS/Android appNo(direct)WKWebView / Custom Tabs strip the referrer
ChatGPT Atlas browserNo(direct)Built on Chrome; strips/blocks referrers, isolates cookies
Perplexity webYesperplexity.aiPasses cleanly
Perplexity desktop/mobile appNo(direct)App strips the referrer
Perplexity Comet browserYesperplexity.ai/referralPasses cleanly
Claude.aiYesclaude.aiAll tested areas pass
Gemini (web)Mostlygemini.google.comChat passes; Deep Research “Researching websites” uses noreferrer
Copilot webYes (intermittent)copilot.microsoft.comWas absent for months — fragile
Copilot Windows appNo(direct)No referrer in any tested case
Grok standalone (grok.com / x.ai)No(direct)No referrer passed
Grok on X (grok.x.com)Yesgrok.x.comX-integrated version passes
Meta AI (web)Yeswww.meta.aiPasses correctly
Mistral (chat.mistral.ai)Yeschat.mistral.aiAll tested instances pass
DeepSeek webNo(direct)Only web-search citation links pass
Google AI OverviewsAI Overviews are the AI-generated summary box Google shows above or within its regular search results, written by Gemini models from pages retrieved out of Google's normal Search index. It's a Search feature, not a separate platform or index.Inconsistentgoogle.com / (direct)When passed, shows as google / organic — can’t be separated
Google AI ModePartial (fixed)google.comHad a noreferrer bug at launch; fixed May 31, 2025

The fragility is the real lesson. Copilot traffic “disappeared” from Ahrefs analytics for several months — a single code change on one platform can globally break tracking with no notice. As I put it in the analytics piece: “Websites have control over what info they send. They can send the full path, just the origin, or nothing — it’s up to them. We report whatever referrer we’re told to report. If they don’t send us one, then it would go in the ‘Direct’ bucket.”

How GA4 classifies AI traffic

The native AI Assistant channel (May 13, 2026)

GA4 added a default AI Assistant channel. Per Google’s docs, it covers users who “arrive at your site from sources like ChatGPT, Gemini, Deepseek, Copilot, or Grok. It excludes Google’s AI Overviews and AI Mode.” It auto-assigns medium = ai-assistant, channel = AI Assistant.

That last sentence is the whole catch. AI Overviews and AI Mode are not in the AI Assistant channel — they’re Organic Search. Google’s own definition of Organic Search now reads: users “arrive via non-ad links in organic-search results, including Google’s AI Overviews and AI Mode.” So a click from an AI Overview, when it passes a referrer at all, shows up as google / organic, indistinguishable from a regular blue-link click.

Three more limits worth being honest about:

  • It only captures referred sessions. The AI Assistant channel does nothing for dark traffic — sessions with no referrer still land in Direct. Setting it up does not “solve” tracking.
  • It is not retroactive. It applies going forward only. Pre-May-2026 sessions stay classified as Referral or Direct, which dents year-over-year comparisons.
  • At launch it auto-recognized a limited set (ChatGPT, Gemini, Claude, and a few others), so a custom channel group still earns its keep for fuller coverage.

Before May 2026

Historically, AI traffic only ever appeared as Referral (with a referrer: chatgpt.com / referral) or Direct (no referrer). If you’re looking at older data, there is no AI Assistant bucket to find.

Custom channel groups

You can still build a custom channel group to catch more platforms and to re-segment historical data. Admin > Channel groups > Create new channel group. The two constraints to know: standard properties get only 2 custom channel groups (360 gets 5), and the AI group will eat one of them. The scripts tab has the exact regex and the one ordering rule that makes or breaks it.

Why AI traffic totals differ across analytics tools

If you run GA4 alongside Matomo, Adobe Analytics, or Ahrefs Web Analytics, don’t expect the same AI-traffic number from each. They aren’t measuring with the same ruler:

  • What each tool collects. GA4’s traffic-source dimensions, Matomo’s campaign parameters, and Adobe’s referrer dimension aren’t identical fields — each product defines its own referrer collection, persistence window, and campaign-parameter handling.
  • Sessionization differs. How long a session lasts, whether a returning visit restarts source attribution, and how cross-device visits are stitched together vary by product and by your own configuration.
  • Channel rules differ. GA4’s channel-matching order (the AI-above-Referral rule from the setup steps) is a GA4-specific mechanic; other tools apply their own rule order and default channel definitions.
  • Consent and collection scope differ. Consent-mode defaults, IP handling, and what a tool collects when consent is declined all change how much traffic even reaches the attribution layer in the first place.

None of this means one tool is “more accurate” than another — it means totals from different platforms aren’t directly comparable unless you’ve confirmed they define source, session, and channel the same way. If you’re reconciling AI-traffic numbers across tools for a report, say explicitly which tool and configuration produced each number.

The Google AI Overviews gap

This is the part no one has solved, and where I have some standing — I’m the person who reported the AI Mode noreferrer bug and got a response from John Mueller.

At launch, AI Mode links were marked noreferrer in the page code, so clicks passed no referrer and weren’t recorded in Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance.. As I wrote on May 21, 2025 in Google Made It So You Can’t Track Clicks From AI Mode: “clicks to links in AI mode are not being recorded at all in Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results., and they’re not sending a referrer value when you click.” The noreferrer half was fixed on May 31, 2025 — clicks now register as google / organic or google / search — but that “fix” just merges them into regular organic. You still can’t isolate them.

In June 2026 Google launched Gen AI Performance ReportsThe Google Search Console report that shows how your site actually performed in Google Search, built from real impressions and clicks. It reports four metrics — clicks, impressions, average CTR, and average position — and keeps the most recent 16 months of data. in Search Console covering AI Overviews, AI Mode, and generative features in Discover. The catch: impressions only — no clicks, no CTR, no position. An impression inside an AI Overview tells you nothing about whether anyone clicked through.

So both ends are blind. My honest read, from that AI Mode piece: “Attribution is important, and we don’t have it yet. It makes me suspicious that there’s something Google doesn’t want us to know about this traffic.” The partial workarounds — GTM triggers on #:~:text= fragments, conversational-query regex in GSC, watching for rising-impressions/flat-clicks divergence — each catch a sliver. None is end-to-end.

Interpreting the data: floor, not ceiling

The most useful framing I can give you: the AI traffic you see in GA4 is the minimum, not the total. Swydo put it as “GA4 data is the floor, not the ceiling.” Because of dark traffic, your real AI-influenced number is materially higher than the AI Assistant channel and your custom group combined will ever show.

That has a concrete diagnostic payoff. If your Direct channel’s conversion rate has crept up alongside AI’s rise, a chunk of that Direct traffic may be misclassified AI sessions. Loamly estimates dark AI traffic converts at 10.21% versus 2.46% for genuine Direct — a suggestive pattern worth investigating, not proof by itself, since a rising Direct conversion rate can also come from returning customers, bookmark traffic, or other non-AI sources that also land in Direct. To estimate total AI influence, triangulate: branded-search lift, shifts in your Direct baseline, and post-conversion “how did you hear about us?” surveys.

One more distinction worth being explicit about: an attributed conversion tells you GA4’s configured channel rules assigned credit for that conversion to a given source — it does not prove that source caused the conversion, and it says nothing about the sessions and touchpoints GA4 never saw. Session source and medium reflect whatever acquisition metadata GA4 received, not a verified causal chain; treat attribution numbers as “what got credited,” and treat any conversion-lift claim (yours or a vendor’s) with the same caution you’d apply to any other correlational read.

And weight all of it by quality, because AI traffic is unusually valuable. For Ahrefs, 0.5% of traffic from AI searchAI search uses large language models and retrieval-augmented generation (RAG) to synthesize an answer from multiple sources rather than returning a ranked list of links. Examples include Google AI Overviews, ChatGPT Search, and Perplexity. produced 12.1% of signups — a 23x higher conversion rate than traditional organic, with AI visitors viewing ~50% more pages. Per-platform vendor estimates point the same way (ChatGPT referral converting around 15.9%, Perplexity ~10.5%, versus Google organic ~1.76%), though those are vendor-sourced and should be cited with caution. The independently documented 23x figure is the one I’d anchor on.

AI traffic has also grown fast — roughly 9.7x over twelve months across ~82,000 sites, and a 527% jump January–May 2025 versus the same period a year earlier. The market is shifting under you, too: as of January 2026, ChatGPT held 64.5% of measurable AI referral traffic, with Claude at 18.5%, Gemini 10.6%, and Perplexity 7.3% — so a tracking setup that only watches ChatGPT and Perplexity is already behind.

What to actually do

  1. Confirm whether you already have the native AI Assistant channel (post-May 2026).
  2. Build a custom channel group for fuller coverage, with the AI channel ordered above Referral (see scripts).
  3. Create a segment/exploration on AI traffic and watch its conversion rate, not just its volume.
  4. Baseline your Direct traffic now, then watch for a rising conversion rate as a signal worth investigating — not proof — of hidden AI traffic.
  5. Triangulate the invisible part with branded search and post-conversion surveys.
  6. Accept that AI Overviews / AI Mode can’t be cleanly separated — don’t burn weeks trying to force it.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.