To track ChatGPT traffic in Google Analytics 4, open Acquisition > Traffic acquisition, switch the table to Session source / medium and search for "chatgpt". For a setup that lasts, build a custom channel group with an "AI assistants" channel placed above Referral. Every visit from ChatGPT, Perplexity, Claude, Gemini and Copilot then lands on one line of your reports.
That covers the visits GA4 can see. Some ChatGPT visits arrive with no referrer at all, so GA4 files them under Direct or Unassigned. This guide covers both parts: what to set up, what GA4 misses and how to find the pages AI assistants send people to. Measuring is step one. Step two is getting quoted more often, which is what our LLM SEO plan for getting cited by ChatGPT and Perplexity works on.
How to see ChatGPT referrals in GA4 right now
You don't need any setup for a first look. GA4 already records the referring site of each session.
- In GA4, go to Reports > Acquisition > Traffic acquisition.
- Click the dimension dropdown above the table and choose Session source / medium.
- Type gpt in the search box above the table. Practical Ecommerce uses the same path.
- Set the date range to the last 90 days so you have enough sessions to read.
You will usually see a row like chatgpt.com / referral. Run the search again with "perplexity", "claude", "gemini" and "copilot" to see the other assistants.
This works for a quick check, but it has two limits. You have to redo the search every time. And the AI rows stay mixed in with all your other referral traffic, so your channel totals never show AI as its own source.
How to track AI traffic in GA4 with a custom channel group
A channel group is the set of rules GA4 uses to sort sessions into channels such as Organic Search, Paid Search or Referral. You can't edit the default group itself. You copy it, then change the copy. Google's help page on custom channel groups gives its own example of an "AI assistants" channel, so this is a supported use, not a workaround.
Steps to create the channel
- Go to Admin > Data display > Channel groups.
- Open the default channel group and copy it. Name the copy something like "Default + AI".
- Click Add new channel and name it AI assistants.
- Add a condition: Source › matches regex › paste the regex below.
- Save the channel, then drag it above Referral in the list.
- Save the group.
Google's example uses the name "AI assistants", but the name is up to you. What matters is the rule and the position.
A clean regex for AI sources
.*(chatgpt|openai|perplexity|claude\.ai|gemini\.google|copilot\.microsoft|bard\.google|deepseek|grok|meta\.ai).*
Google's example pattern is broader and includes short terms such as "gpt". The version above is tighter, for these reasons:
- The dots are escaped (
\.). In regex, a bare dot means "any character", soclaude.aiwould also match strings you never meant to catch. - The
.*at both ends lets the pattern match anywhere in the source, whether GA4 recordschatgpt.com,chat.openai.comor a subdomain. - No bare "ai" or "gpt". A pattern that only needs "ai" also matches "mail", so webmail clicks would be counted as AI traffic. Loose terms make the channel look bigger than it is.
- Tied to real domains. Gemini is
gemini.google, Copilot iscopilot.microsoft. Matching only "copilot" or "gemini" can catch unrelated tools with the same word in their name.
New assistants come out often. Check your referral list every few months and add any new source you see.
Why channel order matters
Google puts it plainly: traffic goes into the first channel whose definition it matches, in the current order of the group. The default Referral channel catches nearly any site that sends a visitor. If AI assistants sits below Referral, ChatGPT sessions match Referral first and your new channel stays at zero. Google's own example moves the AI channel above Referral, and optionally above other channels such as Organic Search. The top of the list is the simplest spot.
Limits to know before you start
All of these rules come from Google's documentation on custom channel groups:
| Rule | What it means for you |
|---|---|
| A standard property gets 2 custom groups (5 on GA4 360) | Don't use up a slot on a test. Plan one group you will keep. |
| Up to 50 channels per group | Plenty of room. Keep a single AI channel instead of one per assistant. |
| Custom groups apply to reports retroactively | Your past ChatGPT visits show up in the new channel straight away. |
| Edits change reports, but audiences only from now on | An audience built on the channel won't fill with past users. |
| Deleting a group can't be undone | Rename or edit it. Don't delete it. |
| Custom groups are not in the BigQuery export | If you use BigQuery, rebuild the same rule in SQL. |
In the same Admin screen you can also set your custom group as the primary channel group of the property. The AI assistants channel then appears in standard reports by default, not only when someone remembers to switch groups.
Measure what AI visitors do: landing pages and key events
Counting sessions only tells you that ChatGPT sent people. What matters is which pages they land on and whether they become leads or customers.
Landing pages from AI assistants
- Go to Reports > Engagement > Landing page.
- Add a filter: Session source / medium contains "gpt" (or, once your group is live, the AI assistants channel). Practical Ecommerce describes this same filter.
- Sort by sessions.
Each page in that list is one an assistant linked to. A software company might see its pricing page and one comparison post. A law firm might see a single article that answers a common client question.
Key events from AI assistants
In Traffic acquisition, with your custom group selected, add the Key events column and pick the event that means business for you: a form submit, a booked call or a signup. Then compare the key event rate of AI assistants with Organic Search. That answers the real question: is this traffic worth working on?
The reports have limits. GA4 sorts sessions by their referrer, so it sees the click and what happens after it on your site. It can't tell you which page the assistant cited, what it said about your brand or which prompt led to the click.
What to do with the results
Your landing page list splits your site in two.
- Pages that already get AI visits: develop them first. Add the questions your customers ask next, update facts and sources, and link them to your offer.
- Pages with no AI visits: make them easy to quote. Answer the question in the first two sentences, use short sections a reader can lift as is, and make sure ChatGPT's crawler can reach them. OpenAI says sites that opt out of OAI-SearchBot won't be shown in ChatGPT search answers, and recommends allowing it in robots.txt.
To find which questions are worth a new page, start with our free keyword generator. Being quotable improves your odds. No one can guarantee that an assistant will cite a page.
Why ChatGPT traffic shows up as Direct or Unassigned
Some ChatGPT visits never reach the AI assistants channel, however good your regex is. GA4 can only label a visit by its referrer, and these visits don't carry one.
| What happened | How GA4 records it | What you can do |
|---|---|---|
The link had a noreferrer attribute (Practical Ecommerce) |
Direct or Unassigned | Nothing in GA4. Look for unexplained Direct visits to deep pages. |
| The user copied your URL out of the chat and pasted it in a browser | Direct | Same as above. |
| The click came from an app that opens links without a referrer | Direct or Unassigned | Compare landing pages in Direct with your AI landing pages. |
| The source is recorded but the medium is empty | chatgpt.com / (not set) |
Still AI traffic. Your Source regex already catches it. |
A simple test: open the Landing page report filtered to Direct. Long blog URLs that nobody types by hand, and that you don't share in email or social posts, are often AI visits that lost their referrer. You can't prove it for each visit. What you can do is watch whether those pages grow in Direct at the same time they grow in your AI channel.
So treat your AI channel as a minimum. The real number is higher, and GA4 can't tell you by how much.
Fill the gaps with Search Console and UTM links
Google's AI Overviews and AI Mode don't get a channel of their own. A click from an AI Overview arrives from Google like any other search click, so GA4 files it under google / organic. Search Console works the same way. Google says sites shown in AI Overviews and AI Mode are included in the overall search traffic, in the Performance report under the "Web" search type. Neither tool separates them. To earn those placements, see our guide on how to appear in Google AI Overviews.
Use UTM tags on links you control. You can't tag the links ChatGPT writes. You can tag links you publish yourself, such as your newsletter, a public custom GPT that links to your site or partner pages. A tag like ?utm_source=newsletter&utm_medium=email keeps those visits out of Direct, which makes your remaining Direct traffic easier to read.
Check that AI crawlers can reach your pages. If your robots.txt or firewall blocks them, nothing above will ever show up. Look for rules that block OAI-SearchBot or other AI crawlers before you judge the numbers.
Check that it works: troubleshooting
SEOworks says to expect 24 to 48 hours before traffic appears in acquisition reports, and up to 24 hours for a custom audience to fill. Don't change your setup on day one because the numbers look empty.
| Symptom | Likely cause | Fix |
|---|---|---|
AI assistants channel shows 0, but chatgpt.com is in Referral |
Channel sits below Referral | Drag it above Referral and save |
| Channel shows 0 and no AI source exists anywhere | No AI referrals yet, or crawlers blocked | Check robots.txt, then give it time |
| Channel looks too big | Regex too loose (bare "ai" or "gpt") | Use the domain regex above |
| You don't see the channel in reports | Reports still use the default group | Switch the group in the table, or set yours as primary |
| AI audience is empty | Audiences don't fill retroactively | Wait, then check again in a few days |
| BigQuery numbers differ from GA4 | Custom groups aren't exported | Apply the same regex in your SQL |
Setup checklist
- Copy of the default channel group created.
- AI assistants channel with the escaped regex.
- Channel placed above Referral.
- Custom group set as primary.
- Landing page view filtered to AI traffic, saved.
- Key events column added for AI assistants.
- Referral sources reviewed every few months for new assistants.
From tracking to more AI visits
AI SEO Crew writes researched articles with direct answers and their sources, and your dashboard shows the clicks and impressions of each one from Search Console. For the content side, read how to rank in ChatGPT. When you're ready to let the crew write them for you:
Frequently asked questions
Can I see ChatGPT traffic in GA4 without a custom channel group?
Yes. In Traffic acquisition, switch the dimension to Session source / medium and search for "chatgpt" or "gpt". This works on any GA4 property with no setup. A channel group saves you from redoing it each time and shows AI as its own channel.
Why do I see chatgpt.com / (not set) in GA4?
GA4 recorded the source of the visit but not its medium. These are still ChatGPT visits. A regex on Source, like the one in this guide, counts them in the AI assistants channel whatever the medium says.
Does GA4 show traffic from Google AI Overviews separately?
No. Clicks from AI Overviews and AI Mode come from Google search, so GA4 records them as google / organic. Google includes them in the overall search traffic in Search Console too, with no separate filter.
Can I see which ChatGPT prompt sent a visitor to my site?
No. GA4 only sees the click, not the conversation. You can see the landing page, the visitor's path on your site and any key events. That is enough to know which pages assistants link to and whether those visitors convert.