Accounts koppelen verbindt de identificatie op apparaatniveau van TRACIO met je eigen begrip van een gebruiker. Door je interne account-ID als linkedId mee te sturen, vertel je TRACIO welke visitor-ID's bij dezelfde geauthenticeerde persoon horen — over browsers, apparaten en sessies heen.
Elke bezoeker die TRACIO ziet, krijgt een identifier op apparaatniveau (zie Identificatie). Op zichzelf weet die identifier niets over je gebruikers — hij herkent alleen terugkerende apparaten.
linkedId dicht dat gat: het is de accountId van de op dat moment geauthenticeerde gebruiker, meegestuurd met het normale identificatieverzoek. Wanneer twee of meer visitor-ID's dezelfde linkedId delen, koppelt TRACIO ze tot één account. Dat voedt de pagina Connections in het dashboard, identiteit over apparaten heen en driftdetectie bij accountovernames (ATO) — zie Wat je krijgt.
Zonder linkedId ziet TRACIO alleen anonieme apparaten en kan het ze niet per account groeperen.
Accounts koppelen is een extra parameter op de integratie die je al hebt. Backendcode is niet nodig.
Voeg lid toe aan de bestaande scripttag, naast je publieke sleutel:
<!-- ervoor --><script src="https://edge.tracio.ai/s.js?k=PUBLIC_KEY" async></script>
<!-- erna (pas zodra de gebruiker is ingelogd) --><script src="https://edge.tracio.ai/s.js?k=PUBLIC_KEY&lid=ACCOUNT_ID" async></script>Gebruik je @tracio/sdk, geef linkedId dan mee in de configuratie:
import { Tracio } from "@tracio/sdk"
const tracio = Tracio.init({ publicKey: "5ca175fc...", linkedId: user.id,})linkedId wordt één keer gelezen, op het moment dat de agent laadt. Draait je scripttag of de aanroep van Tracio.init() vóór het inloggen, zorg er dan voor dat linkedId wordt meegegeven zodra de authenticatiestatus bekend is:
lid=ACCOUNT_ID.Tracio.init() opnieuw aanroepen met dezelfde publicKey geeft de bestaande instantie terug en negeert de nieuwe configuratie — linkedId wordt niet opgepikt. Roep eerst tracio.destroy() aan en daarna Tracio.init({ publicKey, linkedId: user.id }). Je kunt de eerste Tracio.init()-aanroep ook uitstellen tot de authenticatiestatus bekend is.linkedId pas na een echte login. Stuur hem nooit voor gasten of anonieme bezoekers en val nooit terug op een placeholder als "guest" of "anonymous" — een gedeelde placeholderwaarde voegt niet-gerelateerde mensen samen in hetzelfde account.linkedId wordt afgekapt op 256 bytes. Gewone ID's blijven daar ruim onder; geef geen grote tokens door (zoals volledige JWT's).linkedId wordt opgeslagen naast de overige eventdata van je workspace en wordt in het dashboard aan je getoond als accountidentifier op de Connections-pagina — voor weergave wordt hij niet gehasht of geanonimiseerd, omdat je het account moet kunnen herkennen.
Intern gebruikt de matching over apparaten heen van TRACIO (fanoutdetectie, ATO-gedragsbaselines) een aparte, tot de omgeving beperkte eenwegshash van linkedId — nooit de ruwe waarde. Zo hangt de matchinglogica nooit af van de platte waarde en legt ze die niet bloot buiten je eigen dashboard en webhooks.
Daarom hoort linkedId een ondoorzichtig intern ID te zijn en geen e-mailadres of naam (zie Regels): hij is voor jou zichtbaar als je accountidentifier en zou dus niet meer persoonlijke informatie moeten bevatten dan je al hebt.
s.js (of het identificatieverzoek van de agent) zowel k= als lid= bevat.linkedId niet is geïntegreerd, staat daar een instelmelding; die verdwijnt binnen een paar minuten na het eerste verzoek met lid=.Zodra linkedId binnenkomt, ontsluit TRACIO: