Acest ghid vă conduce prin integrarea TRACIO în aplicația dumneavoastră. Veți instala SDK-ul client, îl veți inițializa cu cheia publică și veți citi primul rezultat de identificare a vizitatorului.
Instalați SDK-ul TRACIO folosind managerul de pachete preferat:
npm install @tracio/sdkSau cu pnpm:
pnpm add @tracio/sdkSau cu yarn:
yarn add @tracio/sdkDacă nu folosiți un bundler, adăugați tag-ul de script edge în pagina dumneavoastră. Acesta se inițializează automat cu cheia publică din parametrul de interogare k:
<script src="https://edge.tracio.ai/s.js?k=PUBLIC_KEY" async></script>Importați Tracio și apelați Tracio.init() cu cheia dumneavoastră publică. Aceasta returnează imediat o TracioInstance — agentul subiacent se încarcă în fundal.
import { Tracio } from "@tracio/sdk"
const tracio = Tracio.init({ publicKey: "5ca175fc...",})Cheia dumneavoastră publică poate fi livrată fără riscuri în codul client-side. O găsiți în dashboard, la secțiunea API Keys.
Tracio.init() acceptă un obiect TracioConfig:
| Opțiune | Tip | Implicit | Descriere |
|---|---|---|---|
publicKey | string | obligatoriu | Cheia dumneavoastră publică. Copiați-o din dashboard. |
region | "us" | "eu" | niciuna | Regiune de date opțională. Când nu este setată, SDK-ul folosește endpoint-ul generic https://edge.tracio.ai (fără rezidență de date implicită în SUA). Setați-o explicit pe us sau eu. |
endpoint | string | automat | Endpoint API personalizat (pentru un endpoint proxied first-party). |
scriptUrl | string | automat | URL personalizat pentru scriptul agentului (pentru un endpoint proxied first-party). |
linkedId | string | niciuna | Identificator care leagă acest vizitator de o entitate din sistemul dumneavoastră. |
tag | string | niciuna | Etichetă liberă atașată cererii pentru filtrare ulterioară. |
debug | boolean | false | Înregistrează diagnostice detaliate în consolă. |
timeoutMs | number | 15000 | Cât timp se așteaptă rezultatul înainte de expirare. |
Apelați tracio.getVisitorId() pentru a primi un identificator stabil de vizitator. Aceasta este o operațiune asincronă.
const visitorId = await tracio.getVisitorId()
console.log(visitorId) // "X7fh2Hg9LkMn3pQr"Apelați tracio.getResult() pentru a primi rezultatul complet de identificare, inclusiv detectarea boților.
const result = await tracio.getResult()
console.log(result.visitorId) // "X7fh2Hg9LkMn3pQr"
if (result.bot.detected) { console.warn("bot, confidence:", result.bot.confidence)}Rezultatul are forma:
{ visitorId: "X7fh2Hg9LkMn3pQr", bot: { detected: false, confidence: 2, // 0-100 reasons: [], },}Folosiți callback-urile de ciclu de viață pentru a reacționa atunci când agentul este gata sau când ceva eșuează, și destroy() pentru a demonta instanța:
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)})
// later, when you no longer need ittracio.destroy()Consultați Gestionarea erorilor pentru lista completă a codurilor de eroare și a helper-elor de reîncercare.
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()}