Цей посібник проведе вас через інтеграцію TRACIO у ваш застосунок. Ви встановите клієнтський SDK, ініціалізуєте його своїм публічним ключем і прочитаєте свій перший результат ідентифікації відвідувача.
Встановіть TRACIO SDK за допомогою вашого улюбленого менеджера пакетів:
npm install @tracio/sdkАбо за допомогою pnpm:
pnpm add @tracio/sdkАбо за допомогою yarn:
yarn add @tracio/sdkЯкщо ви не використовуєте бандлер, додайте на сторінку edge-тег script. Він автоматично ініціалізується з публічним ключем у query-параметрі k:
<script src="https://edge.tracio.ai/s.js?k=PUBLIC_KEY" async></script>Імпортуйте Tracio та викличте Tracio.init() зі своїм публічним ключем. Це одразу повертає TracioInstance — базовий агент завантажується у фоні.
import { Tracio } from "@tracio/sdk"
const tracio = Tracio.init({ publicKey: "5ca175fc...",})Ваш публічний ключ безпечно постачати у клієнтському коді. Ви знайдете його у своїй панелі керування в розділі API Keys.
Tracio.init() приймає об’єкт TracioConfig:
| Параметр | Тип | Типове значення | Опис |
|---|---|---|---|
publicKey | string | обов’язковий | Ваш публічний ключ. Скопіюйте його зі своєї панелі керування. |
region | "us" | "eu" | немає | Необов’язковий регіон даних. Якщо не задано, SDK використовує загальний endpoint https://edge.tracio.ai (без неявної резиденції даних у США). Задайте його явно як us або eu. |
endpoint | string | автоматично | Власний API endpoint (для endpoint, пропрокшованого через first-party). |
scriptUrl | string | автоматично | Власний URL для скрипта агента (для endpoint, пропрокшованого через first-party). |
linkedId | string | немає | Ідентифікатор, що пов’язує цього відвідувача із сутністю у вашій системі. |
tag | string | немає | Довільна мітка, що додається до запиту для подальшої фільтрації. |
debug | boolean | false | Виводить докладну діагностику в консоль. |
timeoutMs | number | 15000 | Скільки часу чекати на результат до спрацювання таймауту. |
Викличте tracio.getVisitorId(), щоб отримати стабільний ідентифікатор відвідувача. Це асинхронна операція.
const visitorId = await tracio.getVisitorId()
console.log(visitorId) // "X7fh2Hg9LkMn3pQr"Викличте tracio.getResult(), щоб отримати повний результат ідентифікації, включно з виявленням ботів.
const result = await tracio.getResult()
console.log(result.visitorId) // "X7fh2Hg9LkMn3pQr"
if (result.bot.detected) { console.warn("bot, confidence:", result.bot.confidence)}Результат має таку форму:
{ visitorId: "X7fh2Hg9LkMn3pQr", bot: { detected: false, confidence: 2, // 0-100 reasons: [], },}Використовуйте колбеки життєвого циклу, щоб реагувати, коли агент готовий або коли щось не вдається, та destroy(), щоб знищити інстанс:
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()Див. Обробка помилок для повного переліку кодів помилок і допоміжних засобів для повторних спроб.
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()}