# Google AI Overview Tracker: Brand Mentions & Citations (`scrapemint/ai-overview-brand-tracker`) Actor

Check Google AI Overviews for your keywords: does the answer mention your brand or competitors, which sites does it cite, and where do you rank organically? Tracks changes between runs for GEO / AI search visibility reporting.

- **URL**: https://apify.com/scrapemint/ai-overview-brand-tracker.md
- **Developed by:** [Ken M](https://apify.com/scrapemint) (community)
- **Categories:** SEO tools, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$8.00 / 1,000 keyword checkeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Google AI Overview Tracker: Brand Mentions & Citations

**Is your brand in Google's AI Overview, and who is cited instead?** Give it the searches your customers make and the brands you care about, and get one row per keyword:

- **The answer:** whether an AI Overview was shown, and its full text
- **Brand visibility:** for each brand, whether it is **mentioned**, how many times, and its **order** among the brands named
- **Citations:** every source the AI Overview cites, with site name, URL and domain, plus the brands Google linked inside the answer
- **Your sites:** whether your domains are **cited in the AI Overview** and where they **rank organically**
- **Organic top 10:** titles and domains, with positions
- **Changes since the last run:** brands and cited domains gained or lost, overview appeared or disappeared

Built for **GEO / AI search visibility** reporting: schedule it weekly over your keyword set and track share of voice in AI answers next to classic rankings.

### What you get

`keyword`, `aiOverview` (`shown` / `none` / `unavailable`), `hasAiOverview`, `brandsMentioned`, `brands` (`brand`, `mentioned`, `mentions`, `rank`, `citedInAiOverview`), `yourDomains` (`domain`, `citedInAiOverview`, `citationPosition`, `organicPosition`), `aiOverviewText`, `linkedEntities`, `citations`, `citedDomains`, `organicResults`, `changes`, `country`, `language`, `checkedAt`

### Example input

CRM keywords, five brands, two of your domains:

```json
{
  "keywords": ["best crm for small business", "hubspot alternatives", "what is a crm"],
  "brands": ["HubSpot", "Zoho", "Pipedrive", "Salesforce", "monday.com"],
  "domains": ["hubspot.com", "zoho.com"]
}
```

UK running-shoe searches:

```json
{
  "keywords": ["best running shoes for flat feet", "best trail running shoes"],
  "brands": ["Brooks", "ASICS", "Hoka", "Nike", "Saucony"],
  "country": "gb"
}
```

### Example output

```json
{
  "keyword": "best crm for small business",
  "aiOverview": "shown",
  "hasAiOverview": true,
  "brandsMentioned": ["HubSpot", "Zoho", "Pipedrive"],
  "brands": [
    { "brand": "HubSpot", "mentioned": true, "mentions": 1, "rank": 1, "citedInAiOverview": false },
    { "brand": "Zoho", "mentioned": true, "mentions": 1, "rank": 2, "citedInAiOverview": false },
    { "brand": "Pipedrive", "mentioned": true, "mentions": 1, "rank": 3, "citedInAiOverview": false },
    { "brand": "Salesforce", "mentioned": false, "mentions": 0, "rank": null, "citedInAiOverview": false }
  ],
  "yourDomains": [
    { "domain": "hubspot.com", "citedInAiOverview": false, "citationPosition": null, "organicPosition": null },
    { "domain": "zoho.com", "citedInAiOverview": false, "citationPosition": null, "organicPosition": 1 }
  ],
  "aiOverviewText": "The best CRM for a small business depends on your budget and core needs:\nBest Free Option: HubSpot offers a robust free tier with contact management, deal tracking, email templates, and meeting scheduling for startups.\nBest for All-in-One Value: Zoho CRM scales from a free plan for up to 3 users...",
  "linkedEntities": ["HubSpot", "Zoho CRM", "Pipedrive", "Less Annoying CRM"],
  "citations": [
    { "position": 1, "source": "Mailchimp", "url": "https://mailchimp.com/resources/best-crm-for-small-business/", "domain": "mailchimp.com" },
    { "position": 3, "source": "Reddit", "url": "https://www.reddit.com/r/CRM/comments/1e5141p/best_and_inexpensive_crm_for_small_business/", "domain": "reddit.com" },
    { "position": 5, "source": "U.S. Chamber of Commerce", "url": "https://www.uschamber.com/co/start/strategy/low-cost-crm-tools", "domain": "uschamber.com" }
  ],
  "citedDomains": ["mailchimp.com", "youtube.com", "reddit.com", "fayedigital.com", "uschamber.com"],
  "organicResults": [
    { "position": 1, "title": "The Best CRM Software for Small Businesses", "domain": "zoho.com" }
  ],
  "changes": {
    "since": "2026-10-25T17:27:30.209Z",
    "aiOverviewBefore": "shown",
    "aiOverviewAppeared": false,
    "aiOverviewDisappeared": false,
    "brands": { "gained": [], "lost": [] },
    "citedDomains": { "gained": [], "lost": [] }
  }
}
```

`changes` is `null` on a keyword's first run. When the answer shifts, it lists what moved, for example `"brands": { "gained": ["Salesforce"], "lost": ["Pipedrive"] }`.

### Uses

- **GEO / AI SEO reporting:** share of voice for your brand vs competitors in Google's AI answers
- **Content strategy:** see which pages Google cites for your topics and pitch or outrank them
- **Brand monitoring:** get told when a competitor starts appearing in answers you used to own
- **Agencies:** one dataset per client keyword set, scheduled weekly
- **Pair it with** [Google Keyword Suggestions](https://apify.com/scrapemint/google-keyword-suggestions-scraper) to build the keyword list

### Notes

- Google does not show an AI Overview for every search. Those keywords come back as `"aiOverview": "none"`, which is a result in itself.
- When Google answers "Can't generate an AI overview right now", the keyword is retried once and then returned as `unavailable`.
- History for change tracking lives in a key-value store named `ai-overview-tracker-history` in your own account.

### Pricing

- **$0.008** per keyword checked, brand analysis, citations and organic top 10 included
- No start fee. Keywords whose Google page could not be fetched are free.

# Actor input Schema

## `keywords` (type: `array`):

Searches to check, one per line, e.g. best crm for small business, "hubspot alternatives", how to choose running shoes.

## `brands` (type: `array`):

Your brand and competitors, e.g. HubSpot, Zoho, Pipedrive. Each row says whether the AI Overview mentions them, how often, in what order, and whether their site is cited.

## `domains` (type: `array`):

Sites to look for among the AI Overview citations and the organic top 10, e.g. hubspot.com.

## `includeOrganic` (type: `boolean`):

Organic result titles and domains with positions.

## `retryUnavailable` (type: `boolean`):

Google sometimes replies "Can't generate an AI overview right now". Retry those keywords once.

## `trackChanges` (type: `boolean`):

Remember each keyword's last result and report brands and cited domains gained or lost. History lives in your named key-value store ai-overview-tracker-history.

## `country` (type: `string`):

Two-letter country code (gl), e.g. us, gb, ca, au, in.

## `language` (type: `string`):

Interface language (hl), e.g. en, de, fr, es.

## Actor input object example

```json
{
  "keywords": [
    "best crm for small business",
    "best project management software"
  ],
  "brands": [
    "HubSpot",
    "Zoho",
    "Pipedrive",
    "Salesforce",
    "monday.com"
  ],
  "domains": [
    "hubspot.com"
  ],
  "includeOrganic": true,
  "retryUnavailable": true,
  "trackChanges": true,
  "country": "us",
  "language": "en"
}
```

# Actor output Schema

## `keywords` (type: `string`):

AI Overview status and text, brand mentions, citations, your domains, organic top 10 and changes since the last run.

## `summary` (type: `string`):

Keywords checked and how many showed an AI Overview.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "best crm for small business",
        "best project management software"
    ],
    "brands": [
        "HubSpot",
        "Zoho",
        "Pipedrive",
        "Salesforce",
        "monday.com"
    ],
    "domains": [
        "hubspot.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapemint/ai-overview-brand-tracker").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keywords": [
        "best crm for small business",
        "best project management software",
    ],
    "brands": [
        "HubSpot",
        "Zoho",
        "Pipedrive",
        "Salesforce",
        "monday.com",
    ],
    "domains": ["hubspot.com"],
}

# Run the Actor and wait for it to finish
run = client.actor("scrapemint/ai-overview-brand-tracker").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "best crm for small business",
    "best project management software"
  ],
  "brands": [
    "HubSpot",
    "Zoho",
    "Pipedrive",
    "Salesforce",
    "monday.com"
  ],
  "domains": [
    "hubspot.com"
  ]
}' |
apify call scrapemint/ai-overview-brand-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapemint/ai-overview-brand-tracker"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/a9DFah71FMTOe55O2/builds/xpLKTHYDTokh9gX97/openapi.json
