En 2026, 31 % des internautes américains effectuent au moins une requête par jour sur ChatGPT. Quand un prospect demande « quel est le meilleur outil [votre catégorie] ? », les marques citées par ChatGPT constituent le nouveau classement. Ce tutoriel explique comment construire un suivi quotidien qui interroge ChatGPT avec vos prompts cibles, extrait les mentions de marque et enregistre les données.
Prérequis
- Python 3.8+
- Une clé API Scavio
- Une liste de prompts pertinents pour votre marque (ex. « best SERP API 2026 »)
- Optionnel : une URL de webhook Slack pour les alertes
Parcours
Étape 1: Définir les prompts à surveiller
Sélectionnez 10 à 20 prompts qui reflètent la façon dont les prospects décrivent votre catégorie.
PROMPTS = [
'what is the best SERP API in 2026',
'top alternatives to SerpAPI',
'best search API for AI agents',
'cheapest Google search API',
]Étape 2: Interroger ChatGPT via Scavio
L'endpoint ask_chatgpt de Scavio encapsule l'interface ChatGPT et renvoie la réponse brute.
import requests, os
def ask_chatgpt(prompt):
r = requests.post('https://api.scavio.dev/api/v1/ask',
headers={'x-api-key': os.environ['SCAVIO_API_KEY']},
json={'platform': 'chatgpt', 'prompt': prompt})
return r.json()['answer']Étape 3: Extraire les mentions de marque
Appliquez une expression régulière sur le texte de la réponse pour compter les mentions de votre marque et de vos concurrents.
import re
BRANDS = ['Scavio', 'SerpAPI', 'Serper', 'Tavily', 'Brave', 'Firecrawl']
def extract_mentions(text):
counts = {}
for brand in BRANDS:
counts[brand] = len(re.findall(rf'\b{brand}\b', text, re.IGNORECASE))
return countsÉtape 4: Enregistrer les résultats quotidiens
Exécutez le suivi selon un planning et ajoutez les données à un CSV ou une base de données.
import csv, datetime
def log(prompt, counts):
row = {'date': datetime.date.today().isoformat(), 'prompt': prompt, **counts}
with open('aeo_log.csv', 'a') as f:
writer = csv.DictWriter(f, fieldnames=row.keys())
writer.writerow(row)Étape 5: Envoyer des alertes Slack en cas de changement
Déclenchez une alerte Slack lorsqu'un concurrent est nouvellement cité ou que votre marque disparaît.
import requests
def alert_slack(message, webhook_url):
requests.post(webhook_url, json={'text': message})Exemple Python
import os, re, requests, csv, datetime
API_KEY = os.environ['SCAVIO_API_KEY']
PROMPTS = ['best SERP API 2026', 'top SerpAPI alternatives']
BRANDS = ['Scavio', 'SerpAPI', 'Serper', 'Tavily']
def ask_chatgpt(prompt):
r = requests.post('https://api.scavio.dev/api/v1/ask',
headers={'x-api-key': API_KEY},
json={'platform': 'chatgpt', 'prompt': prompt})
return r.json()['answer']
for prompt in PROMPTS:
answer = ask_chatgpt(prompt)
counts = {b: len(re.findall(rf'\b{b}\b', answer, re.I)) for b in BRANDS}
print(prompt, counts)Exemple JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
const PROMPTS = ['best SERP API 2026', 'top SerpAPI alternatives'];
const BRANDS = ['Scavio', 'SerpAPI', 'Serper', 'Tavily'];
async function askChatGPT(prompt) {
const r = await fetch('https://api.scavio.dev/api/v1/ask', {
method: 'POST',
headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ platform: 'chatgpt', prompt })
});
return (await r.json()).answer;
}
for (const prompt of PROMPTS) {
const answer = await askChatGPT(prompt);
const counts = Object.fromEntries(BRANDS.map(b => [b, (answer.match(new RegExp(`\\b${b}\\b`, 'gi')) || []).length]));
console.log(prompt, counts);
}Sortie attendue
For each prompt, the tracker prints a mention count per brand. Over time, you get a daily trend of how often ChatGPT names your brand vs competitors in answers to your category-defining prompts.