Resumen
Rastrear your brand's visibilidad in Google AI Overviews a traves de palabras clave objetivo semanal. El informe muestra cual palabras clave activar AI Overviews, si your contenido es cited, cual competidores appear, y week-over-week tendencias. Cost: $0.005 per palabra clave verificar, so 200 palabras clave costs $1/semana.
Desencadenador
Semanal cron on Monday at 09:00 UTC
Programación
Semanal on Monday at 09:00 UTC
Pasos del flujo de trabajo
Cargar lista de palabras clave
Leer el palabras clave objetivo de un seguimiento sheet. Group by categoria (marca, producto, competidor, industria).
Verificar AI Overview estado
Consulta cada palabra clave con AI Overview extraccion enabled. Record si un AIO appears y its contenido.
Analizar citaciones
For cada AIO, extraer el cited fuentes, verificar if your dominio appears, y note competidor dominios.
Comparar to last semana
Cargar el anterior week's informe y compute cambios: nuevo AIOs, lost citaciones, gained citaciones, nuevo competidor appearances.
Generar informe
Salida un structured informe con resumen stats, per-keyword detalles, y actionable recommendations.
Implementacion en Python
import requests, os, json
from datetime import datetime
H = {"x-api-key": os.environ["SCAVIO_API_KEY"], "Content-Type": "application/json"}
def aeo_report(keywords, my_domain, prev_report=None):
report = {"date": datetime.now().strftime("%Y-%m-%d"), "domain": my_domain, "keywords": []}
for kw in keywords:
r = requests.post("https://api.scavio.dev/api/v1/search", headers=H,
json={"platform": "google", "query": kw, "ai_overview": True}).json()
aio = r.get("ai_overview", {})
entry = {"keyword": kw, "has_aio": bool(aio), "cited": False, "competitors": []}
if aio:
sources = aio.get("sources", [])
domains = [s.get("domain", "") for s in sources]
entry["cited"] = my_domain in " ".join(domains)
entry["competitors"] = [d for d in set(domains) if d and d != my_domain][:5]
report["keywords"].append(entry)
total = len(report["keywords"])
with_aio = sum(1 for k in report["keywords"] if k["has_aio"])
cited = sum(1 for k in report["keywords"] if k["cited"])
print(f"AEO Report: {total} keywords, {with_aio} have AIO, cited in {cited}")
return report
report = aeo_report(
["best SERP API", "web scraping API", "search API for LLM"],
"scavio.dev")Implementacion en JavaScript
const H = {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"};
async function aeoReport(keywords, myDomain) {
const report = {date: new Date().toISOString().split("T")[0], domain: myDomain, keywords: []};
for (const kw of keywords) {
const r = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST", headers: H,
body: JSON.stringify({platform: "google", query: kw, ai_overview: true})
}).then(r => r.json());
const aio = r.ai_overview || {};
const sources = aio.sources || [];
const domains = sources.map(s => s.domain || "");
report.keywords.push({
keyword: kw, hasAio: !!aio.text,
cited: domains.join(" ").includes(myDomain),
competitors: [...new Set(domains.filter(d => d && d !== myDomain))].slice(0, 5),
});
}
const withAio = report.keywords.filter(k => k.hasAio).length;
const cited = report.keywords.filter(k => k.cited).length;
console.log(`AEO Report: ${keywords.length} kws, ${withAio} AIO, cited in ${cited}`);
return report;
}
aeoReport(["best SERP API", "web scraping API"], "scavio.dev");Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA