How to Track ChatGPT and AI Traffic in GA4
To track ChatGPT and AI traffic in GA4, start with the built-in AI Assistant channel in Reports > Acquisition > Traffic acquisition, then look at session source to see which assistants sent the visits. If you want a wider definition, add a custom channel group with the regex below. Neither will catch everything, so treat the numbers as a floor.
Use the built-in AI Assistant channel first
Many guides on this topic predate it, but Google’s default channel definitions now include an AI Assistant channel, covering visits from assistants including “ChatGPT, Gemini, Deepseek, Copilot, or Grok”. It works in two ways: a session qualifies if its medium is exactly ai-assistant, or if the referrer matches a list Google keeps.
- Open Reports > Acquisition > Traffic acquisition.
- Set the date range to at least 90 days, because these numbers are usually small.
- Look for AI Assistant in the Session primary channel group column.
- Change the dimension to Session source/medium to see each assistant.
- Add key events to the view, so you can see whether those visits do anything useful.
In our own property, chatgpt.com appeared with both the ai-assistant and referral mediums, so check both before you count anything. No setup is needed, and that is the main reason to start here. Its limit is that you cannot see or edit Google’s list, so an assistant missing from it lands in Referral.

Add a custom channel group for a wider net
A custom channel group lets you set the rules yourself. Google’s channel group help page lists what to expect: Admin > Data display > Channel groups, Editor role or above, and two custom groups on a standard property.
- Go to Admin > Data display > Channel groups and create a new group.
- Add a channel called AI Traffic.
- Add the condition: Source, matches regex, then paste the pattern below.
- Click Reorder and drag AI Traffic to the top. GA4 assigns traffic to the first channel that matches, so the order matters.
- Save, then choose the new group in the Traffic acquisition report.
Google says new groups apply to existing reports retroactively, so you do not have to wait for data to build up.
chatgpt\.com|chat\.openai\.com|(www\.)?perplexity\.ai|gemini(\.google\.com)?|copilot\.microsoft\.com|claude\.ai|(chat\.)?deepseek\.com|grok\.com|chat\.mistral\.ai
Why the pattern is written this way
Google’s regex help page says Analytics regex is “full regex and case sensitive” by default, so a pattern has to match the whole value. Three things follow from that:
- Every value in your source list must be matched in full, so check the exact spelling in your own report.
- The dots are escaped, as a plain dot means “any character”.
- The pattern uses
chat\.openai\.comin place of plain openai.com, so that a link from OpenAI’s website or blog does not count as an assistant visit.
| Source value | Matches? | Why |
|---|---|---|
| chatgpt.com | Yes | ChatGPT |
| chat.openai.com | Yes | The older ChatGPT address |
| perplexity.ai | Yes | Perplexity, with or without www |
| gemini.google.com | Yes | Gemini’s address |
| gemini | Yes | How one Gemini visit appeared in our own report |
| No | Standard Google search stays in Organic Search | |
| openai.com | No | OpenAI’s website, not the assistant |
Tag what you can control
OpenAI’s publisher FAQ says ChatGPT adds utm_source=chatgpt.com to referral URLs. That tag lets GA4 name the source when the referrer is missing, so make sure your site does not strip query strings on redirect. A redirect that drops parameters can turn a tracked visit into a direct one. Check your own redirects with a tagged test URL.
What this will always miss
Analytics Mania’s guide to AI traffic in GA4 puts it well: this approach “only captures clicks that send a referrer”, and what you see “will always be a partial view”. The main gaps:
| Gap | Where it goes | Can you fix it? |
|---|---|---|
| Link copied from an answer | Direct | No |
| App or browser sends no referrer, and no UTM tag | Direct | No |
| AI Overviews and AI Mode | Organic Search | Partly. Search Console’s generative AI report shows impressions, but GA4 cannot split the visits out |
| Someone reads an answer, then searches your brand | Organic Search or direct | Partly, through branded search trends |
| Consent declined, depending on your setup | Modelled or missing | Partly, through consent settings |
| Crawlers reading your pages | Not in GA4 | Use server logs |
The fourth row probably matters most for service businesses. Someone asks an assistant for a recommendation, sees your name and looks you up later. No analytics tool links those two moments, so also watch branded impressions in Search Console, and ask new enquiries how they found you.
What to report each month
- Sessions and key events from AI assistants, by source
- The landing pages they reach, which show what assistants are sending people to
- Branded search impressions from Search Console
- “How did you find us?” answers mentioning an assistant
Small numbers are normal, so look at the trend over a quarter. If the figures do not move, check whether AI tools can reach your site at all, starting with which AI crawlers to allow. Our guides to getting recommended by ChatGPT and to whether llms.txt works cover what to do next.
For help setting this up, our AI search optimisation service includes measurement, and our conversion rate optimisation work looks at what those visitors do once they arrive.