How to track ChatGPT traffic in GA4

Find ChatGPT, Perplexity and Gemini visits in GA4, build an AI assistants channel group, tie them to sign-ups, and see what the numbers miss.

By Jawad Jalal 9 min read Measurement

All notes in Kindling
In this note10 sections
  1. The short version
  2. Find it in 2 minutes
  3. Why you see chatgpt.com / (not set)
  4. The AI Assistant default channel
  5. Build an “AI assistants” channel group
  6. Tie it to sign-ups
  7. What it misses
  8. Pair it with a weekly prompt log
  9. FAQ
  10. If you can’t tell what’s working

To track ChatGPT traffic in GA4, open the Traffic acquisition report, switch the table to Session source / medium and search for “chatgpt”. Then build a custom channel group that puts ChatGPT, Perplexity, Gemini and the other assistants in one row, and tie that row to your sign-up key event.

That takes about ten minutes. The harder part is reading the number honestly. GA4 only sees clicks that arrive with a referrer or a tag, so whatever it shows you is a floor, not the full picture.

The short version

  • ChatGPT visits often arrive tagged utm_source=chatgpt.com, so they show up with source chatgpt.com. You can check this in your own GA4 by looking at landing pages with their query string.
  • Don’t block OAI-SearchBot in robots.txt if you want to appear in ChatGPT search answers (OpenAI).
  • GA4 now has a default channel called AI Assistant. Google AI Overviews and AI Mode are not in it; they count as Organic Search (Google).
  • A custom “AI assistants” channel group still helps: you choose the sources, and it applies to your past data too (Google).
  • Mark sign-up as a key event, then read key events and session key event rate next to the AI row.
  • Treat the result as a floor. App clicks with no referrer, copy-paste and answers that never get clicked are all invisible.

Find it in 2 minutes

You don’t need any setup to see whether ChatGPT sends anyone at all.

  1. In GA4, go to Reports, then Acquisition, then Traffic acquisition.
  2. Open the dimension drop-down above the table (it says Session default channel group) and pick Session source / medium.
  3. Type chatgpt in the search box above the table and press Enter.
  4. Set the date range to the last 90 days so small numbers have time to add up.

Then search again for perplexity, gemini, copilot and claude. Write down every source value you see. You’ll need that list for the channel group.

If a page matters more than the total, add Landing page as a secondary dimension, or use the report filter on Page path and screen class. Google’s help page for the report walks through both.

Why you see chatgpt.com / (not set)

A common row is chatgpt.com / (not set). Here is why.

Clicks from ChatGPT often land with utm_source=chatgpt.com on the URL. You can see it for yourself: in GA4, open Reports, then Engagement, then Landing page, switch the dimension to Landing page + query string and search for utm_source=chatgpt.com. That tag sets the source. It doesn’t set a medium or a campaign.

Google’s rule is that when any UTM parameter is on the URL, GA4 takes all traffic source fields from the UTMs and nothing else. Its help page says “Missing UTM parameters will result in (not set) values being present in reporting” (Google). A source with no medium gives you chatgpt.com / (not set).

You can’t change the links ChatGPT writes, so don’t try to fix this at the source. Fix it in reporting: a custom channel group matches on Session source, which is set correctly, so the missing medium stops mattering.

Some ChatGPT sessions may also land as chatgpt.com / referral or under the AI Assistant channel, depending on how the visit arrived. Check your own report before you decide which rows to count.

The AI Assistant default channel

Google’s default channel group now includes an AI Assistant channel, described as “the channel by which users arrive at your site from sources like ChatGPT, Gemini, Deepseek, Copilot, or Grok.” It excludes Google AI Overviews and AI Mode, which Google counts as Organic Search.

Google’s what’s new log dates this to May 13, 2026. GA4 sets the medium to ai-assistant and the campaign to (ai-assistant) when the referrer matches its list of assistants.

Two caveats before you lean on it:

  • It is Google’s list, not yours. If an assistant you care about isn’t on it, its visits land somewhere else, often Referral or Unassigned.
  • It is new. Older data sits under Referral or Unassigned. A custom channel group lets you read the whole period the same way.

Build an “AI assistants” channel group

A custom channel group is a copy of the default rules that you can edit. Google’s channel group help page has the steps:

  1. Go to Admin, then Data display, then Channel groups. You need the Editor role.
  2. Click Create new channel group and give it a name, for example “Channels with AI”.
  3. Add a new channel called “AI assistants”.
  4. Set the condition to Source matches regex, and paste a pattern.
  5. Drag the AI assistants channel above Referral and save.

The order matters. GA4 puts each session in the first channel whose rules it matches. If Referral sits above your AI channel, ChatGPT visits that arrive as referrals stay in Referral.

Google’s help page includes an example regex for this exact channel. It starts with ^.*ai|, which matches any source with “ai” in it, so a source like mail.example.com would slip in. A tighter version, built from the source values you wrote down earlier:

chatgpt\.com|openai\.com|perplexity\.ai|gemini\.google\.com|copilot\.microsoft\.com|claude\.ai

Add or remove hosts to match what your own report shows. Then check the new group for a week and look for anything that landed in the wrong row.

Limits worth knowing, all from Google’s page:

  • A standard property can have two custom channel groups. Analytics 360 gets five.
  • Each group can hold up to 50 channels.
  • Custom channel groups apply to your past data too, not only new sessions.
  • They are not in the BigQuery export. If you query raw data there, write the same rule in SQL.

To use the group, go back to Traffic acquisition and pick your group from the dimension drop-down above the table.

Tie it to sign-ups

Visits alone don’t tell you much. You want to know whether AI visitors sign up.

First, mark your sign-up event as a key event in Admin. If you don’t send a sign-up event yet, set that up first. A visit count with no outcome next to it is a vanity number.

Then read three columns in Traffic acquisition, with your AI assistants channel as the row:

  • Sessions: how many visits came in.
  • Key events: how many sign-ups those visits produced.
  • Session key event rate: the share of sessions with at least one sign-up.

Compare that rate with Organic Search and Direct. If AI visitors sign up at a similar rate, your pages are doing their job and the gap is reach. If they visit and leave, look at what page they land on.

For the landing page view, build a free-form exploration:

  1. Go to Explore and start a Free form exploration.
  2. Add your custom channel group, Session source and Landing page + query string as dimensions.
  3. Add Sessions and Key events as metrics.
  4. Put the channel group in rows, filter it to AI assistants, then add landing page as a second row.

Now you can see which pages the assistants link to. They are often not your homepage. A pricing page, a docs page or an old blog post can pull most of the visits. Those are the pages worth tightening first.

What it misses

Everything above counts clicks that arrive with a source GA4 can read. A lot of AI influence never looks like that.

  • App clicks with no referrer. Some apps open links in a way that sends no referrer. If ChatGPT’s tag is on the link, you still get the source. Other assistants may not tag links, and those visits often show up as Direct.
  • Copy and paste. Someone reads your name in an answer, then types your URL or searches your brand. GA4 credits Direct or Organic Search.
  • Answers with no click. Your product gets named and recommended, and the reader never visits. GA4 sees nothing.
  • Crawler hits. OAI-SearchBot, GPTBot and other bots fetch your pages, but they are not visits. GA4 doesn’t run for them, and they belong in server logs, not traffic reports. OpenAI describes each of its bots on its crawler page.

So read the AI row as a floor. If it grows, more people are clicking through from assistants. If it stays flat, that doesn’t prove assistants ignore you.

A cheap extra signal: add “How did you hear about us?” to your sign-up form with ChatGPT and other assistants as options. Self-reported answers are messy, but they catch the copy-paste and no-click cases GA4 can’t see.

Pair it with a weekly prompt log

GA4 tells you who clicked. It doesn’t tell you whether you were in the answer.

For that, keep a short list of buyer prompts, ask them in ChatGPT, Perplexity, Gemini and Claude every week, and log who gets named. The guide to getting cited in AI answers covers how to pick the prompts and what to fix when you’re missing.

Put the two side by side each month. If you start showing up in answers and the AI row in GA4 rises with it, the work is landing. If you show up and nobody clicks, look at what the answer says about you and what page it links to.

FAQ

Does ChatGPT traffic show up in GA4 automatically?

Yes, if your site has GA4 installed and the visit carries a source. ChatGPT clicks often arrive tagged utm_source=chatgpt.com, so those visits show chatgpt.com as the session source. Visits with no referrer and no tag show up as Direct.

Why does GA4 show chatgpt.com / (not set)?

The utm_source=chatgpt.com tag sets the source but not the medium. When any UTM is present, GA4 reads traffic source fields from the UTMs only, and missing fields become (not set). A channel group that matches on source fixes the reporting side.

Is Google AI Overviews traffic counted as AI Assistant?

No. Google says AI Overviews and AI Mode traffic is Organic Search, not AI Assistant. GA4 doesn’t give it a channel of its own. Search Console is the place to look for Google search data.

Should I block GPTBot or OAI-SearchBot?

They do different jobs. OpenAI says OAI-SearchBot is used for ChatGPT search results, and GPTBot is used for training. Blocking OAI-SearchBot can keep you out of ChatGPT search answers. Blocking GPTBot doesn’t affect search, per OpenAI’s crawler docs. To see which AI crawlers your robots.txt lets in today, paste your domain into the AI crawler checker.

We use PostHog, not GA4. Can we do the same thing?

Yes. PostHog’s web analytics has a channel type called AI, which covers ChatGPT, Claude, Gemini, Perplexity and Copilot. It is worked out from the referring domain and UTMs on the first page view. You can add custom channel types in project settings under Web analytics, and they take priority over the defaults.

How long until I see data?

A few days of traffic is enough to see whether any rows exist. Use 90 days for anything you want to compare. Custom channel groups apply to past data, so you don’t have to wait for new sessions to fill in.

If you can’t tell what’s working

AI traffic is one row in a bigger question: which channels bring people who sign up and stay. That is the measurement layer, and it’s usually the first thing we look at, because every other decision depends on it. How we price that work is on the pricing page.

If you want a second pair of eyes on your GA4 or PostHog setup, we’ll look at it with you on a free 15-minute call.

Book your free Growth Check

Is this your growth problem?

Need a site that does this? 15 minutes, free, about your website.

Iggy

What’s your site missing? Tell me about your site and what you make, and I’ll say where I’d start.

Or skip to the call 15 minutes, free. Pick a time.

Finding the next open times.

Pick a day

Pick a time

Finding the open times.

Your details

After the call

  1. A free call about your site, with a plan and a price.
  2. The design, every page from scratch, until you sign it off.
  3. The build, live on your domain and yours to edit.

The invite and the video link come by email, with links to reschedule.

See you then.

The invite and the video link are on their way to .

What happens next

  1. A free call about your site, with a plan and a price.
  2. The design, every page from scratch, until you sign it off.
  3. The build, live on your domain and yours to edit.

On the call

You tell us what you’re making and who it’s for. We say which plan fits and when it could be live.

Or book on Cal.com, or email hello@ignura.com.