El problema
Los AI Overviews de Google a veces contienen inexactitudes o afirmaciones desactualizadas que se propagan a las respuestas de LLM. Los equipos de contenido necesitan verificar si sus datos publicados coinciden con lo que dice el AI Overview de Google. La verificación manual no escala cuando se monitorean cientos de consultas.
La solucion de Scavio
Use Scavio para extraer AI Overviews programáticamente, luego compare las afirmaciones con sus datos fuente. El pipeline señala discrepancias entre su contenido y lo que indica el AI Overview de Google, permitiendo a los equipos de contenido priorizar correcciones y actualizaciones.
Antes
El equipo de contenido busca manualmente en Google 20 consultas clave por semana, lee los AI Overviews y compara con el contenido publicado. Toma 4 horas. Se pierden discrepancias.
Después
El pipeline verifica 500 consultas diarias, extrae AI Overviews y señala discrepancias de contenido. El equipo de contenido corrige solo los elementos señalados. 15 minutos/día.
Para quien es
Equipos de contenido y profesionales SEO que necesitan verificar sus datos publicados contra los AI Overviews de Google a escala.
Beneficios clave
- Extracción programática de AI Overviews a escala
- Detección automatizada de discrepancias
- 500 consultas/día por $2.50 en créditos
- Correcciones de contenido priorizadas por ranking
- Previene la propagación en LLM de datos desactualizados
Ejemplo en Python
import requests, os
API_KEY = os.environ["SCAVIO_API_KEY"]
H = {"x-api-key": API_KEY, "Content-Type": "application/json"}
def extract_ai_overview(query: str) -> dict:
"""Extract AI Overview for fact-checking."""
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers=H,
json={"query": query, "country_code": "us"},
timeout=10,
)
data = resp.json()
aio = data.get("ai_overview", {})
return {
"query": query,
"has_aio": bool(aio),
"text": aio.get("text", ""),
"sources": [s.get("link", "") for s in aio.get("sources", [])],
}
def fact_check_batch(queries: list, known_facts: dict) -> list:
"""Check AI Overviews against known facts."""
flags = []
for q in queries:
aio = extract_ai_overview(q)
if not aio["has_aio"]:
continue
for fact_key, expected in known_facts.get(q, {}).items():
if expected.lower() not in aio["text"].lower():
flags.append({"query": q, "missing_fact": fact_key, "expected": expected, "aio_text": aio["text"][:200]})
return flags
queries = ["scavio search api pricing"]
known = {"scavio search api pricing": {"free_tier": "250 credits", "paid": "$30/month"}}
flags = fact_check_batch(queries, known)
for f in flags:
print(f"MISMATCH: {f['query']} - missing '{f['missing_fact']}'")Ejemplo en JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function extractAiOverview(query) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:H, body:JSON.stringify({query, country_code:'us'})});
const d = await r.json();
const aio = d.ai_overview || {};
return {query, hasAio:!!d.ai_overview, text:aio.text||'', sources:(aio.sources||[]).map(s=>s.link||'')};
}
async function factCheckBatch(queries, knownFacts) {
const flags = [];
for (const q of queries) {
const aio = await extractAiOverview(q);
if (!aio.hasAio) continue;
for (const [key, expected] of Object.entries(knownFacts[q]||{})) {
if (!aio.text.toLowerCase().includes(expected.toLowerCase())) {
flags.push({query:q, missingFact:key, expected, aioText:aio.text.slice(0,200)});
}
}
}
return flags;
}
const flags = await factCheckBatch(['scavio search api pricing'], {'scavio search api pricing':{free_tier:'250 credits', paid:'$30/month'}});
for (const f of flags) console.log('MISMATCH: '+f.query+' - missing '+f.missingFact);Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA