Пакет @tracio/react обгортає базовий @tracio/sdk і надає ідіоматичні React-примітиви: провайдер, який монтує агента, та хуки, що повертають вам ідентифікатор відвідувача й результат ідентифікації разом зі станом завантаження та помилки.
npm install @tracio/react @tracio/sdkreact (18 або 19) є peer-залежністю, і передбачається, що він уже встановлений у вашому застосунку.
Обгорніть свій застосунок компонентом <TracioProvider>. Він монтує агента TRACIO під час першого рендеру та автоматично викликає tracio.destroy(), коли провайдер розмонтовується.
import { TracioProvider } from "@tracio/react"
function Root() { return ( <TracioProvider publicKey={process.env.NEXT_PUBLIC_TRACIO_KEY!}> <App /> </TracioProvider> )}| Prop | Тип | Опис |
|---|---|---|
publicKey | string | Ваш публічний ключ. Скопіюйте його з вашої панелі керування. |
config | TracioConfig | Повний обʼєкт конфігурації. Має пріоритет над плоскими скалярними пропсами нижче. |
endpoint | string | Власний API-ендпоінт (для ендпоінта, проксованого через first-party). |
scriptUrl | string | Власний URL для скрипта агента (для ендпоінта, проксованого через first-party). |
debug | boolean | Виводить докладну діагностику в консоль. |
timeoutMs | number | Скільки чекати на результат до настання тайм-ауту (за замовчуванням 15000). |
children | ReactNode | Обовʼязково — React-піддерево, яке потрібно обгорнути. |
Передавайте або publicKey разом із плоскими скалярами, або повний обʼєкт config. Коли задано і те, і інше, перемагає config.
Повертає стабільний ідентифікатор відвідувача разом зі станом завантаження та помилки.
const { data, isLoading, error, isFetched, getId } = useVisitorId()// data: string | undefined — the visitorIdgetId() імперативно повторно отримує ідентифікатор відвідувача.
Повертає повний TracioResult (ідентифікатор відвідувача плюс виявлення ботів).
const { data, isLoading, error, isFetched, getData } = useTracioResult()// data: TracioResult | undefinedopts.immediate за замовчуванням має значення true. Передайте { immediate: false }, щоб відкласти отримання, доки ви самі не викличете getData() — корисно за згодою користувача (consent gate):
const { data, getData } = useTracioResult({ immediate: false })
function onConsent() { getData() // identify only after the user opts in}Escape hatch, що повертає базовий екземпляр для просунутого використання.
const { tracio } = useTracio()import { TracioProvider, useVisitorId } from "@tracio/react"function App() { return ( <TracioProvider publicKey={process.env.NEXT_PUBLIC_TRACIO_KEY!}> <Page /> </TracioProvider> )}function Page() { const { data: visitorId, isLoading, error } = useVisitorId() if (isLoading) return <span>Loading…</span> if (error) return <span>Error: {error.message}</span> return <span>Visitor: {visitorId}</span>}@tracio/sdk, на якому побудовані хуки