AI Overview & SERP Visibility Monitor
Pricing
from $10.00 / 1,000 results
AI Overview & SERP Visibility Monitor
Track whether your brand is cited in Google's AI Overview, owns the featured snippet, and ranks organically for the keywords you care about. One row per keyword. Measures public SERP surfaces only - no third-party LLM APIs.
Pricing
from $10.00 / 1,000 results
Rating
0.0
(0)
Developer
Thirdwatch
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Share
Does Google's AI recommend your brand? This Actor answers that question with evidence instead of guesswork. For every keyword you track, it checks whether Google rendered an AI Overview, whether that AI Overview cited your site, who owns the featured snippet, where you rank organically, and which competitors are being surfaced instead of you.
One dataset row per keyword. Built for weekly monitoring by SEO agencies, in-house marketing teams, and anyone whose organic traffic is being absorbed by AI-generated answers.
Why this exists
Google's AI Overview answers the question at the top of the page. The user reads it and leaves. Your rank-3 blue link never gets the click. Traditional rank trackers still report "position 3" and call that a good week.
Generative Engine Optimization (GEO) and Answer Engine Optimization (AEO) are the response to that shift, and both need the same missing input: a measurement of whether you are being cited in the answer surfaces themselves. That is what this Actor produces.
What it measures
For each keyword:
| Field | Meaning |
|---|---|
keyword | The query that was checked |
country | Country code the SERP was localized to |
aiOverviewPresent | Whether Google rendered an AI Overview at all |
brandCitedInAiOverview | Whether the AI Overview cited your brand — null when no AI Overview existed |
aiOverviewSources[] | Every source the AI Overview cited (url, domain, title) |
organicRank | Your 1-based organic position — null when you are genuinely absent |
featuredSnippetOwner | Domain that owns the featured snippet, if any |
brandOwnsFeaturedSnippet | Whether that owner is you |
peopleAlsoAsk[] | The People Also Ask questions on the page |
competitorsCited[] | Per competitor: AI Overview citation and organic rank |
checkedAt | UTC timestamp of the check |
status | checked or failed |
Diagnostic fields are included too: aiOverviewDetectedBy, brandCitedMatchedBy, organicRankMatchedBy, matchStrategy, organicResultsParsed, and error.
The honesty rule this Actor is built around
Google does not render an AI Overview for every query. Many monitoring tools quietly report that absence as "your brand was not cited", which is a different and much more alarming claim.
This Actor keeps the two facts separate:
- No AI Overview was rendered →
aiOverviewPresent: false,brandCitedInAiOverview: null - An AI Overview was rendered and did not cite you →
aiOverviewPresent: true,brandCitedInAiOverview: false - An AI Overview was rendered and cited you →
aiOverviewPresent: true,brandCitedInAiOverview: true - The results page could not be retrieved →
status: "failed", every measured fieldnull, and no charge
The same discipline applies to organicRank: absent is null, never 0 and never a 999 sentinel that sorts like a real rank.
How brand matching works
Supply domain whenever you can. Domain matching is the reliable signal, and it matches subdomains too (help.notion.so counts as notion.so). Brand-name matching is the fallback and uses word-boundary matching, so Notion does not match Notionally Ltd.
Every row tells you which method produced the answer via brandCitedMatchedBy and organicRankMatchedBy, so you can audit any result you find surprising.
No LLM APIs
This Actor measures public Google SERP surfaces only. It does not call OpenAI, Perplexity, Anthropic, or any other model provider, and it does not resell output from an API it does not own. What it reports is what Google actually served on a public results page — verifiable by hand, and stable as a compliance story.
Input
{"brand": "Notion","domain": "notion.so","keywords": ["best note taking app","notion alternatives","team wiki software"],"country": "us","language": "en","competitors": ["obsidian.md", "Evernote"]}
| Input | Required | Default | Notes |
|---|---|---|---|
brand | yes | — | Brand name to track |
domain | no | — | Your domain. Strongly recommended for accuracy |
keywords | yes | — | One row is produced per keyword |
country | no | us | Two-letter country code |
language | no | en | Two-letter language code |
competitors | no | [] | Names or domains; a dotted entry with no space is treated as a domain |
proxyConfiguration | no | GOOGLE_SERP | Must use Apify's GOOGLE_SERP group |
Output
{"keyword": "best note taking app","country": "us","brand": "Notion","domain": "notion.so","status": "checked","aiOverviewPresent": true,"aiOverviewDetectedBy": "attr:data-subtree=aio","brandCitedInAiOverview": true,"brandCitedMatchedBy": "domain","aiOverviewSources": [{ "url": "https://obsidian.md/", "domain": "obsidian.md", "title": "Obsidian" },{ "url": "https://notion.so/product", "domain": "notion.so", "title": "Notion" }],"organicRank": 2,"organicRankMatchedBy": "domain","featuredSnippetOwner": "obsidian.md","brandOwnsFeaturedSnippet": false,"peopleAlsoAsk": ["What is the best free note taking app?"],"competitorsCited": [{ "competitor": "obsidian.md", "citedInAiOverview": true, "organicRank": 1 }],"matchStrategy": "domain","checkedAt": "2026-08-03T12:00:00+00:00"}
Pricing
Pay per event. You are charged once per keyword actually checked — meaning a results page was successfully retrieved and parsed into a row. Keywords whose fetch failed still appear in your dataset marked status: "failed" so you know what was not covered, and they are never charged.
| Event | FREE | BRONZE | SILVER | GOLD |
|---|---|---|---|---|
keyword-checked | $0.05 | $0.045 | $0.04 | $0.035 |
A 50-keyword weekly check costs $2.50/week on the FREE tier.
Use cases
- Weekly GEO/AEO reporting for retainer clients — show whether client brands are being cited in AI Overviews, not just where they rank.
- AI Overview coverage mapping — find which of your keywords now trigger an AI Overview at all. That subset is where classic rank tracking has stopped predicting traffic.
- Competitive citation share — see which competitors Google's answer surfaces prefer, and on which queries.
- Content prioritization — pages that rank well but are never cited are candidates for restructuring toward extractable, answer-shaped content.
- Featured snippet defense — track snippet ownership changes over time.
- Post-migration verification — confirm a domain migration did not drop you out of the answer surfaces.
Notes on reliability
Google publishes no stable contract for the AI Overview block, and its markup changes. The detector is layered — several structural selectors, then several text markers — and every row records which signal fired in aiOverviewDetectedBy, so drift is visible in your data rather than silently reported as "no AI Overview".
Runs use Apify's GOOGLE_SERP proxy group, which handles Google's anti-bot protection internally. Residential proxies do not work for Google Search and are not used as a fallback.
Runs respect the platform timeout: if the deadline approaches, the Actor stops cleanly with the keywords it has finished rather than being killed mid-run.
Technical
- Pure HTTP, 256 MB,
apify/actor-python:3.14. No browser. - Rate limited between keywords.
- One keyword failing never fails the run.