Google AI Overview Monitoring: Brand Citations Over Time
Watch how a brand shows up in Google's AI Overviews. Run a fixed list of queries on a schedule, score each answer for whether your domain is cited, and build a history of citation share for AEO and GEO reporting.
When to use this skill
- The user wants to monitor or track a brand, domain, or client in Google AI Overviews.
- They want AI search visibility, AEO, or GEO measurement for a set of queries.
- They want competitor citation share: which domains AI Overviews cite in their category.
- They want alerts when a domain drops out of an overview, or when an overview disappears for a money query.
Not for: one-off answer extraction or ad hoc lookups (use the google-ai-overview-api skill), organic rank tracking (this reads the AI Overview only), or other engines' AI answers (see references/actor-index.md for Bing, Brave, and Naver equivalents).
The signals (one row per query per run)
Each row carries ai_overview_present (did an overview show at all), references (each cited source with link, source, index, plus title and snippet when present), text_blocks (the answer text, for brand mentions that are not linked), and fetched_at (the ISO timestamp that keys your time series). gl and hl echo the market targeting so multi-country histories stay separable.
Per query per run, the derived metrics are: overview shown (yes or no), brand cited (any references[].link or references[].source matching your domain), citation position (the matching reference's index), and competitor domains cited (the full source list).
Prerequisites
The Actor
Run it with the Apify CLI
One watchlist poll:
apify actors call "johnvc/Google-AI-Overview-API" -i '{"queries":["best crm for startups","crm with free tier","easiest crm for small business"],"gl":"us","hl":"en"}' \
--json \
--user-agent apify-awesome-skills/apify-google-ai-overview-monitoring \
2>/dev/null
Read a run's rows later, for example from a scheduled run:
apify datasets get-items <DATASET_ID> --format json --user-agent apify-awesome-skills/apify-google-ai-overview-monitoring 2>/dev/null
Every call carries the three flags this repo expects: --json (or --format json), --user-agent apify-awesome-skills/apify-google-ai-overview-monitoring, and 2>/dev/null.
Run it from Claude or another AI agent (MCP)
The Actor is MCP-ready. Add the hosted server URL:
https://mcp.apify.com/?tools=actors,docs,johnvc/Google-AI-Overview-API
Then ask, for example: "Check whether example.com is cited in the Google AI Overview for these ten queries and list who is cited instead." MCP setup docs: https://docs.apify.com/platform/integrations/mcp
Workflow
- Define the watchlist. Pick 10 to 50 queries where the brand should appear: category head terms, "best X for Y" picks, and question-style searches customers actually ask. Fix the list so runs stay comparable.
- Pin the market. One
queries input per market with gl set (keep hl at en; AI Overviews are currently English-only). Run one Actor call per market so histories never mix.
- Estimate cost per poll and per month, then confirm with the user. See
references/gotchas.md.
- Run and score each row. Overview shown:
ai_overview_present. Brand cited: match your domain against each reference's link or source (compare registered domains, not exact hosts, so www and subdomains still match). Unlinked mentions: scan the snippet text in text_blocks. Competitors: tally every other source.
- Append to history and report. Store rows keyed by query plus
fetched_at. Report citation share (cited queries over queries with an overview), new and lost citations since the last poll, and the top cited competitor domains.
- Schedule it. Save the input as an Apify task and attach a schedule (daily or weekly), or cron the CLI call. Alert when a previously cited query loses the citation or loses its overview.
Inputs
queries (array of strings): the fixed watchlist; merged with query and deduped
query (string): single-query alternative; at least one of the two is required
gl (string, default us): two-letter country code, one market per run
hl (string, default en): keep en
location (string): optional named location for local-intent watchlists
Cost
Billing is pay per event: a small setup fee per run plus a fee per AI Overview retrieval, about $0.015 each at the time of writing. A daily 20-query poll is about $0.31 per run, roughly $9.40 per month; weekly is about $1.35 per month. Deferred answers cost one extra retrieval each. Estimate with the live prices in references/gotchas.md before scheduling.
Honest limits
- This is a polled monitor, not a push feed: freshness is your schedule interval.
- AI Overviews are not deterministic. Text and cited sources can change between identical runs, so judge trends over several polls, not single flips.
- Queries without an overview still cost a lookup, and
ai_overview_present: false is itself a signal worth logging.
- English-only for now, in a limited set of countries; there is no historical backfill, so the history starts when your polling starts.
Troubleshooting
- Citation flapping between polls: expected variance; alert only after two or three consecutive misses.
- Domain never matches: compare registered domains, and check
references[].link as well as source (some references carry only link, source, and index).
- Whole watchlist shows no overviews: check
hl is en, try gl at us, and rephrase head terms as questions.
See references/gotchas.md for cost guardrails and error recovery, and references/actor-index.md for the Actor routing table.
Related answer-engine Actors
1---2name: apify-google-ai-overview-monitoring3description: Monitor whether a brand or domain is cited in Google AI Overviews with the Apify Google AI Overview API Actor (johnvc/Google-AI-Overview-API). Run a watchlist of queries on a schedule, check ai_overview_present, match your domain against the cited references, and build a citation history keyed by the fetched_at timestamp for AEO and GEO reporting. Use when the user wants google ai overview monitoring or tracking, brand visibility in AI Overviews, AI search visibility checks for a brand or client, answer engine optimization (AEO) or generative engine optimization (GEO) measurement, competitor citation share in AI Overviews, or alerts when a domain drops out of an AI Overview. Pay-per-retrieval billing, MCP-ready for Claude and other AI agents.4license: MIT5---67# Google AI Overview Monitoring: Brand Citations Over Time89Watch how a brand shows up in Google's AI Overviews. Run a fixed list of queries on a schedule, score each answer for whether your domain is cited, and build a history of citation share for AEO and GEO reporting.1011## When to use this skill1213- The user wants to monitor or track a brand, domain, or client in Google AI Overviews.14- They want AI search visibility, AEO, or GEO measurement for a set of queries.15- They want competitor citation share: which domains AI Overviews cite in their category.16- They want alerts when a domain drops out of an overview, or when an overview disappears for a money query.1718Not for: one-off answer extraction or ad hoc lookups (use the google-ai-overview-api skill), organic rank tracking (this reads the AI Overview only), or other engines' AI answers (see `references/actor-index.md` for Bing, Brave, and Naver equivalents).1920## The signals (one row per query per run)2122Each row carries `ai_overview_present` (did an overview show at all), `references` (each cited source with `link`, `source`, `index`, plus `title` and `snippet` when present), `text_blocks` (the answer text, for brand mentions that are not linked), and `fetched_at` (the ISO timestamp that keys your time series). `gl` and `hl` echo the market targeting so multi-country histories stay separable.2324Per query per run, the derived metrics are: overview shown (yes or no), brand cited (any `references[].link` or `references[].source` matching your domain), citation position (the matching reference's `index`), and competitor domains cited (the full `source` list).2526## Prerequisites2728- Apify account (sign up at https://apify.com?fpr=9n7kx3&fp_sid=skillrepo).29- Authentication via `apify login`, or an `APIFY_TOKEN` environment variable (Apify Console, Settings, Integrations).3031## The Actor3233- Store page: https://apify.com/johnvc/Google-AI-Overview-API?fpr=9n7kx3&fp_sid=skillrepo34- Actor ID: `johnvc/Google-AI-Overview-API`35- Pricing: pay per AI Overview retrieval plus a small per-run setup fee (see `references/gotchas.md`).3637## Run it with the Apify CLI3839One watchlist poll:4041```bash42apify actors call "johnvc/Google-AI-Overview-API" -i '{"queries":["best crm for startups","crm with free tier","easiest crm for small business"],"gl":"us","hl":"en"}' \43 --json \44 --user-agent apify-awesome-skills/apify-google-ai-overview-monitoring \45 2>/dev/null46```4748Read a run's rows later, for example from a scheduled run:4950```bash51apify datasets get-items <DATASET_ID> --format json --user-agent apify-awesome-skills/apify-google-ai-overview-monitoring 2>/dev/null52```5354Every call carries the three flags this repo expects: `--json` (or `--format json`), `--user-agent apify-awesome-skills/apify-google-ai-overview-monitoring`, and `2>/dev/null`.5556## Run it from Claude or another AI agent (MCP)5758The Actor is MCP-ready. Add the hosted server URL:5960`https://mcp.apify.com/?tools=actors,docs,johnvc/Google-AI-Overview-API`6162Then ask, for example: "Check whether example.com is cited in the Google AI Overview for these ten queries and list who is cited instead." MCP setup docs: https://docs.apify.com/platform/integrations/mcp6364## Workflow65661. Define the watchlist. Pick 10 to 50 queries where the brand should appear: category head terms, "best X for Y" picks, and question-style searches customers actually ask. Fix the list so runs stay comparable.672. Pin the market. One `queries` input per market with `gl` set (keep `hl` at `en`; AI Overviews are currently English-only). Run one Actor call per market so histories never mix.683. Estimate cost per poll and per month, then confirm with the user. See `references/gotchas.md`.694. Run and score each row. Overview shown: `ai_overview_present`. Brand cited: match your domain against each reference's `link` or `source` (compare registered domains, not exact hosts, so `www` and subdomains still match). Unlinked mentions: scan the `snippet` text in `text_blocks`. Competitors: tally every other `source`.705. Append to history and report. Store rows keyed by query plus `fetched_at`. Report citation share (cited queries over queries with an overview), new and lost citations since the last poll, and the top cited competitor domains.716. Schedule it. Save the input as an Apify task and attach a schedule (daily or weekly), or cron the CLI call. Alert when a previously cited query loses the citation or loses its overview.7273## Inputs7475- `queries` (array of strings): the fixed watchlist; merged with `query` and deduped76- `query` (string): single-query alternative; at least one of the two is required77- `gl` (string, default `us`): two-letter country code, one market per run78- `hl` (string, default `en`): keep `en`79- `location` (string): optional named location for local-intent watchlists8081## Cost8283Billing is pay per event: a small setup fee per run plus a fee per AI Overview retrieval, about $0.015 each at the time of writing. A daily 20-query poll is about $0.31 per run, roughly $9.40 per month; weekly is about $1.35 per month. Deferred answers cost one extra retrieval each. Estimate with the live prices in `references/gotchas.md` before scheduling.8485## Honest limits8687- This is a polled monitor, not a push feed: freshness is your schedule interval.88- AI Overviews are not deterministic. Text and cited sources can change between identical runs, so judge trends over several polls, not single flips.89- Queries without an overview still cost a lookup, and `ai_overview_present: false` is itself a signal worth logging.90- English-only for now, in a limited set of countries; there is no historical backfill, so the history starts when your polling starts.9192## Troubleshooting9394- Citation flapping between polls: expected variance; alert only after two or three consecutive misses.95- Domain never matches: compare registered domains, and check `references[].link` as well as `source` (some references carry only `link`, `source`, and `index`).96- Whole watchlist shows no overviews: check `hl` is `en`, try `gl` at `us`, and rephrase head terms as questions.9798See `references/gotchas.md` for cost guardrails and error recovery, and `references/actor-index.md` for the Actor routing table.99100## Related answer-engine Actors101102- Bing Copilot API: https://apify.com/johnvc/bing-copilot-api?fpr=9n7kx3&fp_sid=skillrepo103- Brave AI Mode API: https://apify.com/johnvc/brave-ai-mode-api?fpr=9n7kx3&fp_sid=skillrepo104- Naver AI Overview API: https://apify.com/johnvc/naver-ai-overview-api?fpr=9n7kx3&fp_sid=skillrepo105- Google News API: https://apify.com/johnvc/GoogleNewsAPI?fpr=9n7kx3&fp_sid=skillrepo