La liaison de comptes relie l'identification au niveau de l'appareil réalisée par TRACIO à votre propre notion d'utilisateur. En transmettant votre identifiant de compte interne comme linkedId, vous indiquez à TRACIO quels visitor IDs appartiennent à la même personne authentifiée — d'un navigateur, d'un appareil et d'une session à l'autre.
Chaque visiteur vu par TRACIO reçoit un identifiant au niveau de l'appareil (voir Identification). Seul, cet identifiant ne sait rien de vos utilisateurs : il reconnaît simplement les appareils qui reviennent.
linkedId comble cet écart : c'est l'accountId de l'utilisateur actuellement authentifié, envoyé avec la requête d'identification habituelle. Lorsque deux visitor IDs ou plus partagent le même linkedId, TRACIO les relie en un seul compte, ce qui alimente la page Connections du tableau de bord, l'identité multi-appareils et la détection de dérive en cas de prise de contrôle de compte (ATO) — voir Ce que vous obtenez.
Sans linkedId, TRACIO ne voit que des appareils anonymes : il n'a aucun moyen de les regrouper par compte.
La liaison de comptes est un paramètre additionnel sur l'intégration dont vous disposez déjà. Aucun code backend n'est nécessaire.
Ajoutez lid à la balise de script existante, à côté de votre clé publique :
<!-- avant --><script src="https://edge.tracio.ai/s.js?k=PUBLIC_KEY" async></script>
<!-- après (uniquement une fois l'utilisateur authentifié) --><script src="https://edge.tracio.ai/s.js?k=PUBLIC_KEY&lid=ACCOUNT_ID" async></script>Si vous utilisez @tracio/sdk, transmettez linkedId dans la configuration :
import { Tracio } from "@tracio/sdk"
const tracio = Tracio.init({ publicKey: "5ca175fc...", linkedId: user.id,})linkedId est lu une seule fois, au moment du chargement de l'agent. Si votre balise de script ou votre appel à Tracio.init() s'exécute avant la connexion, vous devez veiller à inclure linkedId dès que l'état d'authentification est connu :
lid=ACCOUNT_ID après la connexion.Tracio.init() avec la même publicKey renvoie l'instance existante et ignore la nouvelle configuration — linkedId n'est pas pris en compte. Appelez d'abord tracio.destroy(), puis Tracio.init({ publicKey, linkedId: user.id }). Vous pouvez aussi différer le premier appel à Tracio.init() jusqu'à ce que l'état d'authentification soit connu.linkedId qu'après une véritable connexion. Ne l'envoyez jamais pour des invités ou des visiteurs anonymes, et n'utilisez jamais une valeur de repli comme "guest" ou "anonymous" : une valeur partagée fusionne des personnes sans lien dans un même compte.linkedId est tronqué à 256 octets. Les identifiants ordinaires sont bien en deçà ; ne transmettez pas de jetons volumineux (des JWT complets, par exemple).linkedId est stocké avec les autres données d'événements de votre espace de travail et vous est restitué dans le tableau de bord comme identifiant de compte sur la page Connections : il n'est ni haché ni anonymisé à l'affichage, puisque vous devez reconnaître le compte.
En interne, la mise en correspondance multi-appareils de TRACIO (détection de fanout, lignes de base comportementales ATO) utilise un hachage à sens unique distinct et limité à l'environnement, calculé sur linkedId — jamais la valeur brute. La logique de correspondance ne dépend donc jamais de la valeur en clair et ne l'expose pas au-delà de votre propre tableau de bord et de vos webhooks.
C'est pourquoi linkedId doit être un identifiant interne opaque plutôt qu'une adresse e-mail ou un nom (voir Règles) : il vous est visible en tant qu'identifiant de compte, il ne doit donc pas porter plus d'informations personnelles que celles dont vous disposez déjà.
s.js (ou la requête d'identification de l'agent) contient les paramètres k= et lid=.linkedId n'est pas intégré, un avis de configuration s'affiche ; il disparaît quelques minutes après la première requête portant lid=.Dès que linkedId circule, TRACIO débloque :