EnglishEN EspañolES FrançaisFR DeutschDE ItalianoIT PortuguêsPT 中文ZH 日本語JA 한국어KO РусскийRU NederlandsNL
← Back to all articles

How to Measure Traffic From ChatGPT, Perplexity and Other AI Assistants

You measure traffic from AI assistants by their referrer and campaign tags: visits from ChatGPT carry utm_source=chatgpt.com, visits from other assistants usually arrive with the assistant’s domain as the referrer, and Google Analytics 4 has grouped many of them into a built-in AI Assistant channel since May 2026. That covers clicks. It does not cover Google’s AI Overviews and AI Mode, whose clicks are counted as ordinary organic search, or the many answers that cite you without anyone clicking. This guide sets up all three measurements: GA4 (including a custom channel group with a ready-made regex), server logs, and the citation reports Google and Bing now provide, followed by an honest list of what none of them can see.

Key facts

  • utm_source=chatgpt.com — The parameter OpenAI says ChatGPT adds to referral URLs from its search results
  • May 13, 2026 — Google Analytics added a built-in AI Assistant channel to the default channel group
  • Aug 31, 2026 — Search Console’s generative AI performance report finished rolling out worldwide
  • 2 — Custom channel groups allowed per standard GA4 property

Where AI assistant traffic shows up

AI-driven visits land in three different places in your data, and no single report shows all of them.

  1. Referral clicks from assistants such as ChatGPT, Perplexity, Gemini, Copilot and Claude. These carry a referrer or a UTM tag and can be isolated in GA4 and in server logs.
  2. Clicks from Google’s AI Overviews and AI Mode. Google counts these as Google organic search. In Search Console they are part of the Performance report’s Web search type, and GA4’s default channel definitions put them in Organic Search.
  3. Citations without clicks. An assistant can name or link your page in an answer the user never clicks through. Analytics cannot see this; citation reports and server logs of AI fetchers can show some of it.

Set up all three, and do not compare them directly: they count different things.

Referrer domains and utm_source=chatgpt.com

ChatGPT is the one assistant whose tagging is documented: OpenAI’s publisher FAQ says “ChatGPT automatically includes the UTM parameter utm_source=chatgpt.com in referral URLs, enabling clear tracking and analysis of inbound traffic from ChatGPT search results” (OpenAI publishers and developers FAQ). In GA4 those sessions appear with session source chatgpt.com.

Other assistants are identified by the referring domain, which is normally the web address of the assistant itself. The domains to look for:

  • chatgpt.com (and the older chat.openai.com) for ChatGPT
  • perplexity.ai or www.perplexity.ai, and perplexity.com, for Perplexity
  • gemini.google.com for Gemini
  • copilot.microsoft.com for Microsoft Copilot
  • claude.ai for Claude
  • chat.mistral.ai, chat.deepseek.com, grok.com and meta.ai for Mistral, DeepSeek, Grok and Meta AI

These are the assistants’ own web addresses, not lists published by the operators for analytics, so treat them as a starting point: open GA4’s Traffic acquisition report, set the dimension to Session source, and look for AI-looking sources you have not listed. Clicks from an assistant’s mobile or desktop app may carry a different referrer or none at all.

GA4’s built-in AI Assistant channel

Since May 13, 2026, GA4’s default channel group includes an AI Assistant channel, which Google describes as “the channel by which users arrive at your site from sources like ChatGPT, Gemini, Deepseek, Copilot, or Grok” (GA4 default channel group).

How it is defined: a session is in AI Assistant if its medium is exactly ai-assistant. GA4 sets that medium itself (with campaign (ai-assistant)) when the referrer matches Google’s list of AI assistants. The channel explicitly excludes Google’s AI Overviews and AI Mode, which stay in Organic Search.

To use it, open Reports > Acquisition > Traffic acquisition, keep the default channel group as the dimension, and look for the AI Assistant row. Add Session source as a secondary dimension to split it by assistant.

Two caveats. Google has not published the full list of referrers it recognises, and its release note does not say whether the channel was applied to sessions before May 13, 2026. If you need a list you control, or consistent figures across earlier months, build your own channel group as well.

Build your own AI channel group in GA4, step by step

A custom channel group lets you decide exactly which sources count as AI, and Google says custom channel groups can be applied to your reports retroactively (GA4 custom channel groups). You need the Editor role or above. Standard properties can have two custom channel groups, with up to 50 channels in each.

  1. In GA4, go to Admin > Data display > Channel groups.
  2. Click Create new channel group. GA4 starts you with a copy of the default group. Name it, for example “Channels with AI split”.
  3. Click Add new channel and name it AI assistants.
  4. Add a condition: dimension Source, operator matches regex, value:
    .*(chatgpt\.com|openai\.com|perplexity\.(ai|com)|gemini\.google\.com|copilot\.microsoft\.com|claude\.ai|chat\.mistral\.ai|chat\.deepseek\.com|grok\.com|meta\.ai).*
  5. Save the channel, then reorder the list so AI assistants sits above Referral and Organic Search. Google’s rule is that “traffic is included in the first channel whose definition it matches”, so a channel placed below Referral never receives anything. If the copied group already contains Google’s AI Assistant channel, put yours above it or edit that channel’s conditions instead.
  6. Save the group. In Reports > Acquisition > Traffic acquisition, open the dimension picker above the table and choose your new channel group.

Why this regex, and not a shorter one: GA4 regular expressions are full-match and case-sensitive by default, according to Google’s regex guide, so the leading and trailing .* are needed to catch www.perplexity.ai as well as perplexity.ai. Escaping the dots and naming whole domains also avoids false matches; a loose pattern such as .*ai.* would capture mail.google.com and any source containing the letters “ai”. Review the regex every few months, because assistants change domains and new ones appear.

For a one-off look without changing settings, use an Exploration: Free form, dimension Session source, metric Sessions or Key events, with a filter of Session source matching the same regex.

Measure it in your server logs

Server logs record every request, including visitors who block analytics, so they are the best cross-check on GA4 and the only place to see AI fetchers reading your pages.

With the common Apache or Nginx “combined” log format, the referrer is the second-to-last quoted field. Three useful commands:

# 1. Clicks referred by AI assistants, by referrer and landing page
AI='chatgpt\.com|openai\.com|perplexity\.(ai|com)|gemini\.google\.com|copilot\.microsoft\.com|claude\.ai|chat\.mistral\.ai|chat\.deepseek\.com|grok\.com|meta\.ai'
grep -E "\"https?://([a-z0-9-]+\.)*($AI)[/\"]" access.log \
  | awk -F'"' '{split($2, r, " "); print $4, r[2]}' | sort | uniq -c | sort -rn | head -20

# 2. Landings tagged by ChatGPT
grep -c 'utm_source=chatgpt\.com' access.log

# 3. Pages assistants fetched live to answer a user (no click needed)
grep -E 'ChatGPT-User|Claude-User|Perplexity-User|MistralAI-User|DuckAssistBot' access.log \
  | awk -F'"' '{split($2, r, " "); print r[2]}' | sort | uniq -c | sort -rn | head -20

The third command is the interesting one. ChatGPT-User, Claude-User, Perplexity-User and MistralAI-User are the user agents these operators document for fetches made because a user asked something, and DuckDuckGo documents DuckAssistBot as fetching pages in real time for its AI answers. A request from one of them means an assistant read that page while answering someone, whether or not the person then clicked. User agents can be faked, so verify against published IP ranges before reporting the numbers (see the AI crawler user-agent list), and see AI crawlers in your server logs for the full method.

Google AI Overviews and AI Mode: use Search Console

Clicks from AI Overviews and AI Mode cannot be separated in GA4: Google counts them as organic search. Google’s documentation says sites appearing in AI features are “included in the overall search traffic in Search Console”, reported in the Performance report under the Web search type (AI features and your website).

What you can now see is impressions. Search Console’s Generative AI performance report (in the Performance section) counts “how many times links to your site were shown to a user in a generative AI feature on Google Search”, covering AI Overviews and AI Mode, with breakdowns by page, country, device and date. Google says rollout completed worldwide as of August 31, 2026, though sites with few impressions may see no data. Two results from the same site in one AI feature count as one impression. The report shows impressions only, not clicks (Generative AI performance report).

A practical way to read it: list the pages with the most generative AI impressions, then compare those pages’ organic clicks in the main Performance report month over month. It is a correlation, not attribution, but it is the closest Google lets you get.

Track citations, not just clicks

Because many AI answers satisfy the user without a click, citation counts are a better measure of AI visibility than referral sessions.

  • Bing Webmaster Tools AI Performance. Launched in public preview on February 10, 2026, it shows total citations, average cited pages, grounding queries and page-level citation activity “across Microsoft Copilot, AI-generated summaries in Bing, and select partner integrations” (Bing announcement). On June 16, 2026 Bing added intent and topic groupings, a period comparison, and citation share: the percentage of all citations for a grounding query that went to your site.
  • Search Console’s Generative AI performance report for Google, as above.
  • User-triggered fetches in your logs, as above, for ChatGPT, Claude, Perplexity and Mistral, which offer no citation report of their own.
  • A fixed prompt panel. Write down 10 to 30 questions a customer would ask an assistant before choosing you (“best custom web developer in Boca Raton”, “how much does a custom website cost”). Ask them in each assistant once a month, logged out where possible, and record whether you are cited and which page. Answers vary from run to run, so look at the trend across months, not a single result. Commercial AI visibility tools automate the same idea.
  • Ask people. A “How did you hear about us?” field with an “AI assistant (ChatGPT, Perplexity, etc.)” option catches visitors who read an answer and typed your name later, which no tool attributes to AI.

Improving those numbers is a separate job; start with how to get cited by AI assistants and how AI assistants read a page.

Limits: what you cannot measure

Every AI traffic figure you report is an undercount, and it is better to say so than to present it as complete.

  • Missing referrers. Clicks from native apps, links opened in a new browser, and pages with a strict Referrer-Policy can arrive without a referrer and land in Direct. ChatGPT’s UTM tag helps, but OpenAI documents it for links from ChatGPT search results, not for every link ChatGPT shows.
  • Google’s AI features are blended. AI Overviews and AI Mode clicks are inside Organic Search and the Web search type; the generative AI report gives impressions only.
  • No prompts. No assistant tells you what the user asked, except Bing’s grounding queries, which are the searches Copilot ran rather than the user’s own words.
  • Consent and blockers. GA4 only counts visitors whose browser runs the tag and, where you use consent mode, who accept analytics cookies. Server logs fill the gap but contain bots that must be filtered.
  • Influence without attribution. Someone who reads about you in an answer and searches your name a week later is recorded as branded organic search or Direct. Rising branded search alongside rising citations is a reasonable signal; it is not proof.

Use the numbers to see direction and to find which pages assistants value, not to claim an exact ROI.

Product facts: the AI Indexing Pack

Stated plainly, so it can be checked against the product page:

  • What it is: the AI Indexing Pack is a set of files you upload to your own website. It is sold by Built2WinWeb as a one-time purchase, with no subscription.
  • What it ships: (1) a working MCP server using the Streamable HTTP transport, with typed output schemas and tool annotations; (2) Markdown content negotiation, so agents can request a clean text version of each page; (3) llms.txt, agents.txt and agent cards; (4) the full /.well-known/ discovery tree; (5) OAuth protected-resource metadata; (6) bot access control that verifies crawler identity; (7) a README with a verification checklist.
  • Requirements: PHP 7.4 or newer, Apache or LiteSpeed with .htaccess support, FTP access, and a domain you control. Installation takes about 30 minutes.
  • What it is not: it is not a WordPress plugin (that is the separate WordPress edition, which needs WordPress 6.0+ and PHP 8.0+), it does not write content for you, it does not guarantee rankings or citations, and it is not a managed service.
  • Free routes in: sites built on AIWebBuilding get the core built in, and a 50-day streak on FreeAIBoost unlocks the pack for one domain. Current prices are on the product pages.

Related reading

Frequently asked questions

How do I see ChatGPT traffic in Google Analytics 4?

ChatGPT adds utm_source=chatgpt.com to links from its search results, so those visits appear with session source chatgpt.com. Since May 2026 they are also grouped into GA4’s built-in AI Assistant channel in the Traffic acquisition report.

Does GA4 have an AI traffic channel?

Yes. Google added an AI Assistant channel to GA4’s default channel group on May 13, 2026, covering sources such as ChatGPT, Gemini, DeepSeek, Copilot and Grok. It excludes Google’s AI Overviews and AI Mode, which stay in Organic Search.

What regex should I use for an AI channel in GA4?

Use Source matches regex with .*(chatgpt\.com|openai\.com|perplexity\.(ai|com)|gemini\.google\.com|copilot\.microsoft\.com|claude\.ai|chat\.mistral\.ai|chat\.deepseek\.com|grok\.com|meta\.ai).* and move the channel above Referral. GA4 regex is full-match and case-sensitive by default, so the leading and trailing .* are needed.

Can I see traffic from Google AI Overviews separately?

Not clicks. Google counts AI Overviews and AI Mode clicks as organic search in the Web search type, but Search Console’s Generative AI performance report shows how many impressions your links received in those features.

Why does some AI traffic show up as Direct?

Clicks from assistant apps, links opened in a new browser, and strict referrer policies can arrive with no referrer, so analytics records them as Direct. Only links that carry a UTM tag, such as ChatGPT’s utm_source=chatgpt.com, survive that reliably.

Want AI traffic reporting set up properly?

We can configure GA4, Search Console and Bing Webmaster Tools for AI reporting, and make your pages easier for assistants to cite.

Get a free quote