ScavioScavio
ProduitTarifsDocumentation
ConnexionCommencer
  1. Accueil
  2. Tutoriels
  3. Comment construire un suivi de citations AEO
Tutoriel

Comment construire un suivi de citations AEO

Construire un suivi automatisé des citations AI Overview. Surveiller quels domaines sont cités, suivre la fréquence des citations et détecter les changements au fil du temps.

Obtenez une clé API gratuiteDocumentation API

Les citations AI Overview déterminent quels sites Web obtiennent de la visibilité dans les réponses générées par l'IA de Google. Le suivi de ces citations dans le temps révèle quels domaines gagnent ou perdent en visibilité dans la recherche IA, quels formats de contenu sont le plus cités et comment les schémas de citation de Google évoluent. Ce tutoriel montre comment construire un suivi AEO automatisé des citations qui surveille un ensemble de mots-clés, enregistre quels domaines apparaissent dans les sources AI Overview et suit la fréquence des citations au fil du temps. Vous créerez un pipeline qui s'exécute quotidiennement et génère des rapports de tendance.

Prérequis

  • Python 3.8+ installé
  • bibliothèque requests installée
  • Une clé API Scavio depuis scavio.dev
  • Une liste de mots-clés à surveiller pour les citations AI Overview

Parcours

Étape 1: Configurer le suivi

Définir les mots-clés et le stockage pour le suivi des citations.

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",
]

Étape 2: Extraire les citations AI Overview

Interroger chaque mot-clé et extraire les domaines cités dans les 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(),
    }

Étape 3: Construire la base de données des citations

Stocker les données de citation au fil du temps pour permettre l'analyse des tendances.

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

Étape 4: Générer un rapport de tendance

Comparer les instantanés pour détecter les changements de citation et les variations de classement des domaines.

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]),
    }

Étape 5: Suivre les performances d'un domaine spécifique

Surveiller comment le nombre de citations d'un domaine spécifique évolue dans le temps.

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")

Exemple 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"))

Exemple 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);

Sortie attendue

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

Tutoriels associés

  • Comment suivre les citations AEO avec une API de recherche
  • Comment construire un système d'alerte de changement des AI Overview

Questions fréquentes

La plupart des développeurs terminent ce tutoriel en 15 à 30 minutes. Vous aurez besoin d'une clé API Scavio (l'offre gratuite suffit) et d'un environnement Python ou JavaScript fonctionnel.

Python 3.8+ installé. bibliothèque requests installée. Une clé API Scavio depuis scavio.dev. Une liste de mots-clés à surveiller pour les citations AI Overview. Une clé API Scavio vous donne 50 crédits gratuits à l'inscription.

Oui. L'offre gratuite comprend 50 crédits à l'inscription, ce qui est largement suffisant pour terminer ce tutoriel et prototyper une solution fonctionnelle.

Scavio dispose d'un package natif LangChain (langchain-scavio), d'un serveur MCP et d'une API REST simple qui fonctionne avec tout client HTTP. Ce tutoriel utilise the raw REST API, mais vous pouvez l'adapter à votre framework de prédilection.

Ressources connexes

Use Case

Suivi des citations AI Overview

Read more
Best Of

Meilleurs traceurs de citations AI Overview en 2026

Read more
Best Of

Meilleurs outils de suivi de visibilité GEO/AI en 2026

Read more
Use Case

Suivi et surveillance abordables des Aperçus IA

Read more
Workflow

Workflow de vérification de la confiance des citations AI Overview

Read more
Glossary

Suivi des citations AI Overview

Read more

Commencer

Construire un suivi automatisé des citations AI Overview. Surveiller quels domaines sont cités, suivre la fréquence des citations et détecter les changements au fil du temps.

Obtenez une clé API gratuiteLire la documentation
ScavioScavio

API de recherche en temps réel pour agents IA. Recherchez sur toutes les plateformes, pas seulement Google.

Produit

  • Fonctionnalités
  • Tarifs
  • Tableau de bord
  • Affiliés

Développeurs

  • Documentation
  • Référence API
  • Démarrage rapide
  • Intégration MCP
  • SDK Python

Alternatives

  • Alternative à Tavily
  • Alternative à SerpAPI
  • Alternative à Firecrawl
  • Alternative à Exa

Outils

  • Formateur JSON
  • cURL vers code
  • Compteur de jetons
  • Tous les outils

© 2026 Scavio. Tous droits réservés.

Featured on TAAFT
Conditions d'utilisationPolitique de confidentialité