TRACIO komt overeen met de browsersignaalverzameling van FingerprintJS Pro v4,
maar stelt zijn eigen SDK (@tracio/sdk) beschikbaar en levert de resultaten
serverzijdig via webhooks. Deze handleiding behandelt het migratieproces, de
details van de signaalpariteit en de verschillen in de SDK- en antwoordformaten
die u moet aanpassen.
| Aspect | FingerprintJS Pro | TRACIO | Compatibel |
|---|---|---|---|
| Signaalverzameling | XOR + deflate + Base64 | Gelijkwaardig | Ja |
| Aantal signalen | ~133 | 130+ (FingerprintJS-overeenkomstig + proprietair) | Ja |
| Signaalformaat | { s: status, v: value } | Gelijkwaardig | Ja |
| Client-SDK | @fingerprintjs/fingerprintjs-pro | @tracio/sdk (Tracio.init) | Codewijziging |
| Client-resultaatvorm | { visitorId, confidence, ... } | { visitorId, bot: { detected, ... } } | Codewijziging |
| Serverzijdige resultaten | Server-API (/events) | Geleverd via webhooks (geen klantgerichte REST-lees-API) | Codewijziging |
| Webhooks | FingerprintJS-webhookformaat | Platte camelCase-payload, X-Tracio-Signature | Codewijziging |
| Cookiemechanisme | _iidt (365 dagen) | _vid_t (365 dagen, opake UID) | Verschillend |
TRACIO komt overeen met de browsersignaalverzameling van FingerprintJS Pro v4, geverifieerd via geautomatiseerde Playwright-vergelijkingstests die parallel draaien tegen het productie-eindpunt van FingerprintJS Pro. Bovenop de FingerprintJS-overeenkomstige set verzamelt TRACIO proprietaire signalen (bot-, tamper-, antidetect- en persistentiesignalen) die FingerprintJS niet biedt.
TRACIO is een beheerde clouddienst. Maak uw account aan, kies uw dataregio en kopieer uw public key uit het dashboard. Zie Cloud Deployment voor de volledige uitleg. Uw public key kan veilig in clientzijdige code worden meegeleverd.
Voordat u uw productieverkeer omschakelt, test u met de client-SDK van TRACIO. Let op dat TRACIO zijn eigen SDK en API gebruikt — het is geen directe protocolvervanging voor de FingerprintJS-client.
import { Tracio } from "@tracio/sdk"
const tracio = Tracio.init({ publicKey: "5ca175fc...",})
const result = await tracio.getResult()console.log(result)Vergelijk het gedetecteerde apparaat met uw bestaande FingerprintJS Pro-integratie om de migratie te verifiëren.
Voer voor kritieke deployments beide systemen tegelijk uit en vergelijk de resultaten:
// Temporary: run both systems and compareconst fpjsResult = await fpjsAgent.get() // FingerprintJS Pro agentconst tracioResult = await tracio.getResult() // TRACIO instance
// Compare visitor IDs (they will differ — different servers)// But bot detection should be equivalent for the same deviceconsole.log("FPJS visitorId:", fpjsResult.visitorId)console.log("TRACIO visitorId:", tracioResult.visitorId)console.log("FPJS bot:", fpjsResult.bot)console.log("TRACIO bot:", tracioResult.bot)Let op dat de bezoekers-ID's tussen de systemen zullen verschillen, omdat ze worden berekend uit verschillende serverzijdige databases. De belangrijkste compatibiliteitsmetriek is dat beide systemen hetzelfde fysieke apparaat consistent identificeren.
TRACIO levert zijn eigen client-SDK (@tracio/sdk) en hergebruikt het
FingerprintJS-clientprotocol niet, zodat dit een codewijziging is en geen
DNS-omwisseling. Verwijder de FingerprintJS-client en initialiseer TRACIO met uw public key:
// Before (FingerprintJS Pro)import * as FingerprintJS from "@fingerprintjs/fingerprintjs-pro"const fpAgent = await FingerprintJS.load({ apiKey: "fpjs-public-key" })const fpResult = await fpAgent.get()
// After (TRACIO)import { Tracio } from "@tracio/sdk"const tracio = Tracio.init({ publicKey: "5ca175fc..." })const result = await tracio.getResult()FingerprintJS Pro stelt een Server-API beschikbaar die u per requestId opvraagt.
TRACIO biedt geen gelijkwaardig klantgericht REST-lees-eindpunt — in plaats
daarvan worden de resultaten als webhooks naar uw server gepusht op het
moment dat een bezoeker wordt geïdentificeerd. Vervang uw polling-logica door een webhook-handler:
// Before (FingerprintJS Pro) — pull by requestIdconst response = await fetch(`https://eu.api.fpjs.io/events/${requestId}`, { headers: { "Auth-API-Key": "fpjs-api-key" },})
// After (TRACIO) — receive a signed webhook per identificationapp.post("/webhook/tracio", (req, res) => { // verify req.headers["x-tracio-signature"], then act on req.body const event = req.body // { requestId, visitorId, bot, geo, network, decision, ... } res.status(200).send("OK")})Zie Webhooks voor de volledige payload en de handtekeningverificatie.
Als u webhooks gebruikt, registreert u ze in het TRACIO-dashboard. De
webhook-payload is een plat camelCase-document, ondertekend
met een X-Tracio-Signature-header — het verschilt van het
FingerprintJS-webhookformaat, dus werk uw handler dienovereenkomstig bij.
Zodra TRACIO in productie is geverifieerd:
TRACIO en FingerprintJS gebruiken verschillende antwoordvormen — dat is het belangrijkste waar u rekening mee moet houden bij het overzetten van code.
De client-SDK van TRACIO lost op naar een compact resultaat:
{ "visitorId": "X7fh2Hg9LkMn3pQr", "bot": { "detected": false, "confidence": 2, "reasons": [] }}In plaats van een per polling opgehaald Server-API-antwoord levert TRACIO per
identificatie een platte camelCase-webhook-payload — niet de
products-structuur van FingerprintJS:
{ "requestId": "1710432000_abc123def", "visitorId": "X7fh2Hg9LkMn3pQr", "identification": { "confidence": 0.95 }, "bot": { "result": "human", "type": "", "score": 0.02 }, "geo": { "country": "CZ", "city": "Prague" }, "network": { "vpn": false, "proxy": false, "tor": false, "datacenter": false }, "decision": { "action": "allow", "riskScore": 4 }}Zie Webhooks voor de volledige payload.
TRACIO is geen directe protocolvervanging voor FingerprintJS. Naast de verschillende SDK- en antwoordvormen hierboven geldt het volgende:
Bezoekers-ID's zullen niet gelijk zijn tussen FingerprintJS Pro en TRACIO. De bezoekers-ID is een hash van browsersignalen, en elk systeem gebruikt zijn eigen hashing-parameters en database. Na de migratie verschijnt elke bezoeker aanvankelijk als een "nieuwe" bezoeker in de database van TRACIO.
Oplossing: Gebruik het veld linkedId om TRACIO-bezoekers-ID's te koppelen aan uw bestaande gebruikersaccounts of sessies. Na een overgangsperiode bouwt de bezoekersdatabase van TRACIO zich op natuurlijke wijze op.
| Systeem | Cookienaam | Waarde |
|---|---|---|
| FingerprintJS Pro | _iidt (via proxy) | Platte token |
| TRACIO | _vid_t | Opake UID (UUID) |
Bestaande FingerprintJS Pro-cookies worden niet overgenomen. Bezoekers krijgen een nieuw _vid_t-cookie van TRACIO.
TRACIO verzamelt aanvullende proprietaire signalen die niet aanwezig zijn in FingerprintJS Pro. Deze bieden extra detectiemogelijkheden, maar hebben geen invloed op de compatibiliteit met bestaande integraties.
FingerprintJS Pro levert sealed_result in het antwoord (een versleutelde blob voor serverzijdige verificatie). TRACIO ondersteunt op dit moment geen sealed results. Gebruik in plaats daarvan webhooks voor serverzijdige verificatie.
Na de migratie kunnen de confidence-scores de eerste 24-48 uur iets lager uitvallen terwijl TRACIO zijn bezoekersdatabase opbouwt. Dit is te verwachten en verdwijnt zodra bezoekers terugkeren en cookiegebaseerde identiteiten vestigen.
Controleer of u de FingerprintJS-client hebt vervangen door @tracio/sdk en of
Tracio.init() wordt aangeroepen met een geldige public key voor de
juiste workspace.