← Guides

How AI assistants tag visits to your site

What happens when someone clicks from an AI answer

When an assistant like ChatGPT or Perplexity shows a link to your product and a person clicks it, the browser usually sends your server a Referer header — the address of the page the click came from. That host is how you know a visit arrived from an AI assistant rather than from search or social.

It's also the line between real shoppers and bots. A bot that executes JavaScript and loads your pixel is a human inside the assistant's interface. A bot that doesn't run JS is a crawler (GPTBot, PerplexityBot, and so on) — it indexes, it doesn't buy. Crawlers are a separate topic; here we're talking about people who already arrived on an AI's recommendation and can place an order.

Referrer hosts of popular assistants

Learn these domains — this is how the AI channel gets labeled:

AssistantReferrer host
ChatGPTchatgpt.com, chat.openai.com
Perplexityperplexity.ai, www.perplexity.ai
Geminigemini.google.com
Copilotcopilot.microsoft.com, bing.com
Claudeclaude.ai

In our AI traffic index for 13 Jul–01 Aug, across a panel of three stores, there were 144 human AI-referral visits — and 90% of them came from ChatGPT. The channel is still small, but it's growing, and the whole point is to stop losing it on the way in.

Why analytics so often shows "empty"

The catch is that the referrer doesn't always arrive. In many cases ChatGPT opens links in a way that strips the Referer header, so the visit looks like a direct hit (direct). At that moment Google Analytics undercounts the AI channel: the order came from ChatGPT, but the report files it under "Direct". We cover this in detail in the guide on ChatGPT orders landing as direct in GA.

Sometimes the opposite happens — the assistant appends utm tags or a ?ref= parameter, and the source is explicit. But you can't rely on that alone: vendors change their tags, and a share of visits still arrives with no signal at all.

So there are three cases:

  1. Referrer present — you see chatgpt.com, perplexity.ai, and the like.
  2. utm present — the source is labeled by URL parameters.
  3. Empty — no referrer, no tags; in GA that's direct.

How to label sources by hand

If you're parsing logs or reports yourself:

What the Botmetria pixel does

The pixel (and the WooCommerce plugin) takes this work off your plate and closes the blind spot:

  1. On every visit it reads the referrer and utm and maps them to a source — chatgpt, perplexity, gemini, copilot, or claude.
  2. It tags the AI referral on arrival, before the source signal can "expire", so the channel isn't lost on the way to checkout.
  3. At checkout it attributes the purchase to the assistant that drove it — so you see not just "AI traffic" but revenue by source.

That gives you an honest picture where GA only shows a faceless direct.

How to turn it on

FAQ

Why does a ChatGPT order show up as "direct" in Google Analytics?

ChatGPT often opens links in a way that strips the Referer header. With no referrer, GA can't see the source and files the visit as "direct". Plain GA therefore undercounts the AI channel, while the Botmetria pixel tags the referral on arrival and keeps the source all the way to checkout.

How do I tell plain Google search apart from the Gemini assistant?

By the referrer host. Plain search arrives from `google.com`, while assistant answers come from `gemini.google.com`. They're different sources and shouldn't be merged into one segment.

If the referrer is empty, can I recover the source after the fact?

By hand, essentially no: with no header and no utm tags there's nothing to reconstruct the source from later. That's why the tag has to be set on arrival. The Botmetria pixel does this automatically and maps the visit to an assistant before the order is placed.

Related guides

Check your store for free

A 60-second audit shows how ready your store is for AI agents — and exactly what to fix first.

Run the free audit