Questa guida illustra l'integrazione di TRACIO nella sua applicazione. Installerà l'SDK client, lo inizializzerà con la sua chiave pubblica e leggerà il primo risultato di identificazione del visitatore.
Installi l'SDK TRACIO utilizzando il gestore di pacchetti preferito:
npm install @tracio/sdkOppure con pnpm:
pnpm add @tracio/sdkOppure con yarn:
yarn add @tracio/sdkSe non utilizza un bundler, inserisca il tag script edge nella sua pagina. Si auto-inizializza con la chiave pubblica nel parametro di query k:
<script src="https://edge.tracio.ai/s.js?k=PUBLIC_KEY" async></script>Importi Tracio e chiami Tracio.init() con la sua chiave pubblica. Questo restituisce immediatamente un TracioInstance — l'agente sottostante viene caricato in background.
import { Tracio } from "@tracio/sdk"
const tracio = Tracio.init({ publicKey: "5ca175fc...",})La sua chiave pubblica può essere distribuita in sicurezza nel codice lato client. La trova nella dashboard, sotto API Keys.
Tracio.init() accetta un oggetto TracioConfig:
| Opzione | Tipo | Default | Descrizione |
|---|---|---|---|
publicKey | string | obbligatorio | La sua chiave pubblica. La copi dalla dashboard. |
region | "us" | "eu" | nessuno | Regione dati opzionale. Se non impostata, l'SDK utilizza l'endpoint generico https://edge.tracio.ai (nessuna residenza dei dati US implicita). La imposti esplicitamente per fissare us o eu. |
endpoint | string | auto | Endpoint API personalizzato (per un endpoint proxato in first-party). |
scriptUrl | string | auto | URL personalizzato per lo script dell'agente (per un endpoint proxato in first-party). |
linkedId | string | nessuno | Identificatore che collega questo visitatore a un'entità nel suo sistema. |
tag | string | nessuno | Etichetta libera allegata alla richiesta per il filtraggio successivo. |
debug | boolean | false | Registra diagnostica dettagliata sulla console. |
timeoutMs | number | 15000 | Quanto attendere il risultato prima del timeout. |
Chiami tracio.getVisitorId() per ricevere un identificatore stabile del visitatore. È un'operazione asincrona.
const visitorId = await tracio.getVisitorId()
console.log(visitorId) // "X7fh2Hg9LkMn3pQr"Chiami tracio.getResult() per ricevere il risultato completo dell'identificazione, incluso il rilevamento dei bot.
const result = await tracio.getResult()
console.log(result.visitorId) // "X7fh2Hg9LkMn3pQr"
if (result.bot.detected) { console.warn("bot, confidence:", result.bot.confidence)}Il risultato ha la forma:
{ visitorId: "X7fh2Hg9LkMn3pQr", bot: { detected: false, confidence: 2, // 0-100 reasons: [], },}Utilizzi i callback del ciclo di vita per reagire quando l'agente è pronto o quando qualcosa fallisce, e destroy() per smontare l'istanza:
const tracio = Tracio.init({ publicKey: "5ca175fc..." })
tracio.onReady((result) => { console.log("ready:", result.visitorId)})
tracio.onError((error) => { console.error("tracio error:", error.code, error.message)})
// più tardi, quando non ne ha più bisognotracio.destroy()Consulti Gestione degli errori per l'elenco completo dei codici di errore e degli helper di retry.
import { Tracio } from "@tracio/sdk"
const tracio = Tracio.init({ publicKey: "5ca175fc..." })
async function handleLogin(email: string, password: string) { const visitorId = await tracio.getVisitorId()
const response = await fetch("/api/login", { method: "POST", body: JSON.stringify({ email, password, visitorId }), })
return response.json()}import { Tracio } from "@tracio/sdk"
const tracio = Tracio.init({ publicKey: "5ca175fc...", tag: "payment",})
async function processPayment(paymentData: PaymentData) { const result = await tracio.getResult()
if (result.bot.detected) { throw new Error("Automated client detected") }
const response = await fetch("/api/payment", { method: "POST", body: JSON.stringify({ ...paymentData, visitorId: result.visitorId }), })
return response.json()}