A year ago the first question about any analytics tool was whether it could see AI traffic at all. That question has mostly been answered. Google Analytics 4 now has an AI Assistant channel in its default channel group, PostHog has an AI channel type, and Plausible groups known assistants under AI Assistants. Seeing that a visit came from ChatGPT is quickly becoming table stakes.
So the buying question has moved from "does it see ChatGPT" to "what does it do with the visit once it has seen it": how sure it is, what the visit earned, what the crawlers did weeks earlier, and whether you can get the numbers out. Here are twelve questions that separate tools on those points. Each has an answer you can check in the documentation or a one-week trial, and the useful answers are always specific.
Detection: what a "ChatGPT visit" actually means
1. Which assistants does it name, and from which signals? There are three honest signals for a human visit from an assistant: the referrer header, UTM tags such as utm_source=chatgpt.com, and the user agent. Ask for the list of assistants and ask how a new one gets added. An assistant that launched last month is a good test.
2. Does every visit carry a confidence and a method? A label with no confidence treats a clean referrer and a weak hint as the same thing. You want to be able to filter to the visits the tool is sure about, and to see whether a visit was named by its referrer or by its UTM tag when two reports disagree.
3. What happens to visits that arrive with no referrer? Many assistant clicks reach you with nothing attached (the mechanics are in the referrer is gone). Ask the vendor directly what they do with those visits and what their answer rests on. A tool that leaves them in Direct is being honest about the evidence. A tool that claims to recover them should be able to tell you how it checked that claim.
Money: whether the revenue figure survives a finance review
4. Which payment providers connect natively, and what do you have to build? "Supports Stripe" can mean a native connection that reads your payments, or an event you send from your own code. Both work; they differ in who maintains it.
5. How are refunds handled, and on which date? A refund can rewrite the original day or land on the day it happened, and the choice changes every historical chart. We argue for the second in refunds belong on the day they happen. Whatever the vendor chooses, they should be able to state it in one sentence.
6. Which currency do you report in, and at which day's rate? If you sell in more than one currency, ask whether each order is converted at its own date's rate and whether a multi-day total is converted day by day. Converting a month's total at today's rate reprices your history every time you refresh.
Twelve questions, and what a useful answer sounds like
A specific answer names a mechanism you can test. A vague answer names a feature.
| # | Question | A specific answer | A vague answer |
|---|---|---|---|
| 1 | Which assistants, from which signals? | A named list, matched on referrer, UTM and user agent | All major AI tools |
| 2 | Confidence and method per visit? | A score and a method on every row, filterable | Industry-leading accuracy |
| 3 | Visits with no referrer? | What happens to them, and how that was checked | We see everything |
| 4 | Native payment providers? | The named providers, and what you build for the rest | Integrates with your stack |
| 5 | Refunds? | Netted out, and the date they land on | Revenue is accurate |
| 6 | Currency? | Converted per order at that day's rate | Multi-currency support |
| 7 | Crawler logging? | Where the log comes from: server, edge or none | Full bot visibility |
| 8 | Crawler verification? | IP ranges, reverse DNS, and the unverified share | Advanced bot detection |
| 9 | Visibility engines? | Named engines, the surface queried, runs per prompt | Track every AI engine |
| 10 | Retention? | A number of months, per report type | Long-term storage |
| 11 | Access from code? | API, MCP, CLI and webhooks, with write gating | Open platform |
| 12 | Billing unit and limit? | The unit, the allowance, and paused, degraded or billed | Flexible pricing |
Crawlers and visibility: the part a browser script cannot see
7. Does it log AI crawlers at all, and from where? A crawler does not run your tracking script, so a browser-only tool cannot see a crawl. Crawler logs come from your server, your CDN or an edge integration. Some tools deliberately filter crawlers out of their reports: Plausible, for example, says known AI crawlers are filtered so referral traffic is not mixed with automated requests. That is a reasonable design for a traffic report; it just means crawler analysis lives somewhere else.
8. How is a crawler verified? A user agent is a claim that anyone can type. Google documents verification by reverse DNS and by its published IP ranges, and OpenAI publishes IP range files for its crawlers. Ask which of those checks the tool runs, what share of your crawls it could verify, and what it does with a request that claims to be GPTBot and fails the check. The runbook covers where each method silently fails.
9. For AI visibility, which engines, through which surface, how many runs? Asking a model through its API is not the same as reading the consumer app (the difference matters), and one run per prompt is not a measurement (why it is a range). A good vendor names the engine, the surface and the number of repetitions behind every rate.
Access and cost: what happens in month thirteen
10. How long is the data kept, and for which reports? Year-over-year comparison needs more than twelve months. GA4, for example, lets a property keep user-level data for 2 or 14 months, and that setting affects explorations and funnel reports but not the standard aggregated reports. Retention is often per report type, so ask per report.
11. Can you reach it from code and from an assistant? A REST API, an MCP server for assistants such as Claude, a CLI and outbound webhooks are four different ways out. If an assistant can change settings through the tool, ask what stops it doing so without asking you first.
12. What is the billing unit, and what happens at the limit? Pageviews, events, sessions and visitors produce very different bills for the same site. Then ask what the limit does. DataFast, to take one documented example, includes 100,000 accepted crawler requests per account, resets that allowance with the billing cycle, and pauses bot traffic ingestion when it is reached while normal analytics keep working. Paused, degraded and billed are three different contracts, and a crawl quota measures something specific.
Run three tests before you sign
Three tests in a trial answer these better than any documentation.
Click your own link. Ask ChatGPT and Perplexity a question that surfaces your site, click through, and find that visit. Check which assistant it was given to, how confident the tool was, and how long it took to appear.
Refund a test order. Buy something in test mode, refund half of it the next day, and look at both days. You will learn the refund date rule and whether counts and revenue moved separately.
Read your crawler log for one page. Pick a page you know is crawled and see whether the tool shows the crawler, whether it verified it, and whether the count matches your server log.
For our own answers, side by side with the tools teams most often run today, see the comparison pages.
Frequently asked
01What should I look for in an AI traffic analytics tool?
02Does Google Analytics 4 track AI traffic?
03Why does the billing unit matter so much?
Sources and further reading
- 01Default channel group, Google Analytics Help
- 02Data retention, Google Analytics Help
- 03Channel type, PostHog Docs
- 04Known bot traffic exclusion, Google Analytics Help
- 05Track AI traffic, Plausible Analytics
- 06Bot traffic tracking, DataFast Docs
- 07Verifying Googlebot and other Google crawlers, Google Search Central
- 08Overview of OpenAI crawlers, OpenAI

