ai-visibility-audit
AI Visibility Audit
Audit how a brand appears in a dated sample of AI answers and identify useful investigations. Connect through the unifapi skill. Read the current schema and price for each operation, set a budget, and reuse existing product context.
Workflow
- Choose 10–30 prompts covering definitions, comparisons, purchase criteria and concrete use cases. Freeze brands, aliases, citation domains, market and language.
- Use
POST /geo/answersfor ChatGPT or Gemini. Record engine, surface, exact prompt, search mode, reported model (or null), observation time, answer, sources, brand observations and request id. ChatGPT natural and forced-search samples belong in separate groups. - Use
/geo/serpfor Google AI Mode and/seo/serpwithinclude_ai_overviewfor Google Search AI Overviews. Inspect answer references; a top-level target match can also refer to another link. A result's rank is not a brand recommendation rank. Do not attribute either Google response to ChatGPT. - Keep corpus discovery separate.
/geo/mentions/search,/top-domainsand/top-pagesidentify indexed answers and frequently represented sources. They do not confirm the result of a particular live prompt./cross-aggregated-metricsreturns group counts with potentially overlapping groups, not a computed citation share. - Save raw normalized responses and billing. Use the runner in
llm-mention-tracking/scripts/monitor.mjsfor budgeted ChatGPT/Gemini collection, resumable snapshots and CSV evidence.
Measure coverage and tracked-brand share
Use the definitions in references/geo-methodology.md. Report completion rate, answer rate, brand mention coverage and citation coverage per engine. Coverage measures presence across successful collections, including valid no-answer results. Share measures a brand's fraction of the summed observations for tracked brands; it does not estimate total market share.
Do not merge citation links with unused search results. Deduplicate a brand within each answer. Missing denominators are N/A. If weighting by estimated AI search volume, show the unweighted result and use a denominator summed across every tracked brand. Never use an “any brand appeared” denominator and label the result share.