Free tool
Track ChatGPT traffic in GA4: a free AI traffic filter builder
To track ChatGPT traffic, and visits from Perplexity, Gemini, Copilot, Claude and other AI assistants, in Google Analytics 4, you need two things: what GA4 already labels for you, and a source filter you control for the rest. Tick the assistants and copy the expression for each place GA4 accepts one. It runs in your browser and connects to nothing.
Short answer
To track ChatGPT traffic in Google Analytics 4, open Reports, Acquisition, Traffic acquisition and find the AI Assistant channel, which Google added on May 13, 2026. For one row per assistant, or a list of assistants you control, filter Session source with a regular expression. Convertica's free builder writes that expression for GA4, Data Studio and BigQuery.
- Since May 13, 2026, GA4 gives visits from assistants it recognizes the medium ai-assistant, the campaign (ai-assistant) and the AI Assistant channel.
- Google's pages do not publish the list of assistants that channel matches. A source filter of your own is how you check it and add to it.
- GA4 regex is a full match and case sensitive by default, and follows RE2 syntax. An expression anchored at both ends works in every field.
- A visit that arrives with no referrer is counted as direct, and clicks from Google's AI Overviews and AI Mode are counted as Organic Search. A source filter cannot separate either.
- A referral is a visit, not a citation. Compare the segment's conversion rate with your other channels before you act on it.
AI traffic filter builder
Free to use, no sign-up. It is a builder, not a tracker: it does not connect to your analytics, does not ask any assistant anything and stores nothing. The expression is written in your browser and updates as you tick.
Paste it into a custom channel group condition on Source, or an exploration filter on Session source.
Expression for 10 sources
- Matches Each value on its own, any subdomain of it and the same value followed by a path. Nothing else.
- Length 217 characters. Google's help pages do not state a maximum length for a regex condition. If a field refuses the expression, untick the assistants that send you nothing.
- Coverage Meta AI, Mistral Vibe and Duck.ai are not named on Google's pages, so this expression can count visits that GA4's own AI Assistant channel does not.
The same list for the other places it goes
GA4's fields do not all read an expression the same way, and one of them takes no regex at all. Each box below is written for the place named above it.
For a channel group with a row for each assistant: the channel name, a tab, then the expression for its condition on Source.
For a report comparison, which Google documents with exact and contains match types only. Add each line as a value.
A dimension that names the assistant. Data Studio is the product Google called Looker Studio.
A CASE expression on the GA4 export's session source field, for a SELECT list.
AI referrer checker
Paste referrers, or source / medium rows copied from a report or a CSV export, and see which rows are AI assistants and which assistant. Nothing you paste leaves your browser.
5 AI assistant rows
5 of 10 rows are AI assistants, from 5 assistants. Their first number column adds up to 561 of 7,413, or 7.6% of what you pasted.
- 1 row carries the medium ai-assistant with a source that is not on this tool's list: assistant.example. That medium is the one GA4 gives to assistants it recognizes.
- 1 header or comment line was skipped.
| Assistant | Rows | Sum |
|---|---|---|
| ChatGPT | 1 | 312 |
| Perplexity | 1 | 96 |
| Gemini | 1 | 74 |
| Microsoft Copilot | 1 | 41 |
| Claude | 1 | 38 |
| Everything else | 5 | 6,852 |
| All rows | 10 | 7,413 |
What is AI traffic tracking?
AI traffic tracking is measuring the visits that reach your site from links inside AI assistants such as ChatGPT, Perplexity, Gemini, Microsoft Copilot and Claude. In Google Analytics 4 that means finding the sessions whose source is an assistant's address, then reading what those visitors do, the same way you would for any other channel.
You will also see it called AI referral traffic, LLM traffic or AI search traffic. The names describe the same visits: a person read an answer, clicked a link in it and arrived on your page. That click is the only part analytics can see.
This page gives you three things. The builder writes the filter. The checker labels rows you already exported. The rest of the page is where each expression goes in GA4, the rules that decide whether a pasted expression works, and what no filter can show you. Every rule is taken from Google's own help pages, read on 13 October 2026.
Does Google Analytics track AI traffic on its own?
Yes. Since May 13, 2026, Google Analytics 4 labels visits from the AI assistants it recognizes without any setup. Google's release note says that when a visit's referrer matches a recognized assistant, three traffic source dimensions are set for you, and the visit is reported in a new channel of the default channel group.
| Dimension | Value GA4 sets | Where you see it |
|---|---|---|
| Session default channel group | AI Assistant | The first column of the Traffic acquisition report |
| Session medium | ai-assistant | Session medium, and the second half of Session source / medium |
| Session campaign | (ai-assistant) | Session campaign |
One consequence is easy to miss. A visit known only by its referrer carries the medium referral, so that is how assistant visits were reported before the change. A saved report or filter that looks for an assistant's source together with the medium referral will not find the visits GA4 now labels ai-assistant. A filter on the source alone, which is what the builder writes, finds them under either medium.
What Google does not publish
Google's default channel group page defines the channel by a referrer that matches a list of AI assistants, without giving the list. It names ChatGPT, Gemini, Deepseek, Copilot and Grok as examples, and the release note names ChatGPT, Gemini and Claude. The spreadsheet of sources and categories that Google offers for download on the same page covers search, social, shopping and video sites only. So you cannot look up whether GA4 recognizes a given assistant. You can only check your own data.
That leaves four reasons to keep a source filter of your own:
- One row per assistant. The channel is a single row. A channel per assistant shows ChatGPT, Perplexity and the rest side by side.
- A check on the channel. Compare the visits your expression finds with the AI Assistant row. On dates after the change, a source your expression finds under the medium referral is one GA4 did not recognize.
- Assistants you add. You can include a source on the day it first shows up in your referral report.
- Reports outside GA4. Google says custom channel groups are not available in the BigQuery export, so in BigQuery and in a Data Studio formula the list has to be written out.
How to track ChatGPT traffic in GA4, step by step
To track ChatGPT traffic in GA4, first read what the AI Assistant channel already reports, then add a source filter where you need more detail. There are three places a filter can go: a custom channel group, an exploration and a report comparison. They do not accept the same input, so the builder writes a version for each.
See what GA4 already labels
- Sign in to Google Analytics and select Reports in the left menu.
- Select Acquisition, then Traffic acquisition. The table opens on Session default channel group. Look for the row named AI Assistant.
- Change the table's dimension to Session source / medium.
- In the search bar above the table, type
ai-assistantand press Enter. Each row left is a source GA4 gave that medium.
Google's help page on reports and explorations says this search field uses a contains match and is not case sensitive. It takes one phrase, not a regular expression. To see ChatGPT alone, search for chatgpt.com instead.
Create an AI assistants channel in a custom channel group
- In Admin, under Data display, click Channel groups. You need the Editor role or above.
- Click Create new channel group. It starts as a copy of the default group. Give it a name.
- Click Add new channel and name it, for example AI assistants.
- Add a condition, choose Source, select matches regex and paste the expression from the builder.
- Click Save channel.
- Click Reorder and drag the new channel above Referral, then click Apply. If the group has another channel that would match the same visits, put yours above that one too.
- Click Save group, then choose the group as the dimension in the Traffic acquisition report.
These are the steps on Google's custom channel groups page. The order matters because Google puts a visit in the first channel whose definition it matches. Google also says custom channel groups can be applied to your reports retroactively, so the new channel shows past visits as well as new ones. A standard property can hold 2 custom groups and a 360 property 5, with up to 50 channels in each.
For a row per assistant, add one channel for each line of the "One channel per assistant" box, all of them above Referral.
Filter an exploration to AI assistants
- In Explore, under Start a new exploration, select the Free form template.
- In the Variables panel, click the plus sign beside Dimensions, select Session source and click Import. Import the metrics you want in the same way, such as Sessions and Key events.
- Double-click Session source to add it to the rows, and add the metrics to the table.
- At the bottom of the Settings panel, in Filters, select Session source.
- Select the regex match type, paste the expression and click Apply.
Google's explorations page says you can add up to 10 filters and that all of them must be met. Filters are joined with AND, so ten assistants cannot go in ten filters. They have to be one expression, which is why the builder joins them with the OR sign.
Compare AI visitors with everyone else in a report
- Open a report and click the comparison control at the top right, then Create new.
- Choose the dimension Session source and the match type contains.
- Add each line of the "Values for a contains condition" box as a value. Google says several values in one condition are joined with OR.
- Click Apply.
Google's comparisons page lists two kinds of match type, exact and contains, and no regular expression. It also says only dimensions that have values appear in the list. A contains match is looser than the expression: the value meta.ai also matches a longer source that merely has those characters in it. If Session medium is offered, a single condition of Session medium exactly matches ai-assistant is the shortest comparison there is.
| Place | Where it is | What to choose | The documented rule | What to paste |
|---|---|---|---|---|
| Custom channel group | Admin, Data display, Channel groups | Source, matches regex | Full match by default. Not case sensitive. | The expression |
| Exploration filter | Explore, Settings panel, Filters | Session source, the regex match type | Full match by default. Case sensitive. | The expression |
| Report comparison | The comparison control at the top right of a report | Session source, contains | No regex: exact or contains only. Case sensitive. | The list of values |
| Search field above a report table | Reports, Acquisition, Traffic acquisition | Contains, one phrase | Not case sensitive. | ai-assistant |
| Data Studio calculated field | A Google Analytics data source | REGEXP_MATCH | Matches the entire value. RE2 syntax. | The CASE formula |
| BigQuery | The GA4 export tables | REGEXP_CONTAINS | Partial match. | The condition |
GA4 regex rules that make or break a copied expression
Four rules decide whether an expression pasted into GA4 does what its author meant: the syntax GA4 accepts, whether a match has to cover the whole value, whether capitals matter, and how long it may be. Google documents the first three. An expression written with one of them in mind can match something quite different under another.
- Syntax: RE2. Google's regex help page for Analytics points to the RE2 syntax, and Google's help page for REGEXMATCH in Sheets says Google products use RE2 for regular expressions. RE2 lists lookaheads, lookbehinds and backreferences as not supported. The builder uses none of them: only groups, the OR sign, one negated character class and the two anchors.
- Full match by default. The same page says: "By default, Google Analytics Regex is full regex and case sensitive." Its example is that a regex of San Francisco returns only San Francisco, and that
.*San Francisco.*is needed to return South San Francisco as well. - Case. Exploration filter expressions are case sensitive. Channel group definitions are not. The builder writes every value in lowercase, the form a hostname takes in a referrer. A utm_source typed with capitals would need its own entry in an exploration.
- Length. None of the Google pages read for this tool states a maximum length for a regex condition. The builder shows the character count of each expression. The default one, with all 10 assistants, is 217 characters.
The builder's expression has one shape whatever you tick:
^([^/]*\.)?(value|value|value)(/.*)?$
^ the start of the source value
([^/]*\.)? an optional subdomain, such as www.
(a|b|c) one of the values you ticked, dots escaped
(/.*)? an optional path after the hostname
$ the end of the source value
Because it is anchored at both ends, it gives the same answer where a field does a full match and where it does a partial one. That matters in BigQuery, where REGEXP_CONTAINS is a partial match.
Google's example expression and the builder's, on the same ten values
Google's custom channel groups page gives an example expression for AI assistants and adds that you should update it as the list of assistants changes. It is a starting point, and it is worth seeing what it matches before you paste it. This is the example as published:
^.*ai|.*\.openai.*|.*chatgpt.*|.*gemini.*|.*gpt.*|.*copilot.*|.*perplexity.*|.*google.*bard.*|.*bard.*google.*|.*bard.*|.*.*gemini.*google.*$
| Source value | What it is | Google's example, full match | Google's example, partial match | The builder's expression |
|---|---|---|---|---|
| chatgpt.com | ChatGPT | Yes | Yes | Yes |
| gemini.google.com | Gemini | Yes | Yes | Yes |
| copilot.microsoft.com | Microsoft Copilot | Yes | Yes | Yes |
| claude.ai | Claude | Yes | Yes | Yes |
| perplexity.ai | Perplexity | Yes | Yes | Yes |
| chat.deepseek.com | DeepSeek | No | No | Yes |
| grok.com | Grok | No | No | Yes |
| newsletter-dubai | A made-up campaign source that ends in ai | Yes | Yes | No |
| sendgpt.example | A made-up site with gpt in its name | Yes | Yes | No |
| mail.example.com | A made-up webmail referrer | No | Yes | No |
Each cell was worked out by running the expression, in the same code as the builder. Three things stand out. The example's first alternative, ^.*ai, accepts any value that ends in the letters ai under a full match, which includes every site on a .ai address whether or not it is an assistant. Its .*gpt.* alternative accepts any source with gpt anywhere in its name. And it has no entry for DeepSeek or Grok, two of the assistants Google's own channel description names. The builder's expression matches the listed addresses and nothing else, and reads the same under a full or a partial match.
AI traffic sources: the assistants on the list and how each was confirmed
The builder covers 10 AI assistants. Each address on the list was confirmed on 13 October 2026 in one of two ways: the assistant's maker links to it from its own page, or a request to the address returned the assistant itself or a redirect to it. Lists copied between blog posts were not used as a source.
| Assistant | Source values matched | Named on Google's pages | How it was confirmed |
|---|---|---|---|
| ChatGPT | chatgpt.com, chat.openai.com | Channel description, Release note, Custom channel example | chatgpt.com: OpenAI's Help Center links ChatGPT to this address. chat.openai.com: The earlier address. A request to it is redirected to chatgpt.com. |
| Gemini | gemini.google.com, bard.google.com | Channel description, Release note, Custom channel example | gemini.google.com: The page at this address is titled Google Gemini. bard.google.com: The earlier address. A request to it is redirected to gemini.google.com. |
| Microsoft Copilot | copilot.microsoft.com, copilot.com | Channel description, Custom channel example | copilot.microsoft.com: A request to this address is redirected to copilot.com. copilot.com: The page at this address is titled Microsoft Copilot. |
| Claude | claude.ai | Release note, Custom channel example | claude.ai: Anthropic's page for Claude links to this address. |
| Perplexity | perplexity.ai | Custom channel example | perplexity.ai: The page at this address is titled Perplexity. |
| DeepSeek | chat.deepseek.com | Channel description | chat.deepseek.com: DeepSeek's home page links to this address for its chat. |
| Grok | grok.com | Channel description | grok.com: The page at this address is titled Grok. |
| Meta AI | meta.ai | Not named | meta.ai: The page at this address is titled Meta AI. |
| Mistral Vibe | chat.mistral.ai | Not named | chat.mistral.ai: Mistral AI's page for Mistral Vibe, formerly Le Chat, links to this address. |
| Duck.ai | duck.ai | Not named | duck.ai: The page at this address is titled Duck.ai by DuckDuckGo. |
The third column says where Google names the assistant: in the description of the AI Assistant channel, in the release note for it, or in the example on the custom channel groups page. "Not named" means none of those pages mentions it, so whether GA4's own channel includes it is not something you can read anywhere. Your expression will still find its visits.
The list is short on purpose. An address that could not be confirmed at its source is left out. If your referral report shows an assistant that is missing, type its hostname into "Add your own" and it joins the expression. Addresses change, too: two of the rows above are earlier addresses that now redirect.
How to track AI traffic in Data Studio, BigQuery and Google Sheets
Outside the GA4 interface the same list becomes a formula. In Data Studio, which Google called Looker Studio until it renamed it, the list is a calculated field. In BigQuery it is a condition on the export's session source. In Google Sheets it is one REGEXMATCH formula beside an exported report.
Data Studio
Add a calculated field to your Google Analytics data source and paste the formula from the "Data Studio calculated field" box. It returns the assistant's name, so one field gives you both a filter and a breakdown. Google's REGEXP_MATCH page says the function returns true only when the entire value matches, and that a pattern with backslashes may need extra escaping unless it is written as a raw string. The formula uses raw strings for that reason. It assumes the field is named Session source: change the name if your data source calls it something else.
BigQuery
The GA4 export keeps a session's last-click source in session_traffic_source_last_click.manual_campaign.source, according to Google's export schema. To keep only AI assistant sessions, use the condition in a WHERE clause:
REGEXP_CONTAINS(session_traffic_source_last_click.manual_campaign.source, r'^([^/]*\.)?(chatgpt\.com|chat\.openai\.com|gemini\.google\.com|bard\.google\.com|copilot\.microsoft\.com|copilot\.com|claude\.ai|perplexity\.ai|chat\.deepseek\.com|grok\.com|meta\.ai|chat\.mistral\.ai|duck\.ai)(/.*)?$')
Google's BigQuery documentation describes REGEXP_CONTAINS as a partial match. The anchors in the expression make it behave as a full one.
Google Sheets
Export the Traffic acquisition report, put the source in column A and add this formula in the next free column. It returns TRUE for an AI assistant:
=REGEXMATCH(LOWER(A2), "^([^/]*\.)?(chatgpt\.com|chat\.openai\.com|gemini\.google\.com|bard\.google\.com|copilot\.microsoft\.com|copilot\.com|claude\.ai|perplexity\.ai|chat\.deepseek\.com|grok\.com|meta\.ai|chat\.mistral\.ai|duck\.ai)(/.*)?$")
For a quick look without a formula, paste the same rows into the checker at the top of this page.
What AI traffic tracking in GA4 cannot see
AI traffic tracking in GA4 counts one thing: visits that arrive with an AI assistant's address as the referrer or in a utm_source. It cannot see visits that arrive without a referrer, clicks from Google's own AI results, answers that mention you without a click, or crawlers. Treat the number as the part you can see, not the whole.
- Visits with no referrer are direct. Google's page on campaigns and traffic sources says a session is processed as direct traffic when no information about the referral source is available. If a link in an assistant is opened in a way that passes no referrer, the visit joins (direct) / (none) with every other untraceable visit, and no filter can pull it back out.
- Google's AI Overviews and AI Mode are Organic Search. Google's channel definitions say Organic Search includes clicks from AI Overviews and AI Mode and that the AI Assistant channel excludes them. In Search Console, Google's page on AI features says they are counted in the Performance report under the Web search type. Neither page describes a way to separate them.
- A referral is a visit, not a citation. An assistant can name your brand or cite your page without anyone clicking. Analytics sees none of that. Mentions are measured by asking the assistants and counting the answers, which is what the share of voice calculator works from.
- Crawlers are not visitors. GA4 counts a visit when its JavaScript tag runs in a browser. A crawler that does not run JavaScript never triggers the tag, so crawler requests are a question for your server logs. The crawlability test shows what such a crawler receives from a page, and the robots.txt generator sets which AI crawlers may fetch it.
- Paid and unpaid clicks need a tag to tell apart. OpenAI's help page on ads in ChatGPT says advertisers can add tracking parameters such as UTM parameters to landing page URLs. If you run ads there, tag them with the UTM generator, so a paid click never depends on the referrer to be recognized.
- The list goes out of date. Assistants move address and new ones appear. Google's own note under its example says to update your regex when the URLs or the list of assistants change. Check your referral report for new sources from time to time and add them.
Do AI visitors convert? Compare the segment before you act
Once the segment exists, the useful question is not how many AI visitors you get but what they do. Compare the segment's conversion rate with your other channels, on the same key event and the same dates. A small segment swings widely from week to week, so check whether a gap is real before you change anything because of it.
The table shows why. Both halves have the same two conversion rates. Only the number of sessions differs. Every figure is made up to show the arithmetic and is not a benchmark.
| Period | AI Assistant | Organic Search | p-value | Reading |
|---|---|---|---|---|
| One month | 14 key events in 400 sessions, 3.50% | 225 key events in 9,000 sessions, 2.50% | 0.2138 | Could be chance at the 95% level |
| Four months | 56 key events in 1,600 sessions, 3.50% | 900 key events in 36,000 sessions, 2.50% | 0.0129 | Unlikely to be chance at the 95% level |
In the first month the AI Assistant segment converts at 3.50% against 2.50% for Organic Search. It looks like a clear lead, but with 14 key events a two-sided test gives a p-value of 0.2138, well above the 0.05 that the usual 95% level asks for. With four times the sessions and the same two rates, the p-value is 0.0129. The rates did not change. The evidence did.
- Work out each rate. Key events divided by sessions, per channel. The conversion rate calculator does it, and the guide to conversion rate in GA4 shows where the numbers are.
- Test the gap. Put both channels into the statistical significance calculator. If the result could be chance, keep collecting before you draw a conclusion.
- Look at where they land. Add Landing page to the exploration. The assistant chose the page, not you, and it may be one you never designed as an entrance.
- Fix the pages, not the channel. You cannot edit what an assistant says. You can change what its visitors find. Run those landing pages through the free CRO audit, which scores the first screen, calls to action, forms, trust, mobile, speed and AI agent readiness.
A low rate from AI visitors is not always poor traffic. Someone who has already read a summary of your page may arrive with one narrow question, and a page that buries the answer loses them. That is a page problem, and it is one of the few parts of this channel you control.
Related tools
Tracking tells you who arrived. These tools cover the steps on either side: whether assistants can read your pages, how often they mention you, and what the visitors are worth.
See all free tools and how they fit together.
AI traffic tracking FAQ
How do I track ChatGPT traffic in Google Analytics?
Open Reports, Acquisition, Traffic acquisition in Google Analytics 4 and look for the AI Assistant channel, which Google added on May 13, 2026. To see ChatGPT on its own, switch the table to Session source / medium and search for chatgpt.com, or add a channel to a custom channel group with a regular expression on Source.
Does Google Analytics track AI traffic?
Yes. Since May 13, 2026, Google Analytics 4 sets the medium to ai-assistant and the campaign to (ai-assistant) when a visit's referrer matches an assistant it recognizes, and files the visit under the AI Assistant channel. Google's pages name ChatGPT, Gemini, Deepseek, Copilot, Grok and Claude as examples and do not publish the full list.
What is AI referral traffic?
AI referral traffic is the visits that reach a website from a link inside an AI assistant, such as a source link in a ChatGPT or Perplexity answer. Analytics can identify the visit when the browser passes the assistant's address as the referrer, or when the link carries a utm_source. LLM traffic and AI search traffic are other names for the same visits.
Why does ChatGPT traffic show up as direct?
A visit is counted as direct when it arrives with no referrer and no campaign parameters. Google's documentation says a session is processed as direct traffic when no information about the referral source is available. A link opened from an assistant in a way that passes no referrer lands there, and no filter can move it back.
Are Google AI Overviews and AI Mode counted as AI traffic in GA4?
No. Google's default channel definitions put clicks from AI Overviews and AI Mode in Organic Search and say the AI Assistant channel excludes them. In Search Console they are counted in the Performance report under the Web search type, together with every other search result.
Is GA4 regex case sensitive?
By default, yes. Google's regex help page says Google Analytics regex is full regex and case sensitive, and its explorations page says filter expressions are case sensitive. Channel group definitions are the exception: Google says they are not case sensitive. The builder writes every value in lowercase, the form a hostname takes in a referrer.
Does matches regex in GA4 have to match the whole value?
Yes, by default. Google's example is that a regex of San Francisco returns only San Francisco, and that you add .* on each side to match South San Francisco too. The builder's expression is anchored at the start and the end, so it gives the same result whether a field reads it as a full or a partial match.
Do I still need a custom channel group now that GA4 has an AI Assistant channel?
Only if you want something the built-in channel does not give you: one row per assistant, an assistant that Google's channel does not recognize, or your own definition that you can read and change. Google says custom channel groups apply to reports retroactively. A standard property can hold two of them, with up to 50 channels each.
Is this AI traffic checker free, and is anything I paste stored?
It is free and needs no sign-up. The builder and the checker run in your browser: the rows you paste are read on your own device, not sent to Convertica and not stored. The tool does not connect to Google Analytics or to any AI assistant.
Does AI traffic tracking show how often AI assistants mention my brand?
No. A referral is a visit: someone clicked a link. An assistant can name or cite a site many times without anyone clicking, and analytics never sees that. Mentions are measured by asking the assistants a fixed set of questions and counting the answers, which is a different job from reading referrers.