Everyone wants to know if AI search is sending them traffic. Almost nobody has looked in the one place where the answer already lives: their own analytics.

GA4 has been logging these visits for months. The problem is that GA4 does not know what ChatGPT or Perplexity are, so it files most of that traffic under the wrong label and you never see it.

So let me show you how to dig it out, what it can and cannot tell you, and where the whole approach hits a wall.

One disclosure before we start: I build LLM Pulse, an AI visibility platform, and part of what it does is connect to GA4 to solve exactly this problem. I will get to that. But most of this article is stuff you can do today with a free GA4 property and no tool at all, so let's start there.

Why GA4 undercounts AI traffic by default

When someone reads a ChatGPT answer, clicks a cited link and lands on your site, the browser passes a referrer. For ChatGPT that referrer is usually chatgpt.com. For Perplexity it is perplexity.ai. For Gemini and Google's AI surfaces it gets muddier, and I will come back to that.

GA4 takes that referrer and drops the visit into a channel. Out of the box it has no channel for AI assistants. So chatgpt.com gets bucketed as Referral, sitting next to random blog backlinks and forum mentions. It is technically correct and completely useless, because you cannot see AI as its own line.

That is the first problem: not missing data, just badly labelled data.

The second problem is worse and you cannot fully fix it. A large share of AI referrals arrive with no referrer at all.

Native apps are the main culprit. Someone using the ChatGPT iOS app taps a link and the visit often shows up as Direct, the same bucket as someone typing your URL by hand. Perplexity's app does the same. There is no HTTP referrer to read, so GA4 has nothing to attribute.

The result is predictable. Whatever number you pull for AI referrals in GA4 is a floor, not the truth. The real figure is higher, sometimes a lot higher, and no amount of clever configuration in GA4 closes that gap.

Keep that in your head for the rest of this article. We are measuring the visible part of an iceberg.

Step one: build a custom channel group for AI

The cleanest fix in GA4 is a custom channel group. It reclassifies AI referrers into a named channel so they stop hiding inside Referral and Direct.

Go to Admin, then Data settings, then Channel groups, and create a new group based on the default one. Add a rule at the top, above the existing channels, so it wins. Name the channel something like AI Assistants.

The condition is a match on the source. These are the hostnames worth including as of September 2026:

  • chatgpt.com and chat.openai.com
  • perplexity.ai
  • gemini.google.com
  • copilot.microsoft.com
  • claude.ai
  • you.com

Set the rule so that Source matches regex something like chatgpt\.com|openai\.com|perplexity\.ai|gemini\.google|copilot\.microsoft|claude\.ai. Save it.

One warning that trips people up. A custom channel group is not retroactive in the standard reports the way you might hope, and it only applies going forward and inside Explore for the period it covers. If you want history, you will do most of the real work in Explore, which is the next step anyway.

Step two: an Explore report you will actually use

Standard reports are too rigid for this. Explore is where you isolate AI traffic and keep it.

Create a blank Exploration. Set it up like this:

  • Dimension: Session source / medium, plus Landing page.
  • Metrics: Sessions, Engaged sessions, Key events (your conversions), and if you have ecommerce, Total revenue.
  • Filter: Session source matches a regex containing the same hostnames from step one.

Now you have a table of every AI-sourced session, which page it hit, whether it engaged, and what it did. This is the report I would actually check weekly. It answers the only questions that matter: are these people converting, and which pages are pulling them in.

A few practical notes.

Use Session source / medium, not first-user source. You want the source of the visit that happened, not where the person first came from weeks ago. First-user attribution will hide AI traffic behind whatever channel introduced them originally.

Add Landing page early. The pattern you are looking for is which URLs AI likes to cite. Those pages are your AI-visible surface, and they are usually not the pages you would guess.

Save the Exploration and share it. Nobody rebuilds this from memory.

Step three: catch the app traffic you can, with UTMs

You cannot recover a referrer that was never sent. But you can sometimes add your own.

If you control any link that gets fed to an AI system, for example a feed, a structured data source, or a link you know gets cited in a specific assistant, you can tag it with campaign parameters so it arrives labelled instead of as Direct.

I said no UTM tracking earlier in a different context, and to be clear, you never put tracking parameters on links you publish for humans and definitely never on links in an article like this. But a deliberately tagged link inside a controlled feed is a legitimate use, because it is the only way to make an app visit self-identify.

Be honest with yourself about how much this covers. For most sites it is a rounding error. The bulk of app traffic stays Direct and stays invisible. This step is worth ten minutes, not ten hours.

Where the whole GA4 approach breaks down

Here is the uncomfortable part. Even a perfectly configured GA4 answers a smaller question than the one you actually have.

GA4 tells you about clicks. It cannot tell you about the answers where you were mentioned and nobody clicked, which is most of them. AI assistants are answer engines. A user reads that your product is good, forms an opinion, and buys later through a branded search or a direct visit. GA4 files that conversion under Organic or Direct and gives AI zero credit.

So GA4 measures the narrow slice of AI influence that ends in an immediate click. It is blind to the mention itself.

The other gap is the reverse of attribution: GA4 sees the visit but knows nothing about the prompt that caused it. You get a session from perplexity.ai on your pricing page. Which question did Perplexity answer to send it? What did the answer say about you? Were you the recommendation or the cautionary example? GA4 has none of this.

This is the ceiling. GA4 is necessary and it is not sufficient. You need it to see real behaviour on your site, and you need something else to see the AI layer that produces that behaviour.

Tying mentions to real visits and sales

This is the gap LLM Pulse is built to close, and the reason it connects to your analytics rather than living in a silo.

The connection is straightforward. You link your GA4 property, or Plausible if that is your stack, and LLM Pulse reads the AI-sourced sessions on your side. On its own side it already tracks where you are mentioned across ChatGPT, Perplexity, Gemini, Google AI Mode and Google AI Overviews, with more models available. Joining the two is the point.

What you get is one view where the mention and the outcome sit together. Perplexity cited you for a specific prompt, that prompt sent this many sessions, those sessions produced this many conversions and this much revenue. Not mentions in a vacuum, and not clicks with no origin. The full line.

It handles the messy parts I described. It reconciles the referrer soup, it separates AI channels properly, and it puts real GA4 conversions and sales next to the visibility data so you can argue about return on investment with actual numbers instead of vibes.

A few things that fit this specific job:

  • AI bot and crawler tracking per page. Before AI can send you a human, its crawler has to fetch the page. Seeing GPTBot, ClaudeBot and PerplexityBot hitting specific URLs tells you what is even eligible to be cited.
  • Reputation and sentiment. The session data tells you a page converts. The sentiment data tells you whether AI is describing you accurately or steering people away, which is why some well-ranked pages still send weak traffic.
  • A hosted MCP server with 45 plus tools over OAuth, no API key, included on every plan and the trial. You pull this data straight into Claude or ChatGPT and ask your own questions of it. Still uncommon in this category.

Pricing is public and starts at 49 €/month, which for this space is worth saying out loud because most competitors hide it behind a demo. That Starter plan covers 50 prompts and 5 competitors. Growth at 99 € adds sentiment and the AI traffic analytics I described. Scale at 299 € adds GEO testing, the REST API and a Data Studio connector if you want to wire the numbers into your own reporting. Every plan has unlimited seats and a 14-day trial.

Prices change, so check the current pricing before you buy.

What to use if LLM Pulse is not the fit

I would rather tell you where to look elsewhere than pretend one tool wins every case.

If you are a Fortune 500 brand that needs SOC 2, SSO and the deepest dataset on the market, Profound is the serious enterprise option. No public pricing, demo-led, but the data depth is real and I would not argue against it for that buyer.

If you already pay for Ahrefs or Semrush, both now bundle AI visibility features. Shallower than any specialist, but already in your subscription, and for a small site that may be all the measurement you need before you spend another euro.

For teams and agencies that want strong regional tracking, Peec AI is a good pick, with unlimited seats and per-country competitor comparison. And Otterly.ai is the cheapest honest entry point if you mostly want to see real AI outputs and citations without a big commitment.

But none of those close the loop I opened this section with, connecting the mention to the actual GA4 sale, in the way I wanted, which is why I ended up building it.

The one thing to do this week

Open GA4, build the Explore report from step two, and look at which of your pages AI is already sending people to. You will be wrong about at least one of them, and that surprise is the whole reason to measure instead of guess.