Integrations

WooCommerce + Conversions API : tutoriel sans plugin

12 min readOctober 21, 2025

Tutoriel WooCommerce Conversions API sans plugin : instrumentation server-side propre pour Purchase, deduplication et EMQ optimal.

WooCommerce + Conversions API : tutoriel sans plugin

Sur WooCommerce, la plupart des e-commerçants marocains s'appuient sur un plugin gratuit ou une extension payante pour envoyer leurs événements à la Conversions API de Meta. C'est simple, mais rarement optimal : hash incomplet, deduplication absente, doublons envoyés, EMQ médiocre. Ce tutoriel montre comment implémenter CAPI directement dans WooCommerce sans plugin, pour un résultat propre, contrôlé et performant.

Pourquoi se passer d'un plugin

  • Contrôle total du payload : vous décidez quelles données envoyer et comment les hasher.
  • Deduplication maîtrisée : un event_id unique partagé entre Pixel et CAPI, indispensable pour éviter les doubles conversions.
  • Performance : pas d'appels HTTP synchrones qui ralentissent le checkout.
  • Pas de dépendance : plus de plugin à mettre à jour, moins de failles de sécurité potentielles.

Prérequis

  • WooCommerce à jour (idéalement 8.x ou plus récent).
  • PHP 8.0 minimum, avec ext-curl activée.
  • Un Access Token système généré dans le Meta Business Manager.
  • L'identifiant du Pixel Facebook (16 chiffres environ).

Étape 1 : préparer un mu-plugin custom

Créer un fichier capi-woo.php dans wp-content/mu-plugins/. Un mu-plugin s'active automatiquement, ne peut pas être désactivé par erreur, et reste indépendant du thème (donc résistant aux updates).

Étape 2 : instrumenter l'événement Purchase

Le hook WooCommerce à utiliser est woocommerce_thankyou, qui se déclenche une seule fois quand le client atteint la page de remerciement. À l'intérieur, on récupère la commande via wc_get_order() et on construit le payload CAPI.

Les données à collecter

  • user_data : email (hashé SHA-256), téléphone au format E.164 (+2126XXXXXXXX puis hashé), prénom, nom, ville, code postal, pays, adresse IP, User Agent, fbp (cookie _fbp), fbc (cookie _fbc si présent).
  • custom_data : value (total commande), currency (MAD), content_ids (SKU des produits), content_type ("product"), num_items.
  • event_id : identifiant unique généré au checkout (ex : wc_purchase_{order_id}_{timestamp}), à passer aussi au Pixel côté client pour la deduplication.
  • event_time : timestamp UNIX au moment de la commande.
  • action_source : "website".
  • event_source_url : URL de la page thank-you.

Étape 3 : hasher correctement

Toutes les données personnelles doivent être normalisées avant hash SHA-256 :

  • Minuscules, sans espaces avant/après pour email, prénom, nom, ville.
  • Téléphone au format international sans le +, sans espaces, sans tirets.
  • Code postal en chiffres purs.
  • Hash hash('sha256', $value) en PHP, jamais transmis en clair.

Cette normalisation impacte directement l'Event Match Quality. Un hash mal formé fait chuter le matching et pénalise vos performances Meta Ads.

Étape 4 : envoi asynchrone avec wp_remote_post

Utiliser wp_remote_post() vers https://graph.facebook.com/v20.0/{PIXEL_ID}/events avec un timeout court (2 secondes) et l'option blocking => false pour ne pas ralentir la page thank-you. Le token d'accès est passé en paramètre access_token.

Bonne pratique : cron ou queue

Pour un site à fort volume, envoyer les events via WP Cron ou une vraie queue (Redis, Action Scheduler) évite tout blocage synchrone. Le prix : légère latence entre commande et envoi Meta, généralement acceptable.

Étape 5 : deduplication côté Pixel

Sur la page thank-you, le Pixel Facebook doit tirer le même event_id que CAPI. Ajouter dans le template :

fbq('track', 'Purchase', { value, currency }, { eventID: '{event_id_serveur}' });

Meta dédoublonne automatiquement les deux envois s'ils ont le même event_id sur une fenêtre glissante.

Étape 6 : tester avec le Test Event Code

Dans le Meta Events Manager, générer un Test Event Code temporaire et l'inclure dans le payload sous test_event_code. Les événements apparaissent en temps réel dans l'onglet Test Events, ce qui permet de valider la structure, les paramètres user_data et le score de match avant de passer en production.

Étape 7 : monitorer l'EMQ

Une fois en production, surveiller l'Event Match Quality dans le Events Manager :

  • Score inférieur à 5 : matching médiocre, revoir la normalisation et compléter les user_data manquants.
  • Score entre 5 et 7 : correct mais améliorable, ajouter davantage de paramètres.
  • Score supérieur à 7 : excellent, l'algorithme dispose de signaux fiables.

Compléments à considérer

  • Événements AddToCart et InitiateCheckout : instrumenter avec la même logique via les hooks woocommerce_add_to_cart et woocommerce_before_checkout_form.
  • Paiement à la livraison : envoyer Purchase uniquement à la livraison confirmée pour un signal ultra-qualitatif.
  • Conformité conformité réglementaire : les hash SHA-256 des données personnelles restent des données personnelles au sens de la loi 09-08. Informer les utilisateurs dans la politique de confidentialité.

Conclusion

Implémenter CAPI directement dans WooCommerce demande environ une journée de développement mais offre un contrôle et une qualité de matching largement supérieurs aux plugins génériques. Combinée à une stratégie WhatsApp Business pour le suivi de commande et la relance, cette instrumentation propre constitue le socle mesurable d'un e-commerce marocain performant sur Meta Ads.

Try Adrixis META free. Seven days, no card required.