Resumen
Este flujo de trabajo scans palabras clave objetivo semanal for menciones de marca in Google AI Overview respuestas. It calculates un GEO visibilidad puntuacion, rastrea week-over-week tendencias, identifies palabras clave donde citaciones fueron gained o lost, y genera un informe for stakeholder resena. At $0.50/semana for 100 palabras clave, este replaces horas of manual prompt pruebas.
Desencadenador
Cron programar (cada Friday at 6 AM UTC)
Programación
Ejecuta cada Friday at 6:00 AM UTC
Pasos del flujo de trabajo
Cargar palabra clave establecer
Leer el lista of palabras clave objetivo y marca names to rastrear.
Consulta con AI Overview
Search cada palabra clave via Scavio con ai_overview enabled.
Verificar marca citaciones
Analizar AI Overview text for nombre de marca menciones.
Calcular GEO puntuacion
Compute tasa de citacion y composite visibilidad puntuacion.
Comparar to anterior semana
Identificar gained y lost citaciones vs anterior scan.
Generar informe
Salida structured visibilidad informe con tendencias y recommendations.
Implementacion en Python
import requests
import json
from datetime import datetime
from pathlib import Path
API_KEY = "your_scavio_api_key"
BRAND = "YourBrand"
def weekly_scan(keywords: list[str]) -> dict:
results = []
for kw in keywords:
res = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": kw, "ai_overview": True},
timeout=15,
)
res.raise_for_status()
ai_text = res.json().get("ai_overview", {}).get("text", "")
results.append({"keyword": kw, "cited": BRAND.lower() in ai_text.lower()})
cited = sum(1 for r in results if r["cited"])
geo_score = round(cited / len(results), 3) if results else 0
date = datetime.utcnow().strftime("%Y-%m-%d")
prev_path = Path("visibility_latest.json")
prev_score = 0
if prev_path.exists():
prev = json.loads(prev_path.read_text())
prev_score = prev.get("geo_score", 0)
report = {
"date": date,
"brand": BRAND,
"keywords": len(keywords),
"citations": cited,
"geo_score": geo_score,
"prev_score": prev_score,
"score_change": round(geo_score - prev_score, 3),
"details": results,
}
Path(f"visibility_{date}.json").write_text(json.dumps(report, indent=2))
prev_path.write_text(json.dumps(report, indent=2))
print(f"GEO Score: {geo_score} (change: {report['score_change']:+.3f}), Citations: {cited}/{len(keywords)}")
return report
weekly_scan(["best search api 2026", "serp api comparison", "ai agent search tool"])Implementacion en JavaScript
const API_KEY = "your_scavio_api_key";
const BRAND = "YourBrand";
async function weeklyScan(keywords) {
const results = [];
for (const kw of keywords) {
const res = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: { "x-api-key": API_KEY, "content-type": "application/json" },
body: JSON.stringify({ platform: "google", query: kw, ai_overview: true }),
});
const aiText = (await res.json()).ai_overview?.text ?? "";
results.push({ keyword: kw, cited: aiText.toLowerCase().includes(BRAND.toLowerCase()) });
}
const cited = results.filter((r) => r.cited).length;
console.log(`GEO Score: ${(cited / results.length).toFixed(3)}, Citations: ${cited}/${results.length}`);
return results;
}
await weeklyScan(["best search api 2026", "serp api comparison"]);Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA