API JavaScript
L'objet window.Sessio, disponible sur toutes les pages qui portent le tracker.
Une fois le tracker chargé, l'objet window.Sessio est disponible.
#Méthodes
| Méthode | Rôle |
|---|---|
Sessio.customEvent(nom, données?) |
Envoie un événement personnalisé. Voir Événements personnalisés. |
Sessio.identify(label) |
Associe un identifiant lisible (prénom, email…) au visiteur ; Sessio.identify(null) l'efface. Voir Identifier un visiteur. |
Sessio.getVisitorToken() |
L'identifiant anonyme du visiteur. |
Sessio.getPageviewId() |
Le numéro de la page vue en cours, une fois connue du serveur. |
Sessio.stop() |
Arrête l'enregistrement de l'écran sur la page en cours. |
Sessio.record() |
Relance l'enregistrement de l'écran après un stop(). |
Sessio.config |
La configuration lue dans window.TrackerConfig. |
Sessio._debug() |
L'état interne du tracker, pour le dépannage. |
#Exemples
Lier un ticket de support à la session en cours :
const ticket = {
sujet: 'Paiement impossible',
visiteur: Sessio.getVisitorToken(),
page: Sessio.getPageviewId(),
};Suspendre l'enregistrement de l'écran pendant une étape sensible :
Sessio.stop();
// … étape sensible …
Sessio.record();stop() arrête l'enregistrement de l'écran ; les statistiques de la page continuent d'être relevées.
#Identifier un visiteur
Par défaut, chaque visiteur n'est identifié que par un jeton aléatoire, illisible pour un humain. Sessio.identify(label) associe un identifiant lisible — prénom, nom, adresse email… — à ce jeton, pour suivre un utilisateur précis d'une page à l'autre.
L'usage typique vient juste après la connexion :
Sessio.identify(user.email);
// ou littéralement
Sessio.identify('[email protected]');Le libellé est conservé dans le localStorage du navigateur : il survit aux changements de page et aux sessions suivantes, et repart automatiquement au prochain chargement de la page. Il est limité à 200 caractères (au-delà, il est tronqué).
Pour effacer un identifiant — sur une déconnexion, par exemple :
Sessio.identify(null);Où le libellé apparaît :
- dans la liste des visiteurs du dashboard (pastille à côté de la visite) et sur la fiche du visiteur ;
- dans l'API REST publique, sous le champ
identified_labeldes visiteurs (scopevisitors:read) et des sessions (scopesessions:read).
#Identification automatique
Sans aucun appel à Sessio.identify, le tracker cherche l'utilisateur connecté là où les sites le rangent d'habitude : localStorage, sessionStorage et cookies lisibles en JavaScript. Il reconnaît :
- les clés directes :
email,username,user_email,userName,displayName… ; - les objets JSON d'un utilisateur (
user,currentUser,profile,account,auth, la session Supabase, Firebase ou Auth0…), lus en profondeur :user.email,user.username,user.name,firstName+lastName,given_name+family_name…
Il écoute aussi :
- les requêtes de compte (
fetchetXMLHttpRequest) dont l'adresse parle de connexion, d'inscription ou de profil (/login,/register,/signup,/auth,/profile,/me…) : le corps envoyé et la réponse, si elle réussit (2xx) ; - les formulaires envoyés : leurs champs
email,name,nom,username,pseudo…
Le libellé affiché est « Nom · email » quand les deux sont trouvés, sinon l'email, le nom d'utilisateur ou le nom. Si l'utilisateur change de compte, le nouveau libellé remplace l'ancien dans les 15 secondes. La recherche a lieu au chargement, puis toutes les 15 secondes, pour une connexion faite sans recharger la page.
Les secrets ne sont jamais lus : une clé qui parle de mot de passe ou de jeton, ou une valeur qui ressemble à un jeton (JWT, longue chaîne aléatoire), est ignorée.
Un Sessio.identify(...) explicite l'emporte toujours sur la détection. Pour la couper :
<script>window.TrackerConfig={token:"VOTRE_CODE_DE_SUIVI",autoIdentify:false}</script>L'identification automatique collecte l'email ou le nom de vos utilisateurs connectés : ce sont des données personnelles. Voir Identification et données personnelles.
Ne transmettez que ce que vous avez le droit de traiter : une adresse email est une donnée personnelle. Le tracker masque déjà les saisies de formulaire dans les replays ; le libellé, lui, est enregistré tel quel — préférez un identifiant interne quand l'adresse n'est pas nécessaire.