Why a single answer tells you nothing
Answer engines are non-deterministic and localised. The same question asked twice from the same city returns different brands in different orders; asked from another country it returns different brands entirely. Any method that screenshots one answer and calls it visibility is measuring the weather at one moment.
The prompt set
Start from the questions a buyer actually types at each stage: category discovery ('best X for Y'), comparison ('A vs B'), and validation ('is A reliable'). Twenty to forty prompts per category is enough to see structure. Keep them stable for months; you are building a time series.
Capture, by engine and by country
Capture from the consumer interface, not the model API, because citations and web-search behaviour only exist there. Capture from the countries you sell in, because localisation changes the answer. We built the LLM Scraper API for this step: it returns what a real user sees in ChatGPT, Gemini, Perplexity, Copilot and Google AI Mode, from a chosen country, with citations extracted.
{
"engine": "perplexity",
"country": "IT",
"prompt": "best residential proxy provider for e-commerce monitoring",
"runs": 5
}
Extract and score
For each answer record: brands mentioned and in which order, domains cited, and sentiment per brand. Aggregate per prompt across runs: share of answers mentioning you, average position, citation share. Report ranges, not points.
Telling a model update from noise
Plot weekly share of voice with confidence bands. A step change that persists two weeks across several prompts is a model or index update; a one-week spike is noise. Annotate known model release dates on the chart.
What to do with the result
Citation share is the actionable number: the domains an engine cites for your category are where your content needs to be. Content gaps show up as prompts where competitors are recommended and you are absent.