Configuration du snippet
Cette page est le guide d'installation HTML / script simple pour le snippet de suivi Selgeo (selgeo.js) — un fichier JavaScript léger qui s'exécute sur votre site web, enregistre les clics de parrainage des partenaires et stocke les données d'attribution dans le navigateur du visiteur pour une correspondance de conversion ultérieure. Utilisez ce guide si vous contrôlez directement le HTML brut de votre site (sites statiques, Webflow, Shopify Liquid, pages personnalisées rendues côté serveur ou un gestionnaire de balises).
- Next.js — consultez le guide Next.js pour le motif du composant
next/script. - React (Vite) — consultez le guide React (Vite) pour le placement dans
index.htmlet le repliuseEffect. - WordPress — consultez le guide WordPress pour le placement via Éditeur du site,
footer.phpet plugins d'en-tête / pied de page.
Version API : v1
Installation de base
Ajoutez la balise <script> suivante à chaque page de votre site web, juste avant la balise </body> fermante :
<script
async
src="https://cdn.selgeo.com/v1/selgeo.js"
data-merchant="pk_test_YOUR_KEY"
></script>
Remplacez pk_test_YOUR_KEY par votre clé API publique depuis le tableau de bord Selgeo (Paramètres > Clés API).
Attributs requis
| Attribut | Description |
|---|---|
src | URL CDN du snippet. Utilisez toujours https://cdn.selgeo.com/v1/selgeo.js. |
data-merchant | Votre clé API publique (pk_test_* pour le mode test, pk_live_* pour le mode live). |
async | Charge le snippet de manière asynchrone pour ne pas bloquer le rendu de la page. |
Attributs optionnels
| Attribut | Description |
|---|---|
data-debug | Active la journalisation de débogage dans la console du navigateur. Supprimer avant de passer en production. |
data-api-url | Remplace l'URL du point de terminaison API. Pour utilisation avancée uniquement (ex. proxy personnalisé). |
Fonctionnement
Lorsqu'un visiteur arrive sur votre site avec un paramètre ?ref= dans l'URL (ex. https://votre-site.com/pricing?ref=abc123), le snippet :
- Détecte le paramètre de requête
ref. - Enregistre le clic auprès de l'API Selgeo en utilisant votre clé publique.
- Stocke le
click_idretourné par l'API dans lesessionStoragedu navigateur. - Supprime
?ref=de l'URL en utilisanthistory.replaceStatepour garder les URLs propres. - Réécrit les Liens de paiement Stripe sur la page pour inclure
client_reference_id=CLICK_ID.
S'il n'y a pas de paramètre ?ref=, le snippet ne fait rien. Il a un overhead nul sur les pages où aucun parrainage n'a lieu.
Mécanisme de stockage
Le snippet stocke les données d'attribution dans sessionStorage, pas dans des cookies :
| Clé | Valeur | Durée de vie |
|---|---|---|
__selgeo_cid | Le click_id (UUID) | Jusqu'à la fermeture de l'onglet du navigateur |
__selgeo_vtk | Un jeton de visiteur (UUID) | Jusqu'à la fermeture de l'onglet du navigateur |
Implications pour la confidentialité :
sessionStorageest limité à l'onglet — il n'est pas partagé entre les onglets ou les fenêtres.- Les données sont automatiquement effacées lorsque l'onglet est fermé.
- Aucun cookie n'est défini. Aucune bannière de consentement aux cookies n'est requise pour le suivi Selgeo.
- Le snippet n'envoie aucune donnée à Selgeo sauf si un paramètre
?ref=est présent.
Lecture de l'ID de clic
Votre code frontend peut lire le click_id stocké à tout moment :
const clickId = __selgeo.getClickId();
// Retourne une chaîne UUID (ex. "f47ac10b-58cc-4372-a567-0e02b2c3d479")
// Retourne null si aucun clic de parrainage n'a été enregistré dans cette session
C'est utile lorsque vous devez passer le click_id à votre backend — par exemple, lors de la création d'une Session de paiement Stripe ou de l'appel à l'API de conversion.
Méthodes disponibles
| Méthode | Retourne | Description |
|---|---|---|
__selgeo.getClickId() | string | null | L'ID de clic actuel, ou null si aucun n'existe |
__selgeo.getVisitorToken() | string | null | Le jeton de visiteur actuel, ou null |
__selgeo.checkUrl() | void | Vérifie manuellement l'URL actuelle pour un paramètre ?ref= |
Applications monopage (SPAs)
Le snippet surveille automatiquement les changements d'URL dans les applications monopage. Il écoute :
- Les événements
popstate(navigation avant/arrière du navigateur) - Les appels
history.pushStateethistory.replaceState(navigation programmatique)
Lorsque l'URL change et contient un nouveau paramètre ?ref=, le snippet capture le clic automatiquement. Aucune configuration supplémentaire n'est nécessaire pour React, Vue, Angular ou d'autres frameworks SPA.
Vérification manuelle de l'URL
Dans les rares cas où la détection automatique ne se déclenche pas (ex. le paramètre ?ref= est ajouté après le chargement de la page via JavaScript sans utiliser history.pushState), vous pouvez demander manuellement au snippet de revérifier :
__selgeo.checkUrl();
Réécriture automatique des Liens de paiement Stripe
Si votre page contient des liens vers des Liens de paiement Stripe (https://buy.stripe.com/...), le snippet ajoute automatiquement ?client_reference_id=CLICK_ID lorsqu'un clic de parrainage est actif.
<!-- Avant l'exécution du snippet -->
<a href="https://buy.stripe.com/test_abc123">S'abonner</a>
<!-- Après l'exécution du snippet (quand un click_id est stocké) -->
<a href="https://buy.stripe.com/test_abc123?client_reference_id=CLICK_ID">S'abonner</a>
Le snippet surveille également les Liens de paiement ajoutés dynamiquement (via MutationObserver) et les réécrit au fur et à mesure qu'ils apparaissent. Cela fonctionne avec les SPAs et le contenu chargé en différé.
Protection contre la surcharge marchand : Si vous définissez vous-même client_reference_id sur un Lien de paiement, le snippet ne remplacera pas votre valeur. Votre valeur explicite a toujours la priorité.
Pour un guide détaillé, voir Liens de paiement Stripe.
Installation via gestionnaire de balises
Si vous utilisez Google Tag Manager (GTM) ou un autre gestionnaire de balises, ajoutez le snippet comme balise HTML personnalisée :
- Créez une nouvelle balise HTML personnalisé dans GTM.
- Collez la balise script :
<scriptasyncsrc="https://cdn.selgeo.com/v1/selgeo.js"data-merchant="pk_test_YOUR_KEY"></script>
- Définissez le déclencheur sur Toutes les pages.
- Publiez le conteneur.
Lors de l'utilisation d'un gestionnaire de balises, le snippet peut se charger légèrement plus tard qu'une balise <script> directe. C'est acceptable pour la plupart des cas d'usage, mais si vous avez besoin du click_id immédiatement au chargement de la page (ex. pour le passer à un formulaire de paiement rendu côté serveur), ajoutez le snippet directement à votre HTML.
Recommandations de placement
| Scénario | Recommandation |
|---|---|
| Site web standard | Ajouter à chaque page via le layout/template global |
| SPA (React, Vue, etc.) | Ajouter une fois à index.html — le snippet gère les changements de route |
| Pages d'atterrissage uniquement | Ajouter uniquement aux pages où le trafic partenaire atterrit |
| Page de paiement uniquement | Non recommandé — le snippet doit être sur la page d'atterrissage pour capturer le paramètre ?ref= |
Le paramètre ?ref= n'est présent que dans l'URL initiale lorsque le visiteur clique sur un lien partenaire. Si le snippet n'est pas chargé sur cette page, le clic ne sera pas enregistré et le click_id ne sera pas disponible pour l'attribution de conversion ultérieure.
Vérifier votre installation
- Ajoutez
data-debugà la balise script temporairement. - Visitez votre site avec un lien de suivi de test :
https://votre-site.com/?ref=VOTRE_REF_TEST - Ouvrez les Outils de développement (F12) et vérifiez la Console pour :
[selgeo] ref detected VOTRE_REF_TEST[selgeo] click_id stored xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- Vérifiez sessionStorage dans l'onglet Application (Chrome) ou Stockage (Firefox) :
__selgeo_ciddoit contenir un UUID__selgeo_vtkdoit contenir un UUID
- Appelez l'API dans la console :
__selgeo.getClickId() // Doit retourner une chaîne UUID
- Vérifiez le tableau de bord — le clic doit apparaître dans Analytics en quelques secondes.
Dépannage
Le snippet ne se charge pas
- Vérifiez que l'URL
srcest exactementhttps://cdn.selgeo.com/v1/selgeo.js. - Vérifiez les en-têtes Content Security Policy (CSP) qui pourraient bloquer le script. Ajoutez
cdn.selgeo.comà votre directivescript-src. - Vérifiez les bloqueurs de publicités qui pourraient bloquer le script.
click_id est null
- Le visiteur doit arriver avec un paramètre
?ref=dans l'URL. Les visites directes ne créent pas declick_id. - Vérifiez que
data-merchantcontient une clé publique valide (pk_test_*oupk_live_*). - Vérifiez que la valeur
refcorrespond à un lien de suivi actif dans votre programme.
Les Liens de paiement Stripe ne sont pas réécrits
- Le
hrefdu lien doit commencer parhttps://buy.stripe.com. Les URLs relatives ou proxiées ne sont pas détectées. - La réécriture ne se produit que lorsqu'un
click_idest stocké. Visitez d'abord la page via un lien de suivi. - Si vous définissez vous-même
client_reference_id, le snippet ne le remplacera pas.
Performance
Le snippet est conçu pour avoir un impact minimal sur votre site :
| Métrique | Valeur |
|---|---|
| Taille du bundle | < 5 Ko gzippé |
| Temps d'initialisation | < 50 ms |
| Requêtes réseau | 0 (pas de parrainage) ou 1 (enregistrement du clic de parrainage) |
| Cookies définis | Aucun |
| Modifications DOM | Aucune (sauf nettoyage de l'URL via history.replaceState) |
Le snippet s'exécute entièrement dans un IIFE (Immediately Invoked Function Expression) et ne pollue pas la portée globale au-delà de l'objet API __selgeo.
Prochaines étapes
- Liens de paiement Stripe — intégration Stripe sans backend
- Stripe Checkout — passer
click_idaux Sessions de paiement - Stripe Metadata — passer
click_idvia les métadonnées de Session de paiement (alternative àclient_reference_id) - API de conversion — suivre les conversions non-Stripe