Integração full-stack de Device Identification para Next.js (App Router + Pages Router). Adicione identificação de visitantes, detecção de bots e smart signals à sua aplicação Next.js em minutos.
Adicione o SDK ao seu projeto com o gerenciador de pacotes de sua preferência.
npm install @tracio/reactyarn add @tracio/reactpnpm add @tracio/reactColoque tudo em funcionamento com a configuração mínima.
// app/layout.tsximport { TracioProvider } from '@tracio/react'export default function Layout({ children }) { return ( <TracioProvider publicKey={process.env.NEXT_PUBLIC_TRACIO_KEY!}> {children} </TracioProvider> )}Padrões prontos para produção com tratamento de erros, estados de carregamento e configuração avançada.
// 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')}Todas as opções disponíveis para inicializar e configurar o SDK.
publicKeystringSua chave pública do painel — segura para enviar no navegadorendpointstringURL de endpoint personalizada para implantações roteadas via proxy — uma URL explícita prevalece sobre regionregionstringRegião de dados: us ou eutimeoutMsnumberTimeout de toda a chamada getResult(), em milissegundoslinkedIdstringO ID interno da conta do usuário autenticado, para vincular visitas que compartilham um dispositivotagstringRótulo livre anexado à requisição de identificação, ex.: checkout ou logindebugbooleanRegistra o ciclo de vida do script e a atividade de rede no console do navegadorscriptUrlstringSubstituição completa da URL do script do agente — para self-hosting ou Subresource IntegrityAprofunde-se com a referência completa da API, a configuração de webhooks e guias avançados.
Referência completa da API, guias de integração e boas práticas.
Entrega de eventos em tempo real, schema de payload e verificação de assinatura.
Configure notificações de eventos em tempo real para cada identificação de dispositivo.
Adicione device fingerprinting à sua aplicação Next.js em menos de 5 minutos.