[invisit](https://invisit.dev) · [Docs](https://invisit.dev/docs) · [llms.txt](https://invisit.dev/llms.txt) · [llms-full.txt](https://invisit.dev/llms-full.txt)

# How to track ChatGPT traffic in GA4, Plausible, Umami and others

> Which analytics tools file ChatGPT, Claude and Perplexity clicks as AI traffic, whether they read utm_source=chatgpt.com, and how to set up each one.

- Author: Miraç Berk
- Published: 2026-11-02
- Updated: 2026-11-03
- Page: https://invisit.dev/blog/ai-assistant-traffic
- Tags: ai-traffic, analytics, chatgpt, google-analytics

![A large frosted-glass chat bubble sends a beam of violet dithered light into a small analytics chart, in a soft, light 3D scene.](https://invisit.dev/_astro/cover.DIy7VUkG.png)

To track ChatGPT traffic, open your analytics tool's AI channel, then check whether that channel reads `utm_source=chatgpt.com` as well as the referrer, because ChatGPT tags the links it shows and its apps often send no referrer. As of November 2026, Google Analytics 4, Plausible, Umami, Fathom, PostHog, Matomo and DataFast group AI assistant visits on their own; Mixpanel, Simple Analytics and Vercel Web Analytics leave them among ordinary referrers.

The tools differ in the two details that decide your number: which assistants they know, and whether they read the tag or only the referrer. Below is a table we checked against each vendor's own docs and source code on November 3, 2026, setup steps for GA4, Plausible, Umami, PostHog and invisit (the tool we build), and the clicks no tool can see.

## How does a click from ChatGPT reach your site?

A click from an AI assistant arrives as an ordinary browser visit carrying up to two clues: the referrer, and a `utm_source` tag in the link. An analytics tool can only call the visit AI traffic if it reads one of them.

The referrer is the address of the page the visitor left, sent by the browser. Unless a site sets another policy, browsers send other sites the origin only, because `strict-origin-when-cross-origin` is the default ([MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Referrer-Policy)). When we fetched chatgpt.com with `curl` on November 3, 2026, its `Referrer-Policy` header named that same policy. So your analytics sees `https://chatgpt.com/`, never the conversation or the prompt.

The tag is the second clue. OpenAI's [Publishers and Developers FAQ](https://help.openai.com/en/articles/12627856-publishers-and-developers-faq) says "ChatGPT automatically includes the UTM parameter utm_source=chatgpt.com in referral URLs". A cited link to your pricing page arrives like this:

```text title="A link clicked in ChatGPT"
https://example.com/pricing?utm_source=chatgpt.com
```

The tag matters most when the referrer is missing. Fathom's [traffic sources docs](https://usefathom.com/docs/features/sources) say ChatGPT's apps often send no referrer, and that the tag is how most ChatGPT visits arrive. The tag is OpenAI's documented behaviour; for Claude, Perplexity, Gemini and Copilot, plan on the referrer.

| The click arrives with | Typical case                                 | What your tool must read           |
| ---------------------- | -------------------------------------------- | ---------------------------------- |
| Referrer and tag       | ChatGPT in a browser                         | Either one                         |
| Tag only               | ChatGPT's apps, which often send no referrer | `utm_source`                       |
| Referrer only          | An assistant that adds no tag                | The referrer                       |
| Neither                | A typed address, or an app that strips both  | Nothing works; it counts as direct |

## Which analytics tools have an AI traffic channel?

Eight of the eleven tools below give AI assistant visits a channel or tab of their own, as of November 2026. Three of the eight read only the referrer, so a tagged ChatGPT click that arrives without one can land in another channel.

| Tool                                                                                                                          | Where AI visits go         | Added                  | Assistants it recognises                                                                                                                                                     | Matches `utm_source`           |
| ----------------------------------------------------------------------------------------------------------------------------- | -------------------------- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| [Google Analytics 4](https://support.google.com/analytics/answer/9756891)                                                     | AI Assistant channel       | May 13, 2026           | Names ChatGPT, Gemini, Claude, DeepSeek, Copilot and Grok; full list unpublished                                                                                             | No, referrer only              |
| [Plausible](https://plausible.io/track-ai-traffic)                                                                            | AI Assistants channel      | June 10, 2026          | ChatGPT, Claude, Perplexity, Gemini, Copilot, DeepSeek, Grok, Phind                                                                                                          | Yes, ahead of the referrer     |
| [Umami](https://github.com/umami-software/umami/blob/559e3c607c23d2c72d9bd4f6481bda428255323c/src/lib/constants.ts#L364-L371) | LLM channel                | v3.2.0, June 24, 2026  | chatgpt.com, claude.ai, copilot.microsoft.com, gemini.google.com, meta.ai, perplexity.ai                                                                                     | No, referrer only              |
| [Fathom](https://usefathom.com/docs/features/sources)                                                                         | AI tab and AI source       | October 2, 2026        | ChatGPT, Perplexity, Claude, Gemini, Copilot, DeepSeek, Grok, Meta AI, You.com, Poe                                                                                          | Yes, when it is the only tag   |
| [PostHog](https://posthog.com/docs/data/channel-type)                                                                         | AI channel type            | July 2026              | 46 domains and names, from chatgpt.com and claude.ai to chat.mistral.ai and kimi.com                                                                                         | Yes                            |
| [Matomo](https://matomo.org/faq/reports/what-are-ai-assistants-in-matomo/)                                                    | AI Assistants channel      | 5.5.0, October 8, 2025 | ChatGPT, Copilot, Gemini, Claude, Le Chat, Meta AI, iAsk, Perplexity                                                                                                         | No, referrer only              |
| [DataFast](https://datafa.st/changelog/traffic-channel-categorization)                                                        | AI channel                 | September 9, 2025      | ChatGPT, Perplexity, Claude, Gemini, Copilot and others                                                                                                                      | Not documented                 |
| [Mixpanel](https://docs.mixpanel.com/docs/tracking-best-practices/traffic-attribution)                                        | No AI channel              | No                     | Referrer and UTM properties only                                                                                                                                             | Stored, not grouped            |
| [Simple Analytics](https://docs.simpleanalytics.com/api/stats)                                                                | No AI channel              | No                     | Assistants listed as plain referrers                                                                                                                                         | Not grouped                    |
| [Vercel Web Analytics](https://vercel.com/docs/analytics/using-web-analytics)                                                 | No AI channel for visits   | No                     | Assistants listed as plain referrers                                                                                                                                         | Not grouped                    |
| invisit                                                                                                                       | AI tab of the Sources card | Built in               | ChatGPT, Claude, Perplexity, Gemini, Copilot, DeepSeek, Grok, Le Chat, Meta AI, Qwen, Kimi, NotebookLM, Google AI Studio, Doubao, You.com, Phind, Poe, Character.AI, Duck.ai | Yes, when there is no referrer |

Some rows need a note. Vercel's [AI Traffic tab](https://vercel.com/docs/observability/insights#ai-traffic), added to Observability on [October 28, 2026](https://vercel.com/changelog/ai-traffic-insights-now-available-in-vercel-observability), counts AI bots fetching your pages, a different measurement from people clicking through. Matomo applies the AI Assistants channel only to data collected after the update, while Plausible and Fathom reclassified past visits too.

## How to see ChatGPT traffic in Google Analytics 4

In Google Analytics 4, ChatGPT traffic is in the AI Assistant row of Reports > Acquisition > Traffic acquisition, as long as the visit arrived with a referrer GA4 recognises. Google added the channel on May 13, 2026: a matching referrer gets the medium `ai-assistant` and the campaign `(ai-assistant)` ([release note](https://support.google.com/analytics/answer/9164320)). Clicks from Google's own AI Overviews and AI Mode are excluded and count as Organic Search ([default channel group](https://support.google.com/analytics/answer/9756891)).

The catch is the tag. Google's [campaign processing notes](https://support.google.com/analytics/answer/11242841) say custom campaign values "map directly to the dimensions in reports", and that the referrer sets them only "when no other campaign or traffic source fields have been set". Google's [URL builder page](https://support.google.com/analytics/answer/10917952) adds that missing UTM parameters show as `(not set)`.

By those rules, a ChatGPT link with only `utm_source=chatgpt.com` becomes `chatgpt.com / (not set)`, which matches no default channel, so GA4 files it as Unassigned. Google does not say whether its AI rule overrides the tag. Check your own property:

1. Open Reports > Acquisition > Traffic acquisition.
2. Change the table's first column from Session default channel group to Session source / medium.
3. Type `chatgpt` in the search box, then repeat with `perplexity`, `claude`, `gemini` and `copilot`.
4. Rows ending in `/ ai-assistant` are in the AI Assistant channel. Any other row for an assistant, such as `chatgpt.com / (not set)` or one with the medium `referral`, is AI traffic that GA4 filed elsewhere.

If those rows exist, a custom channel group collects them.

## How to add missing AI assistants to GA4 with a custom channel group

A GA4 custom channel group with one condition on Source collects every assistant visit, tagged or not: the source of a referred visit is the referrer's hostname, and the source of a tagged visit is the `utm_source` value. The steps follow Google's [custom channel groups](https://support.google.com/analytics/answer/13051316) article:

1. In Admin, under Data display, click Channel groups.
2. Click Create new channel group. GA4 starts you with a copy of the default group. Give it a name such as "Channels with AI".
3. Click Add new channel and name it "AI assistants".
4. Add a condition on Source with the operator matches regex, paste the pattern below, and save the channel.
5. Click Reorder, drag AI assistants above Referral (and above AI Assistant, if your copy has that channel), and click Apply.
6. Click Save group. In Traffic acquisition, choose the new group as the table's dimension.

```text title="GA4 condition: Source matches regex"
^(.*\.)?(chatgpt\.com|chat\.openai\.com|claude\.ai|perplexity\.ai|gemini\.google\.com|copilot\.microsoft\.com|deepseek\.com|grok\.com|chat\.mistral\.ai|meta\.ai|qwen\.ai|kimi\.com|notebooklm\.google\.com)$
```

The order matters because GA4 puts traffic in "the first channel whose definition it matches". Below Referral, an assistant that GA4 files as a referral never reaches your channel.

GA4 regex is a full match and case sensitive by default ([regex in Analytics](https://support.google.com/analytics/answer/1034324)), so the pattern lists whole hostnames in lowercase, and the `(.*\.)?` prefix admits subdomains such as `www.perplexity.ai` and `chat.deepseek.com`.

> [!WARNING]
> Google's own example regex for this channel starts with `^.*ai`. We ran it against 25 source values with Python's `re.fullmatch`, which mirrors GA4's full-match rule: it matched `jasper.ai`, `gptzero.me`, `notchatgpt.com` and `chatgpt.com.example.org`, and missed `chat.deepseek.com`, `grok.com` and `kimi.com`, though Google names DeepSeek and Grok as assistants itself. The pattern above matched all 15 assistant hostnames in the test and none of those four.

A standard GA4 property allows 2 custom channel groups of up to 25 channels each. Google says custom groups apply to reports retroactively, so the AI row also fills in the months before May 2026.

## How to see AI assistant traffic in Plausible

In Plausible, open the Channels report and select AI Assistants; clicking a source then filters the whole dashboard to it. Plausible added the channel on June 10, 2026 and reclassified your past traffic into it ([changelog](https://plausible.io/changelog)).

Plausible reads the tag first. Its source code takes `utm_source` ahead of the referrer and maps known values to names, so `utm_source=chatgpt.com` and a referrer from `chat.openai.com` both become ChatGPT ([source.ex](https://github.com/plausible/analytics/blob/db9bcf303763e40478c72c3b8acbef2e6f3f80fa/lib/plausible/ingestion/source.ex#L62-L77)).

Eight assistants count as AI Assistants in Plausible: ChatGPT, Claude, Perplexity, Google Gemini, Microsoft Copilot, DeepSeek, Grok and Phind ([acquisition.ex](https://github.com/plausible/analytics/blob/db9bcf303763e40478c72c3b8acbef2e6f3f80fa/lib/plausible/ingestion/acquisition.ex#L42-L49)). A visit from an assistant outside that list, such as Le Chat, stays in Referral.

If you self-host, check your version. The newest Plausible Community Edition release, v3.2.1 from May 15, 2026, predates the channel, whose code was merged on June 9, 2026 ([releases](https://github.com/plausible/analytics/releases)).

## How to see ChatGPT and LLM traffic in Umami

In Umami, AI traffic is the LLM row of the Channels tab, in the Sources panel of a website's overview. Umami added it in v3.2.0, released June 24, 2026 ([releases](https://github.com/umami-software/umami/releases)), so a self-hosted Umami needs that version or later.

The Umami LLM channel matches six referrer domains: chatgpt.com, claude.ai, copilot.microsoft.com, gemini.google.com, meta.ai and perplexity.ai ([constants.ts](https://github.com/umami-software/umami/blob/559e3c607c23d2c72d9bd4f6481bda428255323c/src/lib/constants.ts#L364-L371)). Umami's channel query checks the referrer domain only ([getChannelMetrics.ts](https://github.com/umami-software/umami/blob/dab618005605e3f65365da995899566649c01f92/src/queries/sql/getChannelMetrics.ts#L57-L71)), so a ChatGPT click that carries `utm_source=chatgpt.com` and no referrer falls outside it. To count those visits:

1. Open the website's UTM report.
2. Find `chatgpt.com` under UTM Source.
3. Add those visits to the LLM row when you report the total.

Claude, Perplexity, Gemini and Copilot clicks that arrive with a referrer are covered. DeepSeek, Grok and Le Chat are not on the list and count as referrals.

## How to see AI traffic in PostHog

In PostHog, AI is one of the channel types in the channels breakdown of the Web analytics dashboard. PostHog added it in July 2026 ([pull request](https://github.com/PostHog/posthog/pull/72779)), and it matches either `utm_source` or the referring domain against a list ([channel type](https://posthog.com/docs/data/channel-type)).

On November 3, 2026 that list held 46 entries, from chatgpt.com and claude.ai to chat.mistral.ai, kimi.com and t3.chat ([channel_definitions.json](https://github.com/PostHog/posthog/blob/f5207b16c917518b198d49257ed371fb60efc498/posthog/models/channel_type/channel_definitions.json)). It is the longest published list in the table.

PostHog applies its rules in order and decides paid traffic first, so a link from an AI app tagged `utm_medium=cpc` counts as paid. For an assistant PostHog lacks, add a custom channel type in your project settings under Web analytics; custom types take priority over the defaults ([web analytics dashboard](https://posthog.com/docs/web-analytics/dashboard)).

## How to see AI assistant traffic in invisit

invisit, the tool we build, puts AI assistant visits in the AI tab of the Sources card, next to Referrers, Campaigns and UTM. It recognises 19 assistants by referrer and by `utm_source`: ChatGPT, Claude, Perplexity, Gemini, Copilot, DeepSeek, Grok, Le Chat, Meta AI, Qwen, Kimi, NotebookLM, Google AI Studio, Doubao, You.com, Phind, Poe, Character.AI and Duck.ai.

![The Sources card with its AI tab open, listing ChatGPT, Perplexity, Claude, Gemini and Copilot with their visits and shares.](https://invisit.dev/_astro/sources-ai.D7m_76aW.png)

*The AI tab of the Sources card, with sample data from the live demo.*

In invisit the referrer decides first. When a visit has no referrer and no `?ref=`, an assistant named in `utm_source` sets its source, ahead of ad click IDs, so a ChatGPT app click tagged `utm_source=chatgpt.com` still counts as ChatGPT. The tags are kept either way and show in the UTM tab.

1. Add the script to your site ([installation](https://invisit.dev/docs/web/installation.md)). The core `invisit.js` is about 8.5 KB gzipped.
2. Open the Sources card and switch to the AI tab.
3. Read the row per assistant; nothing needs configuring.

The free plan covers 20,000 events a month on up to 4 sites, with no card. One limit to know: invisit cannot import history from GA4 or any other tool, so its AI tab starts on the day you install it.

## How to find AI traffic in Fathom, Matomo and tools without a channel

Fathom and Matomo have AI reports of their own; Mixpanel, Simple Analytics and Vercel Web Analytics need a filter on the referrer or the tag.

- Fathom: open the Referrers box and pick the AI tab, or filter on AI Source in Advanced Filters. A link tagged only with an assistant's `utm_source` counts as AI; one that also has `utm_medium` or `utm_campaign` stays in Paid/Campaign ([traffic sources](https://usefathom.com/docs/features/sources)).
- Matomo: open Acquisition > AI Assistants, or build a segment with the condition `Channel Type Is ai` ([AI Assistants in Matomo](https://matomo.org/faq/reports/how-to-track-and-analyse-traffic-from-ai-assistants-like-chatgpt-in-matomo-reports/)). Matomo reads `utm_source` as a campaign name ([campaign parameters](https://matomo.org/faq/general/faq_119/)), so look for `chatgpt.com` under Acquisition > Campaigns as well.
- Mixpanel: break down your page view event by `utm_source` and by Initial Referring Domain, and filter both to the assistants' domains.
- Simple Analytics and Vercel Web Analytics: filter the referrer list to chatgpt.com, claude.ai, perplexity.ai, gemini.google.com and copilot.microsoft.com.

## Which AI traffic can no analytics tool see?

Four kinds of AI-driven visit reach no AI channel in any tool, so treat every AI number as a floor.

- Clicks with neither clue. An app that sends no referrer, on a link with no tag, produces a visit that looks exactly like someone typing your address. It counts as direct.
- Remembered and retyped addresses. Someone who reads your name in an answer and types it later leaves no trace of the assistant.
- Google AI Overviews and AI Mode. Their clicks come from `google.com`, so analytics tools count them as Google search, and GA4 writes them into Organic Search by definition. Search Console includes them in the Web search type of its Performance report, mixed with ordinary results ([AI features and your website](https://developers.google.com/search/docs/appearance/ai-features)).
- Answers with no click. When the answer is enough, nobody visits, and nothing reaches your analytics.

The last kind still leaves a trace on your server, if the assistant fetched your page to write the answer.

## What about AI crawlers reading your pages?

AI crawlers are the other half of AI traffic, and browser trackers rarely see them, because most crawlers do not run your JavaScript. User-triggered fetchers such as ChatGPT-User, Claude-User and Perplexity-User read a page because someone asked about it, which makes them the closest record you have of answers nobody clicked.

They have to be recorded where the request arrives. invisit does it server-side with [`@invisitdev/server`](https://invisit.dev/docs/server/sdk.md#crawler-reads) and never bills crawler reads. Vercel's AI Traffic tab does it at Vercel's edge, and DataFast and Matomo offer server integrations of their own. Our post on [AI crawlers](/blog/ai-crawlers) covers that half in full.

![The crawler Categories card: search, AI training, SEO, AI search, AI assistants, social previews, other and archivers, each with its reads and share.](https://invisit.dev/_astro/crawler-categories.twbVBT35.png)

*Crawler reads by kind, with sample data from the live demo.*

## Before you report an AI traffic number

- [ ] Search your source list for `chatgpt`, `openai`, `perplexity`, `claude`, `gemini` and `copilot`, and note every row outside the AI channel.
- [ ] Confirm whether your tool reads `utm_source`. If it does not, add the tagged rows by hand or with a custom channel.
- [ ] Check that your redirects keep the query string. A redirect that drops it removes `utm_source=chatgpt.com` before your tracker runs.
- [ ] Report Google AI Overviews and AI Mode as search, and say so next to the AI figure.
- [ ] Compare whole weeks under the same channel rules. When a tool adds assistants to its list mid-period, visits move between channels with no change in traffic.

> [!TIP]
> Start with the first box. In GA4 it takes a minute, and the `chatgpt.com / (not set)` row, if you have one, is ChatGPT traffic that the AI Assistant channel missed.
