Rastreamento entre dispositivos: vinculando sessões sem login
Como nosso algoritmo de identificação de dispositivos conecta sessões anônimas entre navegadores e dispositivos usando correspondência probabilística de sinais e análise de grafos.
Quando um usuário visita seu site pelo notebook de manhã e pelo celular à tarde, a maioria das plataformas de analytics enxerga dois visitantes completamente separados. Nosso algoritmo de identificação de dispositivos consegue vincular essas sessões de forma probabilística — sem exigir login — analisando a sobreposição de sinais e construindo grafos de dispositivos.
O problema entre dispositivos
A impressão digital tradicional gera um ID único por instância de navegador. O Chrome em um notebook produz um ID; o Safari em um iPhone produz outro. Mesmo no mesmo dispositivo, navegadores diferentes geram impressões digitais diferentes porque têm user agents diferentes, suporte a recursos diferente e características de renderização diferentes.
Mas os usuários não pensam em termos de navegadores. Eles pensam em termos de sessões. Começam uma compra no celular durante o almoço e a finalizam no notebook em casa. Pesquisam um produto no tablet e o compram no desktop. Para a detecção de fraudes e a personalização, entender que essas sessões pertencem à mesma pessoa é fundamental.
Correspondência probabilística de sinais
Nossa vinculação entre dispositivos é construída em torno de um grafo de pessoas com nós de três tipos: o visitante (um perfil de navegador), o dispositivo (a máquina que está sob vários perfis de navegador) e um identificador com hash derivado de um e-mail ou telefone assinado que o seu próprio aplicativo nos envia. São as arestas entre esses nós que unem duas sessões em uma única pessoa.
Deliberadamente ausentes dessa lista: o endereço IP e o ASN. A rede compartilhada é o sinal tentador e errado — um escritório, um campus ou um carrier-grade NAT coloca milhares de pessoas sem relação alguma entre si atrás de um mesmo endereço, de modo que uma aresta baseada em IP produz exatamente o tipo de vínculo falso mais caro de desfazer. As arestas determinísticas que de fato usamos — mesmo dispositivo, mesmo identificador com hash, mesma raiz canônica de visitante — são aquelas que uma rede compartilhada não consegue forjar.
Sobre isso existe um componente probabilístico limitado: os pares comportamentais confirmados de um visitante podem ser considerados candidatos a anexação, com um limite de poucos por visitante e apenas acima de um piso de confiança. Ele amplia um cluster que arestas determinísticas já ancoraram; sozinho, não cria nenhum.
Construção do grafo de dispositivos
Cada vínculo confirmado ou de alta probabilidade entre sessões cria uma aresta em um grafo de dispositivos. O grafo conecta instâncias de navegador a nós de dispositivo, e nós de dispositivo a nós de pessoa. Com o tempo, à medida que mais sessões se acumulam, o grafo fica cada vez mais preciso.
A construção do grafo usa uma abordagem conservadora. Uma aresta determinística — o mesmo dispositivo resolvido sob dois perfis de navegador, ou o mesmo identificador com hash fornecido para duas contas — cria o vínculo diretamente. Qualquer coisa mais fraca é tratada como candidata, e não como vínculo: precisa superar um piso de confiança e tem um limite, para que um visitante não arraste consigo um cluster ilimitado. Um visitante ou uma ponte em quarentena é ignorado por completo, em vez de mesclado por suspeita.
Aplicações na detecção de fraudes
A vinculação entre dispositivos é especialmente poderosa para a detecção de fraudes. Um fraudador que opera contas em vários perfis de navegador é identificado quando esses perfis se resolvem no mesmo dispositivo subjacente, ou quando o mesmo identificador assinado aparece por trás de duas das contas. Um cartão de crédito roubado usado em um dispositivo que nunca esteve associado ao grafo de dispositivos do titular dispara um alerta imediato.
Já vimos quadrilhas de fraude em que um único operador mantém dezenas de máquinas virtuais para criar contas falsas. Cada VM apresenta uma impressão digital de navegador distinta, mas todas são hospedadas no mesmo hardware físico, e é a resolução de dispositivo que as reduz de volta a uma única máquina. Esse nó de dispositivo compartilhado é a aresta sobre a qual o grafo é construído — ele expõe a quadrilha a partir de uma única conta detectada, sem qualquer apelo a um endereço compartilhado.
Design que preserva a privacidade
A vinculação entre dispositivos levanta preocupações legítimas de privacidade. Nossa abordagem mitiga essas preocupações por meio de várias decisões de design. Primeiro, a camada vem desativada por padrão — ela não chega junto com uma implantação; é ativada deliberadamente para um espaço de trabalho específico, e até lá nenhum grafo de pessoas é construído. Segundo, a vinculação acontece do lado do servidor e nunca é exposta ao navegador, de modo que o grafo de vínculos não pode ser lido pelo cliente, e o modo é definido do nosso lado, e não por algo que a página possa enviar. Terceiro, a aresta de identificador só existe se o seu próprio aplicativo optar por fornecer um e-mail ou telefone assinado — nós não a derivamos do visitante. Quarto, os usuários podem receber transparência sobre os dispositivos vinculados por meio da sua interface de privacidade.
Métricas de precisão
O trade-off é deliberado e favorece a precisão em detrimento do recall: preferimos perder um vínculo a criar um falso. Essa preferência aparece no design, e não em um número de vitrine — arestas determinísticas criam vínculos, sinais fracos apenas ampliam clusters que já estão ancorados, pontes em quarentena são ignoradas e todo cluster tem um limite. Um vínculo perdido custa a você um padrão de fraude que teria sido detectado mais tarde por outros meios. Um vínculo falso funde dois clientes reais em uma única pessoa, e esse erro se propaga para todas as decisões tomadas depois.
Meça isso no seu próprio tráfego antes de depender disso. O recall entre dispositivos depende de quantos dos seus usuários chegam a se autenticar — a aresta de identificador é a mais forte disponível, e ela só existe onde o seu aplicativo a fornece.