Most GEO discussion happens on the content side: how to write, how to structure, how much schema markup matters. The measurement side is largely empty. When a client asks "how much traffic are we getting from ChatGPT?", the answer usually lands at one of two extremes — someone points at a referral row in GA4 and closes the topic, or someone says "it can't be measured" and moves on. Both are incomplete.
The workable approach is to split the measurement space into three layers. The first layer is genuinely measurable: visitors who clicked through to your site. The second layer is testable: whether you appear inside the answers themselves. The third layer is unmeasurable: the user who reads the answer, never clicks, remembers your name, and arrives via direct traffic two weeks later. Any metric that pretends to quantify that third layer is fabricated.
How do you separate answer-engine traffic in GA4?
Clicks from answer engines land in GA4 as ordinary referral traffic, meaning the source field carries a domain name. In practice, these are the sources you will see:
- chatgpt.com and chat.openai.com — clicks from the OpenAI interface
- perplexity.ai — clicks from source lists and inline citations
- gemini.google.com and bard.google.com — the Gemini interface
- copilot.microsoft.com and bing.com — Copilot answers, sometimes mixed with organic Bing
- claude.ai — clicks through the Anthropic interface
The cleanest way to group these is a custom channel group under Admin > Data settings > Channel groups. Build the condition as "source matches regex" or "source contains one of" and list the domains above. Name the group something explicit — "AI Assistants" or "Answer Engines" — and it will appear as its own row in Traffic acquisition, separate from organic and direct. Note that custom channel groups in GA4 apply going forward only; to see historical data you need a source-based segment in an Exploration report.
Search Console will not help here. Google includes clicks from AI Overviews in standard organic performance reporting without offering a separate breakdown. You cannot isolate the effect of AI Overviews directly; you can only infer it indirectly, by watching query clusters where impressions climb while click-through rate falls.
How reliable is that referral data?
Short answer: the direction is right, the volume is understated. There are a few concrete leakage points.
First, mobile apps. When you tap a link inside the ChatGPT iOS or Android app, an in-app browser opens and referrer information is not always passed along. Those sessions accumulate in GA4 as "direct / none". Second, users copying a URL out of an answer and pasting it into the address bar — direct traffic again. Third, referrer headers trimmed by privacy settings and browser policies.
The practical consequence: if you see an unexplained rise in direct traffic and it overlaps with the period in which you started gaining visibility in answer engines, connecting the two is reasonable. But write it into the report as "estimated contribution", not as measured data.
How do you test whether you get cited?
Counting clicks is the easy part. The real question is whether you appear inside the answer. The only reliable way to know is to run queries on a schedule — manually or with automation — and log the output. Here is how we set it up:
- Build a fixed set of 30–60 queries. Include three types: category queries ("how to choose a performance marketing agency"), problem queries ("why is my Google Ads cost per conversion rising"), and branded queries ("what does Digitarius do").
- Run every query on at least three engines: ChatGPT with search enabled, Perplexity and Gemini. Use a private window or a clean session, because results can be shaped by conversation history and account memory.
- Record three things per run: does your brand appear in the answer text, is your URL in the source list, and does the substance of the answer match your content or a competitor's.
- Log everything in a date-stamped sheet and take screenshots. Answers drift; you may not reproduce the same output two weeks later.
- Repeat monthly, or every two weeks during active campaign periods. A single measurement means nothing; the trend means everything.
The metric that falls out of this is simple: in what percentage of your query set do you appear. If that share moves from 12% to 28% over a few months, something real has happened. Resist collapsing it into one "visibility score" — report category queries and branded queries separately, because they behave under completely different dynamics.
Tools that automate this work are starting to appear. Use them, but know three things: their sampling methods are rarely transparent, engine output varies by geography and session, and none of them measure the effect of the answer on the user. Cross-check whatever number a tool gives you against your own manual test a few times a year.
What does movement in branded search tell you?
The best proxy for zero-click visibility is branded search demand. The logic: if someone asks an assistant "which agencies work in this space" and sees your name in the answer, their next move is very likely to search that name on Google. That behaviour leaves a trace in Search Console and Google Trends.
Three signals worth tracking:
- Impression and click trend for branded queries in Search Console — build the filter around your brand name and its common misspellings.
- Share of new users within direct traffic — growth driven by first-time visitors is far more meaningful than growth from your existing customer base.
- A "how did you hear about us" field on your forms — unglamorous, but the most honest data source you have. Add "ChatGPT / AI assistant" as an option; the response count may surprise you.
None of these is proof on its own. If all three move in the same direction and your citation rate rose in the same period, you have reasonable ground to connect them.
How do you report what you cannot measure?
This is the most frequently skipped part of the framework. A GEO report should have three distinct sections, and they should never be blended.
Measured: the answer-engine channel group in GA4 — sessions, new users, conversions, engagement time. AI crawler hits from server logs. This data is definite and reported as-is.
Tested: citation rate across the query set, frequency of appearance in source lists, competitive comparison. This is sample data, so write the methodology into the report — how many queries, which engines, which date — so nobody misreads the number three months later.
Not measurable: how many users read the answer without clicking, how your positioning inside an answer shapes perception, how many people saw you and chose a competitor. This section does not stay empty — you write "no data available in this area". Telling a client that is both more honest and, over time, more credible than handing them an invented indicator.
Logs are the complementary half of this picture. From user agents such as GPTBot, OAI-SearchBot, PerplexityBot, ClaudeBot and Google-Extended you can extract which URLs are being crawled and how often. That is not a click, but it shows the input side: a page that never entered the system has no chance of appearing in an answer. Heavy crawling with no citations points to a content problem; no crawling at all points to a technical access problem or a robots.txt rule.
How long does the setup take?
The GA4 channel group is a ten-minute job. Building the query set takes half a day, and the first round of measurement another day. Establishing a repeatable log analysis flow takes a few days more. So roughly two weeks of work gives you a baseline you can compare against three months later.
Timing is the critical part: take the baseline before you start GEO work, not after. Otherwise, six months in, you hold absolute numbers with no way to say how much of the change came from your own intervention. Every GEO project that starts without measurement ends as anecdote.