Tracking ChatGPT Ads : Guide Complet
Mettre en place le tracking ChatGPT Ads : configuration du pixel, endpoint et schéma réel de la Conversions API OpenAI, déduplication et consentement RGPD.
Dans ce guide
- Deux briques de mesure, comme sur Meta ou Google Ads
- Installer le pixel côté client avec GTM, pas à pas
- Installer la Conversions API côté serveur avec un conteneur GTM Server
- Tous les types d'événements : lead generation et e-commerce
- Pour un site e-commerce
- Pour un site lead generation / SaaS
- Éviter les doublons entre pixel et API
- Consentement : un sujet encore flou sur ce canal
- Premiers résultats observés : à prendre avec de vraies pincettes
OpenAI a ouvert son Ads Manager en self-service aux annonceurs américains le 5 mai 2026, avec une Conversions API confirmée début août. C'est un canal encore jeune : la plupart des annonceurs qui s'y lancent n'ont pas encore de mesure de conversion propre en place. Voici comment le tracking fonctionne réellement, avec les vraies spécifications techniques plutôt qu'une présentation marketing du produit.
Deux briques de mesure, comme sur Meta ou Google Ads
OpenAI reprend l'architecture désormais standard chez les grandes régies publicitaires : un pixel navigateur pour la mesure côté client, et une Conversions API pour l'envoi d'événements côté serveur, plus fiable et moins dépendante des bloqueurs. Les deux sources peuvent cohabiter : dans ce cas, un identifiant d'événement partagé entre le pixel et l'API évite qu'OpenAI ne compte le même événement deux fois.
Installer le pixel côté client avec GTM, pas à pas
Première étape, avant tout code : créer un Pixel ID via une requête POST /conversions/pixels sur l'API Ads (avec un name descriptif et client_type: "web"), qui retourne l'identifiant à utiliser. La documentation officielle ne publie pas de snippet JavaScript générique à copier-coller. Le code d'installation exact se récupère depuis votre compte OpenAI Ads une fois le pixel créé. Deux façons de l'installer avec GTM :
Option 1 : template Stape (le plus rapide) : il n'existe pas de template signé Google dans la galerie GTM, mais Stape (que vous connaissez peut-être déjà si vous utilisez du server-side) y a publié un template "OpenAI Ads Pixel Tag" en accès libre. Dans GTM : Modèles → Galerie de modèles communautaires → rechercher "OpenAI Ads Pixel" → Ajouter au workspace. La balise demande votre Pixel ID, une méthode de nommage d'événement (reprise automatique du nom depuis le dataLayer, ou sélection manuelle d'un événement standard ou personnalisé), et propose un mapping automatique des propriétés d'objet et des propriétés utilisateur directement depuis le dataLayer. Elle gère aussi le Consent Mode de GTM nativement (lecture du signal ad_storage), ce qui évite de recoder la vérification de consentement à la main. Déclenchez-la sur un déclencheur conditionné au consentement plutôt que "Toutes les pages".
Option 2 : balise HTML personnalisée (méthode manuelle) : copiez le script d'initialisation exact fourni dans votre compte OpenAI Ads (Paramètres du pixel) dans une balise HTML personnalisée GTM, avec le même déclencheur conditionné au consentement. Cette méthode demande de revérifier le snippet à chaque mise à jour du SDK OpenAI, ce que le template Stape gère normalement à votre place.
Installer la Conversions API côté serveur avec un conteneur GTM Server
Stape a publié la contrepartie serveur du pixel : le template "OpenAI Ads Conversions API Tag" (aussi listé sous le nom "OpenAI Ads Events API Tag"), disponible depuis la galerie de modèles de votre conteneur GTM Server.
Option 1 : template Stape (le plus rapide) : dans votre conteneur serveur, Modèles → Galerie de modèles → rechercher "OpenAI Ads Conversions API" → Ajouter au workspace. Créez une balise à partir de ce modèle et renseignez votre Pixel ID, votre clé API OpenAI (fournie par l'équipe de compte OpenAI, pas en self-service comme la clé Advertiser API utilisée pour gérer les campagnes), et l'Action Source (Web, Mobile App, Offline, Physical Store, Phone Call ou Email). Pour le nommage de l'événement, trois options : Standard (choix dans la liste des événements normalisés vue plus bas), Inherit from client (reprise automatique du nom d'événement si la balise est déclenchée depuis un client GA4 déjà en place dans le conteneur), ou Custom. Le template mappe aussi automatiquement les champs user_data disponibles (email, téléphone, nom, adresse, external ID, IP, user agent, Android Advertising ID) et applique lui-même le hachage SHA-256 requis sur les champs personnels, vous n'avez rien à hacher côté code.
Un point à surveiller pour la déduplication avec le pixel : le template génère un Event ID automatiquement si vous ne lui en passez pas un, mais cet identifiant généré ne correspondra pas à celui du pixel. Pour que la déduplication fonctionne réellement, désactivez la génération automatique et faites remonter le même identifiant des deux côtés (par exemple l'ID de transaction), ou laissez la génération active seulement sur les événements que vous n'envoyez pas aussi via le pixel.
Option 2 : balise HTML personnalisée (contrôle total) : si vous avez besoin d'une logique que le template ne couvre pas, l'appel direct à l'API interne sendHttpRequest reste possible, sur le même principe qu'une intégration Meta CAPI faite maison :
const postData = JSON.stringify({
validate_only: false,
events: [{
id: getRequestBody().transaction_id,
type: 'order_created',
timestamp_ms: getTimestampMillis(),
action_source: 'web',
data: {
type: 'contents',
amount: getRequestBody().value_cents,
currency: getRequestBody().currency
}
}]
});
sendHttpRequest(
'https://bzr.openai.com/v1/events?pid=' + PIXEL_ID,
{
method: 'POST',
headers: { 'Authorization': 'Bearer ' + API_KEY, 'Content-Type': 'application/json' }
},
postData
).then(function(result) {
data.gtmOnSuccess();
}, function() {
data.gtmOnFailure();
});
Dans les deux options, stockez la clé API OpenAI dans une variable GTM Server marquée "Sensible" (jamais en dur dans le code de la balise), et déclenchez la balise depuis un client GA4/Meta déjà en place dans votre conteneur serveur plutôt que d'en créer un nouveau : la plupart des sites qui font du server-side ont déjà l'événement purchase normalisé qui arrive côté serveur, il suffit de le relayer vers ce nouvel endpoint.
Tous les types d'événements : lead generation et e-commerce
La documentation OpenAI définit une liste fermée d'événements standards, chacun associé à un type de data précis. Utiliser un événement standard plutôt que custom à chaque fois qu'un correspond à votre cas : c'est ce qui permet à OpenAI d'optimiser les enchères sur cet objectif de conversion.
Pour un site e-commerce
Événement |
Type de data |
Usage |
|---|---|---|
|
contents |
Un utilisateur consulte une page importante |
|
contents |
Vue d'un produit, d'une fiche ou d'un contenu |
|
contents |
Ajout d'un ou plusieurs articles au panier |
|
contents |
Début du tunnel de paiement |
|
contents |
Achat finalisé |
Pour un site lead generation / SaaS
Événement |
Type de data |
Usage |
|---|---|---|
|
customer_action |
Soumission d'un formulaire ou demande de contact |
|
customer_action |
Prise de rendez-vous, démo ou consultation |
|
customer_action |
Création de compte ou inscription à un événement |
|
plan_enrollment |
Démarrage d'un essai gratuit |
|
plan_enrollment |
Début d'un abonnement payant |
|
customer_action |
Installation ou ouverture d'une application |
Un événement qui ne correspond à aucun de ces cas standards passe en type: "custom" avec un custom_event_name de votre choix, mais ces événements ne peuvent pas servir d'objectif d'optimisation d'enchères, contrairement aux événements standards.
Éviter les doublons entre pixel et API
Si vous envoyez le même événement à la fois depuis le pixel navigateur et depuis votre serveur (le cas d'usage recommandé pour la fiabilité), utilisez le même id d'événement des deux côtés. OpenAI ne le traite alors qu'une seule fois. La documentation mentionne aussi un identifiant d'attribution opaque (oppref) transmis par le pixel, à faire remonter dans les appels serveur pour relier les deux sources à un même utilisateur.
Consentement : un sujet encore flou sur ce canal
OpenAI communique sur un positionnement différent du tracking cross-site traditionnel : les ads seraient ciblées sur le contexte conversationnel plutôt que sur un profilage publicitaire classique. Ça ne dispense pas de vérifier votre propre conformité RGPD côté pixel et Conversions API : tant que la doctrine CNIL sur ce canal précis n'est pas stabilisée (le produit a moins d'un an), la prudence est de traiter ce pixel comme n'importe quel tag marketing tiers : déclenchement conditionné au consentement, pas d'exception par défaut.
Premiers résultats observés : à prendre avec de vraies pincettes
OpenAI le dit lui-même : la régie ne publie pas encore de benchmarks officiels croisant annonceurs, secteurs et types de campagne. Ce qui circule vient d'agences et d'outils d'attribution tiers sur un échantillon encore réduit, avec des écarts importants d'une source à l'autre. À titre indicatif seulement : plusieurs retours évoquent un CPC de l'ordre de 2 à 5 €/$ selon le secteur (nettement plus haut en SaaS/finance que sur des verticales moins concurrentielles), un CTR sensiblement inférieur à celui du search classique, et des taux de conversion très variables selon la qualité du ciblage conversationnel. Un test rapide avec un budget contenu reste la seule façon fiable d'avoir un chiffre qui vaut pour votre propre compte, plutôt que de se fier à une moyenne construite sur quelques semaines de recul.
Une implémentation plus complexe à discuter ?
Discuter de votre trackingCet enjeu mérite un accompagnement dédié.
Consultant web trackingArticles liés
Pour aller plus loin sur votre projet
Conversion API
Conversion API
Restaurez la qualité de vos conversions Meta et Google malgré le blocage navigateur et la perte de signal iOS / consentement.
Voir l'expertiseQuestions fréquemment posées
Faut-il utiliser le pixel ou la Conversions API pour ChatGPT Ads ?
Les deux idéalement : le pixel pour la mesure côté navigateur, la Conversions API côté serveur pour plus de fiabilité (moins dépendante des bloqueurs). En cas d'usage combiné, un identifiant d'événement partagé évite le double comptage.
Existe-t-il un template Google Tag Manager officiel pour ChatGPT Ads ?
Pas signé Google, mais Stape a publié la paire complète dans la galerie de modèles GTM : "OpenAI Ads Pixel Tag" côté client (conteneur web) et "OpenAI Ads Conversions API Tag" côté serveur (conteneur GTM Server), tous deux avec mapping automatique des données et gestion native du Consent Mode.
Quel événement standard utiliser pour un formulaire de contact ?
lead_created, associé au type de data customer_action. C'est un événement standard, contrairement à un événement custom, ce qui lui permet de servir d'objectif d'optimisation d'enchères dans les campagnes ChatGPT Ads.
Les chiffres de CPC ChatGPT Ads qui circulent sont-ils fiables ?
À prendre avec prudence : OpenAI ne publie pas encore de benchmarks officiels, et les chiffres qui circulent viennent de quelques agences et outils tiers sur un échantillon encore réduit, avec des écarts significatifs selon la source et le secteur. Un test avec votre propre budget reste plus fiable qu'une moyenne externe.