Um visitor ID, não importa como voltem
O agente transforma mais de 100 sinais do dispositivo em um visitor ID no servidor. Modo anônimo, cookies limpos e atualizações do navegador não criam um novo visitante.
O que um visitante recorrente pode alterar
O ID é o dispositivo, não o cookie nem a conexão.
| Eles voltam com | Mesmo ID de visitante | Por quê |
|---|---|---|
| Uma janela privada ou anônima | Por que | O armazenamento está vazio, o hardware não. |
| Cookies e dados do site apagados | Por que | A âncora de hardware e a impressão digital ainda coincidem. |
| Uma atualização do navegador | Por que | Uma nova versão altera alguns sinais; a correspondência difusa absorve a mudança. |
| Uma VPN ou um novo endereço IP | Por que | O IP não faz parte do ID. Ele aparece nas flags. |
| Uma nova conta no mesmo dispositivo | Por que | É assim que as contas múltiplas aparecem: um dispositivo, vários external IDs. |
| Outro navegador no mesmo dispositivo | Novo visitante | Cada navegador renderiza de forma diferente, então é outra impressão digital. |
| Outro dispositivo | Novo visitante | O ID é o dispositivo. |
Correspondência em ordem
Cada identificação é verificada contra os visitantes do projeto, da correspondência mais segura para baixo, e o evento indica qual foi encontrada.
- ID armazenado
- ID que o agente guardou no armazenamento e em um cookie first-party, enquanto o hardware continuar igual.
- Âncora de hardware
- Gráficos, núcleos, memória e plataforma, que não mudam com uma atualização do navegador ou limpeza do armazenamento.
- Impressão digital conhecida
- Exatamente os mesmos sinais já vistos no seu projeto.
- Correspondência aproximada
- Componente a componente em relação a visitantes recentes no mesmo hardware, com margem sobre o próximo melhor.
- Consciente de ruído
- Canvas e áudio são excluídos quando um navegador os randomiza, como o Brave e janelas privadas.
import { start } from 'zeno-id'
const agent = start({ publicKey: 'pk_...' })
// A stable ID per device, and whether it was seen before.
const { visitorId, returning, requestId } = await agent.get({
externalId: user.id,
action: 'login',
})Mais de 100 sinais
Coletado do zero, sem endereços de rede WebRTC.
Renderização
Canvas, fornecedor e renderizador WebGL, extensões e parâmetros, adaptador WebGPU e áudio.
Dispositivo
Tela, profundidade de cor, proporção de pixels, núcleos, memória, toque, plataforma, client hints, fontes e vozes.
Configurações
Fuso horário, idiomas, calendário, preferências de mídia, cota de armazenamento e estados de permissões.
Integridade
Resquícios de automação, nativos substituídos e valores que diferem entre a página, um worker e um iframe.
Honesto sobre os limites
Um ID em que pode basear decisões porque indica o seu grau de certeza.
Um ID por projeto
O ID é processado com hash junto ao seu projeto, então o mesmo dispositivo tem outro ID em outros lugares. Ninguém pode acompanhar seus visitantes entre serviços.
Confiança em cada evento
Quão certa é a correspondência, de 0 a 1. Uma correspondência aproximada em um dispositivo comum pontua menos que um ID armazenado em hardware raro.
Uma pista, nunca uma prova
Dispositivos idênticos, como o mesmo modelo de celular com o mesmo SO, podem compartilhar um ID. Analise um ID compartilhado junto com os external IDs, flags e a conexão.
Identifique seu primeiro visitante hoje
Instale o agente, leia o evento no seu servidor e pronto.