Aller au contenu

Guide

Envoyer les achats WooCommerce à ChatGPT Ads via la Conversions API

L'OpenAI Conversions API (API de conversions) permet à une boutique WooCommerce d'envoyer ses conversions ChatGPT Ads depuis son propre serveur plutôt que depuis le navigateur de l'acheteur. Pour une boutique, la conversion qui compte le plus est l'achat : dès que WooCommerce passe une commande au statut payé, elle existe, qu'un script du navigateur l'ait signalée ou non. Ce guide explique comment fonctionne le tracking server-side des achats, ce qu'une implémentation correcte doit gérer et ce qu'elle ne peut pas corriger.

Mis à jour le

Sur cette page

En un paragraphe : envoyez order_created depuis WooCommerce quand la commande atteint un statut payé, avec le même ID d'événement que celui utilisé par le pixel du navigateur pour cette commande, l'heure d'achat d'origine, et une clé d'API qui reste sur le serveur. Relancez les échecs temporaires avec le même ID, et gardez une trace de ce qui est arrivé à chaque commande.

Architecture

Le suivi des achats côté serveur en un coup d'œil

Deux canaux partent de la boutique. Celui du navigateur couvre tout le parcours d'achat ; celui du serveur transporte la commande payée.

Dans le navigateur, le Measurement Pixel envoie les vues produit, les ajouts au panier, les débuts de commande et l'achat. Quand WooCommerce confirme qu'une commande est payée, l'achat part aussi de votre serveur via l'OpenAI Conversions API, avec le même ID d'événement, pour qu'OpenAI ne le compte qu'une fois.

Le navigateur du client parcourt la boutique WooCommerce. Dans le navigateur, le Measurement Pixel envoie à OpenAI les vues produit, les ajouts au panier, les débuts de commande et l'achat. Quand WooCommerce passe la commande au statut payé, l'extension envoie l'achat depuis le serveur vers l'OpenAI Conversions API. OpenAI déduplique les deux achats grâce à l'ID d'événement.

Navigateur du client

Consulte les produits, remplit son panier, commande

Boutique WooCommerce

Produits, panier, validation de commande et commandes

Dans le navigateur

Measurement Pixel

contents_viewed, items_added, checkout_started, order_created

OpenAI

Reçoit les événements du navigateur

Sur votre serveur

Commande payée

Changement de statut dans WooCommerce

L'extension envoie order_created

Même ID d'événement · relances · diagnostic

Conversions API

Authentifiée par votre clé d'API

Un seul achat comptabilisé

OpenAI rapproche Pixel ID, nom d'événement et ID d'événement, puis ignore le doublon arrivé ensuite.

Ce que la mesure navigateur laisse échapper

Le Measurement Pixel s'exécute dans le navigateur de l'acheteur. C'est le seul endroit où l'on voit les vues produit et l'activité du panier, mais cela signifie aussi qu'un événement est perdu chaque fois que la page ou le script ne va pas jusqu'au bout :

  • Un bloqueur de contenu ou un outil de protection de la vie privée empêche le chargement du script du pixel.
  • Le client ferme l'onglet après avoir payé, avant l'affichage de la page « Commande reçue ».
  • Le paiement est confirmé plus tard (virement bancaire, certaines passerelles avec redirection), alors que le client a quitté le site.
  • Un chargement de page lent ou interrompu fait échouer la requête.

Dans chacun de ces cas, WooCommerce enregistre bien la commande. Un événement d'achat côté serveur part de cette commande : aucune de ces situations ne l'empêche d'être envoyé.

Comment fonctionne la Conversions API

Votre serveur envoie à OpenAI une requête HTTPS authentifiée contenant un ou plusieurs événements. La requête est adressée à votre Pixel ID et autorisée par une clé Conversions API, tous deux générés dans l'onglet des conversions d'Ads Manager (documentation de l'OpenAI Conversions API, en anglais).

Principaux champs d'un événement d'achat envoyé via la Conversions API
ChampContenu pour un achat WooCommerce
event_nameorder_created : un achat finalisé
idL'ID d'événement. Il doit correspondre à celui de l'événement navigateur de la même commande.
timestamp_msLe moment de l'achat, en millisecondes.
action_sourceweb pour une boutique en ligne

Côté serveur uniquement

OpenAI demande d'envoyer les événements à la Conversions API exclusivement depuis votre serveur, et la documentation du pixel précise qu'il ne faut pas appeler l'API serveur directement depuis le code de la page. La clé d'API ne doit jamais parvenir au navigateur.

Quand envoyer l'achat

Envoyez-le quand WooCommerce marque la commande comme payée, et non quand la page « Commande reçue » s'affiche. Lier l'événement au statut de la commande plutôt qu'à une page vue signifie que :

  • Il se déclenche une seule fois par commande, quel que soit le nombre de rechargements de la page de remerciement.
  • Avec les moyens de paiement différés, l'achat part au moment où le paiement est réellement confirmé.
  • Les commandes non payées, échouées ou abandonnées ne sont pas remontées comme des achats.
  1. Commande validée

    Commande créée dans WooCommerce

  2. Paiement confirmé

    La commande atteint un statut payé

  3. Achat envoyé

    order_created depuis votre serveur

  4. Résultat enregistré

    Accepté, relancé ou en échec

ID d'événement et déduplication

Si un achat est envoyé à la fois par le navigateur et par le serveur, OpenAI doit pouvoir savoir qu'il s'agit d'un seul et même achat. D'après sa documentation, OpenAI déduplique à partir de votre Pixel ID, du champ event_name et du champ id : il retient le premier événement reçu pour une même clé et ignore les doublons qui arrivent ensuite.

L'ID d'événement doit donc être identique sur les deux canaux. Sur WooCommerce, la méthode fiable consiste à le dériver de la commande, que connaissent à la fois la page « Commande reçue » et le serveur, plutôt que de générer dans le navigateur un ID aléatoire que le serveur ne verra jamais. Le guide Pixel vs Conversions API explique comment les deux canaux s'articulent.

L'achat envoyé par le navigateur et celui envoyé par le serveur pour une même commande portent le même ID d'événement. OpenAI conserve le premier reçu et ignore le doublon : la commande compte pour une seule conversion.

Navigateur · Pixel

Achat

ID d'événement partagé, dérivé de la commande WooCommerce

Serveur · Conversions API

Achat

ID d'événement partagé, dérivé de la commande WooCommerce

Une seule conversion

Même Pixel ID, même nom d'événement, même ID : OpenAI garde le premier et ignore le doublon.

La règle des 7 jours

OpenAI refuse les événements situés hors d'une fenêtre de temps donnée : selon sa documentation, l'horodatage doit se situer dans les 7 derniers jours et au plus 10 minutes dans le futur. Deux conséquences pour une boutique :

7 jours

ancienneté maximale de l'heure d'achat

10 minutes

au maximum dans le futur

  • Envoyez l'heure d'achat d'origine, et non l'heure de la tentative ; sinon, un événement relancé indique un achat plus tardif qu'en réalité.
  • Corrigez rapidement les envois en échec. Une commande dont l'heure d'achat remonte à plus de 7 jours ne peut plus être envoyée.

L'API accepte aussi des lots de 1 000 événements au maximum, et si un seul événement du lot échoue, c'est tout le lot qui échoue : une commande mal formée peut en bloquer d'autres si l'implémentation regroupe les envois sans précaution.

Relances et échecs

La documentation d'OpenAI demande de réutiliser le même ID lorsqu'on relance une conversion ou qu'on l'envoie par une autre intégration. Elle ne publie en revanche aucun calendrier de relance : la politique de relance relève de l'implémentation. Une politique raisonnable distingue :

Types d'échec d'envoi et traitement à appliquer
ÉchecExempleTraitement
TemporaireDélai dépassé, limite de débit (429), erreur serveur (5xx)Relance automatique avec le même ID
ConfigurationClé d'API refusée (401)Corriger le réglage, puis renvoyer
RéseauLe serveur ne joint pas l'APICorriger le HTTPS sortant ou les règles du pare-feu

Quelle que soit la politique, un échec doit être visible quelque part. Sans suivi commande par commande, une intégration en panne ressemble à s'y méprendre à une semaine de ventes calme.

Comment Pixel for ChatGPT Ads le met en œuvre

Pixel for ChatGPT Ads est un plugin WooCommerce qui n'envoie que l'achat côté serveur. Voici ce qu'il fait à chacune des étapes ci-dessus :

Traitement de l'achat côté serveur dans Pixel for ChatGPT Ads
AspectComportement
Événement envoyé côté serveurorder_created uniquement
DéclencheurLa commande atteint un statut payé dans WooCommerce
ID d'événementDérivé de la commande ; identique à celui de l'achat navigateur
Heure d'achatL'heure d'achat d'origine est transmise
Échecs temporairesRelancés automatiquement
VisibilitéÉtat d'envoi, tentatives et code HTTP pour chaque commande
Renvoi manuelPossible pour les commandes éligibles une fois la cause corrigée
Clé d'APIEnregistrée pour un usage côté serveur ; jamais écrite dans la page
ConsentementUtilise l'état de consentement enregistré pour la commande (WordPress Consent API)
Stockage des commandesHPOS et ancien stockage des commandes pris en charge

Le canal d'envoi de l'achat côté serveur, tel que l'extension le met en œuvre (illustration en anglais).

  1. 1Tout part de la commande WooCommerce payée, et non du navigateur de l'acheteur.
  2. 2L'achat va de votre boutique jusqu'à l'OpenAI Conversions API.
  3. 3Scripts bloqués, onglets fermés et bloqueurs de contenu n'interrompent pas ce canal.

Vues produit, ajouts au panier et débuts de commande restent des événements navigateur. La page Pixel ChatGPT Ads pour WooCommerce liste chaque événement et d'où il part.

Attentes

Ce que le suivi côté serveur améliore, et ce qu'il ne résout pas

L'envoi côté serveur fiabilise l'achat. Il ne règle pas tout pour autant.

Ce que le suivi côté serveur améliore

  • Les achats dont l'événement navigateur a été bloqué par un bloqueur de contenu.
  • Les clients qui ferment l'onglet après avoir payé.
  • Les paiements confirmés plus tard, alors que le client a quitté le site.
  • La visibilité, la relance et le renvoi des envois en échec, commande par commande.

Ce qu'il ne résout pas

  • Il ne décide pas de l'attribution. C'est OpenAI qui détermine si un achat est attribué à une publicité ChatGPT, quel que soit le mode d'envoi de l'événement.
  • Il ne récupère pas les événements propres au navigateur. Vues produit et activité du panier ont toujours besoin du navigateur.
  • Il ne passe pas outre le consentement. Les commandes sans consentement marketing ne sont pas envoyées.
  • Il ne corrige pas un second pixel non maîtrisé. Des copies en double sans ID partagé comptent toujours les achats deux fois.
  • Il ne garantit pas chaque conversion. Il évite simplement que le navigateur soit le seul point de défaillance possible pour l'achat.

Questions

La Conversions API est-elle obligatoire pour ChatGPT Ads ?

OpenAI permet de mesurer les conversions avec le pixel, la Conversions API ou les deux (présentation du suivi des conversions). Pour une boutique, envoyer l'achat par les deux canaux avec un ID partagé lui donne un canal qui ne dépend pas du navigateur.

Puis-je appeler la Conversions API en JavaScript depuis la page de remerciement ?

Non. Cela exposerait votre clé d'API et dépendrait toujours du navigateur. OpenAI recommande le pixel dans le navigateur et la Conversions API depuis le serveur.

Le suivi côté serveur nécessite-t-il un conteneur serveur Google Tag Manager ?

Non. WooCommerce tourne déjà sur un serveur : un plugin peut envoyer l'achat directement depuis WordPress.

Ce plugin envoie-t-il l'ajout au panier côté serveur ?

Non. Seul l'achat est envoyé côté serveur. Les trois autres événements sont des événements navigateur.

L'achat côté serveur, sans développer l'intégration

Pixel for ChatGPT Ads gère pour WooCommerce le déclenchement, les ID d'événement, les relances et le diagnostic par commande. Les mêmes fonctionnalités dans chaque formule.