How to track ChatGPT and AI traffic in Google Analytics 4

GA4's new AI Assistant channel misses some assistants and app clicks land in Direct. The custom channel group, the regex, and what GA4 still can't see.

To track ChatGPT and other AI assistant traffic in Google Analytics 4, start with the AI Assistant channel Google added to the default channel group on May 13, 2026, then build a custom channel group with a Source matches regex rule for every assistant you care about and move it above Referral. Expect an undercount either way: clicks from native apps and copied links arrive without a referrer and get filed as Direct. Below is the full setup, a regex builder, and an honest list of what GA4 still can't see.

This is the measurement half of AI visibility - the clicks. The other half, whether assistants name you at all, never shows up in an analytics tool. We cover that in how to track your brand across AI engines; here we stay inside GA4.

Where does ChatGPT traffic show up in GA4?

A visit from an AI assistant carries up to two fingerprints. The first is the referrer: when someone clicks a cited link inside ChatGPT on the web, the browser tells your site the click came from chatgpt.com. The second is a UTM tag: OpenAI's publisher FAQ says ChatGPT automatically adds utm_source=chatgpt.com to referral URLs. When a landing URL carries UTM parameters, GA4 takes the session source from them, so both fingerprints point at the same value: a session source of chatgpt.com.

The other assistants mostly identify themselves through the referrer alone. These are the hosts worth knowing:

AssistantSession source you'll seeNotes
ChatGPTchatgpt.com (older: chat.openai.com)Referrer plus utm_source=chatgpt.com
Perplexityperplexity.aiReferrer from the web app
Geminigemini.google.comSeparate from Google Search, which arrives as google
Claudeclaude.aiReferrer from the web app
Microsoft Copilotcopilot.microsoft.comCopilot inside Bing can arrive as bing, indistinguishable from search
Grokgrok.comReferrer from the web app
DeepSeekchat.deepseek.comReferrer from the web app

Look for these in Reports › Acquisition › Traffic acquisition with the dimension switched to Session source / medium. Until May 2026 they appeared with medium referral. Since then, the ones Google recognises carry a new medium of their own.

What is GA4's AI Assistant channel?

Google's default channel group definitions now include an AI Assistant channel, described as "the channel by which users arrive at your site from sources like ChatGPT, Gemini, Deepseek, Copilot, or Grok." The rule is simple: if the referrer matches Google's list of AI assistants, GA4 sets the medium to ai-assistant and the campaign to (ai-assistant), and the channel picks up everything with that medium. You don't configure anything; it appears in the standard reports.

It's a real improvement, but three gaps make it worth adding your own channel on top:

  • You don't control the list. Google's page gives examples, not the full list. Perplexity, for instance, isn't among the assistants it names. If your reports still show perplexity.ai / referral, Google's channel isn't catching it.
  • It starts in May 2026. If a year-over-year report shows Referral falling in mid-May, check whether the ChatGPT sessions simply moved channel before you read anything into it. Custom channel groups, by contrast, can be applied to your reports retroactively, so your own AI channel shows history from before the change.
  • It only sees referrers. A UTM-tagged visit with no referrer - common from apps, as we'll see - is matched on the referrer list, so it can miss the built-in channel while your source-based rule still catches it.

How to set up an AI channel group in GA4

You need Editor access to the property. The whole thing takes about ten minutes, and you can undo it at any time without touching collected data, because channel groups are a reporting layer.

Step 1 - Copy the default channel group

Go to Admin › Data display › Channel groups. Click Create new channel group: the new group starts as a copy of the default one, so it keeps every built-in channel - including the AI Assistant one - and you add yours to it. Name the copy something obvious, like "Default + AI". Standard properties allow two custom channel groups with up to 50 channels each, so you aren't using up much.

Step 2 - Add an AI assistants channel with a regex

Click Add new channel, name it "AI assistants", and add one condition: Source · matches regex · your pattern. Because GA4 uses the UTM value as the source when it exists, the same rule catches referrer-based and UTM-based visits. It also catches the sessions Google already relabelled, since their source is still chatgpt.com or gemini.google.com - only the medium changed. Build the pattern below.

Build yours

Your GA4 "AI assistants" channel regex

Tick the assistants you want in the channel. Paste the result into the channel's condition: Source · matches regex.

AI assistants to include
^(.*\.)?(chatgpt\.com|chat\.openai\.com|perplexity\.ai|gemini\.google\.com|bard\.google\.com|claude\.ai|copilot\.microsoft\.com|copilot\.cloud\.microsoft|grok\.com|chat\.deepseek\.com)$
10 hosts · anchored, subdomains allowed

"chatgpt.com" matches - this session would land in your AI channel.

Two details make the generated pattern safer than most you'll find online. First, GA4 matches the full value by default: perplexity\.ai on its own would not match www.perplexity.ai. The ^(.*\.)? prefix allows subdomains without allowing lookalikes. Second, it lists exact hosts instead of loose words. The example pattern on Google's own help page includes the alternatives ^.*ai and .*gpt.* - which match any source that ends in "ai" or contains "gpt". Every startup on a .ai domain that links to you would be counted as an AI assistant. Explicit hosts are dull, and that's the point.

Step 3 - Move it above Referral

Order matters more than anything else in this setup. In Google's words, traffic is included in the first channel whose definition it matches. A Perplexity click has medium referral, so if the Referral channel is checked first, the session stops there and never reaches your AI rule. Google's own instructions say to reorder the list so AI assistants sits above Referral.

Custom AI channel below Referralsession: perplexity.ai / referral1. Organic Searchno match2. Referrallands here3. AI assistants4. UnassignedCounted as an ordinary referral.Custom AI channel above Referralsession: perplexity.ai / referral1. Organic Searchno match2. AI assistantslands here3. Referral4. UnassignedCounted as AI traffic.
GA4 checks channels top to bottom and stops at the first match. The same Perplexity session is a referral on the left and AI traffic on the right - only the order changed. Diagram of GA4's documented evaluation rule.

Step 4 - Check the numbers in your reports

Open Traffic acquisition, and switch the primary dimension from the default channel group to your new one - custom groups work as a primary dimension in the Acquisition reports, with each channel as a row. If you want it to replace the default everywhere, select it as the property's primary channel group under Admin › Channel groups. Then sanity-check it: filter to your AI assistants channel, add Session source as a secondary dimension, and confirm every row is a host you meant to include. Anything unexpected means the regex is too broad.

Why does AI traffic show up as Direct in GA4?

GA4's Direct channel is defined as source (direct) with medium (none) or (not set) - in plain terms, a visit that arrived with no referrer and no campaign tags. AI assistants generate several of those:

  • Native apps. When someone taps a link inside a desktop or mobile assistant app, the link opens in a browser with no web page behind the click, so there's no referrer to send. If the link carries utm_source, your source-based rule still catches it. If not, it's Direct.
  • Referrer policies. A site can tell browsers to strip the referrer from outgoing links with a Referrer-Policy such as no-referrer. Any assistant surface that does this makes its clicks look like typed-in visits.
  • Copy and paste. People copy a URL out of an answer, or read your brand name and type it into the address bar an hour later. That visit was caused by the AI answer, and nothing in it says so.
  • The answer that sends a searcher. Often the assistant doesn't link at all; it names you, and the person searches your brand on Google. That lands in Organic Search as a branded query.

Google's own AI surfaces are a separate case. Clicks from AI Overviews and AI Mode come from google.com and land in Organic Search, and Google reports them inside the "Web" search type in Search Console rather than as a separate line. Neither tool splits them out. If those surfaces matter in your market, see our guide to AI Overviews for how to tell whether you appear in them.

WHERE THE CLICK STARTSWHAT REACHES YOUR SITEWHERE GA4 FILES ITChatGPT on the web,cited link clickedreferrer chatgpt.com+ utm_source=chatgpt.comAI Assistant /your AI channelPerplexity answer,source link clickedreferrer perplexity.aiReferral, unless yourAI channel catches itLink opened from anassistant's native appno referrer;utm_source if taggedYour AI channel (utm)or Direct (no utm)URL copied from an answer,or brand typed in laterno referrer, no utmDirect, or brandedorganic searchGoogle AI Overviews orAI Mode link clickedreferrer google.comOrganic Search
Five ways a click from an AI answer reaches your site, and where GA4 files each one. Only the first path is reliably labelled as AI. Diagram based on GA4's channel rules and OpenAI's documented utm_source behaviour.
Treat your AI channel as a floor, not a total. It counts the visits that announced themselves; the rest are spread across Direct and branded search.

How can you estimate the AI traffic GA4 misses?

You can't recover a missing referrer, but you can look for its shadow. None of these is precise; together they tell you whether the floor is close to the real number or far below it.

  • Direct visits to deep pages. People rarely type /blog/some-long-slug from memory. A rise in Direct sessions that land on specific articles, comparison pages or docs - especially pages you know assistants cite - is a reasonable sign of untagged AI clicks.
  • Branded search trend. In Search Console, watch impressions for queries containing your brand. Being named in AI answers tends to send people to search for you, and that shows up there before it shows up anywhere else.
  • Ask people. A "How did you hear about us?" field with "ChatGPT or another AI assistant" as an option is crude and unreliable on its own. It is also the only measure that catches the visitor who read your name in an answer and came back a week later.

Which GA4 reports show whether AI traffic converts?

Counting sessions is the easy part. The more useful question is what those visitors do. Build a free-form exploration with Session custom channel group and Landing page + query string as rows, and Sessions, Engaged sessions, Engagement rate and Key events as values. Filter to your AI channel and compare it against Organic Search over the same date range.

Two patterns are worth watching. The landing pages tell you which of your pages assistants actually send people to - usually not the homepage, often a comparison, pricing or how-to page. If the same few pages carry most of the AI sessions, that's where to put effort: make those pages easy to quote and current. And the conversion rate tells you whether AI visitors arrive further along in their decision than search visitors, which is the argument you'll need when someone asks why this channel deserves attention while it's still small.

What GA4 can't tell you about AI visibility

GA4 measures clicks, and AI answers produce far fewer clicks than they produce impressions of your brand. An assistant can recommend you to a thousand people and send you ten visits, or describe a competitor as the default choice and send you none. None of that appears in analytics. The number that captures it is how often the engines name you for the questions buyers ask - visibility rate and share of voice - and you measure it by sampling answers, not by reading traffic.

GA4 also doesn't see the bots. AI crawlers fetch your pages to train models, build search indexes and answer questions live, and they don't run your analytics tag. Those visits live in your server logs, which we walk through in AI crawlers in your server logs. Logs, clicks and answer tracking cover three different layers; you need all three to see the whole picture.

A first-party alternative: Zene's AI traffic snippet

If you'd rather not maintain a regex, or you don't use GA4 at all, Zene has its own AI traffic tracking. It's a single script tag on your site. On each page load it checks the referrer host and the utm_source against a list of AI assistants and sends a beacon only for AI-referred landings - regular visitors are never sent. It sets no cookies, respects Do Not Track and Global Privacy Control, and can record conversions from those visits if you add one line where a signup or purchase completes. The results sit on Zene's AI traffic page next to your visibility numbers, and it's included on every plan, Free too.

It has the same blind spot as GA4: a visit without a referrer or a UTM tag can't be attributed by anyone. What it adds is the context - the clicks next to the answers that produced them.


Clicks are the lagging half of the story. To see whether ChatGPT, Gemini, Claude and Perplexity are naming you in the first place, run a free audit - it takes about 90 seconds and needs no card. Or compare plans on the pricing page.

Frequently asked questions

Does GA4 track ChatGPT traffic automatically?

Partly. Since May 13, 2026 GA4's default channel group has an AI Assistant channel: when the referrer matches Google's list of AI assistants, the medium is set to ai-assistant and the session is grouped there. Google names ChatGPT, Gemini, DeepSeek, Copilot and Grok as examples but doesn't publish the full list, so a custom channel group with your own regex is still worth adding for complete and historical coverage.

What regex should I use to track AI traffic in GA4?

Use Source matches regex with an anchored list of exact hosts, for example ^(.*\.)?(chatgpt\.com|chat\.openai\.com|perplexity\.ai|gemini\.google\.com|claude\.ai|copilot\.microsoft\.com|grok\.com)$. GA4 matches the full value by default, so the anchors and optional subdomain prefix matter. Avoid loose patterns like .*ai, which also catch unrelated .ai domains, and place the channel above Referral.

Why does ChatGPT traffic show up as Direct in GA4?

Because the visit arrived with no referrer and no campaign tags. That happens when a link is opened from a native assistant app, when a referrer policy strips the referrer, or when someone copies a URL or types your brand after reading an answer. ChatGPT adds utm_source=chatgpt.com to links, which rescues some of these visits; the rest are counted as Direct or branded search.

What does utm_source=chatgpt.com mean in my analytics?

It means the visitor clicked a link in ChatGPT. OpenAI says ChatGPT automatically adds utm_source=chatgpt.com to referral URLs so publishers can track traffic from ChatGPT search. GA4 uses the UTM value as the session source, so these visits show up with source chatgpt.com even when the browser sent no referrer.

Can GA4 show traffic from Google AI Overviews or AI Mode?

Not separately. Clicks from AI Overviews and AI Mode arrive from google.com and land in Organic Search alongside regular search clicks, and Google reports them inside the Web search type in Search Console rather than as their own line. To know whether you appear in those answers, you have to check the answers themselves.

Muhammet İLBAŞ
Written by
Muhammet İLBAŞ
Founder & engineer, building Zene in public
Share

Put it into practice

Free AI visibility checker →Positioning sentence builder →Schema markup generator →All free toolsCompare Zene vs alternatives

Keep reading

All articles →
Playbooks

How to get your app recommended by ChatGPT (and every other AI assistant)

"Best meditation apps", "app to plan a trip" - questions that used to be store searches are now asked in ChatGPT, and the answer is a shortlist of three to five names. Here's how assistants actually pick those names - listing signals, reputation bars, citable sources - and the six-step playbook for getting your app into the shortlist, with a free checker that grades where you stand today.

Find out if AI recommends you.

Put this guide into practice - get your free visibility score in minutes.

Zene dashboard: a brand's AI visibility score, the next automatic scan, and per-engine cards for ChatGPT, Claude, Gemini and Perplexity