Pixel ChatGPT Ads : l'installer avec Google Tag Manager et suivre vos conversions
Rédaction : Amar Belamri · Publié le · 7 min de lecture

- Pixel, API Conversions, source de données : qui fait quoi
- Étape 1 : créer la source de données dans Ads Manager
- Étape 2 : installer le pixel avec Google Tag Manager
- Le piège des montants : tout est en centimes
- Le consentement, à brancher avant la première mise en ligne
- Étape 3 : créer l'événement de conversion
- Étape 4 : ajouter l'API Conversions et dédupliquer
- Vérifier que tout remonte
- Les erreurs que je corrige le plus souvent
- FAQ : les questions fréquentes
En bref. Pour suivre les conversions de ChatGPT Ads, on crée une source de données dans Ads Manager, on pose le pixel sur toutes les pages avec une balise HTML personnalisée dans Google Tag Manager, puis on déclare les événements de conversion. L'API Conversions complète le pixel côté serveur.
Ouvrir un compte ChatGPT Ads prend une heure. Faire remonter les conversions proprement, c'est la partie où l'on se trompe le plus. Et sans conversions fiables, impossible de savoir ce que le canal rapporte.
J'ai posé le pixel en production sur plusieurs des comptes que je gère, notamment un site de réservation dans l'hôtellerie, avec Google Tag Manager, une plateforme de consentement et des montants au bon format. Voici la méthode étape par étape, avec les pièges que la documentation ne met pas en avant. Si vous n'avez pas encore de compte, commencez par le guide pour ouvrir un compte ChatGPT Ads.
Pixel, API Conversions, source de données : qui fait quoi
Le suivi repose sur trois briques.
La source de données. C'est le conteneur créé dans Ads Manager. Elle porte le Pixel ID, l'identifiant que tout le reste utilise.
Le pixel de mesure. Un script posé sur votre site, qui envoie les événements depuis le navigateur du visiteur : achat, panier, formulaire.
L'API Conversions. Les mêmes événements, envoyés depuis votre serveur. OpenAI le dit clairement : l'API est une source plus fiable que le pixel seul, parce qu'elle ne dépend ni des bloqueurs ni des navigateurs.
Le bon montage, c'est les deux en même temps, avec une déduplication. Et même si vous n'utilisez que l'API, il vous faut quand même une source de données et son Pixel ID.
Étape 1 : créer la source de données dans Ads Manager
Dans Ads Manager, ouvrez Outils, puis Conversions, et cliquez sur Créer, puis Source de données. Choisissez le type Web et donnez-lui le nom de votre site.
Notez le Pixel ID qui s'affiche sous le nom de la source. Ads Manager affiche ensuite une liste de contrôle en quatre étapes : source de données, événement de conversion, mise en place des événements, association à une campagne. C'est exactement l'ordre de cet article.

Outils > Conversions : la source de données et la liste de contrôle en quatre étapes proposée par Ads Manager.
Étape 2 : installer le pixel avec Google Tag Manager
OpenAI fournit un script à placer dans le head de toutes les pages, le plus haut possible pour ne pas perdre les conversions rapides. Avec Google Tag Manager, ça se traduit par une balise HTML personnalisée qui contient ce script, déclenchée sur toutes les pages. Remplacez seulement le Pixel ID :
<script>
(function (w, d, s, u) {
if (w.oaiq) return;
var q = function () { q.q.push(arguments); };
q.q = [];
w.oaiq = q;
var js = d.createElement(s);
js.async = true;
js.src = u;
var f = d.getElementsByTagName(s)[0];
f.parentNode.insertBefore(js, f);
})(window, document, "script", "https://bzrcdn.openai.com/sdk/oaiq.min.js");
oaiq("init", { pixelId: "VOTRE-PIXEL-ID" });
</script>Viennent ensuite une balise par événement. Si votre site envoie déjà les événements e-commerce de GA4 dans le dataLayer, vous avez fait le plus dur : il suffit de les traduire dans le vocabulaire d'OpenAI.
purchase devient order_created (Commande créée).
begin_checkout devient checkout_started (Paiement commencé).
add_to_cart devient items_added (Articles ajoutés).
view_item devient contents_viewed (Contenus consultés).
generate_lead ou votre formulaire devient lead_created (Prospect créé).
Une prise de rendez-vous devient appointment_scheduled (Rendez-vous programmé).
Pour un site de réservation, j'utilise cinq balises : la base, puis commande, panier, paiement commencé et fiche consultée. Exemple pour l'achat, déclenché sur l'événement purchase du dataLayer :
<script>
oaiq("measure", "order_created",
{
type: "contents",
amount: Math.round({{DLV - ecommerce.value}} * 100),
currency: "EUR"
},
{ event_id: "{{DLV - ecommerce.transaction_id}}" }
);
</script>Et pour un formulaire de contact, qui n'a pas de montant :
<script>
oaiq("measure", "lead_created",
{ type: "customer_action" },
{ event_id: "{{DLV - lead_id}}" }
);
</script>Le piège des montants : tout est en centimes
C'est l'erreur que je vois le plus souvent, et elle ne déclenche aucun message d'alerte.
OpenAI attend les montants dans la plus petite unité de la devise. En euros, ce sont des centimes : une réservation de 89 € s'envoie 8900, pas 89. Si vous envoyez la valeur telle quelle, votre chiffre d'affaires est divisé par cent dans les rapports, et votre retour sur investissement devient absurde.
D'où le Math.round(valeur * 100) dans la balise : on multiplie par cent et on arrondit, pour éviter les décimales parasites du type 8899,999. Et dès qu'un montant est envoyé, la devise doit l'accompagner.
Le consentement, à brancher avant la première mise en ligne
En France, le pixel ne doit mesurer qu'après accord du visiteur. Le pixel gère ça nativement : on démarre avec le consentement à false, puis on le passe à true quand votre plateforme de consentement donne son accord.
oaiq("consent", false);
oaiq("init", { pixelId: "VOTRE-PIXEL-ID" });
// une fois le consentement mesure accordé par la CMP :
oaiq("consent", true);Deux détails comptent. Par défaut, le pixel considère le consentement comme acquis : si vous ne faites rien, il mesure tout le monde. Et les événements bloqués ne sont jamais renvoyés une fois le consentement donné. Concrètement, dans GTM, je déclenche la balise de base sur l'événement de mise à jour du consentement de la CMP (Axeptio, Didomi ou autre), pas sur le simple chargement de page.
Étape 3 : créer l'événement de conversion
Envoyer un événement ne suffit pas : il faut dire à Ads Manager lequel compte comme une conversion. Dans Conversions, Créer, Événement de conversion, choisissez la source de données, l'événement de base et un nom lisible, comme Réservation ou Demande de devis.

Créer une conversion : source de données, événement de base, nom, et fenêtres d'attribution de 30 jours après clic et 1 jour après affichage.
La fenêtre d'attribution est fixée à 30 jours après un clic et 1 jour après un affichage. Attention : les conversions après affichage sont rapportées à part. La colonne Conversions, le coût par acquisition et l'optimisation ne prennent en compte que les conversions après clic.

Les événements de base proposés par Ads Manager : rendez-vous programmé, paiement commencé, prospect créé, commande créée, et les autres.
Choisissez un événement standard dès que c'en est un. Une campagne optimisée pour les conversions ne peut utiliser qu'un événement standard, jamais un événement personnalisé. Et une fois la campagne créée, ni son objectif ni l'événement d'optimisation ne peuvent changer.
Étape 4 : ajouter l'API Conversions et dédupliquer
Le pixel suffit pour démarrer. Mais pour une mesure solide, j'ajoute l'API Conversions dès que le site le permet. Elle s'utilise avec une clé dédiée, créée dans Ads Manager, et elle envoie les événements depuis votre serveur.
Pour qu'un achat envoyé deux fois ne compte qu'une fois, trois choses doivent être identiques des deux côtés : le même Pixel ID, le même nom d'événement, et le même identifiant d'événement, event_id côté pixel et id côté API. En pratique, le numéro de commande. OpenAI garde le premier événement reçu et ignore les doublons.
Un détail qui fait perdre des conversions : quand un clic sur une annonce arrive sur votre site, il transporte un identifiant oppref. Le pixel le récupère seul, l'API non. Il faut le capter et le renvoyer avec l'événement serveur. C'est exactement le travail d'un tracking server-side bien monté.
Vérifier que tout remonte
Avant d'associer quoi que ce soit à une campagne, testez.
Le mode debug. Ajoutez debug: true dans l'initialisation : le pixel écrit son activité dans la console du navigateur.
Le flux d'événements. Dans Conversions, l'onglet Flux d'événements montre ce qui arrive en direct. Faites un achat ou un formulaire test, puis vérifiez le nom de l'événement, le montant en centimes et le canal : pixel_sdk pour le navigateur, server_to_server pour l'API.
L'association à la campagne. Dernière étape de la liste de contrôle : rattachez l'événement de conversion à vos campagnes. Une campagne au clic ou à l'impression peut suivre des conversions sans changer d'objectif.
Les erreurs que je corrige le plus souvent
Les montants en euros au lieu des centimes. Le chiffre d'affaires est faux d'un facteur cent.
Le pixel déclenché avant le consentement. Problème juridique, et événements perdus pour de bon.
Un identifiant d'événement différent entre le pixel et l'API. Chaque conversion est comptée deux fois.
Un événement personnalisé là où un standard existait. Impossible ensuite d'optimiser la campagne dessus.
Une campagne lancée avant d'avoir vu un seul événement dans le flux. Les premières semaines de budget partent sans mesure.
FAQ : les questions fréquentes
Où trouver le Pixel ID ChatGPT Ads ?
Dans Ads Manager, menu Outils, puis Conversions, onglet Source de données. Le Pixel ID s'affiche sous le nom de chaque source. S'il n'y en a pas, créez-en une avec le bouton Créer.
Peut-on installer le pixel ChatGPT Ads sans Google Tag Manager ?
Oui. Le script se colle directement dans le head de toutes les pages, et les événements s'appellent avec oaiq("measure", ...) au moment de l'action. Google Tag Manager simplifie surtout la gestion du consentement et la réutilisation des événements GA4 existants.
Faut-il le pixel ou l'API Conversions ?
Les deux, idéalement. OpenAI présente l'API comme plus fiable que le pixel seul. Le pixel permet de démarrer vite ; l'API sécurise la mesure. Si vous utilisez les deux, dédupliquez avec le même identifiant d'événement.
Pourquoi mes montants de conversion sont-ils cent fois trop petits ?
Parce qu'ils ont été envoyés en euros. OpenAI attend la plus petite unité de la devise, donc des centimes : 8900 pour 89 €. Multipliez la valeur par cent et arrondissez dans la balise.
Combien de temps les conversions sont-elles attribuées à une annonce ?
30 jours après un clic et 1 jour après un affichage. Les conversions après affichage sont rapportées séparément et ne comptent ni dans la colonne Conversions ni dans l'optimisation.
Besoin d'un suivi ChatGPT Ads qui tient la route ? J'installe le pixel, l'API Conversions et le consentement, et je vérifie que chaque conversion remonte. Voir l'accompagnement ChatGPT Ads.