# DataFirefly Server-Side — Guide complet

> Guide complet d'installation, de connexion et d'exploitation du connecteur gratuit DataFirefly Server-Side pour WooCommerce : suivi client + serveur, déduplication, purchase server-side, consentement et abonnement au service.

- Page: <https://www.datafirefly.com/documentation/datafirefly-server-side/>
- Langue: fr
- Mis à jour le: 2026-07-07
- Autres langues: [en](https://www.datafirefly.com/en/documentation/datafirefly-server-side/index.md), [es](https://www.datafirefly.com/es/documentation/datafirefly-server-side/index.md), [de](https://www.datafirefly.com/de/documentation/datafirefly-server-side/index.md), [it](https://www.datafirefly.com/it/documentation/datafirefly-server-side/index.md), [pl](https://www.datafirefly.com/pl/documentation/datafirefly-server-side/index.md), [nl](https://www.datafirefly.com/nl/documentation/datafirefly-server-side/index.md), [pt](https://www.datafirefly.com/pt/documentation/datafirefly-server-side/index.md)
- Index: <https://www.datafirefly.com/documentation/llms.txt>

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, le choix des destinations client, 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

1. Récupérez le fichier `datafirefly-serverside-2_2_0.zip` depuis votre espace client DataFirefly.
2. Dans le back-office WordPress, allez dans **Extensions → Ajouter → Téléverser une extension**, sélectionnez le ZIP puis cliquez sur _Installer maintenant_.
3. 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.

1. Depuis votre espace client DataFirefly, copiez la **clé de connexion** (elle commence par `dfss_`).
2. Collez-la dans le champ prévu de l'écran _Connexion_ du plugin.
3. 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.
4. 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_checkout` et `add_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.

### Événements merchandising (depuis la v2.1.1)

Le tracker couvre également le merchandising de votre catalogue : `view_item_list` (vue d'une liste de produits — catégorie, résultats de recherche), `select_item` (clic sur un produit d'une liste), `view_promotion` et `select_promotion` (vue et clic d'une promotion). Le contexte associé — identifiant et nom de liste, identifiant et nom de promotion, créatif et emplacement — est transmis au server-side pour enrichir vos analyses de parcours.

### 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.

## Choisir les destinations client (Meta, GA4, TikTok)

Depuis la version 2.2.0, chaque balise client s'active ou se désactive individuellement dans les réglages du plugin, ligne **Destinations client** :

- **Meta** (pixel Facebook, `fbevents.js`)
- **Google Analytics 4** (`gtag.js`)
- **TikTok** (pixel TikTok)

Une destination décochée **ne charge jamais son script tiers** dans le navigateur de vos visiteurs et **ne pose jamais ses cookies**. Vous n'utilisez pas Meta ? Décochez-le : moins de JavaScript, moins de requêtes, une page plus rapide et plus sobre. Les destinations non configurées sur votre compte DataFirefly sont signalées dans l'écran de réglages.

Ces cases ne concernent que les _balises client_. La diffusion server-side vers Meta CAPI, GA4, TikTok, Pinterest et Google Ads reste pilotée par la configuration de votre compte dans l'espace client DataFirefly. Notez qu'en désactivant GA4, le cookie `_ga` n'est plus posé par le plugin, ce qui réduit la qualité de correspondance GA4 côté serveur — cohérent si vous n'utilisez pas GA4.

## 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).
- Le plugin est distribué sous licence GPLv2 ou ultérieure et suit les standards de codage WordPress.

## 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](https://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.

### Le script Meta (ou GA4, TikTok) ne se charge pas

Deux causes possibles : la destination est décochée dans **Destinations client** (comportement voulu depuis la v2.2.0), ou elle n'est pas configurée sur votre compte DataFirefly — l'écran de réglages l'indique alors. Après une modification côté compte, utilisez le bouton _Rafraîchir les identifiants de destination_.

### 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).
