Tutoriel

Suivi S2S : le guide de configuration définitif pour 2026

Équipe dev

Équipe dev

Ingénierie AffClix

22 min de lecture 14 200 vues

Le suivi serveur-à-serveur est la méthode la plus fiable, la plus résistante à la fraude et la plus respectueuse de la vie privée pour suivre les conversions affiliées. Contrairement au suivi par pixel, il ne dépend pas d'un navigateur qui exécute du JavaScript — ce qui signifie qu'il fonctionne lorsque les bloqueurs de publicités sont actifs, qu'ITP bloque les cookies ou que les utilisateurs ont JavaScript désactivé. Ce guide vous guide à travers une implémentation complète.

Comment fonctionne le suivi S2S

Le suivi S2S remplace le navigateur comme intermédiaire dans le reporting des conversions. Au lieu d'un pixel qui se déclenche dans le navigateur de l'utilisateur, le serveur de l'annonceur envoie une requête HTTP directement à l'endpoint de postback d'AffClix lorsqu'une conversion se produit. Le navigateur de l'utilisateur n'est jamais impliqué dans le signal d'attribution.

Flux de suivi S2S

1

L'utilisateur clique sur le lien affilié → AffClix génère un click_id unique

2

AffClix redirige l'utilisateur vers la page de destination de l'annonceur avec le click_id dans l'URL

3

L'annonceur stocke le click_id dans un cookie first-party (côté serveur)

4

L'utilisateur finalise son achat — le serveur de l'annonceur déclenche le postback vers AffClix

5

AffClix reçoit le postback, attribue la conversion à l'éditeur — terminé

S2S vs suivi par pixel

FacteurSuivi par pixelSuivi S2S
Résistance aux bloqueurs de pubBloqué par ~42 % des utilisateurs desktopJamais affecté — serveur à serveur
Compatibilité Safari ITPCassé — plafond cookie 1 jourEntièrement compatible
Dépendance JavaScriptNécessite l'exécution de JSZéro dépendance JS
Risque de fraudeLes bots peuvent déclencher des pixelsImpossible de falsifier les requêtes serveur
Conformité vie privéeNécessite le consentement aux cookiesPas de cookie — plus respectueux de la vie privée
Complexité de configurationDéposer un tag — simpleNécessite une intégration serveur

Étape 1 — Générer & stocker l'identifiant de clic

Chaque lien affilié traité par AffClix génère un paramètre click_id unique ajouté à l'URL de redirection. Cet identifiant doit être capturé et stocké du côté de l'annonceur immédiatement — la panne S2S la plus courante est la perte du click_id entre la page de destination et la page de conversion.

  • Cookie first-party (recommandé) — Défini avec les flags HttpOnly + Secure, expiration 30 jours. Survit aux rechargements de page, aux nouveaux onglets et aux délais de session.
  • Passage de paramètre URL — Ajoutez aux tous les liens internes dans le flux de paiement. Fragile si un lien rompt la chaîne.
  • Stockage de session uniquement — Non recommandé. Perdu lorsque l'utilisateur ouvre un nouvel onglet et expire avec la session.

Étape 2 — Déclencher le postback lors de la conversion

Lorsqu'un événement de conversion se produit, votre serveur envoie une requête GET à votre URL de postback AffClix. La requête doit être déclenchée côté serveur — jamais depuis le JavaScript du navigateur — pour contourner les bloqueurs de publicités et éviter la manipulation par bot.

Critique : déclencher uniquement côté serveur

Les postbacks déclenchés via le JavaScript du navigateur sont bloqués par les bloqueurs de publicités (affectant 42 % des sessions desktop). Ils peuvent également être rejoués par des bots pour générer de fausses conversions. Déclenchez toujours depuis votre serveur d'application en utilisant curl, axios ou similaire.

Exemples de code PHP & Node.js

PHP
// On landing page — store click_id immediately
if (isset($_GET['click_id'])) {
    setcookie('affclix_cid', $_GET['click_id'],
        time() + 86400 * 30,
        '/', '', true, true
    );
}

// On order confirmation — fire postback server-side
$cid = $_COOKIE['affclix_cid'] ?? null;

if ($cid && !Conversion::alreadyFired($order->id)) {
    $url = 'https://track.affclix.com/pb?' . http_build_query([
        'click_id' => $cid,
        'payout'   => $order->affiliate_payout,
        'currency' => 'USD',
        'goal'     => 'purchase',
        'order_id' => $order->id,
    ]);
    $ch = curl_init();
    curl_setopt_array($ch, [
        CURLOPT_URL            => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT        => 5,
        CURLOPT_SSL_VERIFYPEER => true,
    ]);
    curl_exec($ch);
    curl_close($ch);
    Conversion::markFired($order->id);
}
Node.js
const axios = require('axios');

async function firePostback(req, order) {
  const clickId = req.cookies.affclix_cid;
  if (!clickId) return;
  try {
    await axios.get('https://track.affclix.com/pb', {
      params: {
        click_id: clickId,
        payout:   order.affiliatePayout,
        currency: 'USD',
        goal:     'purchase',
        order_id: order.id,
      },
      timeout: 5000,
    });
  } catch (err) {
    logger.warn('Postback failed', { clickId, err: err.message });
  }
}

Pannes courantes & corrections

click_id perdu entre les pages

Stockez dans un cookie first-party HttpOnly (expiration 30 jours) sur la page de destination dès que le click_id est présent dans l'URL.

Postback déclenché dans le JS navigateur

Déplacez l'appel curl/axios vers votre serveur d'application. Le JS navigateur est bloqué par les bloqueurs de pub sur 42 % des sessions desktop.

Pare-feu serveur bloquant le trafic sortant

Autorisez les IPs de sortie AffClix dans vos règles de pare-feu. Consultez la documentation AffClix pour les plages d'IP actuelles.

Double déclenchement lors du rechargement

Stockez les IDs de commandes déclenchées dans une table DB. Vérifiez avant de déclencher — ignorez si déjà enregistré.

Paramètres requis manquants

Utilisez le Testeur de Postback AffClix dans le tableau de bord pour valider votre URL avant la mise en production.

Tester votre intégration

AffClix fournit un testeur de postback intégré et un environnement sandbox complet. Effectuez ces vérifications avant la mise en production :

  • le click_id apparaît dans les cookies du navigateur après la visite de la page de destination
  • le cookie persiste lors de la navigation dans le flux de paiement complet
  • le postback se déclenche dans les 5 secondes suivant la confirmation de commande
  • la conversion apparaît dans le tableau de bord AffClix dans les 10 secondes
  • le test réussit avec Safari + bloqueur de pub actif (le cas le plus difficile)
  • effectuez un test d'idempotence — rechargez la page de confirmation et vérifiez qu'aucune conversion dupliquée ne se déclenche
Conseil pro

Testez toujours sur un vrai appareil iOS avec Safari, pas seulement sur Chrome desktop. L'ITP de Safari est le bloqueur de suivi le plus agressif du terrain et détectera des problèmes que les tests Chrome manquent.

Questions fréquentes

What is S2S (server-to-server) tracking?

S2S tracking records clicks and conversions through direct server calls — a click ID is stored on redirect and returned via a postback URL when the conversion fires. Because nothing depends on browser storage, it is unaffected by cookie blocking and ad blockers.

Why is S2S tracking more reliable than pixel tracking?

Pixels execute in the browser, where third-party cookie restrictions, ITP, and ad blockers routinely break measurement. Postbacks run server-side between the advertiser and the tracking platform, so attribution survives regardless of browser privacy settings.

Do I need a developer to set up S2S postbacks?

A basic setup requires only appending a click ID parameter to your landing URL and calling the postback endpoint on conversion — most CRMs, carts, and MMPs support this natively. Custom integrations need light backend work, typically under a day.

Équipe dev

Équipe dev

Équipe d'ingénierie AffClix construisant l'infrastructure de suivi qui traite plus de 50M de clics par jour. Auteurs de l'API Postback AffClix et de la documentation d'intégration S2S.

Articles associés

Industrie

Conformité RGPD & vie privée pour le marketing d'affiliation en 2026

Suivi

Plateforme d'affiliation white-label : Construire vs acheter vs licencier en 2026