AI Brand Visibility Tracker - Google AI Overview and AI Mode
Pricing
from $4.00 / 1,000 per-run start fees
AI Brand Visibility Tracker - Google AI Overview and AI Mode
Ask the questions your buyers ask and find out whether Google's AI Overview and AI Mode name your brand, how early, whether they link you, and which competitors get named instead. One row per question per AI surface, plus a scorecard. Unanswered questions are free.
AI Brand Visibility Tracker for Google AI Overview and AI Mode
This AI brand visibility tracker asks the questions your buyers actually ask and finds out whether Google's AI answers name your brand, how early, whether they link you, and which competitors get named instead. Use it to measure and monitor AI brand visibility week to week, per market.
Search used to end with ten blue links and a ranking you could measure. An AI answer ends with a recommendation, and either you are in it or you are not. This measures that.
Two surfaces, not one
Google has two AI answers and they are different products. The AI Overview is the summary above the blue links: short, opinionated, three or four sources. AI Mode is the conversational tab: long, structured, often a breakdown by use case with different brands in it.
They disagree often enough that averaging them would hide the useful part, so every question is asked on both and each gets its own row. A brand can lead the Overview and be absent from AI Mode for the same question, and that is a finding, not noise.
Neither needs an API key from you.
What a row tells you
brand_mentionedandbrand_mentions— is the brand named, and how oftenbrand_rank— 1 means the answer names you before any other brand. This is the number to watch week to weekbrand_first_position— where in the answer, as a character offset, so earlier is lowerbrand_context— the sentence you appear in, which is where you find out whether being named was good newsbrand_citedandbrand_citation_urls— whether the answer linked your site
brand_mentioned and brand_cited are deliberately separate. An answer can
name you without linking you, and can link your domain without naming you. One
is reputation, the other is traffic, and a single "visible" flag would hide
which of the two is missing.
competitors_mentioned— who was named instead, each with the domain it cited and where it appearscompetitor_countandshare_of_voice— your slice of every brand mention in that one answer
How competitors are found
Give a list under Known competitors and they are matched by name. Leave it empty and the run works them out: it takes the brand name out of every domain the answer cited and keeps the ones the answer also names in its text.
That is grounded on the citations on purpose. Pulling capitalised words out of prose finds "The Best", "However" and every product category at least as often as it finds a rival. A cited domain that also gets named is a real competitor by both tests.
Each competitor carries the domain it came from, because a token can read as
an ordinary word: scrape is the name behind scrape.do, and only the domain
tells you which it is.
Questions with no answer are not failures
Google decides per request whether to offer an AI Overview at all. A question
it declines comes back with answered: false, is not billed, and is
counted separately in the scorecard as unanswered.
This matters more than it sounds. Folding a refusal to answer into your visibility rate would mix two different problems: "the AI does not recommend us" and "the AI does not answer this question at all" have different fixes, and only one of them is about your brand.
The scorecard
summary in the key-value store is the run's own answer:
visibilityRateper surface — answers naming you, over answers givencitationRateper surface — answers linking youaverageRank— where you land among the brands that do get namedtopCompetitors— who shows up most across the whole prompt setpromptsWithoutBrand— the actionable list. The questions that got a real answer with no mention of you
Rates are over answered checks only, for the reason above.
Writing good prompts
This is the input that decides everything else. A question nobody asks tells you nothing, however good the measurement is.
Write them the way a buyer types them, not the way you describe yourself. "best ecommerce price monitoring tool" is a question someone asks; "enterprise retail pricing intelligence platform" is a phrase from your own homepage. Include the comparison questions ("X vs Y"), the ones with a qualifier ("for small business", "free"), and the ones where you expect to lose. The last group is where the value is.
Country and language
AI answers are regional. The same question names different brands in the US than in the Netherlands, so Country and Language are separate inputs and both are carried on every row. If you sell in several markets, run them separately and keep the rows apart.
Errors
| Code | Meaning |
|---|---|
bad_input | No brand name or no prompts |
engine_error | One surface could not be read for one question |
An engine_error on one row does not affect the others; every question and
surface is measured independently.
Input
brand and prompts are required. Set brandDomain to distinguish being named
from being cited. brandAliases adds other spellings; competitors adds known
rivals to match by name. Leave engines at its default to read Google AI Overview
and Google AI Mode, or select one surface. country defaults to us, language
to en, concurrency to 3 and retries to 3. The original input names and defaults
remain available. Repeated questions produce repeated checks, in input order.
Checks run in parallel and the default run timeout is one hour; fifteen questions
on both surfaces take a few minutes. For a very large set of questions, allow
enough run time for the complete scorecard.
| Field | Type | Default | What it does |
|---|---|---|---|
brand | string | required | The brand name to look for in each answer |
brandDomain | string | empty | Your site, used for brand_cited |
brandAliases | array | [] | Other spellings of the brand |
prompts | array | required | The questions to ask, one check per surface each |
competitors | array | [] | Known rivals; empty means they are discovered from citations |
engines | array | both surfaces | google_ai_overview, google_ai_mode |
country | string | us | Market the question is asked in |
language | string | en | Language of the answer |
concurrency | integer | 3 | Checks run in parallel |
retries | integer | 3 | Retry setting per check (1–20); values above 5 return a cap warning |
The example below is the input behind the output that follows:
{"brand": "Prisync","brandDomain": "prisync.com","brandAliases": [],"prompts": ["best ecommerce price monitoring tool","competitor price tracking software for retailers"],"competitors": [],"engines": ["google_ai_overview", "google_ai_mode"],"country": "us","language": "en","concurrency": 3,"retries": 3}
Output example from a real run
This is a field selection from the first result of the Prisync input shown in the input section, fetched on 5 October 2026. Answers change between requests, so use the full dataset rather than treating this example as a prediction.
{"prompt": "best ecommerce price monitoring tool","engine": "google_ai_overview","engine_name": "Google AI Overview","brand": "Prisync","answered": true,"brand_mentioned": true,"brand_mentions": 1,"brand_rank": 1,"brand_cited": true,"competitor_count": 2,"share_of_voice": 0.3333,"source_count": 5,"fetched_at": "2026-10-05T08:47:05Z","position": 1}
Every result keeps its question, surface, market, answer, sources and retrieval
time. The dataset also includes source, query and answer_shown for consumers
using the common AI answer format. These fields accompany the existing names.
Unanswered rows use null for the brand measurements because an unavailable answer is
not evidence that a brand was absent. The scorecard in summary covers the
complete collected question set and reports each surface separately.
The competitors in that same row came from the citations, each with the domain it was learned from:
"competitors_mentioned": [{"name": "price2spy", "domain": "price2spy.com", "mentions": 1, "first_position": 327, "source": "cited"},{"name": "shopify", "domain": "shopify.com", "mentions": 1, "first_position": 506, "source": "cited"}]
And the scorecard of that run, per surface, from the summary record:
"perEngine": {"google_ai_overview": {"answered": 2, "mentioned": 1, "visibilityRate": 0.5, "citationRate": 1, "averageRank": 1},"google_ai_mode": {"answered": 2, "mentioned": 2, "visibilityRate": 1, "citationRate": 1, "averageRank": 1}},"promptsWithoutBrand": ["competitor price tracking software for retailers"]
The Overview named Prisync for one of the two questions and linked it for both; AI Mode named it for both. That gap is exactly what a single "visible" flag would hide.
Use cases for AI brand visibility tracking
- Weekly AI visibility tracking. Run the same question set every week and
watch
visibilityRateandaverageRankper surface move. Schedule the run on Apify and export the dataset to a sheet or dashboard. - Competitor share of voice.
topCompetitorsandshare_of_voiceshow who Google's AI recommends in your category, including rivals you had not listed yourself. - Content and SEO priorities.
promptsWithoutBrandis a work list: the questions where an answer exists and you are not in it. Compare the citedsourcesto see which pages Google relies on instead. - Earned media and PR.
brand_contextshows the sentence you appear in, so you can tell a recommendation from a passing mention or a warning. - Market comparison. Run the same prompts for different countries and languages to see where your brand is known to the AI and where it is not.
- Agency reporting. One run per client brand gives a scorecard and a row per question that can go straight into a monthly report.
How this AI brand visibility tracker compares
Most AI visibility tools are subscriptions with a dashboard, a seat price and a fixed prompt quota. This actor is the measurement on its own: you pay per answered check, own the raw rows, and decide how often to run.
| This actor | Raw AI answer scrapers | SaaS AI visibility platforms | |
|---|---|---|---|
| Google AI Overview and AI Mode | Both, one row each | One surface per actor | Varies by plan |
| Brand named vs. linked, separately | Yes | No, you parse it yourself | Varies by tool |
| Competitors found from citations | Yes | No | Varies by tool |
| Unanswered questions billed | No | Varies by actor | Varies by plan |
| Pricing | Per run and per answered check | Per result | Monthly subscription |
If you want the answers without the brand measurement, to do your own
analysis, google-ai-overview-scraper and google-ai-mode-scraper return the
raw answers. For the blue links behind them, see the SERP actors.
Pricing
The price remains $0.004 per run plus $0.01 per answered visibility check.
The fixed run_start event is charged once, including a run with invalid input.
The check event is charged only after a result with answered: true has been
delivered. A question for which Google gives no AI answer has no check charge.
Non-paying Apify users can receive up to ten result rows per run; only the
answered rows actually delivered within that limit receive a check charge.
For two questions on both surfaces, four delivered answers cost $0.044 in actor
events. If only two checks are answered, those events total $0.024. Apify's own
platform usage is separate from the actor event prices.
Frequently asked questions
Does answered: false mean my brand was missing?
It means the surface did not supply an answer. Those rows are excluded from
visibility and citation rates. A genuine answer that omits the brand instead
has answered: true and brand_mentioned: false.
Can competitors be found without entering a list?
Yes. The actor learns candidate brand tokens from cited domains across the complete run, then checks whether those names occur in each answer. A rival cited only by a later answer can still be recognised in an earlier one. Public publishing platforms are excluded from automatic competitor discovery.
Can I compare different countries?
Run the same question set with separate country and language inputs and compare the resulting scorecards. Keep the questions and selected surfaces consistent. The market and language are carried on every result for that comparison.
Does naming the brand also mean Google linked it?
Use brand_mentioned for a name in the prose and brand_cited for its domain
among the sources. An answer can satisfy either one independently; the actor
retains both measurements and the cited URLs.
How many questions should I track?
Start with 20 to 50 questions a buyer would type, across comparisons, use cases and price qualifiers. That is enough for a stable visibility rate per surface while each run stays inexpensive. Add the questions where you expect to lose; those are where the scorecard is most useful.
Is an AI Overview answer the same every time?
No. Google can give a different answer, different sources or no answer for the same question on another request. Track trends over repeated runs rather than drawing conclusions from one row, and keep the question set constant.