Par défaut, chaque visiteur est anonyme : le SDK lui attribue un anonymousId stable (stocké dans le localStorage). Quand l’utilisateur se connecte, vous appelez identify() pour que les événements suivants portent aussi son userId et ses traits (rôle, plan, …).

Prérequis

  • Le SDK est installé et le provider est monté (Démarrage rapide).
  • Vous avez accès à l’utilisateur courant côté client (session, contexte d’auth).

Avec React : useIdentify (recommandé)

useIdentify(userId, traits) appelle identify() dès que userId est défini, et le rappelle si userId ou les traits changent. Si userId vaut null ou undefined, il ne fait rien.
components/IdentitySync.tsx
Montez ce composant sous AnalyticsProvider, là où l’utilisateur courant est disponible (par exemple dans le layout de l’espace connecté).

Sans React : identify()

Ce que fait identify()

  1. Il enregistre userId et les traits dans le localStorage (analytics_user_id, analytics_user_traits). Ils survivent au rechargement de la page.
  2. Il envoie un événement identify, avec les traits dans properties.user.
  3. Tous les événements suivants portent userId et properties.user.
Les événements envoyés avant l’appel ne sont pas modifiés : ils restent rattachés au seul anonymousId. L’anonymousId est conservé après identify(), ce qui permet de relier le parcours anonyme au parcours connecté.
Appeler identify() plusieurs fois avec les mêmes valeurs est sans danger, mais envoie un événement à chaque appel. useIdentify évite les appels répétés tant que userId et les traits ne changent pas.

Choisir les traits

Envoyez uniquement ce qui sert à segmenter vos analyses : Les clés password, token, accessToken, refreshToken, secret, creditCard, cardNumber et cvv sont retirées automatiquement (Filtrage automatique). Ce filtre est un filet de sécurité, pas une politique de confidentialité.

Déconnexion

Le SDK n’a pas encore de méthode reset(). Sans action de votre part, l’utilisateur reste identifié après la déconnexion : son userId est relu depuis le localStorage à chaque chargement. Pour repartir sur un visiteur anonyme, effacez l’identité stockée puis recréez l’instance du SDK. Avec React, changez la key du provider pour forcer son remontage :
app/analytics-root.tsx
Appelez ensuite resetAnalytics() dans votre action de déconnexion. Si la déconnexion recharge la page (redirection serveur), effacer les deux clés avant la redirection suffit.
Pour que le visiteur suivant sur le même navigateur soit compté comme un nouveau visiteur, effacez aussi analytics_anonymous_id. Sinon, il garde le même anonymousId, ce qui est le comportement habituel des outils d’analytics.

Vérifier

Dans l’onglet Network, la requête POST /v1/events suivant la connexion contient un événement "eventName": "identify". Les événements suivants ont un champ userId. Après la déconnexion, les nouveaux événements n’en ont plus.