Aperçu
Générer des briefs de contenu basés sur des données SERP en direct plutôt que sur des estimations d'outils de mots-clés. Récupérer les 10 premières pages classées, les questions « Les gens demandent aussi », les recherches associées et le statut de l'AI Overview pour un mot-clé cible. Générer un brief structuré avec les lacunes de contenu, le format recommandé et l'analyse concurrentielle.
Déclencheur
À la demande par requête de mot-clé
Planification
À la demande
Étapes du workflow
Rechercher le mot-clé cible
Interroger Google pour le mot-clé cible avec extraction de l'AI Overview. Récupérer les résultats organiques, les PAA, les recherches associées et les extraits en vedette.
Analyser les pages classées
Extraire les titres, les méta-descriptions et les types de contenu des 10 premiers résultats. Identifier si Google préfère les listicles, les guides pratiques, les comparatifs ou les outils.
Extraire les lacunes de contenu
Trouver les sujets couverts par les PAA et les recherches associées que les 3 premiers résultats ne traitent pas. Ce sont des opportunités pour le nouvel article.
Vérifier la présence de l'AI Overview
Si un AI Overview existe, identifier les sources citées et le format utilisé par l'AI Overview. Cela informe l'optimisation AEO.
Générer un brief structuré
Générer un brief de contenu avec : titre recommandé, nombre de mots cible, sections requises, questions PAA à répondre, positionnement concurrentiel et stratégie AEO.
Implémentation Python
import requests, os
H = {"x-api-key": os.environ["SCAVIO_API_KEY"], "Content-Type": "application/json"}
def generate_brief(keyword):
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers=H, json={"query": keyword, "country_code": "us",
"include_ai_overview": True}).json()
organics = resp.get("organic_results", [])[:10]
paa = resp.get("people_also_ask", [])
related = resp.get("related_searches", [])
aio = resp.get("ai_overview")
brief = {
"keyword": keyword,
"top_results": [{"title": r["title"], "url": r["link"]} for r in organics[:5]],
"paa_questions": [q["question"] for q in paa],
"related_keywords": [r["query"] for r in related],
"ai_overview": {
"exists": bool(aio),
"sources_count": len(aio.get("sources", [])) if aio else 0,
"cited_domains": [s.get("link", "").split("/")[2] for s in (aio or {}).get("sources", [])],
},
"content_type": "listicle" if any(w in organics[0].get("title", "").lower()
for w in ["best", "top", "vs"]) else "guide" if organics else "unknown",
}
print(f"Brief for: {keyword}")
print(f" Format: {brief['content_type']}")
print(f" PAA to answer: {len(brief['paa_questions'])}")
print(f" AI Overview: {'yes' if brief['ai_overview']['exists'] else 'no'}")
return brief
generate_brief("best serp api 2026")Implémentation JavaScript
const H = { "x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json" };
async function generateBrief(keyword) {
const resp = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST", headers: H,
body: JSON.stringify({ query: keyword, country_code: "us", include_ai_overview: true })
}).then(r => r.json());
const paa = resp.people_also_ask || [];
const related = resp.related_searches || [];
console.log(`Brief: "${keyword}"`);
console.log(` Top result: ${resp.organic_results?.[0]?.title}`);
console.log(` PAA questions: ${paa.length}`);
console.log(` AI Overview: ${resp.ai_overview ? "present" : "absent"}`);
}
generateBrief("best serp api 2026");Plateformes utilisées
Recherche web avec graphe de connaissances, PAA et aperçus IA