Resumen
SEO agencies necesita to mostrar clientes si their contenido appears in Google AI Overviews, pero no rastreador de posiciones incluye AIO datos. Este flujo de trabajo verifica cliente palabras clave diario, extrae AI Overview presence y citacion fuentes, y genera un informe con tendencias. 100 palabras clave per cliente costs $0.50/dia ($15/mes).
Desencadenador
Diario cron at 8 AM UTC.
Programación
Diario at 8 AM UTC
Pasos del flujo de trabajo
Cargar Client Palabra clave Lists
Leer palabra clave listas for cada cliente de el base de datos. Cada palabra clave tiene el dominio objetivo y priority level.
Verificar AI Overview Presence
For cada palabra clave, search via Scavio y verificar si un AI Overview es present. Si present, extraer citacion fuentes.
Rastrear Citacion Cambios
Comparar today's citaciones contra yesterday's. Marcar nuevo citaciones, lost citaciones, y competidor entradas.
Generar Client Informe
Compile un per-client informe con AIO cobertura porcentaje, citacion tendencia, top cited competidores, y nuevo citacion oportunidades.
Enviar Informe via Email o Dashboard
Push el informe to el cliente panel de control o enviar as un branded PDF via correo electronico.
Implementacion en Python
import requests, os, json
from datetime import date
API_KEY = os.environ["SCAVIO_API_KEY"]
def check_aio(keyword: str, target_domain: str) -> dict:
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY, "Content-Type": "application/json"},
json={"query": keyword, "country_code": "us"},
timeout=15,
)
data = resp.json()
aio = data.get("ai_overview")
return {
"keyword": keyword,
"date": str(date.today()),
"has_aio": aio is not None,
"target_cited": any(target_domain in (s.get("domain", "") or "") for s in (aio or {}).get("sources", [])),
"cited_sources": [(s.get("domain", ""), s.get("title", "")) for s in (aio or {}).get("sources", [])],
}
client_keywords = [
{"kw": "best crm for small business", "domain": "example.com"},
{"kw": "how to track seo rankings", "domain": "example.com"},
]
for item in client_keywords:
result = check_aio(item["kw"], item["domain"])
status = "CITED" if result["target_cited"] else ("AIO" if result["has_aio"] else "none")
print(f"[{status}] {item['kw']}")Implementacion en JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function checkAio(keyword, targetDomain) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:H, body:JSON.stringify({query:keyword, country_code:'us'})});
const d = await r.json();
const aio = d.ai_overview;
return {keyword, hasAio:!!aio, targetCited:(aio?.sources||[]).some(s=>(s.domain||'').includes(targetDomain)), sources:(aio?.sources||[]).map(s=>s.domain)};
}
const keywords = [{kw:'best crm for small business',domain:'example.com'}];
for (const k of keywords) {
const r = await checkAio(k.kw, k.domain);
console.log((r.targetCited?'CITED':r.hasAio?'AIO':'none')+' '+k.kw);
}Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA