Повностекова інтеграція Device Identification для Next.js (App Router + Pages Router). Додайте ідентифікацію відвідувачів, виявлення ботів і smart signals до вашого застосунку Next.js за лічені хвилини.
Додайте SDK до свого проєкту за допомогою улюбленого менеджера пакетів.
npm install @tracio/reactyarn add @tracio/reactpnpm add @tracio/reactЗапустіться з мінімальним налаштуванням.
// app/layout.tsximport { TracioProvider } from '@tracio/react'export default function Layout({ children }) { return ( <TracioProvider publicKey={process.env.NEXT_PUBLIC_TRACIO_KEY!}> {children} </TracioProvider> )}Production-ready патерни з обробкою помилок, станами завантаження та розширеним налаштуванням.
// app/api/webhook/tracio/route.ts — identification events land here in real timeimport crypto from 'crypto'function verify(raw: Buffer, header: string, secret: string) { const p = Object.fromEntries(header.split(',').map((kv) => kv.split('='))) const signed = Buffer.concat([Buffer.from(`${p.t}.`), raw]) const expected = crypto.createHmac('sha256', secret).update(signed).digest('hex') const a = Buffer.from(p.v1, 'hex') const b = Buffer.from(expected, 'hex') return a.length === b.length && crypto.timingSafeEqual(a, b)}export async function POST(req: Request) { const raw = Buffer.from(await req.arrayBuffer()) const sig = req.headers.get('x-tracio-signature') ?? '' if (!verify(raw, sig, process.env.TRACIO_WEBHOOK_SECRET!)) { return new Response('Invalid signature', { status: 401 }) } const event = JSON.parse(raw.toString()) if (event.bot.result === 'bot') { await blockVisitor(event.visitorId) } return new Response('OK')}Усі доступні параметри для ініціалізації та налаштування SDK.
publicKeystringВаш публічний ключ із панелі керування — його безпечно віддавати в браузерendpointstringВласний URL ендпоінта для розгортань із проксі-маршрутизацією — явний URL важливіший за regionregionstringРегіон даних: us або eutimeoutMsnumberЧас очікування всього виклику getResult(), у мілісекундахlinkedIdstringВаш внутрішній ID акаунта авторизованого користувача, щоб пов’язувати відвідування з одного пристроюtagstringДовільна мітка, що додається до запиту ідентифікації, наприклад checkout або logindebugbooleanПише життєвий цикл скрипта та мережеву активність у консоль браузераscriptUrlstringПовна заміна URL скрипта агента — для self-hosting або Subresource IntegrityЗанурюйтесь глибше з повним довідником API, налаштуванням webhook і просунутими посібниками.
Повний довідник API, посібники з інтеграції та найкращі практики.
Доставка подій у реальному часі, схема корисного навантаження і перевірка підпису.
Налаштуйте сповіщення про події в реальному часі для кожної ідентифікації пристрою.
Додайте фінгерпринтинг пристроїв до вашого застосунку Next.js менш ніж за 5 хвилин.