Measuring AI Visibility: Metrics, Share of Voice and Attribution
- Level: Advanced
- #Metrics
- #GEO
- #AI Search
- #Advanced

To measure AI visibility (one of the axes of GEO) in a defensible way, use a fixed set of prompts, run each one several times and calculate frequencies: mention rate, citation rate with a link and share of voice, always with a margin of error. Position within the answer and "sentiment" are fragile. Attribution of visits is partial, which is why you combine GA4, Search Console and search engine reports with critical reading.
Quick summary
- Measure frequencies over a fixed set of prompts: mention rate, citation rate (with a link), share of voice and description accuracy.
- AI answers vary on every run. SparkToro found less than a 1 in 100 chance of the same list of brands repeating, and considers "ranking position in AI" a metric with no validity.
- Every rate needs a confidence interval. With 200 answers and an observed rate of 19%, the plausible range runs from about 14% to 25%.
- Attribution is partial: GA4 has the "AI Assistant" channel, Search Console blends AI features into "Web," and Bing measures citations but not clicks.
- There is no reliable public benchmark to cite. Compare against yourself over time, and against competitors on the same set of prompts.
This post assumes the landscape described in SEO, AEO and GEO: what is the difference and the question bank from prompts to test your brand's visibility.
How to read this post: if you are not technical, read the definitions, the example and the attribution section, and skip the formulas. If you are a professional, the sections on sampling, period comparison and KPIs carry what goes into the report.
Which metrics measure AI visibility?
Four metrics are enough for most cases, all calculated over the answers to a fixed set of prompts. The definitions below are market practice, not official standards; adjust and document yours.
mention_rate = answers that mention the brand / valid answers
citation_rate = answers with a link to your domain / valid answers
share_of_voice = brand mentions / sum of mentions of all tracked brands
accuracy = answers with a correct description / answers that mention the brand
| Metric | What it answers | Watch out for |
|---|---|---|
| Mention rate | "How often does AI talk about my brand?" | May be a from-memory mention, with no source |
| Citation rate | "How often does it use me as a source, with a link?" | Depends on the tool showing sources in that mode |
| Share of voice | "What is my slice among the brands in the category?" | Changes with the competitor list you choose |
| Accuracy | "Does it speak correctly about me?" | Requires classification with fixed criteria |
In plain English: think of a brand-recall survey. You ask 200 people "which brand comes to mind?" and count how many say yours. Here, the "people" are AI answers, and the math is the same.
What about position and sentiment?
They are the two most-sold and least reliable metrics. On position: based on 2,961 runs of 12 prompts in ChatGPT, Claude and Google AI, SparkToro states that the order of brands almost never repeats (less than 1 in 1,000), and that any tool delivering "ranking position in AI" is not reliable, according to the original study. The same research considers the visibility percentage across dozens to hundreds of prompts run multiple times reasonable.
On sentiment: if you classify it with another AI model, that judge also makes mistakes. If you are going to use it, manually audit a sample (for example, one in every ten classifications) and report the agreement rate.
For SEO professionals: if you need a notion of prominence, prefer metrics that are robust to exact order, such as "cited in the first sentence of the answer" or "cited as the main recommendation," defined in a written rule and applied equally to all brands.
How do I handle sampling and variance?
Treat each run as a draw and always communicate the uncertainty. The observed rate is an estimate of the true probability that the brand appears, and the confidence interval says how far off that estimate may be. For proportions, the Wilson interval works well with small samples:
from math import sqrt
def wilson(k, n, z=1.96):
p = k / n
d = 1 + z * z / n
center = (p + z * z / (2 * n)) / d
margin = z * sqrt(p * (1 - p) / n + z * z / (4 * n * n)) / d
return center - margin, center + margin
print(wilson(38, 200)) # (0.142, 0.250)
To plan the sample size, use the normal approximation, n = z² · p · (1 − p) / e², where e is the desired margin of error. With p = 0.2: a margin of ±10 percentage points calls for about 62 answers, and ±5 points calls for about 246. In the worst case (p = 0.5), it is 97 and 385. These numbers assume independent answers.
Three sources of variation the math does not capture:
- Correlation between repeats of the same prompt. Ten runs of the same prompt are worth less than ten different prompts. What supports the report is prompt variety. If possible, bootstrap by resampling prompts (not answers) to calculate the interval.
- Product changes. Model, search feature or interface updates change behavior. Record the date, tool, model and web search state in every round.
- Choice of prompt set. The rate holds for that set, not for "what people ask" in general. Document how the set was built.
In plain English: it is the same logic as the margin of error in election polls. Saying a candidate has 20% "with a margin of 5 points" means the true value could be between 15% and 25%. If the next month they have 24%, nobody knows whether they really went up.
How do I compare two periods?
Compare intervals, not just the numbers. If the intervals overlap heavily, the difference may be noise. For a formal check, use a two-proportion test and read the result with caution, because the correlation between repeats makes it optimistic. With 200 answers in each round and a rate near 20%, only differences above about 8 percentage points stand out from chance at 95%.
Hypothetical example: invoicing software
Hypothetical example: "Billwise," a fictional invoicing software for small businesses, uses 40 recommendation prompts run 5 times in ChatGPT, with search on: 200 answers per round.
- September round: the brand is cited in 38 answers (19%; range 14.2% to 25.0%). Total mentions of the tracked brands add up to 190 (Billwise with 38 and three competitors with 70, 52 and 30), so share of voice is 38/190 = 20%.
- October round: the brand is cited in 52 answers (26%; range 20.4% to 32.5%).
The difference is 7 percentage points. The ranges overlap, and the two-proportion test gives p ≈ 0.09, not significant at 5%. Even if it were significant, the correlation between repeats would make the conclusion more fragile still. The correct reading in the report is: "upward trend, still within noise; keep the prompt set and use the next round to confirm." Announcing "we grew 37%" would be imprecise.
How do I attribute visits and results to AI visibility?
With several sources combined, because none alone gives the full answer. The table summarizes what each delivers.
| Source | What it shows | What it does not show |
|---|---|---|
| GA4 "AI Assistant" channel | Sessions from assistants such as ChatGPT, Gemini, Deepseek, Copilot and Grok | Excludes Google's AI Overviews and AI Mode; Perplexity is not in the definition's list |
| Search Console | Traffic from Google's AI features, inside "Web" | There is no separate filter for AI |
| Bing Webmaster Tools (AI Performance) | Citations in Copilot and Bing summaries, pages and grounding queries (sample) | Clicks, position, placement within the answer |
| Brand-name search (Search Console) | Indirect signal that more people have come to know the brand | Does not prove the origin |
| "How did you hear about us?" question | The customer's own statement | Depends on being filled in |
The facts above come from the GA4 default channel definition, from Google's documentation on AI features (traffic from these features is reported in the Performance report, under the Web search type) and from the AI Performance announcement on the Bing blog.
How do I separate AI traffic in GA4, step by step?
- Open Admin > Channel groups and create a new group from a copy of the default one.
- Add an "AI - other" channel with the condition Source matches regex, for example
perplexity|claude|chatgpt|gemini|copilot, to cover what the default channel does not. The GA4 documentation shows an example regex for assistants and advises updating it when the list of assistants changes. - Reorder: traffic goes into the first channel whose rules it meets, so the new channel must sit above "Referral."
- Compare this channel's sessions, engagement and conversions with the others.
For SEO professionals: AI traffic tends to be small in volume and to have too little sample for conversion-rate conclusions. Avoid comparing rates with only a few dozen sessions, and prefer tracking the trend and the landing pages. Some visits may arrive with no referrer and fall into Direct, which underestimates the channel; treat the value as a floor, not a total. For the effect of AI summaries on clicks in general, see zero-click and AI Overviews.
Which KPIs go in the report?
Few, stable and with the uncertainty visible. A suggested monthly dashboard:
| KPI | Formula | Cadence | How to report |
|---|---|---|---|
| Mention rate (per tool) | mentions / answers | Monthly | Value and 95% interval |
| Citation rate with link | answers with a link / answers | Monthly | Value and interval |
| Share of voice | brand mentions / total mentions | Monthly | Same competitor list every time |
| Description accuracy | correct / citations | Monthly | List of errors found |
| AI channel sessions | GA4 | Monthly | Trend, not absolute value |
| Citations in Bing | AI Performance | Monthly | Most-cited pages |
| AI channel conversions | GA4 | Quarterly | Only with enough volume |
Include the measurement conditions in the report: number of prompts, runs, dates, tool, model and search state. Without that, the number is not auditable.
At Contentor, the Results page gathers Search Console data per project, and AI Visibility checks, for the questions you choose, whether ChatGPT cites the brand. AI Visibility covers ChatGPT only. For other tools, see the criteria in tools to monitor AI citations.
Frequently asked questions
What is the minimum sample size for a monthly report?
It depends on the precision required. For ±10 percentage points with a rate near 20%, about 62 answers; for ±5, close to 246. If you cannot reach that volume, report the wide range candidly, not a precise number.
Is share of voice in AI the same as in media or SEO?
No. The concept is similar (a slice among competitors), but here it is a slice of mentions in AI answers, for a specific set of prompts. Change the list of competitors or prompts and the number changes. That is why you should document the list and keep it stable between rounds.
Can I trust tools that show "position" in the AI answer?
With skepticism. SparkToro's research considers list position in AI a metric with no validity, given how much the order varies between runs. Prefer presence indicators, such as mention and citation rates, and ask the vendor how it handles the variation and how many runs it does per prompt.
How do I prove AI visibility generates revenue?
Carefully: GA4's AI channel shows conversions from traceable visits, but it underestimates the effect, because many people get to know the brand in AI and arrive later through direct search. Combine the channel, brand-name search and the "how did you hear about us?" question. Speak in terms of indications, not proven cause. See also how much GEO costs and what its ROI is.
Does Search Console separate Google's AI traffic?
No. Google's documentation says AI features, such as AI Overviews and AI Mode, are included in overall traffic and reported in the Performance report, under the Web search type. There is no specific filter. Estimate the effect by watching impressions and CTR by query type and comparing periods.
Next step
With the metrics defined, the next step is turning findings into prioritized actions, and the full roadmap is in GEO audit, step by step. If you have not built the prompt set yet, go back to prompts to test your brand's visibility.
Read also:
Prepare your content for AI answers
Create AEO/GEO briefs, entities, schema, and structured articles for Google AI Overviews, AI Mode, and traditional SEO.
Try Contentor freeStrengthen your authority for AI Search
Combine source-worthy content with contextual backlinks on vetted sites to reinforce trust, discovery, and topical authority.
View contextual backlinks


