ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo crear un rastreador de citas OEA
Tutorial

Cómo crear un rastreador de citas OEA

Cree un rastreador de citas automatizado de descripción general de IA. Supervise qué dominios se citan, realice un seguimiento de la frecuencia de las citas y detecte cambios a lo largo del tiempo.

Obtener clave API gratisDocumentacion API

Las citas de AI Overview determinan qué sitios web obtienen visibilidad en las respuestas generadas por AI de Google. El seguimiento de estas citas a lo largo del tiempo revela qué dominios están ganando o perdiendo visibilidad en las búsquedas de IA, qué formatos de contenido son los más citados y cómo cambian los patrones de citas de Google. Este tutorial muestra cómo crear un rastreador de citas OEA automatizado que monitorea un conjunto de palabras clave, registra qué dominios aparecen en las fuentes de AI Overview y rastrea la frecuencia de las citas a lo largo del tiempo. Creará un canal que se ejecutará diariamente y generará informes de tendencias.

Requisitos previos

  • Python 3.8+ instalado
  • solicita biblioteca instalada
  • Una clave API de Scavio de scavio.dev
  • Una lista de palabras clave para monitorear las citas de descripción general de AI

Guia paso a paso

Paso 1: Configurar el rastreador

Defina las palabras clave y el almacenamiento para el seguimiento de citas.

Python
import os, requests, json
from datetime import date
from collections import Counter

API_KEY = os.environ["SCAVIO_API_KEY"]
TRACKER_FILE = "aeo_citations.json"

KEYWORDS = [
    "what is RAG in AI",
    "best CRM for small business",
    "how to automate email outreach",
    "python web scraping alternatives",
]

Paso 2: Extraer citas de descripción general de IA

Consulta cada palabra clave y extrae los dominios citados en AI Overviews.

Python
def extract_citations(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 []
    from urllib.parse import urlparse
    domains = [urlparse(s.get("link", "")).netloc for s in sources if s.get("link")]
    return {
        "keyword": keyword,
        "has_aio": bool(aio),
        "citation_count": len(sources),
        "domains": domains,
        "urls": [s.get("link", "") for s in sources],
        "date": date.today().isoformat(),
    }

Paso 3: Construir la base de datos de citas

Almacene datos de citas a lo largo del tiempo para permitir el análisis de tendencias.

Python
def load_tracker():
    try:
        with open(TRACKER_FILE) as f:
            return json.load(f)
    except FileNotFoundError:
        return []

def save_snapshot(keywords):
    tracker = load_tracker()
    snapshot = {
        "date": date.today().isoformat(),
        "citations": [extract_citations(kw) for kw in keywords],
    }
    all_domains = []
    for c in snapshot["citations"]:
        all_domains.extend(c["domains"])
    snapshot["top_domains"] = Counter(all_domains).most_common(10)
    tracker.append(snapshot)
    with open(TRACKER_FILE, "w") as f:
        json.dump(tracker, f, indent=2)
    return snapshot

Paso 4: Generar informe de tendencias

Compare instantáneas para detectar cambios en las citas y cambios en la clasificación de dominios.

Python
def trend_report():
    tracker = load_tracker()
    if len(tracker) < 2:
        return {"status": "need at least 2 snapshots"}
    current = tracker[-1]
    previous = tracker[-2]
    curr_domains = Counter()
    prev_domains = Counter()
    for c in current["citations"]:
        curr_domains.update(c["domains"])
    for c in previous["citations"]:
        prev_domains.update(c["domains"])
    gainers = {d: curr_domains[d] - prev_domains.get(d, 0)
               for d in curr_domains if curr_domains[d] > prev_domains.get(d, 0)}
    losers = {d: prev_domains[d] - curr_domains.get(d, 0)
              for d in prev_domains if prev_domains[d] > curr_domains.get(d, 0)}
    return {
        "period": f"{previous['date']} -> {current['date']}",
        "gainers": dict(sorted(gainers.items(), key=lambda x: -x[1])[:5]),
        "losers": dict(sorted(losers.items(), key=lambda x: -x[1])[:5]),
    }

Paso 5: Seguimiento del rendimiento de un dominio específico

Supervise cómo cambia el recuento de citas de un dominio específico con el tiempo.

Python
def domain_performance(domain):
    tracker = load_tracker()
    performance = []
    for snapshot in tracker:
        count = 0
        for c in snapshot["citations"]:
            count += sum(1 for d in c["domains"] if domain in d)
        performance.append({"date": snapshot["date"], "citations": count})
    return performance

perf = domain_performance("example.com")
for p in perf:
    print(f"{p['date']}: {p['citations']} citations")

Ejemplo en Python

Python
import os, requests
API_KEY = os.environ["SCAVIO_API_KEY"]
def citations(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", {})
    sources = aio.get("sources", []) if aio else []
    return {"keyword": keyword, "count": len(sources),
            "domains": [s.get("link","")[:50] for s in sources[:3]]}

print(citations("what is RAG in AI"))

Ejemplo en JavaScript

JavaScript
const H = {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"};
async function citations(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 || {};
  const sources = aio.sources || [];
  return {keyword, count: sources.length, domains: sources.slice(0,3).map(s=>s.link)};
}
citations("what is RAG in AI").then(console.log);

Salida esperada

JSON
An automated citation tracking pipeline that monitors AI Overview sources daily, stores citation history, identifies trending domains, and generates domain-level performance reports.

Tutoriales relacionados

  • Cómo realizar un seguimiento de las citas OEA con una API de búsqueda
  • Cómo crear un sistema de alerta de cambios en la descripción general de la IA

Preguntas frecuentes

La mayoria de los desarrolladores completan este tutorial en 15 a 30 minutos. Necesitaras una clave API de Scavio (el plan gratuito funciona) y un entorno de Python o JavaScript.

Python 3.8+ instalado. solicita biblioteca instalada. Una clave API de Scavio de scavio.dev. Una lista de palabras clave para monitorear las citas de descripción general de AI. Una clave API de Scavio te da 50 creditos gratuitos al registrarte.

Si. El plan gratuito incluye 50 creditos al registrarte, mas que suficiente para completar este tutorial y crear un prototipo funcional.

Scavio tiene un paquete nativo de LangChain (langchain-scavio), un servidor MCP y una API REST simple que funciona con cualquier cliente HTTP. Este tutorial usa the raw REST API, pero puedes adaptarlo al framework que prefieras.

Recursos relacionados

Best Of

Las mejores herramientas de correo electrónico frío para agencias OEA (2026)

Read more
Use Case

Seguimiento de contenido OEA para empresas locales

Read more
Best Of

Las mejores aplicaciones de productividad de IA en 2026

Read more
Solution

Pila de monitoreo OEA (DIY)

Read more
Glossary

Optimización del motor de IA (AEO)

Read more
Glossary

Panorama de proveedores de API de búsqueda (2026)

Read more

Empieza a construir

Cree un rastreador de citas automatizado de descripción general de IA. Supervise qué dominios se citan, realice un seguimiento de la frecuencia de las citas y detecte cambios a lo largo del tiempo.

Obtener clave API gratuitaLeer la documentacion
ScavioScavio

API de busqueda en tiempo real para agentes de IA. Busca en todas las plataformas, no solo en Google.

Producto

  • Funciones
  • Precios
  • Panel
  • Afiliados

Desarrolladores

  • Documentacion
  • Referencia de API
  • Inicio rapido
  • Integracion MCP
  • Python SDK

Alternativas

  • Alternativa a Tavily
  • Alternativa a SerpAPI
  • Alternativa a Firecrawl
  • Alternativa a Exa

Herramientas

  • Formateador JSON
  • cURL a codigo
  • Contador de tokens
  • Todas las herramientas

© 2026 Scavio. Todos los derechos reservados.

Featured on TAAFT
Terminos de servicioPolitica de privacidad