SIGNALS
Measurement

How do you automate AI visibility reporting?

The short version

An automated AI visibility report is four moving parts: a fixed prompt set of the questions buyers really ask, scheduled runs of every prompt on every engine, a parser that records the brands named, the pages cited and the competitors that appeared, and a dated store you can query. Everything else is presentation. The two mistakes that ruin these reports are sampling too little, since a single run is a draw rather than a measurement, and changing the prompt wording mid-quarter, which resets the trend line without anybody noticing. Google Search Console now shows AI impressions on Google's own surfaces, with no clicks, no position and no API, so it complements this report rather than replacing it.

How do you automate AI visibility reporting?

Automating AI visibility reporting means turning an occasional manual check into a scheduled job with four parts. First, a prompt set: the questions your buyers ask, written the way they would say them out loud, held fixed so that this month compares with last month. Second, a runner that sends every prompt to every engine you care about, several times each, in clean sessions. Third, a parser that reads each response for your brand, your competitors and the URLs cited. Fourth, a store that keeps every observation with a timestamp, the engine, the prompt and the raw text.

Building the prompt set is the part that decides whether the report is useful, and it is the part most teams rush. Twenty to fifty questions covering the buying journey beats several hundred generated from a keyword tool, because you will be reading these every week and defending movements in them. Include the category question, the comparison question, the problem question a buyer asks before they know your category exists, and the direct question about your own company.

Keep the runner boring and repeatable. Fresh sessions with memory and custom instructions disabled, one fixed geography unless location is part of your market, the same wording every run, and a full copy of the raw response saved rather than a parsed summary. The raw text is what lets you answer next month's question about why a number moved, and no parser you write today will extract everything you will want later.

Then decide what "appeared" means before the first run, since that definition moves the number more than any engine does. A brand named in passing, a brand recommended, and a page cited without the brand being named are three different outcomes. Write the rule down, apply it consistently, and revisit it only at a version boundary you record.

What should an AI visibility report actually contain?

An AI visibility report should contain five measures, reported per engine rather than blended into one score. Mention rate answers how often you were named across runs. Citation rate answers how often a page of yours was linked, and which page. Share of voice puts your mention rate next to the competitors named on the same prompts. Coverage gaps list the prompts where rivals appear and you do not. Movement shows the change since the last period, expressed as a range rather than a point.

Blending engines into a single score is the most common way these reports mislead. Strong ChatGPT visibility with weak Google AI Overview visibility is a specific, fixable, index-level problem, and an average hides it behind a comfortable middling figure. Keep the engines in separate columns for the same reason a financial report keeps currencies separate.

Add the source list, which is the diagnostic half of the report. Recording which URLs each engine cited tells you whether a competitor is winning on their own pages, on a listicle neither of you controls, or on a forum thread. Those three situations call for different work, and none of them is visible in a mention count. Where the buying query returns comparison pages rather than vendor sites, your own category comparison page becomes the asset that competes.

Metric What it answers What a bad number means
Mention rate, per engine How often you are named across repeated runs The engine does not consider you part of the category
Citation rate and cited page How often your pages are linked, and which ones You are known but your pages are not the evidence
Share of voice Your mention rate against named competitors Someone else owns the answer you are paying for
Coverage gaps Prompts where rivals appear and you never do A missing page, or a page in the wrong vocabulary
Movement, with a range Change since the previous period A single-run comparison reporting sampling noise

Which engines can you automate through an API, and which cannot be?

Four engines can be automated through a documented API that returns the sources behind each answer: Perplexity, Claude, Gemini and ChatGPT. The two Google surfaces that sit in front of the most buyers, AI Overviews and AI Mode, cannot be automated at all, and we could not confirm an endpoint for Microsoft Copilot either. That split, rather than the price, is what decides the shape of your pipeline.

What each engine exposes to an automated job, with the search or grounding fee and the date each figure was checked
Engine What an automated job can get Search or grounding fee, before token costs
Perplexity, Agent API (Sonar chat completions retired) A typed output array for every call, with a message item holding the answer text and a search_results item holding the sources, so a job reads the citations as structured data instead of parsing prose $2.50 per 1,000 web search invocations, or $1.00 per 1,000 on fast search, plus the model's own token rates, per Perplexity's pricing documentation, checked 19 October 2026. The legacy Sonar request fees of $5 to $12 per 1,000 are still published alongside them and are cited in full in the Perplexity section below
Claude, web search tool Model answers with the search results it used, each search counted once however many results come back $10 per 1,000 searches plus the search results billed as input tokens, per Anthropic's published web search tool documentation, checked 19 October 2026. Each search counts as one use however many results come back
Gemini, grounding with Google Search Answers with grounding metadata naming the web sources, and a requirement to display Google's search suggestions wherever you show them 5,000 free search requests a month shared across all Gemini 3 and newer models, then $14 per 1,000, billed per search query rather than per prompt, per Google's Gemini API pricing page, checked 19 October 2026. Grounding is not available on the free tier
ChatGPT, web search tool in the Responses API Answers carrying url_citation annotations with each cited URL, its title and its position in the text, which OpenAI requires you to render visibly and clickably $10 per 1,000 calls on the web search tool for all models, with the retrieved search content billed at the model's own token rates, per OpenAI's published API pricing, checked 19 October 2026. The $25 per 1,000 that pricing trackers reported through 2026 is still live, but only on the web search preview tool for non-reasoning models, where the search content tokens are free instead
Google AI Overviews and AI Mode Nothing. There is no API, and the Search Console report covers impressions only, as the section above sets out Not applicable
Microsoft Copilot We could not confirm any documented endpoint that returns Copilot's consumer answers with their citations, so treat this engine as manual until one appears Not applicable

One caveat governs everything in that table, and it belongs in the report rather than in a footnote. An API call is not the consumer product. The model version, the retrieval stack and the ranking behind web_search on a developer endpoint are not guaranteed to be the ones serving the app your buyer opens, and no vendor publishes a parity figure between the two. So label the panel by what you actually measured, "Claude API with web search" rather than "Claude", and keep a small manual sample of the consumer interface beside it. When the two disagree, the manual sample is the one your buyer saw.

Can Google Search Console report AI Overviews and AI Mode?

Google Search Console can now report AI Overviews and AI Mode, but only impressions and only on Google's own surfaces. Google introduced generative AI performance reports on 3 June 2026 and, according to Search Engine Land's coverage of the global rollout, finished releasing them to all properties worldwide on 31 August 2026. The data breaks down by page, country, device and date.

What is missing shapes how you can use it. There are no clicks, no click-through rate, no queries and no average position in the report, so it tells you that Google's AI surfaces showed your page and nothing about what that appearance was worth. Search Engine Journal's report on the worldwide rollout makes the same point about the missing commercial metrics.

The second limitation is programmatic. The Search Analytics API does not expose an AI Overviews or AI Mode type, and the data is absent from the BigQuery bulk export, so an automated pipeline cannot pull it. A scheduled manual CSV export, filed with a date, is the honest workaround until that changes, and it is worth doing because it is the only first-party impression data anyone publishes.

Treat it as one panel in the report rather than the report. Search Console covers Google, your prompt runs cover the engines that Google does not, and your analytics covers the small number of people who click through. None of the three alone describes AI visibility, and a team that adopts the Search Console panel as its whole AI measurement has quietly narrowed its view to one vendor's surfaces. Our guide to what AI search actually sends in traffic terms covers the analytics half.

How often should you run each prompt, and how many times?

Run the full prompt set weekly, a small high-value subset daily, and present the trend monthly. That cadence matches the rate at which the underlying reality changes: pages get published and indexed over weeks, engines change retrieval behaviour over months, and anything faster is mostly sampling noise being plotted as a movement.

Repetition per run matters more than frequency. Julius Schulte, Malte Bleeker and Philipp Kaufmann, in the preprint Don't Measure Once: Measuring Visibility in AI Search (GEO), posted to arXiv as 2604.07585 on 8 April 2026, derive a minimum run count by subsampling a ten-run simultaneous dataset of 128 engine and prompt groups, and argue that visibility has to be read as a distribution rather than as one observation. The figures below were read off the preprint's own tables, at source, on 19 October 2026 rather than from coverage of it: the standard error of a brand's estimated detection rate falls below 0.10 at seven runs per prompt per day and below 0.08 at eight, while source coverage converges more slowly and needs eight runs to get under 0.10. Seven to ten runs is the working minimum for any prompt you intend to make a decision on.

The same paper puts a number on the churn those runs are sampling, and that number is what should set your cadence. Across four campaigns over a 45 to 46 day window between 24 January and 20 March 2026, aggregating 4,044 consecutive-day pairs, the sources an engine cited overlapped from one day to the next by only 34% to 42%, while the brands it named overlapped by 45% to 59% (same preprint, read 19 October 2026). Brand presence is the steadier of the two series, so a report that leads on cited URLs is leading on the noisier line. The authors' rolling-window analysis gives the practical consequence directly: the standard error of a per-brand detection rate estimated over a window of d days falls below 0.10 at ten days and below 0.05 at twenty-four, which is the statistical reason a monthly headline figure is the shortest one worth presenting and a weekly one is not.

Cadence What to run What it is for
Daily Five to ten buying prompts, all engines, several runs each Catching a competitor taking an answer you rely on
Weekly The full prompt set, all engines, seven or more runs each The working number the team acts on
Monthly Aggregation, Search Console AI impressions, assistant referrals The trend that goes in front of a stakeholder

Budget the volume before choosing tools, because prompts multiplied by engines multiplied by runs multiplied by frequency is the number that decides cost and runtime. Thirty prompts on four engines at seven runs each is already 840 responses a week, which is fine for a machine and impossible by hand.

What does your own pipeline cost against a tracker subscription?

Your own pipeline costs less in fees than any subscription in this category and more in attention, and the arithmetic is worth doing before the decision rather than after. Take the panel from the cadence table above: 30 prompts, 4 engines, 7 runs each, weekly. That is 840 responses a week and about 3,640 a month, which works out at roughly 910 calls per engine per month.

At the fees in the table above, those 910 calls an engine come to about $9 a month on Claude's web search tool at $10 per 1,000 searches, about $2 on Perplexity's Agent API web search tool at $2.50 per 1,000 invocations or $5 to $11 if the job still runs on the legacy Sonar request fees, nothing at all on Gemini while the free allowance of 5,000 search requests a month holds, and about $9 on OpenAI's web search tool, rising to about $23 if your panel calls the web search preview tool for non-reasoning models at $25 per 1,000, where the search content tokens are free instead. Call it $20 to $45 a month in search and grounding fees for a four-engine panel, plus token charges on every call and the engineering time to build the runner, the parser and the store.

Set that against the subscription route, where the published entry tiers in our comparison of AEO tools start at $29 a month for 15 prompts with daily tracking and $99 a month for 25 prompts, and a credit-metered plan at $295 a month carries 3,600 AI responses, which this panel would exhaust in a month. The fees are not what decides this. A tool buys you the parser, the store, the interface and somebody else's maintenance for roughly the price of the API calls, and your own pipeline buys you the raw text of every response, the depth you choose and a dependency on whoever built it still working here next quarter.

Two costs are routinely left out of both estimates. Token charges on grounded calls are usually larger than the per-search fee, because the retrieved page text is billed as input on that turn and again on every later turn that keeps it in context. And Gemini's fee is charged per search query rather than per prompt, so a prompt that triggers three searches counts three times against the allowance. Price the panel on queries, not on questions.

How do you stop the report measuring its own noise?

Stopping a report from measuring its own noise comes down to three disciplines, and none of them is technical. Sample enough per prompt, because a movement built from single runs is a coin toss. Freeze the prompt wording, because rewording a prompt changes the question and silently resets the baseline. Keep a change log of every alteration to the prompt set, the parser or the definitions, dated, next to the data.

The change log earns its keep the first time a number jumps. With it, you can say that mention rate rose the week three prompts were reworded and treat the jump as an artefact. Without it, somebody will attribute the jump to last month's content work, and the program will spend a quarter repeating something that did nothing.

Corroborate against a second source where you can. Assistant referrals in your analytics, Search Console AI impressions, and inbound enquiries that mention an assistant all move slowly and independently. When the prompt-run numbers rise and none of the three move at all over a quarter, the measurement deserves the scrutiny before the market does.

Report the uncertainty rather than hiding it. A visibility figure presented as a range across a stated number of runs survives being re-run in the room by a sceptical executive, and a single percentage does not. The credibility of the whole program rests on that one presentational choice, and it costs nothing. Our note on why AI answers change between runs explains the mechanism to anyone who asks why the range exists.

How do you automate reports showing brand visibility trends on Perplexity?

You automate a Perplexity brand visibility trend by running a fixed prompt set through the Agent API on a schedule, reading the sources out of the structured sources field the response returns rather than scraping them off a rendered page, and plotting two lines against each other, mention rate and citation rate, each presented as a monthly range across a stated number of runs. Perplexity is the one engine where the trend can be built from the engine's own output rather than off a screen, which is why it is usually the engine a team automates first.

Report two numbers against each other rather than one. Mention rate is the share of prompts where the answer names you in its text. Citation rate is the share of prompts where one of your URLs appears in the source list underneath it. They come apart more often than people expect, because an answer can describe your position in a category accurately while citing a competitor's page as the evidence for it. That is a content problem on your side rather than an absence, and it is invisible if you track only one of the two. The gap between the two lines is usually the most useful thing on the chart.

A trend needs the same discipline as the rest of the report, plus one more: hold the model fixed. Perplexity answers differ between the models and presets you can select, and switching mid-quarter resets the line as thoroughly as rewording a prompt does, so the model name belongs in the change log next to the prompt text, with the date you changed it. What the trend is measuring on the page side, from the crawler that has to reach you to the number of source slots an answer carries, is in how to get cited by Perplexity. Plot the monthly figure, keep the daily runs underneath it as the evidence, and present the month as a range across a stated number of runs rather than as a single percentage. An executive who re-runs one of your prompts in the room will get a different answer than the report did, and a range survives that while a point does not.

Did Perplexity's Sonar API change, and what does that do to an existing job?

Perplexity's Sonar API did change, and an existing job can have stopped collecting without ever returning an error, so check which endpoint yours is calling before you trust the history it has already gathered. Perplexity's migration notice states that Sonar chat completions support ended on 27 September 2026, that synchronous and streaming requests keep working because they are being reformulated as Agent API requests, rolling out gradually by model, and that asynchronous Sonar requests are not reformulated and are no longer supported, so they have to move to the Agent API's background mode (Perplexity, Migrate from Sonar to the Agent API, read 19 October 2026). A nightly visibility job is exactly the shape of thing that gets built asynchronously, so a Perplexity line that went flat or quiet in late September deserves to be checked against that date before anybody reads it as a market movement. The gradual reformulation has a second consequence for the change log: the stack actually answering a reformulated request is not guaranteed to be the one your code names.

The move changes your parser rather than your plan, and it changes the arithmetic. The Agent API takes an input and returns a typed output array, one item per step the model took, with a message item carrying the answer text and a search_results item carrying the sources, so the citation list arrives as a field instead of something you pattern-match out of prose (same migration notice, read 19 October 2026). On fees, Perplexity publishes the built-in web search tool at $0.0025 per invocation, which is $2.50 per 1,000, a lower-latency fast search at $0.001, and URL fetching at $0.0005, all on top of the model's own token rates. Its separate Search API, which returns raw results rather than an answer, is $5.00 per 1,000 requests, billed per successful request with an array of up to five queries counted as one billing unit and no token charges at all. The legacy Sonar rates are still published on the same page at $1 per million tokens each way plus $5, $8 or $12 per 1,000 requests by search context size, and $3 and $15 per million with $6 to $14 per 1,000 on Sonar Pro (Perplexity API pricing, checked 19 October 2026). On any of those routes a hundred prompts run nightly costs single digits a month in search fees, which is why cost is almost never what decides this.

What does a Perplexity visibility trend look like after three months?

A Perplexity trend becomes readable at the point where the two lines start to move independently, and that is usually the third month. Worked through on a panel of 60 prompts run 8 times a night against one fixed model, with each month presented as the spread of its nightly figures rather than as a single percentage:

A worked three-month Perplexity trend. These numbers are arithmetic on a worked example rather than a measurement of any real brand.
Month Mention rate, nightly spread Citation rate, nightly spread Gap What the shape of it says
Month 134% (28 to 41)11% (6 to 16)23 pointsThe answers name you and cite somebody else's page for the claim. A content problem on your side, not an absence
Month 236% (30 to 43)19% (13 to 25)17 pointsYour pages are starting to be retrieved for the same prompts you were already being named in
Month 335% (29 to 42)27% (21 to 33)8 pointsMention rate flat, citation rate up by 16 points over the quarter. The work moved retrieval, not share of voice

Read the gap rather than either line alone, because the gap is the part that tells you which work to do next. A wide gap that stays wide means the engine agrees you belong in the category and keeps sourcing that opinion from pages you do not control, which is a retrieval and extractability problem on your own pages rather than a reputation problem. A gap that closes while mention rate holds, as in the third month above, is the signature of page-level work landing. Both lines falling together is the one pattern that is not about your pages at all, and our guide to measuring AI citation decay covers how to separate that from ordinary churn before you act on it.

Trend mention rate as the headline and citation rate as the diagnosis, because the two do not carry the same amount of noise. On the figures read off the Schulte, Bleeker and Kaufmann preprint above, the brands an engine names overlap between consecutive days by 45% to 59% while the sources it cites overlap by only 34% to 42%, so the citation line needs eight runs per prompt to reach the precision the mention line reaches at seven, and it will still be the jumpier of the two. Which pages an engine reaches for in the first place is a separate question from how it picks between them, and our explainer on how AI engines choose which sources to cite sets out what is documented and what is inferred.

What else do people ask about AI visibility reporting?

How do you automate AI visibility reporting?

Fix a prompt set of the questions your buyers actually ask, run every prompt several times on each engine on a schedule, parse each response for your brand, your competitors and the sources cited, and write every observation to a dated store you can query later. The report is then a view over that store rather than a document somebody assembles by hand. Everything that varies between runs, wording, geography, account state, has to be held constant or the trend line measures the setup rather than the market.

What should an AI visibility report contain?

Five things, per engine rather than blended: mention rate across runs, citation rate with the page that was cited, share of voice against the named competitors on the same prompts, the coverage gaps where competitors appear and you do not, and the movement since the previous period with a range rather than a single figure. Blended scores hide the engine-level failure that is actually costing you the answer.

Can Google Search Console report AI Overviews and AI Mode?

Partly. Google introduced generative AI performance reports on 3 June 2026 and completed the worldwide rollout on 31 August 2026, covering impressions in AI Overviews, AI Mode and generative features in Discover, broken out by page, country, device and date. Clicks, click-through rate, queries and average position are not in that report, and it covers Google's surfaces only, so it cannot tell you anything about ChatGPT, Claude or Perplexity.

How often should you run an AI visibility report?

Weekly for the full prompt set, daily for a small group of high-value buying prompts, and monthly for the trend you actually present. Reporting more often than your content changes mostly reports sampling noise, and reporting less often than monthly means a competitor can take an answer and hold it for a quarter before anyone notices.

How do you stop an AI visibility report from measuring its own noise?

Sample enough per prompt, hold the prompt set fixed, and keep a change log. The arXiv preprint on measuring AI search visibility by Schulte, Bleeker and Kaufmann (2604.07585, 8 April 2026) is reported as putting the standard error of a brand's detection rate below 0.10 at seven runs, so anything under roughly seven runs per engine is a draw rather than a measurement. A movement that coincides with a prompt rewrite is a measurement artefact, and the change log is what lets you say so.

What else do people ask about automation cost and engine coverage?

Which AI engines can you automate through an API?

Four of them. Perplexity's Agent API returns a typed output array whose search_results item carries the sources, and bills its built-in web search tool at $2.50 per 1,000 invocations plus model token rates; Sonar chat completions support ended on 27 September 2026. Anthropic's web search tool on the Claude API bills $10 per 1,000 searches plus the results as input tokens. Google's grounding with Google Search returns grounding metadata naming the sources, with 5,000 free search requests a month shared across all Gemini 3 and newer models and $14 per 1,000 after that, billed per search query rather than per prompt. OpenAI's web search tool in the Responses API returns url_citation annotations carrying each cited URL and its position in the text, at $10 per 1,000 calls with search content billed as tokens. All four figures checked against the vendors' own pricing pages on 19 October 2026. Google AI Overviews and AI Mode have no API at all, and we could not confirm a documented endpoint for Copilot's consumer answers, so both of those stay manual.

What does an automated AI visibility pipeline cost?

Less than a subscription in fees and more in maintenance. A panel of 30 prompts across 4 engines at 7 runs each, weekly, is 840 responses a week and about 3,640 a month, roughly 910 calls per engine. At the published search and grounding fees, checked 19 October 2026, that is about $20 to $45 a month in total, plus token charges, which are usually the larger half because retrieved page text is billed as input on that turn and on every later turn holding it in context. The published entry tiers of the tracking tools start at $29 a month for 15 prompts and $99 a month for 25. What the subscription actually buys at that price is the parser, the store, the interface and somebody else's maintenance.

How do you automate reports showing brand visibility trends on Perplexity?

Run a fixed prompt set through Perplexity's Agent API on a schedule and track two lines rather than one: mention rate, the share of prompts whose answer names you in its text, and citation rate, the share where one of your URLs is in the source list. Perplexity is the engine where this can be automated properly, because the response returns the sources as a structured field rather than something you scrape off a page. Check the endpoint first: Sonar chat completions support ended on 27 September 2026, and asynchronous Sonar requests are no longer supported at all, so a nightly job built that way has to move to the Agent API's background mode (Perplexity's migration notice, read 19 October 2026). Then freeze the prompt wording, hold the model fixed, and present each month as a range across a stated number of runs rather than as a single percentage. A wide gap between the two lines means the answers name you and source the claim from somebody else's page.

Related guides

The Assessment

Find out who gets named when buyers ask about your category.

A free visibility assessment runs your buyer questions across the four engines, records who is cited and from which page, and shows where your own pages are being passed over.

Request a free visibility assessment →
SIGNALS · A BlackSig Systems company