Resumen
Este flujo de trabajo monitorea Google AI Mode citaciones diario for un establecer of palabras clave objetivo. It consultas cada palabra clave con AI Overview extraccion enabled, verifica si your dominio es cited in el AI-generated answer, compara contra el anterior day's resultados, y envia alertas cuando citaciones son gained o lost. Designed for post-Google I/O 2026 SEO teams seguimiento visibilidad in AI Mode, cual ahora serves 1B+ usuarios.
Desencadenador
Cron programar (diario at 7 AM UTC)
Programación
Ejecuta diario at 7:00 AM UTC
Pasos del flujo de trabajo
Cargar palabras clave objetivo
Leer el lista of palabras clave objetivo de un JSON file o base de datos tabla.
Consulta con AI Overview extraccion
For cada palabra clave, call Scavio Google con ai_overview enabled to obtener el AI Mode respuesta text.
Verificar for dominio citaciones
Analizar cada AI Overview text for your dominio nombre. Record citacion presence (true/false) per palabra clave.
Comparar contra anterior resultados
Cargar yesterday's citacion datos y identificar palabras clave donde citaciones fueron gained o lost.
Enviar cambio alertas
Push gained/lost citacion notificaciones to Slack o correo electronico con palabra clave y context.
Almacenar resultados
Escribir today's citacion datos to storage for tomorrow's comparacion y historico seguimiento.
Implementacion en Python
import requests
import json
from datetime import datetime
from pathlib import Path
API_KEY = "your_scavio_api_key"
DOMAIN = "yourdomain.com"
def check_ai_citations(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[kw] = {"cited": DOMAIN in ai_text.lower(), "ai_text_length": len(ai_text)}
return results
def run():
keywords = json.loads(Path("ai_mode_keywords.json").read_text())
today = datetime.utcnow().strftime("%Y-%m-%d")
prev_path = Path("ai_citations_latest.json")
previous = json.loads(prev_path.read_text()) if prev_path.exists() else {}
current = check_ai_citations(keywords)
gained = [kw for kw in current if current[kw]["cited"] and not previous.get(kw, {}).get("cited", False)]
lost = [kw for kw in current if not current[kw]["cited"] and previous.get(kw, {}).get("cited", False)]
cited_count = sum(1 for v in current.values() if v["cited"])
print(f"AI Mode Monitor {today}: {cited_count}/{len(keywords)} cited")
if gained:
print(f" Gained: {gained}")
if lost:
print(f" Lost: {lost}")
prev_path.write_text(json.dumps(current, indent=2))
if __name__ == "__main__":
run()Implementacion en JavaScript
const API_KEY = "your_scavio_api_key";
const DOMAIN = "yourdomain.com";
async function checkAiCitations(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 data = await res.json();
const aiText = data.ai_overview?.text ?? "";
results[kw] = { cited: aiText.toLowerCase().includes(DOMAIN), textLength: aiText.length };
}
return results;
}
const keywords = ["best search api 2026", "serp api comparison", "ai overview tracking"];
const results = await checkAiCitations(keywords);
const cited = Object.values(results).filter((r) => r.cited).length;
console.log(`AI Mode: ${cited}/${keywords.length} keywords cited`);Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA