AI Traffic in GA4: How to Detect and Analyse Visits from ChatGPT, Perplexity and Gemini

AI traffic in GA4 has become the question my clients ask most often when we review their analytics. ChatGPT, Perplexity, Gemini, Copilot and Claude now send real visitors to websites, but GA4 does not group those visits into a channel of their own. In this guide I show you how to find that traffic, separate it with a regex, and judge its quality with the right metrics.
I will not repeat the basics of setting up GA4 here. Instead, I assume you already have a working property and focus only on sessions that come from AI assistants. In other words, this is an analysis guide, not an introduction to the tool.
What is AI traffic in GA4 and why should you track it separately?
AI traffic in GA4 means sessions that reach your site after a user clicks a link inside an answer from an AI assistant such as ChatGPT, Perplexity, Gemini, Copilot or Claude. GA4 usually files these sessions under Referral or Direct, so you cannot see their size or quality without a custom channel.
The reason to track them separately is simple. These visitors have usually asked their question already, read an answer and clicked through to verify a source. Therefore their behaviour can differ from a classic organic visitor. Also, if you invest in being visible in AI answers, you need a clean number to judge whether that work pays off.
What I see in practice is that many businesses leave this traffic inside Referral for months without noticing it. As a result, they also do not know which of their pages AI assistants cite as sources.
How do AI assistants send visitors to your website?
When an assistant lists sources in an answer, the user can click one of them. In most cases the browser then passes the referring address to your site, and GA4 records it as the session source.
However, not every scenario works the same way. For example, if the user reads the answer in a desktop browser, the referrer usually arrives. On the other hand, mobile apps and desktop apps that open links in an external browser do not always pass that information. In that case the session shows up as Direct.
In short, part of your AI traffic is visible and part of it stays hidden. First I will show you how to separate the visible part cleanly; then I will explain how to interpret the hidden part honestly. If you want to understand why assistants recommend some brands and not others, my article on which brands AI search engines recommend covers that side.
Which channel does GA4 use for these visits by default?
The Default Channel Group in GA4 has no dedicated channel for AI assistants. So sessions from chatgpt.com or perplexity.ai usually land in the Referral channel.
Sometimes the picture looks messier. For instance, if a link carries a UTM source but no medium, the session can appear in a different channel or under Unassigned. That is why I recommend you look at the source level instead of relying only on the channel report.
One more point matters here. You cannot rewrite the default channel group to suit your needs; instead, you create a new custom channel group next to it. I walk through that step by step further down.
Which AI sources should you track?
I recommend you build the list from your own data. First open the source list for the last few months, then check which of the domains below actually appear on your site. The table summarises the sources I meet most often.
| Assistant | Domain you may see as source | Note |
|---|---|---|
| ChatGPT | chatgpt.com, chat.openai.com | The older domain can still show up in older sessions |
| Perplexity | perplexity.ai | Its visible source list tends to attract clicks |
| Gemini | gemini.google.com | Formerly Bard; now simply Gemini |
| Microsoft Copilot | copilot.microsoft.com | Formerly Bing Chat |
| Claude | claude.ai | Can cite sources when web search is on |
| DeepSeek, Mistral Le Chat, Grok | chat.deepseek.com, chat.mistral.ai, grok.com | Add them if your audience uses them |
This list is not fixed. When a new assistant gains users, a new domain appears in your report, so I suggest you review the list every quarter.
I also follow one rule when I extend it: I add a domain only after I have seen it in my own report and opened it in a browser to confirm it really belongs to an AI assistant. That keeps the regex short and lowers the risk of false matches. In addition, I keep a short change log, because months later it tells me whether a jump in the trend is real growth or just a definition change.
Does ChatGPT really add utm_source=chatgpt.com to its links?
Yes. OpenAI's Publishers and Developers FAQ states that ChatGPT automatically adds utm_source=chatgpt.com to referral URLs from its search results. The same page ties this tracking to publishers that allow OAI-SearchBot to access their content.
In practice this is a real advantage. Even when the referrer gets lost, the UTM parameter in the URL can still tell GA4 where the visit came from. However, the parameter only exists on links that ChatGPT itself generates. If a user copies the address and pastes it elsewhere, or a redirect strips the query string, the information disappears.
There is one more thing to keep in mind. I have not seen an official statement that other assistants add a similar parameter, so for them I rely on the referrer only. Also, if your site runs a redirect plugin, make sure it keeps query parameters; otherwise that valuable signal vanishes on the way.
How do you find AI traffic in GA4 with the Traffic acquisition report?
The quickest start is the standard reports. Open Reports > Acquisition > Traffic acquisition, then switch the primary dimension to Session source / medium.
Next, type chatgpt into the search box above the table, then perplexity, gemini, copilot and claude, one after another. That way you see within minutes which sources actually send data. Set the date range to at least the last three months, because a short range can mislead on low traffic sites.
The goal of this first check is to get a sense of scale. Note the share of AI sources in total sessions and keep it, so you can compare it with the custom channel you build next. Do not benchmark the figure against other sites; it varies a lot by industry, and a general average will not guide you.
How does regex work in GA4 and what should you watch out for?
Google's help page on regular expressions explains that Analytics uses Google RE2 syntax and that matching is a full match by default. In other words, if your expression does not match the whole value, it returns nothing.
This detail causes most mistakes. For example, if you type only chatgpt, the source value chatgpt.com does not fully match. So you need to add .* at the start and at the end. Then you catch the fragment wherever it appears in the value.
- Dot: In regex a dot means any character, so escape the dot in a domain with a backslash.
- Pipe: It separates alternatives and works as an OR.
- Parentheses: They group alternatives; wrap the group in parentheses when you combine it with .*.
- Case: The help page says regex is case sensitive by default, while channel group definitions are case insensitive.
How do you write a correct regex for AI sources?
The expression below catches every source from the table in one go. When you apply it to the session source dimension, you see chatgpt.com and chat.openai.com together with the other assistants.
.*(chatgpt\.com|chat\.openai\.com|perplexity\.ai|gemini\.google\.com|copilot\.microsoft\.com|claude\.ai|chat\.deepseek\.com|chat\.mistral\.ai|grok\.com).*
I made a few deliberate choices here. First, I wrote the full domains, because short words like "gemini" or "claude" could also match unrelated sites that happen to contain those words. Second, I escaped the dots, so the expression does not match odd values that only look similar.
Third, I left classic Google search out on purpose. Since gemini.google.com is its own domain, it does not collide with google / organic sessions. However, if you write an expression that contains only "google", you move all organic search into your AI channel, and that breaks the whole report.
Before you save anything, test the expression as a filter in Explore and read the list of matching values one by one. If you see a source you did not expect, narrow the expression.
How do you separate AI traffic in GA4 with a custom channel group?
The lasting fix is a custom channel group. Google's help page on custom channel groups gives the path as Admin > Data display > Channel groups. The steps look like this:
- On the Channel groups screen, click Create new channel group. GA4 starts the new group as a copy of the default group.
- Give the group a clear name, for example "Channels + AI".
- Add a new channel and call it "AI Assistants".
- Choose Source as the condition, use the matches regex operator and paste the expression above.
- Use Reorder to move the new channel above Referral, then click Apply and Save group.
According to the help page, a standard property allows two custom groups in addition to the predefined one, while a 360 property allows five. So think about the group name and purpose upfront and do not use up the limit with test groups.
Why does channel order change the result?
GA4 assigns a session to the first channel whose definition it matches, based on the order of channels in the group. The help page states this plainly. Consequently, if your AI channel sits below Referral, chatgpt.com sessions match the Referral definition first and your channel stays empty.
That is why you must move the new channel above Referral. Also, some ChatGPT sessions that arrive with a UTM source may match other channel definitions, so I place the AI channel near the top, at least ahead of Referral, Organic Social and Unassigned.
The good news: the help page says custom channel groups apply to reports retroactively. So the group you build today also lets you look at past months with the new breakdown. That answers the question "since when have we been getting AI traffic?" as well.
After you save the group, open the Traffic acquisition report, open the dimension picker and select your new group. In the first days, compare the numbers with the note from your first check. If you see a big gap, check the order again.
How do you build a free form exploration for AI traffic in GA4?
Standard reports show scale; for detail you use Explore. Google's help page on free form exploration describes the Free form template under Explore.
My setup looks like this. In Rows I add Session source and Landing page. In Values I add Sessions, Engaged sessions, Engagement rate and Key events. Then, in the Filter section, I choose matches regex for Session source and paste the same expression.
This table shows you two things at once: which assistant sends traffic and which page that traffic lands on. According to the help page, you can use up to five dimensions in rows and up to ten metrics in values. Still, I suggest you start with few dimensions to keep the table readable.
Once you save the exploration, you do not have to rebuild it every month. You change the date range and open the same table, so you compare periods with the same definition. In addition, exporting the table and sharing it with your content team makes it easier to discuss which pages get cited.
If you like, you can also turn the exploration into a segment comparison. For example, putting AI sessions next to organic search sessions shows the difference on one screen.
Which metrics show the quality of AI visitors?
Session counts alone mislead. AI traffic is a small share on most sites, so you need to focus on quality rather than volume. I read these metrics together:
- Engagement rate: The share of engaged sessions. It shows whether the visitor actually stayed on the page.
- Average engagement time: It hints at whether the visitor read the content.
- Key events: Forms, searches, purchases and other important events. This is where you see the business result.
- Session key event rate: The share of sessions with a key event; it makes channels of different size easier to compare.
When you interpret these metrics, always compare them with a reference channel. For instance, put organic search and the AI channel side by side for the same date range. If you struggle to choose which metrics really reflect business results, my article on digital marketing KPIs makes that choice easier.
Which pages receive AI traffic and how do you read that list?
The Landing page dimension is the heart of this analysis. Assistants tend to cite pages that answer a specific question, so AI traffic often concentrates on blog posts, guides and comparison pages.
When I read the list, I ask three questions. First: which question does this page answer? Second: where does the visitor go after this page? Third: does the page clearly show the next step, such as contact, a quote or a product page?
Very often I see that a visitor from an AI assistant confirms one fact and leaves. That behaviour is not a failure; however, if you add a relevant next step to the page, you can keep part of these visitors. So use the data not only to monitor but also to make page decisions.
Also note the important pages that never appear on the list. Assistants may not cite them, and they deserve a review of content structure and technical access. Check first that your robots.txt does not block the search crawlers of the assistants you care about.
How do you evaluate AI sources for conversions?
To evaluate the AI channel for conversions, your key events must be set up correctly first. If form submissions, phone clicks or purchases are not marked as key events, any channel comparison is meaningless.
Once your events are ready, select your custom channel group in the Traffic acquisition report and look at the key events column. However, rates swing a lot at small volumes: one form out of three sessions produces an impressive but meaningless 33 percent. So wait until enough volume builds up before you decide anything.
Attribution adds another layer. A person who reads an AI answer sometimes does not visit right away; they search for your brand on Google later. That conversion then shows up under organic search or Direct. Therefore the real contribution of the AI channel can be larger than the report shows. I recommend you state this limit clearly when you present the report; my guide on how to read a digital marketing report explains how.
Where does the AI traffic that GA4 cannot see end up?
Visits without a referrer appear as Direct in GA4. In app browsers, copy and paste links and certain privacy settings all lead to this result. As a result, part of your AI traffic never shows up in your own channel.
There is no way to solve this completely, but you can read indirect signals. For example, if Direct sessions land on a deep blog post, a page nobody would type from memory, some of those visits most likely came from another source.
In such cases I check the landing page split of Direct traffic once a month. If pages that grow in the AI channel also grow in Direct, I report this as a signal, not as proof. In other words, I call an observation an observation instead of presenting it as estimated data.
Can you separate Google AI Overviews and AI Mode clicks in GA4?
The short answer: not directly inside GA4. Clicks from Google's own search surfaces arrive with google as source and organic as medium, and GA4 has no separate dimension that labels them as AI Overviews or AI Mode.
That is why you should not confuse gemini.google.com with the AI summaries in Google Search. The first is a separate assistant product and shows up with its own domain; the second is part of the search results page.
To understand the effect on the search side, Search Console data is the better place to look, especially the relationship between impressions and clicks. If impressions rise while clicks do not keep pace, you may face queries where the answer appears right on the results page. I cover that pattern in my article on zero click searches.
Do bots and real visitors mix in GA4?
Usually not. Crawlers such as GPTBot, OAI-SearchBot, ClaudeBot or PerplexityBot fetch your pages on the server side and most of them do not execute JavaScript tags. GA4 collects data through a tag that runs in the browser, so these visits normally stay out of your reports.
So if you want to see how often bots crawl your site, GA4 is the wrong tool; you need server logs. GA4 only shows visits from people who clicked through.
Giving bots access is a separate decision. As mentioned above, OpenAI links the tracking of ChatGPT search referrals to OAI-SearchBot access. You can manage which bots you allow with the robots.txt generator, and you can try the llms.txt generator for a file that summarises your site for AI systems.
How should you set UTMs on links you place yourself?
Sometimes you place your own link in an AI environment: for example in the configuration of a GPT, in an assistant integration or in your profile on an AI directory. In those cases you control the UTM parameters.
I recommend a consistent naming scheme: the platform name for utm_source and a fixed value such as "ai" for utm_medium. Then you can add a second condition based on Medium to your channel group. Instead of typing links by hand, generate them with the UTM builder so that small typos do not split your report.
Keep one limit in mind, though: you cannot tag the links an assistant writes into its own answers. UTMs only help with links you control; for everything else, the referrer and your channel group rule do the work.
How should you structure a recurring report on AI traffic in GA4?
The value of this data shows when you look at it regularly. I use this simple structure with clients:
- Sessions and engagement rate of the AI channel in the custom channel group, compared with the previous period.
- Source breakdown: which assistant grows and which one stalls.
- The top ten landing pages by AI traffic and the key events on those pages.
- Direct sessions that land on deep pages, as a signal.
- One or two concrete content actions for the next period.
A weekly view can be too noisy for small sites; in that case switch to a monthly report. Consistency matters most: the same definition, the same regex, the same date logic. If you change the definition every month, you cannot read the trend. If you save your explorations, you can open the same view every month with a few clicks.
What are the common mistakes when analysing AI traffic in GA4?
I have collected the mistakes I see again and again. Most take minutes to fix; however, if nobody notices them, they drive wrong decisions for months.
- Writing the regex without .*, getting no matches and concluding "we have no AI traffic".
- Moving all organic search into the AI channel with an expression that only contains "google".
- Placing the new channel below Referral and then looking at an empty channel.
- Using up the two custom group limit with test groups.
- Presenting conversion rates from tiny volumes as firm results.
- Ignoring the AI effect that stays hidden inside Direct traffic.
- Writing rules for old product names such as Bard or Bing Chat and missing current domains.
What these mistakes share is that someone sets the definition once and never checks it again. So run a short validation one week after setup and read the list of matching sources again.
How do you connect this data to your GEO strategy?
Measurement is the feedback loop of a strategy. You can group the work you do to appear in AI answers under GEO, short for generative engine optimization; I explain the concept itself in my article what is generative engine optimization.
AI traffic data from GA4 helps that work in two ways. First, it reveals which pages assistants cite, so you can use their structure as a model for other content. Second, it points to pages that get cited but do not convert; those pages need a stronger next step.
If you also want to check how assistants mention your brand, the article on how your brand shows up in ChatGPT and Gemini completes this measurement. GA4 shows the click; a mention needs a separate check.
How do my team and I support this setup?
You can apply most of the steps above yourself; that is exactly why I wrote this guide. However, when channel groups, key events and reporting depend on each other, one small error can distort the whole picture.
As part of our SEO consulting, my team and I first audit the existing GA4 property: are events, channel definitions and filters correct? Then we build the AI channel and prepare the first report together with historical data. If you also measure paid campaigns, reading the same channel logic alongside your Google Ads management reports gives a more accurate budget picture.
Our aim is not to hand you a dashboard and leave. We work out together which content decisions the data should drive. I keep responsibility for strategy and results, while experienced colleagues in my team handle the implementation.
Where should you start?
The smallest step you can take today is to search the sources one by one in the Traffic acquisition report. That gives you a sense of scale in a few minutes. Next, test the regex in Explore and read the matching sources.
If the test works, build the custom channel group, move the new channel above Referral and run your first comparison with retroactive data. Finally, prepare a monthly report template and keep the definition stable.
Remember that GA4 does not show all of your AI traffic. It measures the visible part cleanly and only gives signals for the hidden part. When you accept that limit and report the data honestly, you start to understand the real impact of your AI visibility step by step.




