Aller au contenu principal

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 :

  1. La balise script est manquante ou malformée. Vérifiez que le snippet est présent dans le HTML de votre page :

    <script
    src="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.

  2. La Content Security Policy (CSP) bloque le script. Si votre site utilise une Content Security Policy, ajoutez https://cdn.selgeo.com à la directive script-src et https://api.selgeo.com à la directive connect-src :

    script-src 'self' https://cdn.selgeo.com;
    connect-src 'self' https://api.selgeo.com;
  3. 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.

  4. Clé API invalide. Si la valeur data-merchant n'est pas une clé pk_test_* ou pk_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 :

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

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

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

  4. 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 :

  1. click_id manquant ou invalide. Le click_id lie 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_id capturé par le snippet.
    • Pour les intégrations Stripe : assurez-vous que le click_id est inclus dans les métadonnées de la session Stripe (clé : aff_click_id) ou passé via le flux de paiement.
  2. 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.

  3. Partenaire non approuvé. Les conversions ne sont attribuées qu'aux partenaires approuvés. Si le statut du partenaire est en attente, rejeté ou suspendu, la conversion est enregistrée mais aucune commission n'est créée.

  4. Conversion en double. Si vous envoyez le même external_transaction_id deux fois, la deuxième requête est rejetée avec une erreur 409 CONVERSION_DUPLICATE. C'est le comportement attendu pour les réessais idempotents.

  5. Incompatibilité de mode. Un click_id gé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 :

  1. Vérifiez le Journal d'audit d'attribution dans le tableau de bord pour des décisions d'attribution détaillées.
  2. Vérifiez votre intégration d'abord en mode test — il est plus facile de déboguer avec des données de test.
  3. 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).