Measure what the answer actually shows.
A practical protocol for evaluating AI visibility across six platforms: define the test, preserve the answer, check its sources and keep commercial outcomes separate.
Define the question before measuring the answer
This is our measurement protocol and a guide to reading our research. It is not a report of a newly completed six-platform test.
Choose the right business
For BeautyGEO, the target is a beauty-focused GEO service provider. An AI list of cosmetics factories measures a different market and cannot establish our agency visibility.
Name the exact surface
ChatGPT, Gemini, Copilot, Perplexity, Claude and Grok are separate platforms. Record the consumer application or API used, rather than rolling all search-enabled answers into one score.
Show the evidence level
Separate a proposed test, a completed observation, a verified source citation and a business outcome. Technical readiness and a submitted sitemap are useful checks, not observed AI recommendations.
Keep comparable runs together
A cohort is a group of runs that share the same declared test conditions. Branded prompts, discovery prompts and domain-filtered tests should not share a headline rate.
| Cohort | What the run can establish | Boundary |
|---|---|---|
| Consumer · discovery | The answer shown in the named consumer product for a buyer question, without supplying our brand or URL. | A dated sample under recorded conditions; not every user's answer. |
| Consumer · brand verification | How the product describes a named business and which facts or sources it returns. | The prompt supplied the name. Do not count it as unprompted discovery. |
| API · open search | The output of a specified model, endpoint and search-tool configuration. | Keep it separate from the platform's consumer application, even when the branding is shared. |
| Specified URL or restricted domain | Whether the selected tool can access and use a supplied page or permitted domain. | This is a retrieval diagnostic. Supplying the source removes the natural-discovery condition. |
| Publisher or analytics report | The impressions, citations, visits or events within that report's stated coverage. | A provider's aggregate search report is not a replay of each consumer answer and is not a lead count. |
Record enough context to interpret a repeat
A search switch set to “on” does not prove that a search ran. Some products choose when to search automatically; capture the visible activation or tool result.
Question & target
Keep the exact prompt, prompt version, language, buyer intent, target entity and canonical domain. Identify branded versus unbranded questions before running them.
Product & account
Record platform, consumer or API surface, endpoint, account state, plan or workspace context, and relevant memory or personalization settings. Use an account label, never credentials.
Time & location
Keep the observation timestamp with timezone, prompt and interface languages, country or region and how location was determined. If the location is unknown, label it unknown.
Model & retrieval
Record the displayed or requested model, returned model if exposed, mode, search setting, actual search activation, tools, versions and any domain or date filters. Hidden values stay unknown.
Round & outcome
Assign a run ID and independent round number. Keep completed, partial, blocked, error and not-run states, including the reason. Preserve failed attempts as well as successful ones.
Answer & sources
Preserve the complete answer where permitted, an evidence reference, and a capture or share link when available. Separate encountered sources, answer citations and owned-domain links.
Use a separate measure for each outcome
| Measure | Operational definition | Evidence to retain |
|---|---|---|
| Entity mention | The visible answer names the correct target business, including a verified alias. Count it once per answer; reject namesakes. | Exact answer text and an entity check. |
| Supporting citation | An answer citation supports a stated fact about the target. A third-party source can qualify; inspect the claim and source together. | Citation URL, related answer passage and support check. |
| Owned-domain link | A visible answer or source citation links to the target's verified domain. Record whether it is a source citation or an ordinary hyperlink. | Original URL, resolved destination and link type. Preserve the original before normalization. |
| Recommendation position | Position in an explicitly ordered recommendation list, if one exists. A passing mention has no recommendation rank. | The complete list and the rule used to identify order; leave rank blank when inapplicable. |
| Factual accuracy | A separately reviewed claim matches an attributable source within its scope and date. Correct entity identification alone is insufficient. | The specific claim, source, review result and unresolved qualification. |
| Visits, leads & revenue | A recorded visit, a qualified human inquiry and verified revenue remain separate business records. State the attribution window and deduplicate events. | Authorized analytics or CRM evidence. Use a reference from the answer log; do not sum the same sale across several answers. |
response.citations can contain sources encountered without being cited in the final answer. OpenAI web-search documentation · xAI citation documentation.Show the denominator and the missing runs
Rates need a declared eligible set
- For a mention rate: answers mentioning the correct target ÷ completed, eligible answers in the same cohort. Display the count n/N alongside the percentage.
- For an owned-domain citation rate: eligible answers with a verified owned-domain source citation ÷ completed, eligible answers in that cohort. Do not silently include ordinary links.
- Record how many runs were scheduled, attempted, completed and eligible. Report failures and exclusions with reasons, even when excluded from the rate denominator.
- If the declared question is about search-enabled answers, decide before testing whether actual search activation is required. Keep complete answers without a search in a separate reported group.
Unknown is not zero
- A completed, eligible answer with no target mention can have
brand_mentioned = 0. A blocked page, timeout or unperformed test cannot. - Use a run status and reason for unavailable data; leave unobserved numeric or yes/no fields empty. Partial captures are not complete answers.
- A missing source panel does not establish that no sources were consulted. State what the interface actually exposed.
- Do not combine platforms, API and consumer runs, countries or unequal prompt samples without publishing the grouping and weighting rule.
Repeat a defined test, then compare like with like
Freeze the baseline
Write the target, prompt set, cohorts, conditions, success rules and exclusions before collecting results. Use buyer questions appropriate to the business: agency selection for BeautyGEO; product or supplier selection for the relevant client.
Collect independent rounds
For a fuller assessment, plan at least three independent rounds per prompt under the declared conditions. Start fresh conversations and control available personalization. Repeated messages in one chat are not independent rounds. A smaller snapshot must say how small it is.
Check the evidence
Verify the entity, citation destination and claim support. Inspect API tool errors as well as HTTP status: a successful HTTP response can still contain a failed search. Retain the capture limits and reviewer notes.
Retest and explain changes
Record the site change, deployment date and model or product changes. Reuse the frozen conditions where possible. Describe differences as observed changes; a before-and-after result alone does not prove that our work caused them.
Start with an empty observation log
The download has column headers only. Each row you add should represent one actual attempted or scheduled run, including unsuccessful runs. It contains no observed answers, scores, client data or example success records.
Download the empty CSV template
| Field group | How to use it |
|---|---|
| Identity | Use cohort_id, run_id and versioned prompt IDs to connect each record to the declared test. |
| Conditions | Record the actual account, location, model, mode and search state. Use unknown for a hidden condition; do not infer it from the product name. |
| Evidence | Store permitted answer text or a controlled evidence reference. List URLs with a consistent separator, such as | , and preserve original links. |
| Scoring | Use 1 or 0 only for observed yes/no metrics. Leave missing observations blank and explain them in error_or_limitation. |
| Review & outcomes | Record reviewer, review date, publication permission and any authorized business-outcome record reference. Keep personal data and credentials out of public exports. |
Read public research within its published scope
Our current public studies contain selected records, excerpts or aggregate summaries. They do not provide a complete raw-response archive for every run. Use the dates, models, prompts and coverage stated on the individual page; missing evidence does not become verified because a page links to this methodology.
The AI Supplier Index studies supplier discovery. Our own AI visibility page concerns BeautyGEO. Neither page should be read as proof of client results, consumer visibility on an untested platform or a recurring test that has not been documented.
For a client engagement, agree the platforms, rounds, access, evidence delivery, retention and publication rights in the scope of work. Raw responses may be reviewed privately where access and permissions allow. Public publication requires a separate permission check and any redactions must be disclosed.
Provider references behind the distinctions
| Platform | Official reference | What to keep distinct |
|---|---|---|
| ChatGPT | Consumer web search · API search tools | Consumer account context, API configuration, retrieved sources and answer citations. |
| Gemini | Sources in Gemini Apps · API grounding | Gemini Apps, the API and Google Search AI surfaces. |
| Copilot | Bing webmaster guidelines · Developer grounding tools | Search/indexing eligibility, a developer agent's grounded response and an observed Copilot answer. |
| Perplexity | Agent API web search · Sonar migration | Consumer results, historical Sonar observations and the current API endpoint/model configuration. |
| Claude | Consumer web search · API web-search tool | Actual search activation, tool success and citations returned in the specific product. |
| Grok | API web search · Citation fields | Web retrieval, X retrieval, encountered sources and final-answer citations. |
Six-platform implementation guides → · Evidence and editorial policy →