Pessoas e identidade
Uma pessoa é o perfil durável por trás dos eventos: um ser humano (até onde o Kilden consegue saber), com traits mutáveis e um ou mais distinct ids apontando para ele.
Distinct ids
Seção intitulada “Distinct ids”Todo evento nomeia seu ator pelo distinct_id. Dois tipos:
- Anônimo:
anon_+ UUID v7, gerado pelo SDK antes de você saber quem é o usuário. - Identificado: seu próprio id de usuário, definido via
identify()ou enviado server-side.
O formato tem significado: qualquer coisa que não se pareça com anon_<uuid7> é tratada como usuário identificado — e é isso que torna os níveis de confiança baratos de computar.
Uma pessoa pode ter muitos distinct ids (vários dispositivos, ids pré e pós-cadastro), até um limite de 100.
Traits são o estado atual da pessoa — plano, email, empresa — atualizados por identify(id, traits), setPersonProperties() ou propriedades $set/$set_once em qualquer evento:
$setsobrescreve.$set_onceescreve apenas chaves que ainda não existem.- Traits assinados (dentro de um token de identidade verificado) vencem valores não assinados no mesmo evento.
Atualizações de traits nunca tocam eventos passados; eventos fotografam suas propriedades para sempre.
Quando um identify() revela que duas pessoas são o mesmo ser humano (seu id de usuário já existia e acabou de ser vinculado a partir de uma nova sessão anônima), elas fazem merge:
- A pessoa mais antiga sobrevive; os distinct ids da mais nova são reapontados para ela.
- Em conflitos de traits, a sobrevivente mantém seus valores; a pessoa absorvida só preenche lacunas.
- Eventos históricos não são reescritos (imutabilidade) — as queries resolvem ids de pessoa antigos para a sobrevivente no momento da leitura, então as contagens permanecem corretas.
Merges são unidirecionais e conservadores: dois ids identificados nunca fazem merge automaticamente (esse padrão é quase sempre um bug de instrumentação), e o SDK web não expõe alias() — identify cobre o caso do navegador por completo.
Dados de pessoa nas queries
Seção intitulada “Dados de pessoa nas queries”As queries de analytics leem eventos com a pessoa resolvida em tempo de consulta (“person on events” mais uma tabela de overrides de merge), então um merge que aconteceu ontem unifica retroativamente todo o histórico de um usuário sem nenhum job de backfill.