How to Track AI Referral Traffic From ChatGPT and Other AI Assistants in GA4
Google Analytics quietly added a dedicated AI Assistant channel in 2026. Most site owners haven't turned on the parts that actually catch the traffic beyond the three sources it names.
Google Analytics 4 added a native AI Assistant channel to its default channel group on May 13, 2026, letting site owners see, for the first time, how much traffic arrives from users clicking a link inside ChatGPT, Gemini, or another AI assistant's response. It works by matching the referring domain against a list Google maintains internally. The channel only names ChatGPT, Gemini, Deepseek, Copilot, and Grok in its own documentation, it excludes Google's own AI Overviews and AI Mode entirely, and it only catches a session when the browser actually sends a referrer header GA4 recognizes, which is narrower than most site owners assume.
What GA4's Native AI Assistant Channel Actually Captures
Per Google's own Default channel group documentation, the AI Assistant channel is defined mechanically, not by vendor name: "the medium exactly matches 'ai-assistant'," and GA4 sets that medium, along with a campaign value of (ai-assistant), whenever an incoming session's referrer matches an internal list of recognized AI assistant domains. Google's own examples of what that list currently includes are ChatGPT, Gemini, Deepseek, Copilot, and Grok. The company hasn't published the complete underlying list or a changelog for how it gets updated as new AI products launch, so treat those five names as illustrative of what qualifies, not a guaranteed complete set.
This was a real gap before May 2026. A property with no custom configuration had no way to separate a ChatGPT-driven visit from an ordinary unrecognized referral, and depending on how the session arrived, it could just as easily have landed in Direct. The native channel closes part of that gap automatically, with no setup required on a standard GA4 property: any session matching the recognized list now reports under a distinct "AI Assistant" row in the Acquisition reports instead of being folded into Referral or Direct.
Why Google's Own AI Overviews Don't Count as AI Assistant Traffic
The same documentation is explicit that this channel "excludes Google's AI Overviews and AI Mode." A click that originates from one of Google's own AI-generated summaries at the top of a search results page still gets classified under Organic Search, the identical channel a standard blue-link click uses. That's a deliberate distinction in Google's own classification logic, not an oversight: AI Overviews and AI Mode are Search features, so Google treats them as part of Search's existing traffic bucket rather than folding them into a channel built for third-party AI products.
The practical effect is that a property can show zero sessions in its AI Assistant channel while still receiving real traffic driven by an AI Overview appearing on that same property's pages, just filed under Organic Search where it's indistinguishable from a conventional ranking-driven click. For visibility into whether a page is actually appearing inside Google's AI Overviews at all, Search Console's separate Generative AI performance report is the relevant tool, covered in do AI Overviews actually reduce clicks, including exactly what that report does and doesn't measure.
How the Classification Actually Works Under the Hood
Three dimensions change when a session matches GA4's AI Assistant rule, all documented directly on Google's channel-definitions page:
| Dimension | Value assigned | What it means |
|---|---|---|
| Medium | ai-assistant | The signal GA4's channel-matching logic actually checks |
| Channel Group | AI Assistant | The row that appears in Acquisition reports |
| Campaign | (ai-assistant) | A reserved campaign name, not a real campaign you configured |
Because this is referrer-based, exactly like Organic Search, Referral, or any other unpaid channel, it only fires when a browser sends an HTTP referrer header GA4 can match. GA4 processes new events against its current channel rules, which is what makes the native channel usable without a migration step, but it can only classify a session correctly if the underlying signal (the referrer) is present and recognized in the first place. That single dependency is the source of most of the channel's blind spots, covered further down.
ChatGPT's Own Tracking Signal: What utm_source=chatgpt.com Tells You
Separately from GA4's own classification, OpenAI's Publishers and Developers documentation states plainly: "ChatGPT automatically includes the UTM parameter utm_source=chatgpt.com in referral URLs, enabling clear tracking and analysis of inbound traffic from ChatGPT search results." This applies specifically to links surfaced through ChatGPT search citations, the real-time web results ChatGPT can pull into a response, and it works independently of whether GA4's native AI Assistant channel also fires on the same click.
That distinction matters for diagnosis. A session carrying utm_source=chatgpt.com is unambiguous evidence of a ChatGPT-driven visit, since a UTM parameter survives a copy-pasted URL even when the referrer header itself gets stripped, which commonly happens when a link is copied out of a chat window rather than clicked directly. If a property is seeing chatgpt.com sessions in Referral or with a UTM parameter but nothing in the native AI Assistant channel, that's a sign the referrer-matching didn't fire on that particular click even though OpenAI's own tagging did, not a contradiction. Checking both signals together gives a more complete picture than either one alone. For the separate question of whether ChatGPT's crawler can even read a given page well enough to cite it in the first place, see do AI crawlers actually read your site.
Building a Custom Channel Group for Broader AI Coverage
Google's own Custom channel groups documentation includes a worked example specifically for this use case, titled "Example: AI assistants." It walks through creating a new channel, naming it something like "AI assistants," and adding a "matches regex" condition covering multiple AI products by name: "Examples of some popular assistants are: ChatGPT, Gemini, Microsoft Copilot, Claude, Perplexity." Google's own suggested regex for that condition is:
^.*ai|.*\.openai.*|.*chatgpt.*|.*gemini.*|.*gpt.*|.*copilot.*|.*perplexity.*|.*google.*bard.*|.*bard.*google.*|.*bard.*|.*.*gemini.*google.*$
Notably, this list includes Claude and Perplexity, neither of which appears among the examples Google gives for the native AI Assistant channel described earlier. Building a custom channel group this way gives broader coverage than relying on the native channel alone, at the cost of needing to maintain the regex yourself as new AI products launch, since Google's documentation notes you should update it if "URLs or the list of assistants you wish to measure change."
Three things worth knowing before setting one up, all per Google's own documentation: standard GA4 properties get two custom channel groups in addition to the default one (GA4 360 properties get five), each supporting up to 50 individual channels; a new channel needs to be reordered above Referral in the channel list so it takes priority, since GA4 assigns traffic to the first channel whose definition a session matches; and unlike the native AI Assistant channel, custom channel groups can be applied to historical reports retroactively, so setting one up today also reclassifies past sessions that match the regex.
Where Referrer-Based Tracking Still Falls Short
Both the native channel and a custom regex-based one share the same underlying dependency: a referrer header the browser is actually willing to send. A few real, documented gaps sit underneath that dependency. Google's own product changelog for AI Assistant traffic doesn't claim the classification is retroactive the way custom channel groups explicitly are, so a property's historical data won't reflect the new channel for sessions collected before the rule existed. Separately, OpenAI's documentation is clear that the UTM tagging applies specifically to citation links inside ChatGPT search results, not to every possible way a user might reach a site after a ChatGPT conversation, such as manually retyping a URL they saw mentioned in a response, which produces no referrer and no UTM parameter at all and lands in Direct with nothing to distinguish it.
This is a mechanical limitation shared by essentially all referrer-based attribution, not something unique to AI assistants. It means AI-driven traffic is very likely undercounted in any GA4 property relying solely on referrer matching, native or custom, though the exact scale of that undercount isn't something either Google or OpenAI has published a verified figure for. Treat the AI Assistant channel and any custom regex channel as a reliable floor on AI-driven traffic, evidence that at least this many sessions arrived this way, rather than a precise or complete count.
GA4 Referral Data vs. Search Console's AI Overview Impressions: Two Different Signals
It's worth being precise about what each tool actually measures, since they're often discussed as if they're interchangeable. GA4's AI Assistant channel and any custom regex extension of it measure clicks, actual sessions landing on a property from a referring AI product. Search Console's Generative AI performance report, covered in detail in do AI Overviews actually reduce clicks, measures impressions inside Google's own AI Overviews and AI Mode specifically, with no click data at all as of that report's current scope. Neither one substitutes for the other, and a property can show strong numbers on one while showing nothing on the other, since they're tracking entirely separate parts of the AI-search pipeline: one measures whether Google's AI surfaced the page at all, the other measures whether a person actually followed a link from a different AI product's response.
A Practical Setup Checklist
For a property that wants a clearer picture of AI-driven traffic starting today:
- Confirm the native AI Assistant channel is visible under Acquisition in GA4. No configuration is required; it applies automatically to properties on the current default channel group.
- Build a custom channel group using Google's own regex example if broader coverage (including Claude and Perplexity) matters more than staying within the five names the native channel documents.
- Reorder any new custom channel above Referral, and above Organic Search if that matters for the property's reporting priorities, since GA4 assigns each session to the first matching channel in list order.
- Cross-check
utm_source=chatgpt.comsessions specifically, since that signal can catch ChatGPT-driven visits the referrer-based channel misses, and vice versa. - Treat every number from this setup as a floor, not a ceiling, given the shared referrer-dependency limitation covered above.
Related: do AI crawlers actually read your site, do AI Overviews actually reduce clicks, AEO, GEO, and SEO: what each term actually means.
Frequently asked questions
Does GA4's AI Assistant channel include Google's own AI Overviews?
No. Google's own default channel group documentation states the AI Assistant channel covers traffic from sources like ChatGPT, Gemini, Deepseek, Copilot, or Grok, and explicitly excludes AI Overviews and AI Mode. A click from one of Google's own AI-generated summaries is classified under Organic Search instead, the same channel as a standard blue-link click.
Why does ChatGPT traffic sometimes show up as Direct instead of AI Assistant in GA4?
GA4's AI Assistant classification depends on the browser actually sending a referrer header that matches a recognized AI assistant. A session with no referrer at all, which happens when a link is copied out of a chat reply and pasted into the address bar, or opened from certain in-app browsers, has nothing for GA4 to match against and falls into Direct by default.
Does the utm_source=chatgpt.com parameter mean I don't need GA4's AI Assistant channel?
No, they cover different traffic. OpenAI's own documentation confirms ChatGPT appends utm_source=chatgpt.com to links inside ChatGPT search citations specifically. GA4's AI Assistant channel is a separate, referrer-based classification that can catch traffic from ChatGPT and other assistants even without that UTM parameter present, though neither method catches every session.
How many custom channel groups can I create in standard GA4?
Two, in addition to the default channel group, according to Google's own per-property limits, each supporting up to 50 individual channels. Google Analytics 360 properties get five. This is enough for a dedicated AI-assistant tracking channel alongside the one most properties already use for a different purpose.
Part of the AI Search cluster.
Want this applied to your own site, not just read about it?
This is the free version, evidence-labeled and yours to read at no cost. Applying it to your own site (technical SEO, AI search visibility, and GEO in one pass) is separate, paid work at kuraib.site.