Dépannage
Problèmes d'intégration courants et comment les résoudre. Tous les exemples font référence à l'API version v1.
Le snippet ne se charge pas
Symptôme : Le snippet de suivi Selgeo ne semble pas s'exécuter. Aucune requête réseau vers Selgeo dans l'onglet Réseau des DevTools du navigateur.
Causes possibles :
-
La balise script est manquante ou malformée. Vérifiez que le snippet est présent dans le HTML de votre page :
<scriptsrc="https://cdn.selgeo.com/v1/selgeo.js"data-merchant="pk_test_YOUR_KEY"async></script>Vérifiez les fautes de frappe dans l'URL ou l'attribut
data-merchant. -
La Content Security Policy (CSP) bloque le script. Si votre site utilise une Content Security Policy, ajoutez
https://cdn.selgeo.comà la directivescript-srcethttps://api.selgeo.comà la directiveconnect-src:script-src 'self' https://cdn.selgeo.com;connect-src 'self' https://api.selgeo.com; -
Un bloqueur de publicités ou une extension de navigateur bloque la requête. Certaines extensions de navigateur axées sur la confidentialité bloquent les scripts de suivi tiers. Testez dans une fenêtre incognito avec les extensions désactivées.
-
Clé API invalide. Si la valeur
data-merchantn'est pas une clépk_test_*oupk_live_*valide, le snippet échouera silencieusement. Vérifiez la clé dans Paramètres > Clés API dans le tableau de bord.
Les clics n'apparaissent pas
Symptôme : Le snippet se charge, mais les clics n'apparaissent pas dans le tableau de bord.
Causes possibles :
-
Mauvais mode. Si vous utilisez une clé
pk_test_*, les clics n'apparaissent qu'en mode test. Basculez le sélecteur de mode dans le tableau de bord pour afficher les données de test. -
Pas de paramètre de parrainage dans l'URL. Le snippet cherche un identifiant de parrainage dans l'URL (ex.
?ref=abc123). Si un visiteur arrive sans paramètre de parrainage, aucun clic n'est enregistré. Vérifiez que le lien de parrainage inclut le bon paramètre de requête. -
Limite de débit dépassée. Le point de terminaison de suivi autorise 1 000 requêtes par minute par clé publique. Si vous dépassez cette limite, les clics supplémentaires sont rejetés avec un statut
429. Vérifiez la console DevTools du navigateur pour les erreurs. -
Erreur réseau. Ouvrez l'onglet Réseau des DevTools du navigateur, filtrez les requêtes vers
api.selgeo.com, et vérifiez les requêtes échouées. Les causes courantes incluent des problèmes de résolution DNS, des règles de pare-feu, ou des mauvaises configurations CORS.
Conversions non attribuées
Symptôme : Les conversions sont signalées via l'API de conversion ou le webhook Stripe, mais elles n'apparaissent pas comme des conversions attribuées dans le tableau de bord. La conversion existe mais n'a pas de partenaire associé.
Causes possibles :
-
click_idmanquant ou invalide. Leclick_idlie une conversion à son clic d'origine. Sans lui, Selgeo ne peut pas attribuer la conversion à un partenaire.- Pour les intégrations API de conversion : assurez-vous de passer le
click_idcapturé par le snippet. - Pour les intégrations Stripe : assurez-vous que le
click_idest inclus dans les métadonnées de la session Stripe (clé :aff_click_id) ou passé via le flux de paiement.
- Pour les intégrations API de conversion : assurez-vous de passer le
-
Fenêtre d'attribution expirée. Chaque programme a une fenêtre d'attribution (ex. 30 jours). Si la conversion se produit après l'expiration de la fenêtre, aucune attribution n'est créée. Vérifiez la fenêtre d'attribution de votre programme dans Programmes > Paramètres.
-
Partenaire non approuvé. Les conversions ne sont attribuées qu'aux partenaires approuvés. Si le statut du partenaire est
en attente,rejetéoususpendu, la conversion est enregistrée mais aucune commission n'est créée. -
Conversion en double. Si vous envoyez le même
external_transaction_iddeux fois, la deuxième requête est rejetée avec une erreur409 CONVERSION_DUPLICATE. C'est le comportement attendu pour les réessais idempotents. -
Incompatibilité de mode. Un
click_idgénéré avec une clépk_test_*ne peut être associé qu'à une conversion signalée avec une clésk_test_*(et vice versa pour les clés live). Mélanger les clés test et live dans le flux entraînera des conversions non attribuées.
click_id manquant
Symptôme : Votre code côté serveur n'a pas accès au click_id que le snippet a capturé côté client.
Comment résoudre :
Le click_id est stocké par le snippet et doit être passé du client à votre serveur lors du flux de paiement ou d'inscription. La méthode dépend de votre intégration :
Intégration Stripe Checkout :
Les sessions Stripe Checkout sont créées côté serveur, donc vous devez passer le click_id manuellement. Lisez-le sur le client avec __selgeo.getClickId() et incluez-le dans les métadonnées de session lors de la création de la Session de paiement sur votre serveur :
const session = await stripe.checkout.sessions.create({
// ... vos paramètres de session
metadata: {
aff_click_id: clickId, // Passer le click_id du client
},
});
Intégration API de conversion :
Lisez le click_id depuis le client (le snippet l'expose via __selgeo.getClickId()) et incluez-le dans un champ de formulaire caché, un cookie, ou le stockage de session de votre application. Ensuite passez-le à l'API de conversion lors du signalement de la conversion :
// Côté client : obtenir le click_id
const clickId = __selgeo?.getClickId();
// Inclure clickId dans votre soumission de formulaire ou appel API vers votre backend
# Côté serveur : signaler la conversion avec le click_id
curl -X POST https://api.selgeo.com/api/v1/conversions \
-H "Authorization: Bearer sk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"click_id": "LE_CLICK_ID",
"event_type": "purchase",
"external_transaction_id": "txn_123",
"amount_cents": 4900,
"currency": "EUR"
}'
Liens de paiement Stripe :
Les Liens de paiement Stripe ne prennent pas en charge les métadonnées personnalisées. Le snippet Selgeo ajoute automatiquement client_reference_id aux URLs des Liens de paiement. Aucun passage manuel du click_id n'est nécessaire.
Toujours bloqué ?
Si rien de ce qui précède ne résout votre problème :
- Vérifiez le Journal d'audit d'attribution dans le tableau de bord pour des décisions d'attribution détaillées.
- Vérifiez votre intégration d'abord en mode test — il est plus facile de déboguer avec des données de test.
- Contactez le support avec votre ID de compte marchand et tout ID de requête que vous avez inclus via l'en-tête de requête
X-Request-Id(ou l'horodatage et le point de terminaison de la requête échouée).