DataFirefly Server-Side — Guide complet
Installer et connecter le plugin gratuit DataFirefly Server-Side, brancher le suivi client + serveur de tout le tunnel WooCommerce, comprendre la déduplication par event_id, le purchase serveur inbloquable, la gestion du consentement (dont Cookie Consent v2), la file de reprise et l'abonnement au service.
DataFirefly Server-Side est le connecteur WooCommerce gratuit du service DataFirefly Server-Side Tracking. Le plugin capte les événements de votre boutique et les signe ; le service les diffuse côté serveur vers vos plateformes publicitaires et analytics. Ce guide couvre l’installation, la connexion, le fonctionnement du tunnel client + serveur, la déduplication, le purchase serveur, la gestion du consentement, la fiabilité et l’abonnement.
Modèle plugin gratuit + service payant. Le plugin ne coûte rien et restera gratuit. Pour envoyer réellement vos événements, il faut un abonnement au service DataFirefly Server-Side (à partir de 39 €/mois), qui assure l’ingestion et la diffusion server-side.
Prérequis
- WordPress 5.8 ou supérieur
- WooCommerce 5.0 ou supérieur (compatible HPOS — High-Performance Order Storage)
- PHP 7.4 ou supérieur
- Un cron WordPress fonctionnel (ou un vrai cron système) pour la file de reprise et l’envoi différé
- Un abonnement DataFirefly Server-Side pour obtenir votre clé de connexion
Installation
- Récupérez le fichier
datafirefly-serverside-2_0_1.zipdepuis votre espace client DataFirefly. - Dans le back-office WordPress, allez dans Extensions → Ajouter → Téléverser une extension, sélectionnez le ZIP puis cliquez sur Installer maintenant.
- Activez l’extension. Un nouveau menu DataFirefly Server-Side apparaît dans l’administration.
Connexion en une clé
Le module se configure avec une seule clé de connexion, qui active en même temps le suivi client et le suivi serveur.
- Depuis votre espace client DataFirefly, copiez la clé de connexion (elle commence par
dfss_). - Collez-la dans le champ prévu de l’écran Connexion du plugin.
- Cliquez sur Connecter. Le module active le suivi client et serveur, envoie un événement de test au dispatcher et met en place les balises client pour les destinations configurées.
- Vérifiez que le statut passe à Connecté ✓ et utilisez le bouton Tester l’événement pour confirmer la remontée.
La clé dfss_… encode votre tenant, un secret et l’endpoint du dispatcher. Elle est restreinte aux hôtes datafirefly.com en HTTPS : une clé pointant vers un autre domaine est refusée.
Mode avancé (saisie manuelle)
Si vous préférez ne pas utiliser la clé unique, le mode avancé permet de renseigner manuellement le tenant, le secret et l’endpoint. Réservez-le aux configurations spécifiques : le mode une-clé couvre la quasi-totalité des cas.
Tunnel complet client + serveur
Le plugin suit l’ensemble du tunnel côté navigateur, tandis que la conversion d’achat part côté serveur.
- Côté navigateur :
page_view,view_content(vue produit),add_to_cart,initiate_checkoutetadd_payment_info. - Côté serveur :
purchase, déclenché depuis les hooks de commande WooCommerce.
Les deux couches partagent le même identifiant d’événement pour permettre la déduplication.
Déduplication par event_id
Pour chaque commande, l’événement client et l’événement serveur portent le même event_id, construit sur l’identifiant de commande (par exemple order_1042). Meta, GA4 et les autres plateformes s’appuient dessus pour ne compter chaque conversion qu’une seule fois. Vous récupérez ainsi les conversions que le navigateur laisse échapper, sans double comptage.
Purchase server-side : fiable et infalsifiable
La conversion d’achat est déclenchée par les hooks de commande WooCommerce (paiement complété, en cours de traitement, terminé), de manière idempotente : un verrou (_dfss_sent) garantit qu’un même achat n’est jamais envoyé deux fois, même si plusieurs hooks se déclenchent.
- Comme l’événement part du serveur, aucun bloqueur de publicités ni ITP ne peut l’empêcher.
- À l’inverse, l’endpoint public de collecte (beacon) exclut volontairement l’événement
purchase: il est impossible d’injecter un faux achat depuis le navigateur pour gonfler vos revenus Meta ou GA4. - Le contexte de l’événement (valeur, devise, produits) fait autorité côté serveur : le navigateur ne « devine » rien.
Pour fiabiliser l’attribution même via une passerelle de paiement avec redirection, le plugin capture au checkout les cookies _fbp, _fbc, _ga, _ttp et les rattache à la commande, et pose des cookies first-party de click-id (90 jours) pour transporter fbc, ttclid et gclid jusqu’à l’achat.
Gestion du consentement
Le gate de consentement est activé par défaut : rien n’est envoyé tant que le consentement marketing n’est pas accordé.
Compatibilité native avec Cookie Consent v2
Le plugin détecte nativement le module DataFirefly Cookie Consent — RGPD & Google Consent Mode v2 et lit son cookie de consentement (dfcc_consent) directement côté serveur. Si la catégorie marketing est refusée, l’événement est écarté, quoi que prétende le navigateur. C’est la combinaison recommandée : bannière, Consent Mode v2 et tracking server-side parlent le même langage.
Autres solutions de consentement
À défaut de Cookie Consent v2, le plugin prend aussi en charge WP Consent API, Complianz, Cookiebot et IAB TCF v2. Vous pouvez conserver votre bannière actuelle et brancher le suivi dessus.
Fiabilité : file de reprise et journal d’activité
Un événement qui n’a pas pu être livré n’est pas perdu : il est mis en file d’attente et renvoyé automatiquement par un cron toutes les 5 minutes.
Le journal d’activité affiche en temps réel, sans jargon, ce qui a été livré, ce qui est en file d’attente et ce qui a été rejeté, avec le code HTTP et le nombre de tentatives. C’est votre premier réflexe de diagnostic.
Le cron WordPress ne s’exécute qu’au trafic. Sur une boutique à faible trafic, configurez un vrai cron système appelant wp-cron.php pour que la file de reprise se vide régulièrement.
Sécurité
- Aucun secret dans le navigateur : seuls des identifiants publics (pixel, measurement id) sont exposés côté client.
- Le secret de signature et vos identifiants de destination restent côté serveur.
- Chaque événement est signé en HMAC avant d’atteindre le dispatcher, hébergé dans l’UE (Allemagne).
Abonnement au service DataFirefly Server-Side
Le plugin capte et signe ; le service DataFirefly Server-Side Tracking ingère et diffuse côté serveur vers cinq destinations : Meta CAPI, GA4 (Measurement Protocol), TikTok Events API, Pinterest Conversions API et Google Ads. Le dispatcher est hébergé en Allemagne, l’ingestion est signée en HMAC, les données personnelles sont masquées et le déclenchement respecte le consentement. Une seule intégration, une facture consolidée, plusieurs sites possibles.
Découvrez les offres et abonnez-vous sur server-side.datafirefly.com :
- Starter — 39 €/mois : 1 site, jusqu’à 500 K événements
- Growth — 119 €/mois : 5 sites, jusqu’à 2 M événements
- Scale — 349 €/mois : 20 sites, jusqu’à 10 M événements
Dépannage
Le statut reste « Non connecté »
Vérifiez que la clé commence bien par dfss_ et qu’elle a été copiée en entier. Une clé pointant vers un autre domaine que datafirefly.com (HTTPS) est refusée. Réessayez le bouton Tester l’événement.
Le purchase ne remonte pas
Le purchase part des hooks de commande : assurez-vous que la commande atteint un statut de paiement (complété / en traitement / terminé). Consultez le journal d’activité pour voir si l’événement est en file d’attente ou rejeté, et vérifiez le cron si des événements stagnent.
Des conversions comptées deux fois
Vérifiez qu’aucun autre plugin de tracking n’envoie déjà un purchase concurrent sans event_id partagé. Avec DataFirefly Server-Side seul, l’event_id basé sur la commande garantit la déduplication.
Rien ne part alors que le consentement semble donné
Le gate est actif par défaut. Vérifiez que la catégorie marketing est bien acceptée dans votre solution de consentement, et que celle-ci est détectée (Cookie Consent v2, WP Consent API, Complianz, Cookiebot ou IAB TCF v2).
Besoin d’aide ? Contactez le support DataFirefly depuis votre espace client en joignant une capture du journal d’activité (code HTTP + nombre de tentatives).