ChatGPT Ads

Pixel OpenAI et Conversions API : mesurer ses campagnes ChatGPT Ads

Pour mesurer des campagnes ChatGPT Ads, deux briques : le pixel OpenAI côté navigateur et la Conversions API côté serveur. Nous avons installé les deux sur nos propres campagnes le jour de l’ouverture française. Voici le pas à pas complet, avec les pièges que la documentation ne signale pas et que nous avons rencontrés en vrai.

Publié le 21 août 2026. Référence officielle : la documentation Conversions API d’OpenAI (developers.openai.com/ads). Cet article suppose un site avec Google Tag Manager et un back-end capable d’appeler une API.

Ce que vous obtenez à la fin

  • Le pixel OpenAI posé sur toutes les pages, qui capte l’identifiant de clic des visiteurs venus de ChatGPT.
  • Vos conversions réelles (prospect créé, rendez-vous pris, vente) envoyées côté serveur à OpenAI, rattachées au bon clic.
  • Une optimisation à la conversion possible dans le gestionnaire de publicités, au lieu d’un simple pilotage au clic.

Étape 1 : récupérer le pixel et les clés

Dans le gestionnaire de publicités (ads.openai.com), la section mesure fournit trois éléments à conserver précieusement :

  • L’identifiant de pixel, propre à votre compte.
  • Une clé de gestion (management), pour administrer le compte par API.
  • Une clé de conversions, la seule nécessaire pour envoyer des événements.

Rangez les clés dans votre gestionnaire de secrets, pas dans le code. La clé de conversions se révoque et se régénère depuis l’interface si besoin.

Étape 2 : poser le pixel via Google Tag Manager

Le pixel est un script classique à charger sur toutes les pages. Dans GTM : balise HTML personnalisée, déclencheur « Toutes les pages », puis publication du conteneur. Le pixel dépose un cookie propre à OpenAI et capte l’identifiant de clic quand un visiteur arrive depuis une annonce.

Cet identifiant de clic s’appelle oppref : ChatGPT l’ajoute automatiquement à l’URL de destination de vos annonces, comme gclid chez Google ou fbclid chez Meta. Si votre système d’attribution maison capte les identifiants de clic, ajoutez oppref à la liste des paramètres reconnus et conservez-le avec la session : vous en aurez besoin à l’étape 4.

Étape 3 : construire l’URL de destination (et le piège des paramètres réservés)

Le gestionnaire permet d’ajouter des paramètres de suivi à l’URL finale, avec des modèles limités aux identifiants (campagne, groupe d’annonces, annonce). Un exemple qui fonctionne :

utm_source=chatgpt&utm_medium=cpc&utm_campaign={campaign_id}&im_campaign_id={campaign_id}&im_adgroup_id={ad_group_id}&im_ad_id={ad_id}

Le piège vécu : n’ajoutez jamais oppref ni olref dans ce champ. Ce sont des paramètres réservés, et l’interface rejette l’annonce avec le message « Reserved query parameters are not supported ». ChatGPT ajoute oppref lui-même à l’URL finale : votre site le reçoit sans que vous le déclariez.

À noter aussi : seuls des identifiants numériques sont disponibles comme modèles, pas les noms de campagnes. Prévoyez une table de correspondance côté reporting.

Étape 4 : envoyer les conversions côté serveur

La Conversions API reçoit vos événements en POST :

POST https://bzr.openai.com/v1/events?pid=VOTRE_PIXEL_ID
Authorization: Bearer VOTRE_CLE_CONVERSIONS

Chaque événement porte un identifiant unique, un type, un horodatage en millisecondes, une source (web, offline…), et un objet utilisateur pour la correspondance. Les types standard couvrent l’essentiel d’un tunnel : lead_created, appointment_scheduled, checkout_started, order_created, registration_completed, subscription_created, trial_started, plus des événements personnalisés.

Pour la correspondance, envoyez ce que vous avez : l’e-mail normalisé puis haché en SHA-256, l’adresse IP, le user agent, et surtout l’identifiant de clic oppref capté à l’étape 2. C’est lui qui rattache la conversion à l’annonce.

Les quatre pièges qui font rejeter vos événements

  • L’horodatage est borné. Un événement daté de plus de 7 jours dans le passé, ou de plus de 10 minutes dans le futur, est refusé. Cas concret : pour un rendez-vous pris aujourd’hui pour la semaine prochaine, datez l’événement de la prise de rendez-vous, jamais du créneau.
  • Un lot échoue en entier. L’API accepte jusqu’à 1 000 événements par appel, mais un seul événement invalide rejette tout le lot. Tant que votre intégration n’est pas rodée, envoyez un événement par appel : vous saurez exactement lequel pose problème.
  • L’identifiant d’événement doit être stable. Construisez-le à partir de vos objets métier (par exemple crm:lead:12345) : c’est votre garantie contre les doublons, et la clé de déduplication si vous ajoutez un jour un événement navigateur jumeau.
  • Testez avec validate_only. Le paramètre validate_only: true vérifie l’événement sans l’enregistrer. La réponse {"accepted_events": 1} confirme que le format passe, avant de brancher la production.

Vérifier que tout fonctionne

  1. Cliquez sur une de vos annonces (ou simulez une visite avec un paramètre oppref) et vérifiez que votre site conserve l’identifiant.
  2. Déclenchez une conversion de test et contrôlez la réponse de l’API : les événements acceptés sont comptés, les rejets détaillés.
  3. Journalisez chaque appel côté serveur, avec l’identifiant d’événement et la réponse : le jour où une conversion manque, ces journaux font la différence entre dix minutes et une après-midi de débogage.

Et ensuite ?

Avec le pixel et la Conversions API en place, le gestionnaire peut optimiser la diffusion à la conversion plutôt qu’au clic, et votre reporting relie enfin la dépense ChatGPT Ads à vos prospects et à vos ventes, dans la même logique que vos autres canaux. Pour situer cette brique dans une architecture de mesure complète (server-side, consentement, attribution), voir notre page tracking publicitaire. Pour le fonctionnement général de la régie, notre guide complet ChatGPT Ads. Et si vous préférez confier l’installation et les campagnes, notre offre de gestion ChatGPT Ads comprend ce dispositif.

Mettre votre outil en avant

Remplissez ce formulaire et nous vous recontacterons rapidement pour discuter d'un potentiel partenariat.