AI Attribution: ChatGPT, Gemini, Copilot, Claude & More

AI assistants are sending real visitors to websites now, and most of that traffic is harder to attribute than anything we have dealt with since dark social.

Before getting into the per-provider details, it’s worth being honest about the ceiling here: you cannot attribute all of it, and nobody can. A large share of AI-driven visits arrive with no referrer at all. Some assistants open links in in-app browsers that strip the referrer, some answer the question so completely that the visit happens days later as a brand search or a typed-in URL, and some (like most NotebookLM sessions) never produce a click in the first place. What follows is the portion you can see: the referrer domains, URL parameters and GA4 configuration that let you attribute the measurable slice of AI traffic, provider by provider.

Setting Up GA4 First

Out of the box, GA4 lumps most AI assistant traffic into the generic Referral channel, mixed in with every blog and directory that links to you. The fix is a custom channel group. In Admin → Data Settings → Channel Groups, create a channel called something like “AI Assistants” with a condition matching source against a regex of the known referrer domains:

chatgpt.com|chat.openai.com|gemini.google.com|copilot.microsoft.com|claude.ai|perplexity.ai|chat.deepseek.com|grok.com|meta.ai|chat.mistral.ai|notebooklm.google.com

You can also build an exploration or a comparison in standard reports using Session source matching that same regex. Either way, do this before anything else: it turns a scattered set of referral rows into a single trendable channel, and every section below feeds it.

ChatGPT

ChatGPT is the most attributable assistant of the bunch. Clicks from ChatGPT’s web and desktop apps arrive with a chatgpt.com referrer (older sessions may still show chat.openai.com), and OpenAI frequently appends utm_source=chatgpt.com to outbound links, which means the traffic self-identifies even when the referrer is stripped. In GA4 look for source chatgpt.com under both Referral and whatever your custom AI channel is.
The mobile app is leakier: links opened in the in-app browser sometimes arrive with no referrer and no UTM, landing in Direct. So treat your measured ChatGPT number as a floor, not a total.

Google Gemini

Gemini traffic shows up with a gemini.google.com referrer when it shows up at all. In practice a meaningful share of Gemini clicks arrive referrer-less, and the Gemini mobile apps and Android system integration are worse offenders than the web app. Watch for the source in GA4, but expect undercounting.
One trap to avoid: gemini.google.com referrals are not the same thing as AI Overviews traffic from Google Search. Those are covered separately below, because Google reports them through an entirely different mechanism.

Microsoft Copilot

Copilot clicks come through with a copilot.microsoft.com referrer. The complication is that Copilot lives inside Bing, Edge, and Windows itself, and traffic from Copilot answers embedded in Bing search results typically carries a bing.com referrer instead, which GA4 buckets under Organic Search. There is no reliable way to split “clicked a Copilot citation” from “clicked a Bing result” when the referrer is bing.com, so your measurable Copilot number is just the copilot.microsoft.com slice. Copilot inside Microsoft 365 apps (Word, Teams, Outlook) strips referrers almost entirely and lands in Direct.

Claude

Links clicked inside Claude’s web app arrive with a claude.ai referrer, and that is essentially the whole story: Anthropic does not append UTM parameters, so the referrer is all you get. The desktop and mobile apps are less consistent and push a share of clicks into Direct. Claude’s citation behavior also means it links out less aggressively than Perplexity or ChatGPT search, so expect lower absolute volume even if your content is being used heavily in answers.

Perplexity

Perplexity is built around citations, which makes it one of the better referrers in the category. Traffic arrives from perplexity.ai (sometimes www.perplexity.ai), and because every answer is wrapped in numbered source links, click-through behavior is healthier relative to usage than most assistants. If your content ranks as a Perplexity source you will usually see it clearly in GA4 without any extra work beyond the channel group above.

DeepSeek

DeepSeek’s web app sends a chat.deepseek.com referrer on outbound clicks, but DeepSeek cites and links out far less than Western assistants, and a large share of its usage is through the API and third-party apps where no referrer survives. For most Western sites DeepSeek will be a rounding error in analytics even when the model itself references your content regularly.

Grok

Grok traffic can arrive from two places: grok.com for the standalone app, and x.com for Grok used inside X, where clicks are indistinguishable from ordinary X traffic. Only the grok.com slice is attributable as AI traffic; the X-embedded usage disappears into your existing social numbers. Include grok.com in your regex and accept that the X side is unmeasurable.

NotebookLM

NotebookLM is worth a section mostly to set expectations: it is a closed loop. Users upload or link sources, the tool answers from them, and sessions rarely end in a click back to the source site. When a click does happen it carries a notebooklm.google.com referrer, so keep it in the regex, but if NotebookLM is consuming your content you will almost never see evidence of it in analytics. Server logs showing Google fetcher activity against specific URLs are the closer signal.

Meta AI, Mistral and the Rest

The long tail follows the same pattern: meta.ai for Meta AI’s standalone app (usage inside WhatsApp, Instagram and Messenger strips referrers), chat.mistral.ai for Mistral’s Le Chat, you.com for You.com, and duckduckgo.com traffic that may include DuckDuckGo’s AI answers but cannot be separated from its regular search results. Add the standalone domains to your channel group as they appear in your referral reports; new assistants announce themselves there first.

Google AI Overviews and AI Mode

This is the biggest AI surface of all, and there is no referrer-based attribution for it whatsoever. Clicks from AI Overviews and AI Mode carry a standard google.com referrer and land in Organic Search, identical to a classic blue-link click. GA4 cannot see them.
What you do have is Search Console, and it is worth taking seriously because it is a direct metric from Google itself, not an inference. Impressions and clicks from AI Overviews are included in the Performance report’s Web search type, and Google has folded AI Mode data in as well. The practical approach:

  • Watch impressions against clicks over time. The signature of heavy AI Overview inclusion is impressions holding steady or climbing while CTR erodes, especially on informational queries. That divergence is your AI Overviews exposure made visible.
  • Segment by query type. Question-style queries (how, what, why, best) are where AI Overviews appear most, so a CTR drop concentrated there while transactional queries hold steady points at AI surfaces rather than a ranking problem.
  • Accept the granularity. Google does not break out “appeared in an AI Overview” as a dimension. Impressions are really all we have, but they come from the source, which makes them more trustworthy than any third-party AI visibility tracker.

ChatGPT Ads: Use UTMs Like You Mean It

If you are running ads through OpenAI’s ads platform at ads.openai.com, attribution stops being a forensic exercise and becomes your job. Tag every destination URL with a proper UTM structure exactly as you would for Google Ads or Meta (the same discipline covered in UTM Attribution): a consistent utm_source, utm_medium=cpc (or paid, whichever your taxonomy uses), and campaign-level naming that matches your other channels.

https://example.com/landing-page/
  ?utm_source=chatgpt
  &utm_medium=cpc
  &utm_campaign=q4-launch
  &utm_content=sponsored-answer

Do not let paid ChatGPT traffic fall into the same chatgpt.com referral bucket as organic citations, because the moment it does you lose the ability to evaluate the spend. I covered the full conversion tracking setup in OpenAI Ads Setup & Conversion Tracking.

The Direct Traffic Tell

After all of the per-provider work above, the most useful aggregate signal for AI traffic is one that sounds backwards: watch your Direct channel.
Everything that leaks (in-app browsers, stripped referrers, desktop apps, users who read an AI answer and type your URL later) lands in Direct. So if Direct traffic starts ticking up over a sustained period with no campaign, PR event or offline push to explain it, and especially if it climbs in step with your measurable AI referral channel, there is a reasonable chance you are looking at unattributed AI traffic.
To be clear about what this is and is not: it is not scientific, it proves nothing on its own, and on a small site the noise swamps the signal entirely. It works best on high-volume sites, where Direct is stable enough that a genuine trend separates from the noise, and in situations where you can rule out the ordinary explanations first. Within those limits it is a pattern worth establishing, because it is often the only view you will ever get of the majority of AI traffic that the rest of this article cannot capture.