Menu de la documentation

OpenAI Ads (ChatGPT)

Pilotage du consentement du pixel OpenAI (publicités dans ChatGPT) : activation, file oaiq, chargement du SDK seulement après consentement et vérification.

OpenAI Measurement Pixel (publicités dans ChatGPT)

CookieHug peut piloter le consentement du pixel de mesure OpenAI (oaiq), le pixel de conversion des publicités affichées dans ChatGPT. Deux propriétés de ce pixel rendent la simple copie du snippet officiel non conforme dans l'EEE :

  • le pixel démarre avec le consentement activé : sans oaiq("consent", false) avant init, il envoie des données immédiatement,
  • les événements envoyés pendant que le consentement est désactivé sont abandonnés, pas mis en file : OpenAI ne les rejoue pas après un consentement ultérieur.

La fonction est désactivée par défaut et s'active par domaine. CookieHug n'a pas besoin de l'identifiant du pixel : il crée la file de commandes oaiq, prend en charge la commande de consentement et décide *quand* le SDK du pixel (oaiq.min.js) est chargé.

Activation

  • Ouvrez le domaine dans le panneau → Avancé → section Politique de consentement.
  • Trouvez la carte OpenAI Measurement Pixel (publicités dans ChatGPT) et activez l'interrupteur ; l'enregistrement est automatique.
  • Le changement arrive dans le script de la bannière au prochain chargement (cache du script : jusqu'à 5 minutes).
  • Le snippet CookieHug doit se trouver dans la page avant le snippet du pixel OpenAI.

Fonctionnement du signal

Au démarrage, le SDK CookieHug crée un stub de file window.oaiq et place en tête une entrée de consentement correspondant à la décision du visiteur. Le snippet officiel du pixel commence par if (w.oaiq) return; : en voyant notre file, il n'ajoute que ses appels init et measure, et CookieHug ne charge le SDK OpenAI qu'une fois le consentement donné pour la catégorie Marketing :

// démarrage sans décision enregistrée : rien d'OpenAI n'est chargé :
window.oaiq.q  // → [['consent', false]]

// le snippet du site (après CookieHug) ajoute :
oaiq('init', { pixelId: '…' });
oaiq('measure', 'page_viewed');

// « Tout accepter » → CookieHugOnConsentReady :
window.oaiq.q  // → [['consent', true], ['init', …], ['measure', 'page_viewed']]
// et seulement maintenant https://bzrcdn.openai.com/sdk/oaiq.min.js entre dans la page

Ainsi, les événements mis en file avant la décision (généralement page_viewed) partent après le consentement au lieu d'être perdus. En cas de refus, rien d'OpenAI n'est chargé. Lors d'une visite ultérieure avec consentement enregistré, le SDK se charge dès le début de la page. Une fois le SDK actif, chaque nouvelle décision lui parvient sous la forme oaiq('consent', true | false) : un refus dans l'éditeur arrête la mesure, un retrait recharge la page. La source du signal est la catégorie Marketing, celle-là même qui pilote ad_storage dans Google Consent Mode.

Si vous gérez le consentement vous-même

Avec l'interrupteur activé, n'appelez pas oaiq("consent", …) depuis le code du site : cette commande appartient à CookieHug. Si vous avez déjà votre propre gestion (par ex. le schéma : consent false → init → dans un écouteur CookieHugOnConsentReady consent true et renvoi des événements de la page courante), laissez l'interrupteur désactivé ; votre code fonctionne, car CookieHugOnConsentReady se déclenche après chaque décision et lors des visites ultérieures avec consentement enregistré.

Si le snippet du pixel est placé avant CookieHug, c'est le snippet du site qui charge le SDK OpenAI. CookieHug place toujours l'entrée de consentement en tête de la file non encore traitée, mais ne peut plus retarder le téléchargement du SDK. Si le pixel est déclenché via Google Tag Manager, utilisez un déclencheur lié au consentement marketing : l'interrupteur reste sûr, mais c'est GTM qui décide du moment de chargement.

Vérification

Dans les DevTools, sur une page où la fonction est activée :

// juste après l'arrivée (avant une décision) :
window.oaiq.q
// → [['consent', false], ['init', {…}], ['measure', 'page_viewed']]
// Onglet Network : aucune requête vers bzrcdn.openai.com / bzr.openai.com

// après « Tout accepter » :
// → ['consent', true] en tête de la file, <script src="…/oaiq.min.js"> apparaît dans le DOM
window.oaiq.loaded   // → true une fois que le SDK a remplacé le stub

Si window.oaiq n'existe pas, l'interrupteur n'est pas encore actif dans le script (attendez le rafraîchissement du cache) ou la page charge un ancien script.