ppl.studio

AI Search Attribution: How to Track AI Referrals, Citations and Revenue

To track AI search, measure four layers separately and then reconcile them: clicks from AI assistants in GA4 (a channel built from referrers such as chatgpt.com and perplexity.ai), AI bot activity in your server logs, citation and impression data from Google's AI features and Copilot, and a fixed prompt panel you run yourself. Revenue then comes from tagged sessions plus a self-reported “where did you hear about us” answer, reported as a range. The caveat: much AI influence never produces a click, so no setup counts it all.

14 min read

Analytics dashboard splitting AI assistant referrals, AI crawler hits and citations by week

AI search attribution means connecting what assistants like ChatGPT, Perplexity, Gemini, Copilot and Claude say about you to visits, signups and revenue. Part of that is easy: ChatGPT tags its search links, GA4 can give assistants their own channel, and Google and Bing now report AI impressions and citations. Part of it is not measurable at all: an answer that names your brand and is never clicked. This page is the full setup, from the GA4 regex to the weekly prompt panel to the revenue number you can defend in front of finance, along with the places it stops working.


The four layers of AI search measurement

Each data source answers a different question, and none of them answers all of them. Keep them in separate columns until the reconciliation step.

LayerSourceWhat it tells youWhat it misses
ReferralsGA4 (or any web analytics)Clicks from assistants that kept a referrer or UTM, and what those visitors didClicks that arrive as Direct; Google AI features (they look like organic)
Bot activityServer or CDN logsWhich pages AI crawlers index and which pages are fetched for live answersWhether the fetched page was cited or clicked
Platform reportsSearch Console, Bing Webmaster ToolsImpressions in AI Overviews and AI Mode; citations in Copilot and BingClicks per AI feature; ChatGPT, Perplexity, Claude
CitationsYour prompt panel or a visibility toolWhether you are mentioned and cited for the prompts that matter, versus competitorsReal query volume; answers vary between runs

Layer 1: Tracking AI referrals in GA4

What each assistant sends

OpenAI's publishers and developers FAQ states that ChatGPT automatically adds utm_source=chatgpt.com to referral URLs from ChatGPT search results, and that tracking that traffic requires allowing OAI-SearchBot (blocked sites are left out of search answers). In GA4 a UTM source overrides the referrer, so these sessions report as chatgpt.com. The other assistants do not document a UTM; you rely on the referrer their web apps pass, typically their own domain: perplexity.ai, gemini.google.com, copilot.microsoft.com, claude.ai. Check your own referral report for the exact hostnames before writing rules, because subdomains and legacy domains (for example chat.openai.com) show up too.

Two sources you cannot split out in GA4. Clicks from Google AI Overviews and AI Mode arrive as google / organic, indistinguishable from blue-link clicks. And Copilot answers shown inside Bing can arrive as bing.com. For those two, the platform reports in Layer 3 are the only view.

Build an AI assistants channel

By default GA4 files assistant visits under Referral, mixed with every blog that links to you. A custom channel group fixes that, and applies to past data as well:

  1. Admin > Data display > Channel groups > copy the default group (you need Editor access).
  2. Add a channel named “AI assistants” with the condition Source matches regex:
    .*(chatgpt\.com|openai\.com|perplexity\.ai|gemini\.google\.com|copilot\.microsoft\.com|claude\.ai).*
  3. Reorder so AI assistants sits above Referral. GA4 assigns each session to the first channel it matches, so below Referral the new channel stays empty.
  4. Save, then add the same regex as a comparison or a segment in Explorations to see landing pages, engagement and key events per assistant (use Session source as the breakdown).

Standard properties allow two custom channel groups, so spend one on this. Review the regex each quarter: assistants change domains, and a new one can appear in your referral report before anyone tells you.

Why some AI clicks still land in Direct

Desktop and mobile apps, links copied out of an answer and pasted into a browser, and privacy settings can all drop the referrer. When that happens and no UTM survives, the visit is Direct. You cannot recover those sessions from analytics; you can only estimate them (see the revenue section). One clue worth watching: Direct sessions landing on deep, non-homepage URLs that people rarely type are often lost referrals of some kind, AI or otherwise.


Layer 2: AI crawlers vs user-triggered fetches in server logs

Your logs show AI systems reading your site, which analytics scripts never see because bots do not run JavaScript. The useful move is to sort every AI user agent into one of three classes, using each vendor's own documentation: OpenAI, Perplexity, Anthropic.

ClassUser agentsWhat a hit means
Training crawlerGPTBot, ClaudeBotContent collected that may be used to train models. Says nothing about answers today.
Search indexerOAI-SearchBot, PerplexityBot, Claude-SearchBotThe page is being indexed for the assistant's search results. Blocking it removes you from those answers.
User-triggered fetchChatGPT-User, Perplexity-User, Claude-UserSomeone asked a question and the assistant loaded this page to answer it. OpenAI and Perplexity note robots.txt may not apply because a user initiated the request.

Count each class per URL per week. User-triggered fetches are the closest log signal to “this page was read for a live answer,” and the pages with the most of them are usually the ones worth protecting and refreshing first. Treat the count as a trend, not an absolute: assistants may cache, and a fetch does not prove the page was cited.

Three practical notes. User agent strings can be spoofed, so where a vendor publishes IP ranges (Perplexity's bot page does, and recommends allowlisting them in your WAF) check against them. A CDN or bot-protection layer may be blocking these agents without anyone deciding to, so look for 403s to AI user agents. And Google-Extended will never appear: Google's crawler documentation says it is a robots.txt token with no separate user agent, and that it does not affect inclusion in Google Search. Google's AI features crawl as ordinary Googlebot.


Layer 3: What Google and Bing report about AI

Google Search Console

Google's AI features documentation says sites appearing in AI Overviews and AI Mode are included in overall search traffic and reported in the Performance report under the Web search type. So your existing totals already contain them; there is no clicks-only-from-AI filter.

In June 2026 Google added generative AI performance reports to Search Console, rolled out to all sites as of August 31, 2026. They show impressions only (how often your URLs appeared in generative AI features in Search and in Discover), by page, country, device and date. No clicks, no queries, and the data is a breakdown of what is already in the main Performance report, so never add the two together. The useful reading is page-level: which URLs Google's AI features surface, and whether that list grows after you rework a page.

Bing Webmaster Tools

Microsoft's AI Performance report (public preview since February 10, 2026) is the only first-party citation count any assistant offers. It covers Microsoft Copilot, AI-generated summaries in Bing and select partner integrations, and shows total citations, average cited pages per day, sampled grounding queries (the phrases the system used to retrieve your content, not the user's words) and citations per URL. It does not show clicks. Verify your site in Bing Webmaster Tools if you have not; it costs nothing and fills the Copilot gap GA4 leaves.


Layer 4: Tracking citations with a fixed prompt panel

No platform reports citations for ChatGPT, Perplexity, Gemini or Claude, so you sample them yourself: the same prompts, run the same way, every week. Rank tracking does not transfer well here. Each assistant retrieves from its own index, a cited source is not the same as a ranking page, and the sentence the answer uses from your page matters as much as the link.

Choose the prompts

The prompt set is most of the value; the dashboard is the easy part. Seed it from three places:

  • Search Console and paid search query reports. The queries that already convert are the ones worth watching in AI answers too. This is an overlay on your SEO work, not a separate program.
  • Sales calls and support tickets. Buyers' literal phrasing is closer to what they type into an assistant than any keyword tool.
  • Competitor citations. After a couple of weekly runs, the prompts where competitors are cited and you are not point to the gaps.

Keep it small enough for one person to review weekly; a few dozen prompts per brand is our working default. Every prompt should be one a real buyer would ask. Tag each with intent (informational, comparison, transactional, branded), funnel stage, and the product line or revenue line it maps to. Without that last tag, citation data can never be joined to revenue.

Run it the same way every time

  • Run each prompt in each assistant you care about (ChatGPT, Perplexity, Gemini, Copilot, Claude; Google AI Mode; Amazon Rufus if you sell on Amazon), on the same weekday.
  • Use a logged-out or fresh session with memory and personalization off, and note the location. Logged-in history changes answers.
  • Answers vary between runs, so run each prompt more than once and record how often you appear, not a single yes or no.
  • Save the raw answer text and cited URLs, so you can audit a strange week later.

What to record per prompt, per assistant

FieldExample
Mentioned (brand named in the answer)Yes in 2 of 3 runs
Cited (your URL in the sources)Yes, /pricing
Competitors mentioned and citedBrand A (cited), Brand B (mentioned only)
Rationale sentence“Best for small teams because...”
AccuracyPrice stated correctly / outdated

The rationale sentence is the most actionable field. It shows which passage of your page (or a competitor's) the answer leaned on, which is what a writer needs to fix a weak page. The accuracy field catches wrong prices and retired features, which matter more than a missing citation.

Metrics: share, not count

  • Citation share per assistant per week: your citations divided by all citations across the prompt set. Raw counts rise just because you publish more pages, even while share falls. Lock the formula before the second week of data.
  • Mention rate: share of runs where you are named, cited or not. Assistants often name brands without linking them.
  • Drift: week-over-week change in share per prompt. This is the column to read first every week.
  • Page coverage: how many distinct URLs of yours were cited across the set over the last quarter. Relying on one page is fragile.
  • Competitor share: the top few brands by share inside your prompt set, per assistant. Movement here is often the first sign a competitor published into your space.

Wire two alerts only: a drop alert when a priority prompt loses share for two weeks running, sent to the page owner with the rationale sentences attached, and a surge alert when a prompt newly cites you, sent to whoever can deepen that page. Set the thresholds at the size of change you would actually act on. More alerts train people to ignore them.

Build it or buy it

Off-the-shelf AI visibility tools (Profound, Otterly, Peec.ai and AthenaHQ are common names) run prompt sets on a schedule and ship dashboards; they are fastest to start and least flexible on rationale capture and custom tags. An in-house version is a scheduled script that queries each assistant (through an API where one exists, a browser otherwise), parses citations into a warehouse table and feeds Looker Studio, Metabase or similar. A hybrid, a tool for the main assistants plus a script for the ones it covers poorly, is a common middle path. Whatever you choose, check that it stores raw answers and lets you tag prompts by product line.

Four views cover most decisions: by assistant (share week over week), by prompt (sortable by drift), by page (which URLs get cited), and by competitor.

Turn the data into a weekly backlog

A dashboard nobody acts on is wallpaper. Give it one owner and one hour a week:

  1. Pull the prompts with the widest gap between business priority and citation share.
  2. Decide per prompt: refresh the existing page, rewrite its answer (the rationale sentences show the assistant is not finding what it wants), build a new page (no destination exists), or add an FAQ entry to an existing page.
  3. Attach competitor rationale sentences so the writer sees what a cited answer looks like.
  4. Put it in the editorial backlog with an owner and a ship date a couple of weeks out.

Monthly, prune dead prompts, add new ones from the rationale patterns, and add any new assistant that shows up in your referral report. Quarterly, re-pick the prompt set from scratch against the product roadmap. For the writing side, see the GEO playbook, the passage-level optimization guide and the content refresh calendar.


Attributing revenue to AI search, honestly

Last-click attribution undercounts AI search for structural reasons, not because of a setting you missed:

  • Zero-click influence. The answer names you, the buyer never clicks, and you never see the session.
  • Lost referrers. App clicks and pasted links land in Direct.
  • Delayed, re-routed conversions. Someone reads an answer on Tuesday, searches your brand name on Friday, buys through organic or Direct on Sunday. Last click credits branded search.
  • Cross-device paths. Research on a phone app, purchase on a laptop. Without signed-in users, these are two strangers.
  • Purchases inside the assistant. When checkout or a booking completes in the assistant's own interface, there may be no site session at all. Your order system, not your analytics, is the record; tag those orders by channel where the integration tells you where they came from.
  • Marketplaces. Amazon Rufus recommendations stay on Amazon, so nothing reaches your site analytics. Only Amazon's own reporting and the self-reported question below see that influence.

Signal 1: Tagged sessions are the floor

Revenue and key events from the AI assistants channel are what you can prove. Look at them under both last-click and GA4's conversion-path reports, where AI assistants often show up as an early touch rather than the last one. Assisted conversions are a fair way to present the channel; claiming every later conversion is not.

Signal 2: Ask buyers

Self-reported attribution is the only signal that sees zero-click influence and Direct leakage. Add one question at signup or on the order confirmation page, “Where did you first hear about us?”, with answer options that name the assistants (ChatGPT, Google AI answers, Perplexity, Copilot, Gemini, Claude, Amazon if relevant) alongside search, social, podcasts, friends and “other.” Rules that keep it usable: ask everyone rather than a sample, keep it one question, and hold the option list fixed for at least a quarter, because shares are meaningless if the options shift underneath them. People misremember, so treat the answers as directional.

Signal 3: Citations and impressions as the cross-check

If your prompt-panel share on an assistant climbed for a month and neither tagged sessions nor survey answers moved, one of the signals is broken (often the survey wording, sometimes the panel). Branded search impressions in Search Console are another independent check: brand demand rising alongside AI citations is consistent with AI influence, though it never proves it.

Reconcile into a range

  1. Low estimate per assistant: revenue from tagged sessions.
  2. High estimate: the assistant's share of survey answers applied to the revenue from respondents (and, if you are confident respondents look like everyone else, to total revenue), not double-counting what step 1 already captured.
  3. Direction check against the prompt panel, the Google generative AI report and Bing AI Performance.
  4. Report the range with its known gaps written next to it. A range that survives a finance review beats a precise number that falls apart on the first question.

What the number is for

The point is a few decisions, not the number itself. Which assistants deserve content effort (revenue per assistant rarely lines up with citation share). Which pages to refresh first (pages with real AI-attributed revenue whose information has gone stale). And how to read falling site traffic from an assistant whose citations are steady: if buyers increasingly finish inside the assistant, traffic can fall while influence does not. For the shopping-assistant side, see the AI shopping assistants playbook.


Common mistakes

  • Blocking the agents you want to measure. Disallowing OAI-SearchBot or PerplexityBot removes you from those answers; a bot rule added for training opt-out can catch search bots too. Block training crawlers separately if that is the goal.
  • Leaving the AI channel below Referral. It stays empty and everyone concludes AI sends nothing.
  • Adding Search Console's AI view to its totals. The AI impressions are already in the Web numbers.
  • Tracking citation count instead of share.
  • Too many prompts, no owner. The weekly review stops happening and the dashboard decays within a quarter.
  • Quoting borrowed benchmarks as your own. Public market-share figures describe the market, not your site. Our AI search market share page keeps the sourced, dated figures by assistant; use your own referral data for planning.

Frequently Asked Questions

How do I track ChatGPT traffic in Google Analytics 4?

Links from ChatGPT search results carry utm_source=chatgpt.com, which OpenAI documents in its publishers FAQ, so those sessions show chatgpt.com as the source in GA4. Build a custom channel group with an AI assistants channel whose Source matches a regex covering chatgpt.com and the other assistants, and place it above Referral. Sessions from apps or copied links that lose both the referrer and the UTM land in Direct and cannot be recovered from GA4 alone.

Can I see AI Overviews and AI Mode traffic separately in Search Console?

Not as clicks. Google counts AI Overviews and AI Mode inside the Web search type of the Performance report, so they are part of your normal totals. The generative AI performance report, available to all sites since August 31, 2026, shows impressions in those features by page, country, device and date, but no clicks or queries, and it does not split AI Overviews from AI Mode. In GA4, clicks from these features arrive as Google organic.

Which AI bots should I look for in my server logs?

Three classes. Training crawlers: GPTBot (OpenAI) and ClaudeBot (Anthropic). Search indexers: OAI-SearchBot, PerplexityBot and Claude-SearchBot. User-triggered fetchers that load a page because someone asked a question: ChatGPT-User, Perplexity-User and Claude-User. The user-triggered class is the closest log signal to your page being read for a live answer. Google-Extended has no user agent of its own, so it never appears in logs.

Does Bing Webmaster Tools report AI citations?

Yes. The AI Performance report, released in public preview in February 2026, shows total citations, average cited pages, sampled grounding queries and page-level citation counts across Microsoft Copilot, AI-generated summaries in Bing and some partner integrations. It does not report clicks, and grounding queries are the phrases the system used to retrieve content, not what the user typed.

How do I attribute revenue to AI search honestly?

Combine three imperfect signals: revenue from sessions tagged to an AI assistant (the floor), a self-reported where-did-you-hear-about-us question that catches buyers who arrived later via direct or branded search, and citation data from a prompt panel and the Google and Bing reports to check direction. Report a range per assistant, state what is missing (in-app clicks without referrers, purchases that finish inside an assistant, cross-device journeys), and treat AI search mostly as an assisting channel.

Which AI assistant sends the most referral traffic?

ChatGPT, by a wide margin on public referral trackers. Our AI search market share page keeps the sourced and dated figures by assistant, so this page does not repeat them.

Related reading: the brand entity disambiguation guide (making sure assistants know which brand is yours before you count its citations) and the llms.txt guide.


Making the product photos and videos your cited pages show?

ppl.studio generates product photos and short videos with a consistent AI persona, using your own Gemini API key. It does not track AI search; it makes the visuals for the pages you measure. $1.99 a week, cancel anytime.

Start free with ppl.studio

10 free photos · no credit card required

M

Max Zeshut

Founder of ppl.studio. Building AI tools for product marketing teams who need visual content at scale without the production overhead.