Les Google AI Overviews (anciennement Search Generative Experience) apparaissent en haut des résultats de recherche pour de nombreuses requêtes informationnelles. Ils résument plusieurs sources en une réponse concise visible avant les résultats organiques. Pour les professionnels du SEO et les stratèges de contenu, savoir si une requête déclenche un AI Overview et ce qu'il dit est de plus en plus important pour comprendre l'impact sur le trafic. L'API Scavio renvoie le champ ai_overview dans les réponses SERP lorsque Google en génère un. Ce tutoriel montre comment détecter et extraire le contenu des AI Overviews.
Prérequis
- Python 3.8 ou supérieur
- bibliothèque requests installée
- Une clé API Scavio
- Compréhension des fonctionnalités SERP et des bases du SEO
Parcours
Étape 1: Interrogez un sujet qui déclenche un AI Overview
Les requêtes informationnelles comme "comment fonctionne X" ou "qu'est-ce que Y" déclenchent couramment des AI Overviews. Soumettez une telle requête à l'endpoint Scavio.
data = search_google("how does retrieval augmented generation work")
ai_overview = data.get("ai_overview")
print("AI Overview present:", ai_overview is not None)Étape 2: Extrayez le texte du résumé
L'objet ai_overview contient un résumé textuel et éventuellement une liste de sources citées.
if ai_overview:
print("Summary:")
print(ai_overview.get("text", "No text available"))
print("\nSources:")
for source in ai_overview.get("sources", []):
print(f" - {source.get('title')}: {source.get('link')}")Étape 3: Vérifiez quelles requêtes déclenchent des AI Overviews
Exécutez un lot de requêtes et signalez celles qui ont des AI Overviews. Cela aide à identifier les domaines de contenu que Google résume.
def check_ai_overviews(queries: list[str]) -> dict:
results = {}
for q in queries:
data = search_google(q)
results[q] = data.get("ai_overview") is not None
return resultsÉtape 4: Sauvegardez les données des AI Overviews pour analyse
Persistez le contenu de l'AI Overview et les sources citées en JSON pour une analyse ultérieure.
import json
overviews = {}
for q in queries:
data = search_google(q)
if data.get("ai_overview"):
overviews[q] = data["ai_overview"]
with open("ai_overviews.json", "w") as f:
json.dump(overviews, f, indent=2)Exemple Python
import os
import json
import requests
API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")
ENDPOINT = "https://api.scavio.dev/api/v1/search"
def search_google(q: str) -> dict:
r = requests.post(ENDPOINT, headers={"x-api-key": API_KEY},
json={"query": q, "country_code": "us"})
r.raise_for_status()
return r.json()
def extract_ai_overviews(queries: list[str]) -> dict:
results = {}
for q in queries:
data = search_google(q)
ai = data.get("ai_overview")
results[q] = {"has_overview": ai is not None, "text": ai.get("text") if ai else None}
return results
if __name__ == "__main__":
queries = ["how does vector search work", "what is rag in ai", "python vs javascript 2026"]
overviews = extract_ai_overviews(queries)
print(json.dumps(overviews, indent=2))Exemple JavaScript
const API_KEY = process.env.SCAVIO_API_KEY || "your_scavio_api_key";
const ENDPOINT = "https://api.scavio.dev/api/v1/search";
async function searchGoogle(q) {
const res = await fetch(ENDPOINT, {
method: "POST",
headers: { "x-api-key": API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ query: q, country_code: "us" })
});
return res.json();
}
async function extractAIOverviews(queries) {
const results = {};
for (const q of queries) {
const data = await searchGoogle(q);
results[q] = { hasOverview: !!data.ai_overview, text: data.ai_overview?.text || null };
}
return results;
}
extractAIOverviews(["how does vector search work", "what is rag in ai"])
.then(r => console.log(JSON.stringify(r, null, 2)))
.catch(console.error);Sortie attendue
{
"ai_overview": {
"text": "Retrieval-Augmented Generation (RAG) is a technique that enhances LLM responses by retrieving relevant documents from an external knowledge base before generating an answer...",
"sources": [
{ "title": "What is RAG? — AWS", "link": "https://aws.amazon.com/what-is/retrieval-augmented-generation/" },
{ "title": "RAG Explained — LangChain Blog", "link": "https://blog.langchain.dev/rag-explained" }
]
}
}