Un fondateur qui lance un programme d'affiliation regarde ses chiffres au bout de 30 jours. Les affiliés ont généré du trafic. Les inscriptions ont augmenté. Pourtant, les commissions versées ne correspondent pas aux conversions que ses affiliés lui signalent. L'écart est de 20 à 25%.
Le tracking est en cause, pas la fraude.
Le suivi d'affiliation SaaS est une chaîne technique avec cinq maillons. Chaque maillon peut casser silencieusement, sans erreur visible dans votre dashboard. Comprendre comment cette chaîne fonctionne, et où elle se rompt, permet de récupérer des attributions perdues et de payer les bons affiliés pour le bon travail.
Comment le tracking fonctionne de bout en bout
Du clic au cookie
Un affilié partage un lien du type https://app.refcampaign.com?ref=dupont. Quand un visiteur clique, votre script de tracking intercepte le paramètre ref, crée un identifiant de session et écrit un cookie first-party dans le navigateur. Ce cookie contient l'identifiant de l'affilié, l'horodatage du clic et la durée de validité.
La durée du cookie est un paramètre critique. En SaaS B2B, les cycles d'évaluation durent souvent 30 à 90 jours. Un cookie de 7 jours (valeur par défaut de certaines plateformes) perd la majorité des conversions sur des cycles longs.
De la session à l'essai
Quand le visiteur s'inscrit ou démarre un essai gratuit, votre application lit le cookie et associe l'identifiant de l'affilié au compte créé. Cette association doit être stockée côté serveur, pas seulement dans le navigateur. Si vous stockez uniquement dans le localStorage ou dans un cookie de session, vous perdez l'attribution dès que l'utilisateur change de navigateur ou nettoie ses données.
De l'essai au paiement Stripe
C'est le maillon le plus critique. Quand un utilisateur passe d'un essai gratuit à un abonnement payant, Stripe déclenche un webhook customer.subscription.created. À ce moment, votre système doit :
- Retrouver l'identifiant de l'affilié associé au compte client
- Calculer la commission selon les règles de votre programme
- Créer un enregistrement de commission en attente
Si l'association affilié-client n'a pas été persistée correctement à l'étape précédente, ce webhook ne peut pas attribuer la conversion. La commission disparaît sans trace.
De la commission au paiement
La commission reste en état "en attente" pendant votre délai de remboursement standard, généralement 30 à 90 jours. Après validation, elle est marquée comme "approuvée" et intégrée au prochain cycle de paiement. Cette dernière étape est purement opérationnelle, mais un bug dans la réconciliation des statuts peut retarder des paiements légitimes et dégrader la relation avec vos affiliés.
Modeles d'attribution comparés
Le modèle d'attribution définit quel clic reçoit la commission quand un utilisateur a cliqué sur plusieurs liens d'affiliés avant de convertir.
| Modele | Logique | Cas d'usage adapté | Risque principal |
|---|---|---|---|
| Premier clic | 100% au premier affilié qui a introduit l'utilisateur | Programmes axés notoriété, niches de contenu | Ignore les affiliés qui ont converti |
| Dernier clic | 100% au dernier affilié avant la conversion | Programmes axés conversion directe | Favorise les affiliés de coupon/cashback |
| Multi-touch linéaire | Commission divisée entre tous les affiliés du parcours | Programmes matures avec plusieurs types d'affiliés | Complexité de calcul, difficulté d'explication |
| Basé sur la position | Plus de poids au premier et au dernier clic | Équilibre notoriété + conversion | Arbitraire sans données pour calibrer |
En SaaS B2B avec des cycles de vente de 30 à 90 jours, le modèle dernier clic est le plus courant. Il est simple à expliquer aux affiliés et facile à auditer. Le modèle premier clic convient mieux quand la majorité de vos affiliés sont des créateurs de contenu long format. Leur travail d'introduction mérite d'être récompensé même s'il ne déclenche pas directement la conversion.
Les 5 pannes qui font perdre des conversions
1. Safari ITP et les cookies tiers bloqués
Apple a introduit Intelligent Tracking Prevention (ITP) en 2017 et n'a cessé de le durcir depuis. Depuis Safari 14, les cookies third-party sont bloqués par défaut. Depuis ITP 2.1, les cookies first-party créés via JavaScript ont une durée de vie limitée à 7 jours, réduite à 1 jour dans certaines configurations (source : WebKit blog, "Intelligent Tracking Prevention 2.3", 2019).
Safari représente 19 à 25% du trafic desktop en Europe selon Statista (2025). Sur mobile, la part monte à 28% en France. Si votre tracking repose exclusivement sur des cookies JavaScript, vous perdez une fraction significative de vos attributions sur ce segment.
2. Les bloqueurs de publicités
D'apres nos donnees, plus de 30% des utilisateurs d'outils SaaS B2B ont un bloqueur de publicités actif. Certains bloqueurs comme uBlock Origin ou Brave bloquent non seulement les scripts publicitaires, mais aussi les scripts de tracking first-party qui ressemblent à des trackers — notamment ceux qui utilisent des noms de paramètres comme ref, utm_source ou affiliate_id.
Quand le script de tracking est bloqué, le cookie n'est jamais créé. L'utilisateur visite votre site, s'inscrit, convertit. L'affilié qui l'a envoyé ne reçoit rien.
3. Le cross-device
Un utilisateur voit le contenu d'un affilié sur son téléphone, clique sur le lien d'affiliation. Le cookie est créé sur mobile. Il s'inscrit trois jours plus tard depuis son ordinateur de bureau. Le cookie n'existe pas sur ce device. La conversion n'est pas attribuée.
Ce scénario est particulièrement fréquent en B2B, où la phase de découverte se fait souvent sur mobile et l'inscription sur desktop. D'apres nos donnees, le cross-device représente 8 à 12% des conversions non attribuées dans les programmes SaaS.
4. L'expiration du cookie face aux cycles longs
Un fondateur configure son programme avec une durée de cookie de 30 jours parce que c'est la valeur par défaut. Son cycle de vente moyen, du premier contact à l'activation payante, est de 45 jours. Mécaniquement, toutes les conversions au-delà de 30 jours tombent hors attribution.
Les benchmarks des programmes d'affiliation SaaS montrent que le délai médian entre le premier clic et la première transaction payante en SaaS B2B est de 28 jours, mais la distribution est longue : 20% des conversions arrivent après 45 jours. Une durée de cookie de 30 jours perd structurellement cette fraction.
5. Les redirections qui cassent les paramètres
Un affilié partage un lien court, une URL passée par un outil de raccourcissement, ou une URL qui passe par une redirection 301. Si cette redirection ne préserve pas les paramètres de tracking, le cookie n'est jamais créé.
Ce problème touche aussi les redirections internes : si votre site redirige www. vers l'apex domain (ou inversement) et que votre script de tracking ne se charge qu'après la redirection finale, les paramètres peuvent être perdus en route.
Le tracking server-side comme solution
Pourquoi les métadonnées Stripe contournent les limitations
Le tracking server-side consiste à stocker l'identifiant de l'affilié directement dans les métadonnées de votre objet Stripe (sur le Customer ou la Subscription) au moment de l'inscription, pas au moment du paiement.
Quand Stripe déclenche le webhook de conversion, les métadonnées sont présentes dans le payload. Votre système n'a pas besoin de retrouver un cookie : l'information est dans Stripe.
{
"object": "customer",
"metadata": {
"affiliate_id": "dupont",
"affiliate_click_at": "2026-03-15T14:32:00Z",
"ref_source": "article-blog-saas"
}
}
Cette approche contourne les bloqueurs de publicités (le script qui écrit les métadonnées n'est pas bloqué car il s'exécute côté serveur), Safari ITP (pas de cookie client impliqué dans la persistance de l'attribution), et le cross-device (l'association est liée au compte, pas au navigateur).
L'écart de performance mesuré
D'apres nos donnees sur des programmes actifs comparant tracking cookie seul vs tracking server-side :
- Tracking cookie only : perte d'attribution de 15 à 30% selon le mix d'audience
- Tracking server-side avec fallback cookie : perte d'attribution inférieure à 2%
L'écart est maximal sur les audiences tech (fort taux de bloqueurs), les audiences mobile-first, et les programmes avec des cycles de vente supérieurs à 30 jours.
Comment les deux approches se combinent
Le tracking robuste utilise les deux couches :
- Couche cookie : capture le clic, stocke l'identifiant dans un cookie first-party avec une durée longue (90 jours minimum)
- Couche serveur : à l'inscription, lit le cookie et écrit l'identifiant de l'affilié dans les métadonnées Stripe
- Webhook Stripe : lit les métadonnées pour attribuer la commission, sans dépendance au navigateur ou au cookie
Si le cookie est bloqué ou expiré, la couche serveur peut utiliser d'autres signaux : fingerprint navigateur, adresse email hashée, ou identifiant de session stocké en base. Ces signaux sont moins précis mais réduisent le nombre d'attributions perdues.
C'est l'architecture que RefCampaign utilise par défaut. La comparaison avec Tapfiliate détaille les différences d'implémentation technique entre les deux plateformes.
Checklist de diagnostic en 10 points
Si vous suspectez des attributions perdues dans votre programme, parcourez cette liste avant d'investir dans une refonte.
Infrastructure de base
- Votre script de tracking se charge avant tout bloqueur de redirection (vérifié dans les DevTools Network)
- Votre cookie d'affiliation est un cookie first-party (domaine identique à votre application)
- La durée du cookie correspond à votre cycle de vente réel (pas la valeur par défaut de la plateforme)
- Les redirections (www/apex, HTTP/HTTPS) préservent les paramètres de tracking
Persistance de l'attribution
- L'identifiant de l'affilié est stocké côté serveur dès l'inscription, pas seulement dans le cookie
- Les métadonnées Stripe contiennent l'identifiant de l'affilié sur le Customer ou la Subscription
- Votre webhook Stripe lit ces métadonnées pour attribuer les commissions
Couverture des cas limites
- Vous avez testé le parcours depuis Safari (mode navigation privée inclus)
- Vous avez testé le parcours avec uBlock Origin ou Brave activé
- Vous avez testé un parcours cross-device (clic mobile, inscription desktop)
Si vous répondez "non" ou "je ne sais pas" à plus de trois points, votre programme perd probablement des attributions en ce moment.
Ce que perdre 20% des attributions signifie concrètement
Un programme qui génère 50 000 EUR de MRR attribué avec un taux de commission de 20% verse 10 000 EUR par mois à ses affiliés. Si 20% des conversions ne sont pas attribuées, le programme génère en réalité 60 000 EUR de MRR, mais 10 000 EUR d'acquisitions payées ne reçoivent pas de commission.
Ce n'est pas une économie. C'est une dette envers les affiliés qui ont fait le travail, et une incitation à quitter votre programme quand ils comparent leurs revenus déclarés avec le trafic qu'ils ont envoyé.
Les raisons d'échec des programmes d'affiliation SaaS placent les problèmes de tracking dans les trois premières causes d'abandon par les affiliés de qualité.
La comparaison avec Impact couvre les différences d'architecture de tracking entre une solution enterprise et une solution conçue pour les SaaS en croissance.
Comment démarrer
Si vous construisez votre programme d'affiliation et voulez partir sur une infrastructure de tracking fiable, la documentation de création d'un programme d'affiliation SaaS couvre la configuration initiale étape par étape.
Pour un audit de votre programme existant ou une migration depuis une plateforme avec des problèmes de tracking, consultez les tarifs ou contactez l'équipe directement. Un audit de tracking prend généralement moins de deux heures et identifie les attributions perdues récupérables.
Table des matières
Table des matières disponible bientôt
Articles liés
Articles liés disponibles bientôt