Someone asks whether ChatGPT is sending them customers. The honest answer today is that you can measure part of it, you can't measure the rest, and telling those two apart is most of the skill.
This guide configures both free tools to report what they can, then spends its last step on what they can't. That order matters. Configure first and interpret later and you'll quote a number that's confidently wrong, which is worse than having no number at all.
Every screen here's a recreation, not a screenshot. Both tools sit behind a Google login and block automated capture. Every procedural claim links Google's own documentation, so you can check any of it against the live interface rather than taking my word for it.
The worked example is this site, rmcm.io, on a property with barely any traffic. That's deliberate: a guide demonstrated on impressive numbers teaches you nothing about reading a small one, and a small one is what most people have.
Learn what you can't see, before you configure anything
Analytics decides where a visit came from by reading the referrer, the bit of information a browser passes along saying which page sent you. With no referrer and no campaign tag on the URL, the session is filed as Direct, in the same bucket as somebody typing your address from memory.
AI assistants break this constantly. A link tapped inside an assistant's phone app isn't a browser following a link between two web pages, so frequently nothing is passed at all. Those are real people who arrived because an assistant recommended you, and they land in Direct with nothing in the session to match a rule against.
So decide now how you're going to talk about the number you're about to build:
- What you'll measure is a floor. Real AI traffic is that number plus an unknown amount hiding in Direct.
- The floor is still useful, because it's measured the same way every month. A floor that doubles is a real signal even if you never learn the true total.
- Anyone quoting you a precise total for AI traffic is either using a tool with the same blind spot or hasn't thought about it.
The other half of the honesty is the opposite problem. Clicks from Google's AI Overviews and AI Mode aren't in this bucket at all. Google's own channel definition puts them under Organic Search, because they're still clicks from a Google results page. That's a separate reading, and step 7 is where you take it.
How to know it worked You can say out loud why your AI number is a floor and not a total, and you know that AI Overview clicks aren't counted in it. If you can't explain both, the rest of this guide produces a number you'll misquote.
Common trap Building the tracking first and reading up on the caveats later. By then the number is already in a report you sent someone, and walking it back is harder than framing it correctly the first time.
Check the native AI Assistant channel
Start here, because it may already be done for you. On 13 May 2026 Google added an AI Assistant channel to the default channel group, with no configuration required at all.
The mechanism is worth understanding rather than just switching on. Per Google's channel definitions, when an incoming referrer matches Google's internal list of AI assistants, Analytics rewrites the session's traffic source: the medium becomes ai-assistant and the campaign becomes (ai-assistant). The channel rule itself is then simply that the medium exactly matches ai-assistant.
That's a two-part mechanism and only the second part is documented behaviour you can rely on. The list driving the first part is Google's, it isn't published in full, and you can't edit it. Hold that thought for step 3.
To find it: open Reports, then Acquisition, then Traffic acquisition, and make sure the dimension is set to the session default channel group. Look for an AI Assistant row.
ai-assistant1How to know it worked You can find the AI Assistant row in Traffic acquisition, or you can confirm it is absent because there were no qualifying sessions in your date range. Both are valid outcomes. Widen the range to twelve months before concluding you have none.
Common trap Treating an empty AI Assistant row as proof that no assistant sends you anything. It only proves no session arrived with a referrer Google recognises, which is a much narrower claim.
Find what the native channel leaves out
Now the part that most write-ups get wrong, including some published after the feature shipped.
Google's channel definition describes AI Assistant as covering arrivals "from sources like ChatGPT, Gemini, Deepseek, Copilot, or Grok." Google's own release note for the same feature instead names "ChatGPT, Gemini, and Claude."
Those two pages don't agree, and they're both Google's. Take that seriously rather than picking whichever list you prefer. It tells you the recognised set is being maintained quietly and that no published list is a reliable description of what your property is actually doing today. Perplexity, worth noting, appears on neither.
So check your own property instead of trusting either page. Open Traffic acquisition, switch the dimension to Session source / medium, and search for each assistant by name. What you're looking for is which of them arrive as ai-assistant and which arrive as plain referral.
| Arrives from | Lands in | Caught by |
|---|---|---|
| chatgpt.com | AI Assistant | Native channel |
| gemini.google.com | AI Assistant | Native channel |
| perplexity.ai | Referral | Custom group only1 |
| Google AI Overviews | Organic Search | Neither, by design2 |
| Assistant mobile app | Direct | Nothing3 |
How to know it worked You have looked up each assistant in your own Session source / medium report and can say which lands in AI Assistant and which lands in Referral. Not which list Google published. Which your property does.
Common trap Copying a source list out of a blog post written the week the feature launched. The recognised set has already changed once. Your own report is the only current source.
Build a custom channel group by source
A custom channel group is your own set of rules applied on top of the same session data. It doesn't replace the default group, it sits alongside it as a second lens.
Go to Admin, then Data display, then Channel groups, and create a new group. Add one channel, name it something you'll recognise in a report months from now, and give it a single condition: Source matches regex, with the pattern in the copy block below.
Match on source, not medium. This is the whole design of it. The native channel keys off a medium Google controls, so matching the source directly is what lets you catch Perplexity and anything else Google hasn't added yet, and it keeps catching them when the recognised list changes again.
Two limits from Google's documentation, worth knowing before you start rather than after. A standard property allows 2 custom channel groups, with up to 50 channels in each. And custom channel groups apply retroactively, so the group you create today reports on traffic you already received. You don't have to wait to find out whether it worked.
How to know it worked The group is saved and selectable as a dimension in Traffic acquisition. Because it applies retroactively, any AI traffic you have ever received should appear straight away. If it reads zero and you know Perplexity sent you something, go to step 5 before assuming the regex is wrong.
Common trap Using the second of your two custom groups on a first attempt you aren't happy with. There are only two on a standard property. Edit the one you have rather than creating another.
Order the AI channel above Referral
This is the step that quietly defeats people, and it's one drag.
Google's rule is exact: "Traffic is included in the first channel whose definition it matches given the current order of channels in the group." Rules are read top to bottom, and the first match wins outright.
Perplexity arrives with a medium of referral. If a Referral channel sits above your AI channel, every Perplexity session is claimed by Referral before your rule is ever evaluated. Your AI channel then reads zero, your regex is perfect, and nothing about the interface tells you why.
Fix it in the channel group editor: click Reorder, drag your AI channel above Referral, and click Apply. Saving the group isn't the same as applying the order.
How to know it worked Your AI channel is above Referral in the reorder screen, you clicked Apply, and the channel now reports the sessions you could see in Session source / medium in step 3. Those two numbers should agree. If the channel is empty and the source report isn't, the order is still wrong.
Common trap Rewriting the regex over and over because the channel stays empty. The pattern is usually fine. It's being evaluated after a rule that already took the traffic.
Configuration is the easy half. Deciding what to do about a number this small is the part worth a conversation.
SEE THE SEARCH ROADMAPCross-check against session source and medium
Never trust a channel you just built without checking it against the raw dimension underneath. Channel groups are rules on top of data, and a rule can be wrong in ways that look like an answer.
In Traffic acquisition, switch the dimension to Session source / medium and search for each assistant by name, over the widest date range you have.
Expect one source to appear as several rows. A single assistant can show up as referral, as ai-assistant and as (not set), depending on how each visit arrived. Add them up by hand. That total is what your custom channel should be reporting, and comparing the two is the actual test.
Three outcomes, and each means something specific:
- They match. The setup is correct. Move to step 7.
- The channel is lower. Ordering, or a source your regex misses. Back to step 5.
- Both are zero. Also a real result, and the most common one for a local business. It doesn't mean the setup failed.
How to know it worked You have two numbers arrived at two different ways, and they agree. A channel total nobody has ever cross-checked is a number you shouldn't put in front of a client.
Common trap Checking only the last 28 days on a site that gets a handful of AI visits a quarter. At this volume the default date range is why the report looks empty.
Add the Search Console half
Everything so far measures visits that arrived. Search Console answers a different question: whether Google is showing your pages inside its AI features at all. You can be cited constantly and receive very few clicks, and only one of those two things has been measurable until recently.
On 3 June 2026 Google launched generative AI performance reports in Search Console, covering AI Overviews and AI Mode. Find it under Performance, as a separate report from the main Search results one.
Read the scope before you read the chart. Per Google's documentation, the report gives you impressions, pages, countries, devices and dates. There is no clicks metric and no position metric. Google has said it may add metrics over time, which is a fair way of saying they aren't there now.
So this is a visibility report, not a traffic report. It can't be added to your Analytics number, because the two count different events on different surfaces. Quote them as two figures, always.
The report is also still rolling out to a subset of websites. If it isn't in your property, nothing is broken and there's no setting to switch on.
- Impressions
- Yes 1
- Clicks
- No
- Position
- No
If you don't have the report yet, there's a fallback that works on any property and is worth doing regardless: look at the shape of the queries you already appear for. People type short phrases into a search box and full sentences into an assistant, so query length is a rough proxy for AI-shaped demand.
In the normal Performance report, filter queries by the regex in the copy block below, which matches anything of roughly seven words or more.
Here's that filter run on this site, over the whole life of the property, 19 May to 10 August 2026:
| Query | Impr. | Position |
|---|---|---|
| can you measure how much traffic and how many leads come to your website via chatgpt and other ai assistants? how do you set that up? | 3 | 50.71 |
| tool to check if chatgpt recommends my business | 3 | 12.32 |
| how do i know if ai recommends my business | 1 | 11.0 |
| ai traffic analytics | 6 | 93.3 |
| how to get traffic from ai | 2 | 77.0 |
That's the whole argument for taking this reading. This property has never recorded a single AI referral session. On the impressions side it is being surfaced for five distinctly AI-shaped questions, and two of them are one position away from page one. Those are two completely different stories about the same site, and only one of them shows up in Analytics.
How to know it worked You can state your AI impressions and your AI referral sessions as two separate figures, and say which tool each came from. If you have merged them into one number, you have made the mistake this step exists to prevent.
Common trap Reading zero AI referrals as "AI ignores my site" without checking the impressions side. Being shown and not clicked is a different problem from not being shown, and it needs a different fix.
Write down one baseline and its limits
Everything before this was configuration, and configuration decays quietly. This step is the one that still has value in a year.
Write down one dated line with both numbers and what you know is missing from them. Use the log template below, keep it somewhere boring, and add a line once a month.
Why a written log rather than just opening the reports:
- The tools keep changing. Two of the surfaces in this guide launched inside the last four months. A number recorded with the date and method that produced it survives the next change. A number in a dashboard doesn't.
- Small numbers only mean something in sequence. Four sessions is meaningless. Four after three months of zero is the thing you were watching for.
- It stops the number growing in the retelling. Written down with its caveats attached, it stays honest.
Then leave it alone. Monthly is right for this. Checking weekly on a small site produces noise you'll mistake for a trend.
How to know it worked One dated line exists, with both figures, the date range they cover, and the known gaps written next to them. A calendar reminder for next month. That's the finished state.
Common trap Building a dashboard instead of writing a line. A dashboard shows you today's number and quietly loses the history of how it was measured, which is the only part that matters when the platform changes underneath you again.
Copy and paste
Three artifacts. The first two are the patterns referenced above, the third is the thing you actually keep.
.*chatgpt.*|.*openai.*|.*perplexity.*|.*gemini.*|.*claude.*|.*copilot.*|.*deepseek.*|.*grok.*|.*mistral.*|.*you\.com.*
Paste it into a single channel with the condition Source matches regex. It deliberately overlaps with what the native channel already catches, so the custom group reads as one complete figure rather than a partial one you have to add to something else. Review the list whenever you take a reading, since the assistants worth naming change faster than the documentation does.
(\w+\s){6,}\w+
Search Console, Performance, filter Queries by Custom (regex) and paste that in. It matches queries of roughly seven words or more. It's a proxy and not a measurement, but on a small property it surfaces the real questions in about a minute.
AI VISIBILITY LOG ......... [your site]
DATE ............ 2026-08-20
RANGE ........... last 90 days
REFERRALS (Analytics, custom channel group)
AI sessions ................... 0
Top assistant ................. none
Conversions from those ........ 0
IMPRESSIONS (Search Console)
Generative AI report .......... not available on this property
Conversational queries ........ 5
Best position among them ...... 11.0
KNOWN GAPS (do not delete this section)
- App-based assistant visits arrive with no referrer
and are counted in Direct. Referral figure is a floor.
- AI Overview and AI Mode clicks count as Organic Search,
not as AI. They are not in the referral number.
- Impressions and sessions measure different things.
Never add them together.
NEXT READING ..... 2026-09-20
The whole setup on one page
Where this stops
The configuration is genuinely DIY and it caps out fast. An hour, one regex, one drag, and you own it. Nobody should charge you for this part, and if you've got this far you're done with the part that has instructions.
What doesn't have instructions is the question underneath it, which is almost always the same one: the number is small, so what now. The answer depends on whether your customers have started asking assistants at all, what your competitors look like inside those answers, and whether the pages being surfaced are the ones that could convert. The rmcm.io read above is a fair example. Two queries at position 11 and 12 isn't a tracking problem, it's a content decision, and no report tells you which way to go.
If you want that read done properly rather than done by you, the Search Roadmap is the sprint that does it, and the free audit is the cheaper way to start. If you'd rather keep going alone, the honest next move is to test the recommendation side by hand: check whether ChatGPT recommends your business, then make the pages easier to quote.
Questions people ask
Do I still need a custom channel group now that GA4 has an AI Assistant channel?
Yes, for two reasons. The native channel matches on a medium that Google sets only when the referrer is on its own recognised list, and that list doesn't currently name Perplexity. Default channel groups also can't be edited, so you can't add anything to it yourself. A custom channel group that matches on source instead of medium catches the assistants Google hasn't added yet, and it keeps working when the list changes. Run both, and treat the gap between them as information rather than an error.
Does the Search Console generative AI report show clicks?
No. At launch it reports impressions, pages, countries, devices and dates, and there's no clicks or position metric in it. Google has said it is looking at adding metrics over time. That makes it a visibility report rather than a traffic report, so it answers whether AI features are showing your pages, not whether anyone came. Read it alongside your Analytics referral number rather than adding the two together, because they're counting different events on different surfaces.
I don't have the generative AI report in Search Console. Is something wrong?
Almost certainly not. Google said at launch that the reports were rolling out to a subset of websites for testing before wider release, so plenty of verified properties simply don't have the view yet. A site also has to receive enough impressions in AI features to have anything to show. In the meantime the fallback is to filter your normal Performance report for long conversational queries, which tells you what AI-shaped demand you're already being surfaced for even without the dedicated report.
Is it worth tracking AI traffic if my numbers are basically zero?
It's worth the one-time hour, and then almost no time after that. The configuration is what takes effort, and once it exists it keeps recording whether you look or not, so the cost of being early is an afternoon. The reason to do it now is that a baseline you set at zero is what makes the first real movement visible. Without it you find out months late, from a number you can't compare to anything. What isn't worth doing at zero is paying for a monitoring subscription.
How often does this setup need re-checking?
The configuration keeps working on its own, so the thing that goes stale is the list of assistants your regex matches, not the setup itself. Both of the surfaces in this guide launched inside the last four months, and Google's own two pages describing the recognised list already name different assistants. So when you take the monthly reading, spend one extra minute in Session source / medium looking for an assistant that has appeared and isn't in your pattern, and add it if you find one. The reading is monthly and the review rides along with it, which is cheaper than a calendar reminder nobody keeps.