AI Brand Visibility Monitor: ChatGPT and Gemini Share of Voice
Pricing
from $150.00 / 1,000 query-analyzeds
AI Brand Visibility Monitor: ChatGPT and Gemini Share of Voice
Track how often ChatGPT, Perplexity and Gemini recommend your brand vs competitors. Get share of voice, mention rank and cited domains per buyer-intent query — GEO analytics for the AI-search era.
AI Brand Visibility Monitor (GEO)
Measure how often AI assistants recommend your brand — and how often they recommend your competitors instead.
When people ask ChatGPT, Perplexity, or Gemini "what's the best CRM for a small business?", the answer decides who gets the customer. AI answers are the new search results page, and they increasingly drive purchase decisions — but unlike Google rankings, you can't see them without asking. This Actor asks for you, at scale, and turns the answers into hard numbers: share of voice, mention rate, mention rank, and cited sources for your brand vs. your competitors. This practice is known as GEO (Generative Engine Optimization) monitoring.
What it does
- Takes a list of buyer-intent queries (or auto-generates ~10 from a topic you provide).
- Asks each query to the AI providers you select:
- OpenAI —
gpt-4o-minivia the Responses API with web search when available (closest proxy for ChatGPT answers). - Perplexity —
sonarmodel, with native web citations. - Google Gemini —
gemini-2.0-flashwith Google Search grounding when available.
- OpenAI —
- Analyzes every answer:
- Was your brand mentioned? (case-insensitive, tolerant of plurals and possessives)
- In what order relative to competitors (mention rank — being named first matters)?
- How many times was each brand mentioned?
- Which domains did the AI cite or link? (These are the sources that shape AI answers — your GEO content targets.)
- Outputs one dataset row per (query, provider) pair, plus an aggregate SUMMARY with share of voice per brand, per provider and overall.
Run it on a schedule (Apify Schedules) to track your AI visibility over time and catch when a competitor starts winning the answers.
Input example
{"brandName": "Acme CRM","competitors": ["HubSpot", "Salesforce"],"queries": ["What is the best CRM for small businesses?","Which CRM should a startup use in 2026?","Affordable HubSpot alternatives?"],"providers": ["openai", "perplexity"],"maxQueries": 20}
Don't have queries yet? Set "autoGenerateQueries": true and "topic": "CRM software for small businesses" and the Actor will generate ~10 realistic buyer-intent questions for you.
API keys
Provider API keys are resolved in this order:
- The
apiKeysinput object (stored encrypted):{"openaiApiKey": "...", "perplexityApiKey": "...", "geminiApiKey": "..."} - Environment variables set on the Actor:
OPENAI_API_KEY,PERPLEXITY_API_KEY,GEMINI_API_KEY
You only need keys for the providers you select.
Output example
One row per (query, provider):
{"type": "result","query": "What is the best CRM for small businesses?","provider": "perplexity","brandName": "Acme CRM","brandMentioned": true,"brandRank": 2,"mentionCounts": { "brand": 1, "competitors": { "HubSpot": 3, "Salesforce": 1 } },"citedDomains": ["g2.com", "capterra.com", "hubspot.com"],"answerExcerpt": "For small businesses, HubSpot is the most commonly recommended CRM...","timestamp": "2026-07-24T12:00:00.000Z","error": null}
Aggregate summary (also saved to the key-value store as SUMMARY):
{"type": "summary","overall": {"responsesAnalyzed": 6,"brands": {"Acme CRM": { "mentions": 3, "shareOfVoicePct": 23.1, "mentionRatePct": 50.0, "avgRank": 2.3 },"HubSpot": { "mentions": 6, "shareOfVoicePct": 46.2, "mentionRatePct": 100.0, "avgRank": 1.2 },"Salesforce": { "mentions": 4, "shareOfVoicePct": 30.8, "mentionRatePct": 66.7, "avgRank": 2.0 }}},"perProvider": { "openai": { "...": "..." }, "perplexity": { "...": "..." } }}
- shareOfVoicePct — this brand's mentions as a % of all tracked-brand mentions.
- mentionRatePct — % of AI answers in which the brand appeared at all.
- avgRank — average position among mentioned brands (1 = named first).
Pricing
This Actor uses pay-per-event pricing: you are charged one query-analyzed event for each successfully analyzed (query, provider) pair. Failed provider calls are not charged. Example: 20 queries × 2 providers = up to 40 events per run.
Note for the Actor owner (publish-time): define the
query-analyzedevent in the Actor's pay-per-event pricing configuration in Apify Console. If you provide default API keys via environment variables, consider gating free-plan users (e.g., checkActor.getEnv().userIsPayingor limitmaxQueriesfor free accounts) so LLM costs on free runs stay bounded.
Honest limitations
- AI answers are non-deterministic. The same query can yield different brands on different runs. Treat single runs as samples; schedule recurring runs and watch the trend, not one data point.
- This queries provider APIs, not the consumer apps. API answers (especially with web search/grounding enabled) correlate with, but are not identical to, what a user sees in the ChatGPT/Gemini apps.
- Mention detection is lexical. It matches brand names (including plurals/possessives) but does not do entity disambiguation — a brand named after a common word (e.g., "Monday") will over-count. Prefer distinctive forms like "Monday.com" in your input.
- No sentiment analysis. The Actor measures presence, rank, and counts — not whether the mention was positive.
- Citations coverage varies. Perplexity always cites; OpenAI/Gemini only cite when their search tools are available on your API key.
Local development
npm install# Put your input into storage/key_value_stores/default/INPUT.json, then:npm start# Or with apify-cli:apify run
Set "mockMode": true in the input to smoke-test the full pipeline with deterministic fake answers and no API keys.