El seguimiento de AEO (AI Engine Optimization) se está volviendo esencial a medida que Google AI Overviews remodela el tráfico de búsqueda orgánica. La mayoría de las herramientas de seguimiento OEA cobran entre 100 y 500 dólares al mes por el seguimiento básico. Puede crear su propia API de informes AEO utilizando Scavio a $0,005 por crédito de búsqueda, lo que permite realizar un seguimiento de cientos de palabras clave por menos de $5 al mes. Este tutorial muestra cómo crear un punto final de informe AEO liviano que verifique si su sitio aparece en las descripciones generales de AI, rastrea las fuentes de citas y genera informes comparativos semanales.
Requisitos previos
- Python 3.8+ con Flask o FastAPI instalado
- solicita biblioteca instalada
- Una clave API de Scavio de scavio.dev
- Una lista de palabras clave objetivo para monitorear
Guia paso a paso
Paso 1: Defina su lista de palabras clave
Configure las palabras clave y los dominios que desea rastrear para determinar la presencia de AI Overview.
import os, requests, json
from datetime import date
API_KEY = os.environ["SCAVIO_API_KEY"]
MY_DOMAIN = "example.com"
KEYWORDS = [
"best crm for startups",
"how to automate lead generation",
"cold email tools 2026",
]Paso 2: Verifique la presencia de descripción general de IA
Consulta cada palabra clave y comprueba si la descripción general de IA cita tu dominio.
def check_aeo(keyword):
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": keyword})
data = resp.json()
aio = data.get("ai_overview", {})
sources = aio.get("sources", []) if aio else []
cited = any(MY_DOMAIN in s.get("link", "") for s in sources)
return {
"keyword": keyword,
"has_ai_overview": bool(aio),
"cited": cited,
"source_count": len(sources),
"date": date.today().isoformat(),
}
result = check_aeo(KEYWORDS[0])
print(json.dumps(result, indent=2))Paso 3: Construir el informe
Ejecute comprobaciones de AEO en todas las palabras clave y agréguelas en un informe.
def build_aeo_report(keywords):
results = [check_aeo(kw) for kw in keywords]
total = len(results)
with_aio = sum(1 for r in results if r["has_ai_overview"])
cited = sum(1 for r in results if r["cited"])
return {
"date": date.today().isoformat(),
"domain": MY_DOMAIN,
"total_keywords": total,
"keywords_with_ai_overview": with_aio,
"domain_cited": cited,
"citation_rate": round(cited / total * 100, 1) if total else 0,
"details": results,
}
report = build_aeo_report(KEYWORDS)
print(f"AEO citation rate: {report['citation_rate']}%")Paso 4: Guardar y comparar informes
Almacene informes como archivos JSON y compare los cambios semana tras semana.
REPORT_DIR = "aeo_reports"
os.makedirs(REPORT_DIR, exist_ok=True)
def save_report(report):
path = f"{REPORT_DIR}/{report['date']}.json"
with open(path, "w") as f:
json.dump(report, f, indent=2)
print(f"Saved report to {path}")
def compare_reports(current, previous_path):
with open(previous_path) as f:
prev = json.load(f)
return {
"citation_rate_change": current["citation_rate"] - prev["citation_rate"],
"new_citations": current["domain_cited"] - prev["domain_cited"],
}
save_report(report)Ejemplo en Python
import os, requests
API_KEY = os.environ["SCAVIO_API_KEY"]
def check_aeo(keyword):
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": keyword})
aio = resp.json().get("ai_overview", {})
return {"keyword": keyword, "has_aio": bool(aio), "sources": len(aio.get("sources", []))}
for kw in ["best crm 2026", "cold email tools"]:
print(check_aeo(kw))Ejemplo en JavaScript
const H = {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"};
async function checkAeo(keyword) {
const r = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST", headers: H,
body: JSON.stringify({platform: "google", query: keyword})
});
const aio = (await r.json()).ai_overview || {};
return {keyword, hasAio: !!aio.sources, sources: (aio.sources || []).length};
}
checkAeo("best crm 2026").then(console.log);Salida esperada
A JSON report showing AI Overview presence, citation rate, and source counts for each tracked keyword, stored for week-over-week comparison.