Image Tag (suivi de conversion sans JavaScript)

Idée centrale

L'Image Tag est une troisième méthode d'envoi d'événements de conversion à l'API Ads d'OpenAI, aux côtés du Pixel de mesure JavaScript (Measurement Pixel) et de la Conversions API (mesure de conversion côté serveur) : une balise <img> 1×1 dont l'URL de requête encode l'événement, sans aucune exécution de JavaScript. Chaque requête image envoie un seul événement, au chargement de la page.

Définition

Le point de terminaison GET https://bzr.openai.com/v1/sdk/events, appelé via une balise HTML <img> dont la query string porte les paramètres de l'événement de conversion à envoyer.

Contexte

Documente la page « Image Tag » de la documentation développeur Ads. Positionnée comme la méthode la plus simple et la plus limitée des trois méthodes d'envoi de conversions de l'écosystème Ads : adaptée uniquement aux conversions mesurables au chargement de page, sans JavaScript. Capturée le 2026-08-08.

Fonctionnement

Positionnement et installation

Utiliser le tag image pour un événement envoyé au chargement de page, sans JavaScript. Utiliser plutôt le Pixel de mesure JavaScript (Measurement Pixel) pour les événements déclenchés par des clics, soumissions de formulaire ou autres interactions après le chargement de la page ; utiliser la Conversions API (mesure de conversion côté serveur) quand l'événement peut être envoyé depuis le serveur.

Installation : une balise <img> cachée (1×1, style="display:none", alt="") placée dans le <body> de la page où se produit l'événement :

<img
  src="https://bzr.openai.com/v1/sdk/events?pid=<PIXEL-ID>&event=page_viewed&data[type]=contents"
  width="1" height="1" style="display:none" alt=""
/>

<PIXEL-ID> est le Pixel ID de l'onglet « conversions » d'Ads Manager (ou provisionné via Configuration de la mesure de conversion dans l'API Ads (Conversion Setup)). Le tag ne doit être rendu qu'après recueil du consentement nécessaire à la mesure.

Repli du pixel JS : le même tag peut être placé dans un <noscript> pour ne se charger que lorsque JavaScript est indisponible. Ne pas utiliser <noscript> pour une intégration image-tag autonome censée fonctionner même quand JavaScript est actif.

Ajout de données d'événement

event doit être un nom d'événement pris en charge (voir Événements de conversion pris en charge par l'API Ads (Supported Events)) ou custom. data[type] correspond au type de données de cet événement ; chaque champ de données porte le préfixe data[...].

<img
  src="https://bzr.openai.com/v1/sdk/events?pid=<PIXEL-ID>&event=order_created&event_id=evt_01JX8M6K4Q7F9A2B3C5D6E7F8G&oppref=<OPPREF>&data[type]=contents&data[amount]=2599&data[currency]=USD"
  width="1" height="1" style="display:none" alt=""
/>

Si une valeur oppref est disponible, elle remplace <OPPREF> ; sinon le paramètre est omis — le tag image ne capture ni ne stocke oppref lui-même, il doit être fourni par le système de rendu de page. Toutes les valeurs dynamiques de la query string doivent être URL-encodées ; pour data[contents], sérialiser le tableau en JSON puis URL-encoder l'ensemble.

Déduplication multi-canal : si le même événement est envoyé à la fois par le tag image et par la Conversions API, réutiliser la valeur event_id du tag image comme id de l'événement Conversions API, avec le même Pixel ID pour les deux (et le même custom_event_name pour un événement personnalisé).

Événement personnalisé

<img
  src="https://bzr.openai.com/v1/sdk/events?pid=<PIXEL-ID>&event=custom&custom_event_name=quote_requested&event_id=evt_01JX8M9T2V4W6Y8Z0A1B3C5D7E&data[type]=custom&data[plan_id]=enterprise"
  width="1" height="1" style="display:none" alt=""
/>

event=custom uniquement quand aucun événement standard ne décrit la conversion ; requiert alors custom_event_name et data[type]=custom. Contrainte de format sur custom_event_name : 1 à 64 caractères, uniquement lettres, chiffres, underscores ou tirets, commence et finit par une lettre ou un chiffre, ne peut pas correspondre à un nom d'événement standard.

Tableau des paramètres

ParamètreObligatoireDescription
pidOuiLe Pixel ID.
eventOuiUn nom d'événement pris en charge, ou custom.
custom_event_nameSelon casRequis si event=custom ; omis pour un événement standard.
event_idNonID de déduplication unique. À réutiliser uniquement en cas de nouvelle tentative ou d'envoi du même événement par un autre canal.
opprefNonIdentifiant d'attribution respectueux de la vie privée fourni par OpenAI.
data[type]OuiLe type de données requis par l'événement.
data[<champ>]NonTout champ documenté pour le type de données sélectionné. OpenAI rejette les champs inconnus.

Chaque paramètre au plus une fois ; montants et quantités sont des entiers ; si data[amount] est fourni, data[currency] doit l'être aussi, en code ISO 4217 à trois lettres.

Test de la requête

curl --get --silent --show-error \
  --header "Referer: https://shop.example.com/pricing" \
  --data-urlencode "pid=<PIXEL-ID>" \
  --data-urlencode "event=page_viewed" \
  --data-urlencode "event_id=evt_image_tag_test_01" \
  --data-urlencode "data[type]=contents" \
  --output /dev/null \
  --write-out "%{http_code} %{content_type}\n" \
  "https://bzr.openai.com/v1/sdk/events"

Une requête acceptée renvoie 200 image/gif. Un statut 200 confirme que l'événement a été publié dans le pipeline d'ingestion, pas l'achèvement du traitement en aval. Dans un navigateur, utiliser le panneau Réseau des outils de développement pour inspecter la requête cachée et son statut.

Limites documentées

Éléments essentiels

Distinctions importantes

Ne pas confondre l'endpoint de l'Image Tag (GET https://bzr.openai.com/v1/sdk/events, un événement par requête, via query string) avec celui de la Conversions API (POST https://bzr.openai.com/v1/events, jusqu'à 1 000 événements par requête, via corps JSON) : deux endpoints distincts sur le même domaine bzr.openai.com.

Cas pratiques

Aucun cas pratique disponible : les identifiants et exemples (shop.example.com, evt_01JX8M6K4Q7F9A2B3C5D6E7F8G) sont manifestement fictifs et illustratifs.

Erreurs fréquentes

Ne pas utiliser l'Image Tag pour mesurer un clic ou une soumission de formulaire survenant après le chargement de la page : il ne peut mesurer que ce qui se produit au chargement.

Ne pas placer de données personnelles, secrets ou identifiants de commande dans les paramètres de requête de l'Image Tag : contrairement au pixel JS et à la Conversions API, il ne supporte aucun objet user et ses paramètres apparaissent en clair dans l'URL.

Ne pas s'attendre à ce que oppref soit capturé automatiquement par ce mécanisme.

Limites et nuances

Relations

Points à vérifier

Sources