ScavioScavio
ProduitTarifsDocumentation
ConnexionCommencer
  1. Accueil
  2. Tutoriels
  3. Comment construire un système d'alerte de changement des AI Overview
Tutoriel

Comment construire un système d'alerte de changement des AI Overview

Surveillez quotidiennement les changements des AI Overview de Google. Détectez les nouvelles citations, les citations supprimées et les changements de texte. Pipeline d'alerte automatisé avec Python.

Obtenez une clé API gratuiteDocumentation API

Construisez un système d'alerte de changement des AI Overview qui établit une référence du contenu des AI Overview pour vos requêtes cibles, exécute des recherches quotidiennes avec analyse des AI Overview, compare le contenu actuel à la référence, et alerte lorsque des citations sont ajoutées, supprimées, ou lorsque le texte du résumé change significativement. Les AI Overview de Google sont désormais une source de trafic principale pour de nombreuses requêtes, et les citations peuvent apparaître ou disparaître sans avertissement. Un système de surveillance automatisé détecte ces changements en 24 heures au lieu de semaines.

Prérequis

  • Python 3.8+ installé
  • bibliothèque requests installée
  • Une clé API Scavio depuis scavio.dev
  • Une liste de requêtes cibles à surveiller

Parcours

Étape 1: Requêtes de référence

Effectuez des recherches initiales pour établir une référence du contenu des AI Overview pour chaque requête cible.

Python
import os, requests, json, datetime, hashlib

API_KEY = os.environ['SCAVIO_API_KEY']

QUERIES = [
    'best search api for developers',
    'how to add search to ai agent',
    'serp api comparison 2026',
]
BASELINE_FILE = 'ai_overview_baseline.json'

def fetch_ai_overview(query: str) -> dict:
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': API_KEY},
        json={'platform': 'google', 'query': query}, timeout=15)
    data = resp.json()
    ai = data.get('ai_overview', {})
    if isinstance(ai, dict):
        return {
            'text': ai.get('text', ''),
            'citations': ai.get('citations', []),
        }
    return {'text': str(ai), 'citations': []}

def create_baseline(queries: list) -> dict:
    baseline = {}
    for q in queries:
        overview = fetch_ai_overview(q)
        baseline[q] = {
            'date': datetime.date.today().isoformat(),
            'text_hash': hashlib.md5(overview['text'].encode()).hexdigest(),
            'text': overview['text'][:500],
            'citations': overview['citations'],
        }
        print(f'{q}: {len(overview["text"])} chars, {len(overview["citations"])} citations')
    with open(BASELINE_FILE, 'w') as f:
        json.dump(baseline, f, indent=2)
    return baseline

baseline = create_baseline(QUERIES)

Étape 2: Recherche quotidienne avec analyse des AI Overview

Effectuez des recherches quotidiennes et analysez le contenu actuel des AI Overview pour comparaison.

Python
def daily_scan(queries: list) -> dict:
    current = {}
    for q in queries:
        overview = fetch_ai_overview(q)
        current[q] = {
            'date': datetime.date.today().isoformat(),
            'text_hash': hashlib.md5(overview['text'].encode()).hexdigest(),
            'text': overview['text'][:500],
            'citations': overview['citations'],
        }
    return current

current = daily_scan(QUERIES)
for q, data in current.items():
    print(f'{q}: {len(data["citations"])} citations')

Étape 3: Comparer les citations

Comparez les citations actuelles à la référence pour trouver les ajouts et les suppressions.

Python
def extract_urls(citations: list) -> set:
    urls = set()
    for c in citations:
        if isinstance(c, dict):
            urls.add(c.get('url', c.get('link', '')))
        elif isinstance(c, str):
            urls.add(c)
    return urls

def diff_citations(baseline_entry: dict, current_entry: dict) -> dict:
    base_urls = extract_urls(baseline_entry.get('citations', []))
    curr_urls = extract_urls(current_entry.get('citations', []))
    added = curr_urls - base_urls
    removed = base_urls - curr_urls
    text_changed = baseline_entry.get('text_hash') != current_entry.get('text_hash')
    return {
        'added': list(added),
        'removed': list(removed),
        'text_changed': text_changed,
        'has_changes': bool(added or removed or text_changed),
    }

# Example:
base = {'citations': [{'url': 'https://a.com'}, {'url': 'https://b.com'}], 'text_hash': 'abc'}
curr = {'citations': [{'url': 'https://b.com'}, {'url': 'https://c.com'}], 'text_hash': 'def'}
diff = diff_citations(base, curr)
print(f'Added: {diff["added"]}, Removed: {diff["removed"]}, Text changed: {diff["text_changed"]}')

Étape 4: Alerter en cas de changements

Générez des alertes pour tout changement détecté et imprimez un rapport récapitulatif.

Python
def generate_alerts(baseline: dict, current: dict) -> list:
    alerts = []
    for query in current:
        if query not in baseline:
            continue
        diff = diff_citations(baseline[query], current[query])
        if diff['has_changes']:
            alert = {
                'query': query,
                'date': current[query]['date'],
                'added_citations': diff['added'],
                'removed_citations': diff['removed'],
                'text_changed': diff['text_changed'],
            }
            alerts.append(alert)
            print(f'CHANGE DETECTED: {query}')
            if diff['added']:
                print(f'  Added: {diff["added"]}')
            if diff['removed']:
                print(f'  Removed: {diff["removed"]}')
            if diff['text_changed']:
                print(f'  AI Overview text modified')
    if not alerts:
        print('No changes detected in AI Overviews')
    return alerts

alerts = generate_alerts(baseline, current)

Étape 5: Journaliser l'historique des changements

Maintenez un journal continu de tous les changements détectés pour une analyse des tendances au fil du temps.

Python
HISTORY_FILE = 'ai_overview_changes.jsonl'

def log_changes(alerts: list):
    if not alerts:
        return
    with open(HISTORY_FILE, 'a') as f:
        for alert in alerts:
            f.write(json.dumps(alert) + '\n')
    print(f'Logged {len(alerts)} changes to {HISTORY_FILE}')

def read_history() -> list:
    entries = []
    try:
        with open(HISTORY_FILE) as f:
            for line in f:
                if line.strip():
                    entries.append(json.loads(line))
    except FileNotFoundError:
        pass
    return entries

# Update baseline after processing
def update_baseline(current: dict):
    with open(BASELINE_FILE, 'w') as f:
        json.dump(current, f, indent=2)
    print('Baseline updated')

log_changes(alerts)
history = read_history()
print(f'Total historical changes: {len(history)}')

Exemple Python

Python
import requests, os, hashlib
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}

def check_ai_overview(query):
    data = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
        json={'platform': 'google', 'query': query}).json()
    ai = data.get('ai_overview', {})
    text = ai.get('text', '') if isinstance(ai, dict) else str(ai)
    citations = ai.get('citations', []) if isinstance(ai, dict) else []
    return {'hash': hashlib.md5(text.encode()).hexdigest(), 'citations': len(citations)}

print(check_ai_overview('best search api 2026'))

Exemple JavaScript

JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function checkAiOverview(query) {
  const r = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST', headers: H, body: JSON.stringify({platform: 'google', query})
  });
  const ai = (await r.json()).ai_overview || {};
  const text = ai.text || '';
  return {length: text.length, citations: (ai.citations || []).length};
}
checkAiOverview('best search api 2026').then(console.log);

Sortie attendue

JSON
An automated daily system that monitors Google AI Overview changes, detects citation additions/removals, tracks text modifications, and maintains a change history log.

Tutoriels associés

  • Comment suivre les changements des AI Overviews quotidiennement avec une API de recherche
  • Comment surveiller les mentions de marque de l'agent Google AI

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 requêtes cibles à surveiller. 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

Surveillance de marque Google AI Mode

Read more
Workflow

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

Read more
Use Case

Suivi des citations AI Overview

Read more
Best Of

Meilleurs traceurs de citations AI Overview en 2026

Read more
Solution

Surveillance des citations dans les AI Overviews

Read more
Glossary

Suivi des citations AI Overview

Read more

Commencer

Surveillez quotidiennement les changements des AI Overview de Google. Détectez les nouvelles citations, les citations supprimées et les changements de texte. Pipeline d'alerte automatisé avec Python.

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é