Un suivi des conversions ChatGPT qui résiste aux bloqueurs
Convrail envoie chaque conversion deux fois, une fois depuis le navigateur par le pixel OAIQ et une fois depuis vos webhooks de commande par la Conversions API, avec le même identifiant d’événement. OpenAI n’en garde qu’une, vos enchères apprennent sur l’image complète, et aucun email ni téléphone ne sort en clair.
Pourquoi un pixel seul ne suffit pas
Un pixel navigateur est ce qu’il y a de plus simple à installer, et de plus simple à perdre. Bloqueurs de publicité, bandeaux de consentement qui se déclenchent tard, limites de stockage de Safari et onglets fermés retirent des événements avant qu’ils n’atteignent OpenAI. La Conversions API comble l’écart en envoyant les mêmes événements depuis votre serveur, où rien n’est bloqué. Les deux couches ne fonctionnent ensemble que si chaque événement porte un identifiant commun : sans lui, OpenAI compte la vente deux fois et vos enchères oCPC apprennent sur des chiffres gonflés.
✗ pixel seul : une partie de vos conversions n’atteint jamais l’enchère
✓ navigateur + serveur avec un event_id : complet et compté une fois
Comment ça fonctionne
Le pixel s’installe sans toucher à votre thème
Sur Shopify, Convrail enregistre un web pixel via l’API officielle Web Pixel. Il s’exécute dans le bac à sable fourni par Shopify et respecte les réglages de confidentialité de la boutique. Sur WooCommerce, l’extension ajoute le script via
wp_footer.Chaque événement part du navigateur
Le pixel implémente nativement le protocole OAIQ : il capture l’identifiant de clic
opprefdans l’URL d’atterrissage, le conserve 7 jours dans un cookie first-party, et envoie l’événement au point de terminaison image d’OpenAI avec votre identifiant de pixel.Le même événement est relayé à Convrail
Le pixel transmet une copie compacte de l’événement à Convrail avec le même
event_id. Aucune donnée personnelle n’est incluse à cette étape.Les commandes arrivent côté serveur par vos webhooks
Quand Shopify ou WooCommerce déclenche le webhook de commande payée, Convrail construit un événement
order_createdavec l’identifiantorder_<orderId>, exactement celui que le pixel a utilisé au paiement. Emails et téléphones sont hashés en SHA-256 à cet instant, avant tout stockage.Les événements sont regroupés et envoyés à la Conversions API
Les événements sont regroupés par boutique en lots de 1 000 au maximum, la limite de l’API, et envoyés avec un jeton porteur. Les lots en échec sont rejoués avec un délai exponentiel ; après la dernière tentative ils rejoignent une file des échecs et ouvrent une alerte au lieu de disparaître.
Les événements suivis
Convrail fait correspondre les événements standard de la vitrine à la taxonomie OAIQ. Les montants sont convertis en unités mineures (2599 pour 25,99 EUR) comme l’exige l’API, avec un traitement correct des devises à zéro ou trois décimales.
| Événement boutique | Événement OAIQ | Envoyé depuis |
|---|---|---|
| page_viewed | page_viewed | navigateur |
| product_viewed, collection_viewed | contents_viewed | navigateur |
| search_submitted | page_viewed | navigateur |
| product_added_to_cart | items_added | navigateur |
| checkout_started | checkout_started | navigateur |
| checkout_completed | order_created | navigateur et serveur, un seul event_id |
Les données personnelles ne sortent jamais en clair
L’advanced matching améliore l’attribution, mais il ne doit pas devenir une fuite de données. Convrail normalise et hashe les emails et les numéros de téléphone en SHA-256 avant de les stocker ou de les envoyer : les seuls champs utilisateur qui atteignent OpenAI sont emails_sha256, external_ids_sha256, l’adresse IP et le user agent.
- Un garde-fou automatique inspecte chaque envoi et refuse de le transmettre s’il contient un motif d’email, une clé interdite comme
email,phoneoufirst_name, ou un champ hashé qui n’est pas un vrai condensat. - Ce garde-fou est couvert par un test automatisé qui tente de faire passer des données personnelles en clair et doit échouer.
- Les valeurs hashées sont validées comme 64 caractères hexadécimaux minuscules ; tout le reste est rejeté avant l’appel réseau.
- Les webhooks RGPD sont honorés : une demande de suppression client purge ses événements par identifiant hashé ; une désinstallation purge la boutique.
- Quand le visiteur a refusé le suivi, l’événement est enregistré comme
skipped_consentet n’est jamais envoyé.
Une fiabilité que vous pouvez auditer
| Mécanisme | Ce qu’il fait |
|---|---|
| Lots | Jusqu’à 1 000 événements par requête, envoyés par taille ou après un court délai |
| Reprises | Délai exponentiel sur les réponses 429 et 5xx ; les réponses 4xx ne sont pas rejouées |
| File des échecs | Les lots qui épuisent leurs tentatives sont conservés avec le statut HTTP et le résumé d’erreur |
| Rejeu sans doublon | Les doublons exacts (même boutique, identifiant et source) sont stockés une fois ; OpenAI déduplique les copies navigateur et serveur par identifiant |
| Mode test | Les nouvelles boutiques démarrent en mode test : les événements sont validés par OpenAI avec validate_only et jamais comptés |
| Vérification en direct | Votre identifiant de pixel et votre jeton API sont vérifiés auprès d’OpenAI à l’enregistrement |
L’écran Événements de l’application affiche chaque événement avec sa source, son statut et son horodatage : vous voyez arriver côte à côte un événement navigateur et son jumeau serveur.
Questions fréquentes
Dois-je modifier mon thème pour installer le pixel ?
Non. Sur Shopify, le pixel est enregistré via l’API Web Pixel et s’exécute dans le bac à sable de Shopify. Sur WooCommerce, l’extension l’injecte. La désinstallation le retire complètement.
OpenAI va-t-il compter mes ventes deux fois ?
Non. L’événement navigateur et l’événement serveur partagent le même identifiant, `order_<orderId>`, et OpenAI déduplique sur cet identifiant. Envoyer les deux est la configuration recommandée : la copie navigateur porte le contexte du clic, la copie serveur porte les données client hashées.
Que se passe-t-il quand la Conversions API est indisponible ?
Les lots sont rejoués avec un délai exponentiel. Si toutes les tentatives échouent, le lot est mis de côté dans une file des échecs avec son erreur, et une alerte s’ouvre dans l’application et par email. Rien n’est perdu en silence.
Quelles données client sont envoyées à OpenAI ?
Uniquement des hashes SHA-256 de l’email et de l’identifiant client, plus l’adresse IP et le user agent, comme l’attend l’advanced matching d’OpenAI. Un garde-fou automatique bloque tout envoi contenant des données personnelles en clair.
Puis-je tester sans polluer mes vraies données ?
Oui. Chaque boutique démarre en mode test : les événements partent avec l’indicateur `validate_only` d’OpenAI, ils sont vérifiés sur la forme mais jamais enregistrés. Passez en mode réel depuis les réglages quand vous êtes prêt.
Quelle est la fenêtre d’attribution ?
L’identifiant de clic `oppref` est conservé 7 jours dans un cookie first-party, ce qui correspond à la fenêtre d’attribution au clic d’OpenAI. Les commandes passées dans cette fenêtre portent l’identifiant à la fois dans l’événement pixel et dans l’événement serveur.
Guides associés
Mesurez le canal ChatGPT dès cette semaine
Gratuit pendant l'accès anticipé, le temps d'intégrer les premières boutiques. Laissez votre email et vous recevez le lien d'installation dès qu'une place s'ouvre.