Comment Vérifier si ChatGPT Recommande Votre Marque
Un prospect vous dit qu’il vous a trouvé via ChatGPT. Un autre affirme que ChatGPT lui a recommandé votre concurrent. Vous essayez vous-même “best CRM for small business”, vous voyez votre marque près du haut de la liste et vous vous demandez à quel résultat vous fier.
Aucune de ces réponses ne vous dit à quelle fréquence les acheteurs vous voient. Pour le mesurer, il faut poser les mêmes questions d’acheteurs plusieurs fois, depuis les pays où vous vendez, sans que l’historique de votre compte influence les réponses.
Ce guide vous montre comment collecter ces réponses, compter les mentions de marques et examiner les sites que ChatGPT cite.
Pourquoi Votre Propre Vérification dans ChatGPT Est Trompeuse
Trois choses rendent une vérification manuelle rapide peu fiable :
- Votre compte peut influencer la réponse. ChatGPT peut utiliser la mémoire enregistrée et vos conversations passées. Si vous parlez souvent de votre produit, votre réponse peut ne pas ressembler à celle d’un nouvel acheteur. Le chat temporaire désactive la mémoire, mais il ne règle pas les deux autres problèmes.
- Une réponse ne montre que ce qui peut arriver. La même question peut citer votre marque une fois et l’oublier la suivante. Il vous faut des réponses répétées pour mesurer à quelle fréquence vous apparaissez.
- Votre localisation compte. Une personne qui cherche un logiciel de comptabilité au Royaume-Uni peut obtenir une liste différente de celle d’une personne aux États-Unis.
Vous pourriez penser à l’API d’OpenAI, une interface qui permet à un logiciel d’envoyer des questions directement à un modèle. Mais elle mesure une autre expérience. Elle ne reproduit pas les instructions propres à l’application ChatGPT, et la recherche web ne s’exécute que si vous l’activez vous-même. Ses réponses et ses sources ne correspondent pas forcément à ce que voient les acheteurs sur chatgpt.com.
Pour cette vérification, mesurez ce que voit un nouveau visiteur non connecté dans chaque marché. Répétez chaque question pour ne pas juger votre visibilité sur une seule réponse.
Étape 1 : Écrivez les Questions que Posent Vos Acheteurs
Commencez par des questions qui ne mentionnent pas votre marque. Demander si Pipedrive est bon teste un intérêt déjà existant pour Pipedrive. Cela ne vous dit pas si quelqu’un qui n’en a jamais entendu parler le découvrirait.
Construisez votre ensemble de prompts, c’est-à-dire les questions que vous allez envoyer, autour de quatre types :
| Type | Exemple |
|---|---|
| Catégorie | best CRM software for small business |
| Situation | what CRM should a 5 person sales team use |
| Alternative | cheaper alternatives to HubSpot |
| Problème | how do I stop losing track of leads in spreadsheets |
CRM désigne un logiciel de gestion de la relation client : un outil pour suivre les prospects, les clients et les échanges commerciaux.
Reprenez la formulation des notes d’appels commerciaux, des tickets de support, des requêtes de Google Search Console et des fils Reddit où les gens demandent des recommandations. Un ensemble de 10 à 30 prompts reste gérable.
Gardez cet ensemble fixe. Si vous changez les questions chaque semaine, vous ne pourrez pas savoir si votre visibilité a changé ou si c’est votre formulation qui a produit une réponse différente.
Pour les marchés non anglophones, rédigez les questions dans la langue locale. ChatGPT répond dans la langue du prompt, et une question en anglais envoyée depuis la France n’est pas le même test qu’un acheteur français qui pose sa question en français.
Étape 2 : Répétez Chaque Question Sans Être Connecté
Le plugin ChatGPT de ScrapeUnblocker collecte les réponses. Chaque requête ouvre une nouvelle session non connectée sur chatgpt.com. Vous pouvez choisir un pays, et le plugin attend que ChatGPT ait terminé avant de renvoyer le résultat.
Vous n’avez pas besoin de compte OpenAI. La requête suivante envoie une question et renvoie du JSON, un format de texte structuré que votre script peut lire :
curl -X POST "https://api.scrapeunblocker.com/ai/chatgpt?prompt=best%20CRM%20software%20for%20small%20business&country=US" \
-H "x-scrapeunblocker-key: YOUR_API_KEY" \
--max-time 300
Voici une réponse raccourcie avec les champs qui vous serviront à mesurer les mentions et à examiner les sources :
{
"country": "US",
"prompt": "best CRM software for small business",
"answer": "For most small businesses, HubSpot, Zoho CRM, and Pipedrive are my top three recommendations in 2026...",
"citations": [
{ "position": 1, "siteName": "G2", "domain": "g2.com", "moreSources": 2, "citedText": "..." }
],
"links": [
{ "position": 1, "title": "HubSpot website", "url": "https://www.hubspot.com/products/crm", "domain": "hubspot.com" }
],
"sources": [
{ "position": 1, "siteName": "G2", "domain": "g2.com" },
{ "position": 2, "siteName": null, "domain": "hubspot.com" }
],
"webSearch": true
}
Chaque champ a un rôle différent :
citationscontient les pastilles de source que ChatGPT attache à ses affirmations.linkscontient les liens présents dans le texte de la réponse.sourcesregroupe les sites de ces deux listes, sans doublons.webSearchvous indique si ChatGPT a fait une recherche web pour cette réponse.
Enregistrez webSearch avec la réponse. Vous en aurez besoin pour interpréter les sources à l’étape 4.
Une requête prend de 15 à 60 secondes, car le plugin attend la réponse terminée. Réglez votre timeout HTTP, le temps que votre logiciel attend avant d’abandonner, sur 300 secondes.
Étape 3 : Collectez et Notez les Réponses
Le script ci-dessous pose chaque question cinq fois depuis deux pays. Il vérifie quelles marques apparaissent, enregistre leur ordre et sauvegarde un fichier CSV que vous pouvez ouvrir dans un tableur. Pipedrive est la marque d’exemple ; remplacez-la par la vôtre.
Il utilise le paquet Python officiel de ScrapeUnblocker, une bibliothèque prête à l’emploi pour envoyer des requêtes. Installez-le avec pip install scrapeunblocker. Il vous faut la version 0.17.0 ou ultérieure pour la méthode chatgpt. Le paquet lit votre clé d’API, l’identifiant qui autorise les requêtes, dans la variable d’environnement SCRAPEUNBLOCKER_KEY.
import asyncio
import csv
import re
from collections import Counter, defaultdict
from scrapeunblocker import AsyncClient, ScrapeUnblockerError
BRAND = "Pipedrive"
OUR_DOMAIN = "pipedrive.com"
NAMES = { # every brand you want to rank, with the spellings ChatGPT uses
"Pipedrive": [r"pipedrive"],
"HubSpot": [r"hubspot"],
"Zoho CRM": [r"zoho"],
"Salesforce": [r"salesforce"],
}
PROMPTS = [
"best CRM software for small business",
"what CRM should a 5 person sales team use",
"cheaper alternatives to HubSpot",
"simple CRM for a B2B startup",
]
COUNTRIES = ["US", "GB"]
SAMPLES = 5
def first_hit(text, patterns):
hits = [m.start() for p in patterns for m in re.finditer(rf"\b{p}\b", text, re.I)]
return min(hits) if hits else None
def brand_rank(text):
found = sorted(
(pos, name)
for name, patterns in NAMES.items()
if (pos := first_hit(text, patterns)) is not None
)
order = [name for _, name in found]
return order.index(BRAND) + 1 if BRAND in order else None
def is_ours(domain):
return domain == OUR_DOMAIN or domain.endswith("." + OUR_DOMAIN)
async def ask(su, sem, prompt, country):
row = {"prompt": prompt, "country": country, "error": "",
"web_search": "", "rank": "", "cited_us": "", "domains": ""}
async with sem:
try:
r = await su.chatgpt(prompt, country=country)
except ScrapeUnblockerError as e:
row["error"] = type(e).__name__
return row
domains = sorted({s["domain"] for s in r["sources"]})
row.update(
web_search=r["webSearch"],
rank=brand_rank(r["answer"]) or "",
cited_us=any(is_ours(d) for d in domains),
domains=" ".join(domains),
)
return row
async def main():
sem = asyncio.Semaphore(5)
async with AsyncClient(timeout=300) as su:
rows = await asyncio.gather(*(
ask(su, sem, p, c)
for p in PROMPTS for c in COUNTRIES for _ in range(SAMPLES)
))
with open("chatgpt_visibility.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=rows[0].keys())
writer.writeheader()
writer.writerows(rows)
return rows
rows = asyncio.run(main())
groups = defaultdict(list)
for row in rows:
if not row["error"]:
groups[(row["country"], row["prompt"])].append(row)
for (country, prompt), runs in groups.items():
named = [r["rank"] for r in runs if r["rank"]]
cited = sum(1 for r in runs if r["cited_us"])
print(f"{country} | {prompt}: named {len(named)}/{len(runs)}, "
f"best rank {min(named, default='-')}, cited {cited}/{len(runs)}")
searched = Counter(
d for r in rows if r["web_search"] is True for d in r["domains"].split()
)
print(searched.most_common(15))
Avant de vous fier aux scores, vérifiez trois détails :
Vérifiez Comment les Noms de Marque Sont Reconnus
Le script utilise \b...\b pour chercher des mots entiers et re.I pour ignorer la casse. Cela évite qu’un nom de marque corresponde à des lettres à l’intérieur d’un mot plus long.
Cela ne lève pas toutes les ambiguïtés. Par exemple, le mot anglais courant “notion” peut encore ressembler à une mention de Notion. Lisez quelques réponses brutes pour contrôler les correspondances et trouver d’autres graphies de marques à ajouter à NAMES, la liste de marques du script.
Considérez le Rang Comme Relatif à Votre Liste de Marques
Le script classe les marques selon l’endroit où chacune est citée pour la première fois, en ne comptant que les marques de NAMES.
Un rang 2 signifie donc qu’une autre marque suivie est apparue avant. Cela ne veut pas forcément dire que votre marque était deuxième dans la liste de recommandations de ChatGPT.
Incluez Vos Sous-Domaines
Une source peut apparaître sous la forme legal.hubspot.com plutôt que hubspot.com. La première est un sous-domaine, une adresse distincte sous le domaine principal.
La vérification is_ours() du script inclut les sous-domaines. Une comparaison exacte avec le seul domaine principal les manquerait.
L’exécution d’exemple envoie 40 requêtes : 4 prompts x 2 pays x 5 réponses. Elle exécute cinq requêtes à la fois. Gardez le sémaphore, le réglage qui contrôle combien de requêtes tournent en même temps, dans la limite de concurrence de votre offre.
Le paquet Python relance automatiquement les réponses 503 de surcharge. Un 503 n’est pas facturé.
Étape 4 : Regardez les Sources, Pas Seulement les Mentions
Votre taux de mention est la part des réponses qui citent votre marque. “Citée dans 2 réponses sur 5 aux États-Unis et 0 sur 5 au Royaume-Uni” est plus utile que “je nous ai vus dans ChatGPT”.
Pour comprendre pourquoi vous apparaissez ou non, séparez les résultats selon webSearch.
Quand webSearch Vaut true
ChatGPT a fait une recherche web avant de répondre. Les domaines de sources montrent les sites renvoyés avec cette réponse.
Repérez les sites qui reviennent. Si g2.com et deux articles du type “les meilleurs” reviennent sans cesse, vérifiez si votre marque est présente sur ces sites. Vous trouverez peut-être un profil d’avis incomplet, un comparatif qui vous laisse de côté ou un classement dépassé.
Ce sont des pistes concrètes à explorer. Figurer sur les pages qu’utilise ChatGPT peut être un levier plus rapide que de réécrire votre page d’accueil.
Quand webSearch Vaut false
ChatGPT a répondu sans recherche web, à partir de ce que le modèle a appris pendant son entraînement. Ne comptez pas sur ce que vous publiez cette semaine pour changer rapidement ces réponses.
Continuez à suivre ces prompts, mais séparez-les des réponses avec recherche quand vous décidez où concentrer votre travail.
Le script se termine par un Counter, qui compte combien de fois chaque domaine source apparaît dans les réponses avec recherche. Servez-vous de cette liste pour trouver les sites qui reviennent d’une question d’acheteur à l’autre. Dans beaucoup de catégories, cette courte liste est le résultat le plus utile de tout l’exercice : elle montre quels sites ChatGPT lit quand vos acheteurs posent leurs questions.
Ce Que Cette Méthode Ne Mesure Pas
Gardez ces limites en tête à côté de vos résultats :
- Les utilisateurs connectés. Un utilisateur connecté, avec la mémoire activée et peut-être un autre modèle, peut obtenir une autre réponse. Vos résultats non connectés sont une base de référence, pas une vue complète de tous les acheteurs.
- La page exacte de chaque source. ChatGPT non connecté n’affiche l’URL complète d’une page citée qu’au survol. Les données de citation vous donnent donc le site et le domaine, pas la page exacte. Les liens écrits dans le texte de la réponse incluent en revanche leur
urlcomplète. - Le modèle qui a répondu. Le champ
modelvaut toujoursnull, c’est-à-dire qu’aucune valeur n’est disponible, car ChatGPT non connecté ne l’affiche pas. Si les résultats changent du jour au lendemain, un changement de modèle côté OpenAI est une cause possible que vous ne pouvez pas vérifier avec ces données.
Faites la Même Vérification sur Gemini et Google AI Mode
Vous pouvez envoyer le même ensemble de questions via les plugins Gemini et Google AI Mode. Les deux renvoient des réponses et les pages citées, ce qui vous permet de comparer la visibilité de votre marque sur les trois services.
Leurs formats de réponse diffèrent. Par exemple, les citations de Gemini incluent l’URL de la page. Adaptez ask(), la fonction qui envoie une question et lit la réponse, à chaque plugin au lieu de supposer que les champs de ChatGPT fonctionneront tels quels.
FAQ
À quelle fréquence faut-il faire la vérification ?
Une fois par semaine est un bon point de départ. Comparez plusieurs exécutions plutôt que de réagir à un seul résultat. Gardez les mêmes questions et le même nombre de réponses par question pour que les exécutions restent comparables.
Combien d’échantillons par prompt me faut-il ?
Commencez avec cinq réponses par question et par pays pour distinguer “toujours citée”, “parfois citée” et “jamais citée” dans cet ensemble. Collectez davantage de réponses si vous voulez détecter des changements plus fins. Chaque réponse est une requête, donc le coût augmente en proportion directe.
Faut-il un compte ou une clé d’API OpenAI ?
Non. Le plugin utilise des sessions ChatGPT non connectées. Il vous faut seulement une clé d’API ScrapeUnblocker.
Pourquoi ChatGPT donne-t-il des réponses différentes à la même question ?
Chaque requête démarre une nouvelle conversation. ChatGPT génère une nouvelle réponse et peut lancer une autre recherche web. Des personnes qui posent la même question peuvent elles aussi obtenir des réponses différentes, c’est pourquoi des échantillons répétés sont plus utiles qu’une seule vérification.
Testez Votre Premier Ensemble de Questions
Prenez dix questions issues des appels commerciaux et des tickets de support du mois dernier. Lancez-les depuis votre marché principal, puis examinez la liste des domaines sources et vérifiez si votre marque apparaît sur ces sites.
Si vous voulez tester une question avant d’utiliser le script, essayez-la dans le tableau de bord ScrapeUnblocker. Chaque réponse est facturée comme une requête. La documentation du plugin ChatGPT contient la liste complète des champs de réponse et des exemples de requêtes en Node.js, PHP et Ruby.
Essayez ScrapeUnblocker gratuitement
Taux de réussite de plus de 95 % · à partir de 0,55 € pour 1 000 appels (TVA éventuelle en sus) · 500 requêtes gratuites à l'inscription.