AI search4 min read
Which AI assistants send paying customers
How to tell ChatGPT, Perplexity, Claude and Gemini visits apart, and tie each one to revenue.
The question that matters
More people now find products by asking an assistant instead of searching. Some of them click through. The question that matters isn't how many visits each assistant sends. It's which ones send people who pay.
We won't tell you which assistant converts best. We don't know for your site, and nobody else does either. What we can show is how to measure it on your own traffic, so the answer is yours and not an average from someone else's.
Step one: recognise the visit
Many assistants open links in a way that passes a referrer, so the browser tells us where the visitor came from. atrby matches that host against a list:
| ChatGPT | chatgpt.com, chat.openai.com |
|---|---|
| Perplexity | perplexity.ai, www.perplexity.ai |
| Claude | claude.ai |
| Gemini | gemini.google.com |
| Copilot | copilot.microsoft.com |
| Others | DeepSeek, Grok, You.com, Poe and Meta AI |
Some assistants also tag the links they show. A visit with utm_source containing chatgpt, perplexity or claude counts as AI too, even when the referrer is missing.
Every matched visit gets the AI channel. It sits next to search, social, referral, email, paid and direct, so you compare like with like. There's nothing to set up.
What you can't see
Be clear about the gaps before you trust the numbers:
- If an assistant strips the referrer and adds no UTM tag, the visit looks like Direct. No analytics tool can recover it.
- If someone reads an answer, then types your domain by hand later, that's Direct too.
- AI answers shown inside Google search send visitors with a Google referrer, so they count as search, not AI.
So treat the AI channel as a floor. The real number is at least this, possibly more.
Step two: carry the source to the payment
Knowing a visit came from Perplexity is half the job. The other half is linking it to the money.
The atrby script remembers how each visit started: the referrer, the landing page and any UTM tags. It keeps that for the life of the tab, so a visitor who lands from Claude, reads three pages and then checks out still carries the Claude source at checkout.
At checkout you read the visit id and pass it to your payment processor:
- In the browser, call
atrby.ids(). It returns{ atrby_sid, atrby_site }. - On your server, put those ids in the checkout metadata. On Stripe that's
metadataandsubscription_data.metadata, so renewals are credited too. - When the payment webhook arrives, atrby reads
atrby_sid, finds the visit, and credits the payment to its source.
The revenue docs show the code for each processor.
Step three: cover people who pay later
Plenty of people don't buy on the first visit. They ask ChatGPT for options on Monday, sign up for a trial, and pay two weeks later from a bookmark. Without a link between the two, that payment lands on the later visit, usually Direct.
Call atrby.identify(user.id) when someone signs up, and add atrby_uid with the same id to your checkout metadata. If the payment's visit id is unknown or older than 90 days, atrby falls back to the user id and credits the visit where you called identify. Call it once, at sign-up, to keep the credit with the visit that brought them in. Details are in identify users.
A payment with neither id is still counted, labelled Unattributed. We don't guess.
Step four: read the answer
Open AI traffic in the app. It shows AI visitors and AI revenue for the period, and a table of assistants with visitors, revenue, conversion rate and revenue per visitor for each one. That table is the answer to the question in the title, for your site.
A few ways to read it:
- Revenue per visitor is the fairest comparison. An assistant that sends ten visitors and one sale can beat one that sends a hundred and none.
- Compare with your other channels. The Revenue screen breaks revenue and customers down by channel and source, with the previous period alongside. If AI earns more per visitor than search, that's worth knowing.
- Look at where they land. On the Overview, filter to the AI channel and switch Pages to Entry. Assistants often link deep, to a docs page or a comparison, not your home page.
- Wait for volume. A handful of payments isn't a pattern. Look again after a few weeks.
The other half: crawlers
Visits are the people. The AI bots that read your pages so assistants can quote them are a separate thing. They don't run JavaScript, so you report them from your server. The same AI traffic screen shows which bots fetch which pages, split by whether they're answering a question, building a search index or collecting training data. Crawler hits are never billed. Setup is in AI traffic and crawlers.
Put the two side by side and you can see the whole path: which pages AI bots read, which assistants send people, and which of those people pay.