You did the GEO work and it shows. The client turns up in a third of relevant ChatGPT answers and the trend line in Profound points the right way. Then on the monthly call the client asks what revenue that produced, and you have nothing to point at in their GA4. The buyers are in there, they're just filed under Direct.
That's the gap this article is about, and it's the difference between a GEO engagement that renews and one that gets read as a cost center.
Profound, Peec and Otterly are good at what they do, which is presence. They tell you which prompts surface the brand, how often, in what position, next to which competitors. What none of them can tell you is whether any of those answers produced an order, because they don't sit on the client's site and they never see a transaction. So the GEO report says share of answer is up 40 percent, the client's finance person asks what that's worth in money, and from the tool side the honest answer is nobody knows.
That's not a flaw in the tools, it's a boundary. Everything past the click has to live on the client's site and server, and that build is what I do.
When someone clicks through to the site from ChatGPT, Perplexity, Gemini, Copilot or Claude, the click often arrives with no referrer. Depending on the assistant and the platform, measurements put that no-referrer share anywhere between a third and 70 percent. GA4 gets a session with no source, so it files it under Direct. The buyer your GEO work produced looks identical to someone who typed the URL from memory.
GA4 did ship a native AI Assistant channel in May 2026, but it only classifies traffic going forward, skips engines including Perplexity, and leaves AI Overviews clicks inside Organic Search, so it can't give you a before-and-after view of the engagement.
I went through the GA4 mechanics in more depth in Your ChatGPT Traffic Is Hiding in Direct if you want to sanity-check a client's property yourself.
The build has a clicked side and a no-click side, and the report has to keep them separate.
The clicked side starts with a custom channel group in GA4. Unlike the native channel, a custom channel group applies retroactively to data the property has already collected, and it can cover the engines the native definition skips. For an agency that's usually the first useful artifact of the whole exercise: an honest view of AI-referred traffic across the months before and after the GEO work started, pulled from data that was sitting there all along.
On top of that goes a server-side layer. I run it on server-side GTM, usually through Stape. It detects AI assistant referrers and UTMs where they survive, and persists the attribution first-party so it survives longer than a normal browser cookie would. Conversions then flow into the custom AI channel in GA4 and into Meta CAPI, deduplicated against the browser pixel so nothing counts twice. In practice this recovers roughly half of the AI clicks that are currently invisible. I don't promise a fixed percentage and I'd be careful with anyone who does. Safari's tracking prevention doesn't care that a cookie was set server-side. EU traffic runs consent-gated under Consent Mode v2, since a server-set cookie is still a cookie. And you can't force UTMs into a URL a model writes on its own, so the edges of this stay probabilistic no matter who builds it. The clicked layer is hard data with honest edges, and the report says so.
The hostname lists and the sGTM configuration stay out of this article on purpose. Keeping that current as engines change is a fair part of what clients pay for.
A big share of AI influence never produces a click at all. Someone asks an assistant for the best option in the client's category, sees the brand in the answer, closes the tab, and buys a week later through branded search or by typing the URL. There is no per-person attribution for that. I can't do it and neither can any vendor, whatever their deck says.
In aggregate it is measurable. A post-purchase survey asking where the buyer first heard about the brand, with an AI assistant option in the list, read alongside branded search lift over the engagement period. Those numbers go into the report labeled modeled and directional, and they hold up fine in that role because counted numbers sit right next to them.
Two lines, kept apart.
Counted: sessions and conversions attributed to AI engines through the custom channel group and the server-side recovery. Real orders with a mechanical reason for the attribution, which is why they survive scrutiny.
Modeled: survey-attributed share of new customers plus branded search lift. Labeled modeled every time it appears and never summed into the counted line.
An agency reporting this way has an answer to the revenue question that a skeptical CFO can poke at without anything falling over. The client sees the visibility graph and a revenue number in the same document with a defensible link between them, and that's the point where GEO stops being the line item someone questions every quarter.
I do this under the agency's name when that's the arrangement. The client sees your report, I build what's underneath it.
GEO and SEO agencies whose clients have started asking the revenue question, and in-house SEO leads who need to defend an AI visibility budget with something firmer than share of answer. If your visibility numbers are good and the client's GA4 says nothing happened, that gap is what I fix. Write me through rytisbalys.com and I'll start by looking at what the client's property already shows.
No. They measure whether and how a brand appears in AI answers. Connecting those answers to orders needs tracking on the client's own site and server, which is a separate build.
Partly. A custom GA4 channel group applies retroactively to referrer-carrying sessions the property already collected, so past AI traffic gets labeled. No-referrer clicks from before the server-side layer went in stay unrecoverable.
Only partly. It classifies traffic forward-only, skips engines like Perplexity, Claude and Meta AI, and leaves AI Overviews clicks inside Organic Search. A custom channel group applies retroactively and covers more engines.
Not per person, and no vendor can. In aggregate yes, through a post-purchase survey with an AI option and branded search lift, always labeled as modeled, never mixed into the counted line.
I build this proof layer for agencies, under your name when that is the arrangement. If a client has started asking the revenue question, send your numbers below and I will tell you what their GA4 is most likely hiding, no charge. If their setup already answers it, I will say so.
or email work@rytisbalys.com · every rated job 5.0 · verify on Upwork