Anonimização do IP no Google Analytics

Uma explicação técnica de como o Google Analytics anonimiza endereços IP

Resumo

Quando um cliente solicita a anonimização de um endereço IP, o Google Analytics faz isso assim que for tecnicamente viável, no primeiro estágio possível da rede de coleta. Esse recurso define o último octeto de endereços IP do usuário IPv4 e os últimos 80 bits de endereços IPv6 como zeros na memória logo depois que eles são enviados para a rede de coleta do Google Analytics. O endereço IP completo nunca é gravado em disco nesse caso.

Ao criar uma propriedade, você tem três opções. Em cada caso, a anonimização do endereço IP é implementada de uma maneira:

Detalhes

Desde 25 de maio de 2010, o Google Analytics oferece o recurso _anonymizelp na biblioteca JavaScript ga.js (e mais recentemente ga('set', 'anonymizeIp', true) na biblioteca analytics.js) para que os proprietários de sites consigam solicitar que todos os endereços IP dos usuários sejam anonimizados no produto. Esse recurso foi desenvolvido para ajudá-los a manter a conformidade com as próprias políticas de privacidade ou, em alguns países, com as recomendações de autoridades locais de proteção de dados, que proíbem o armazenamento de informações de endereços IP completos. A anonimização/o mascaramento do IP ocorre assim que os dados são recebidos pela rede de coleta do Google Analytics, antes de qualquer armazenamento ou processamento.

Ela acontece em duas etapas no pipeline de coleta: a tag JavaScript e a rede de coleta, explicadas a seguir:

Tag JavaScript do Google Analytics

Quando um navegador da Web habilitado para JavaScript carrega uma página com a tag do Google Analytics (ga.js ou analytics.js), ele faz duas coisas de forma assíncrona: carrega e processa a fila de funções do Analytics e solicita o JavaScript do produto. Essa fila é uma matriz JavaScript em que as diferentes funções de configuração e coleta do Analytics são enviadas por push. Elas são definidas pelo proprietário do site na implementação do produto e podem incluir a especificação do número da conta do Analytics e o envio de dados de visualização de página à rede de coleta para processamento.

Quando o JavaScript do Google Analytics executa uma função da fila que aciona os dados a serem enviados para a rede de coleta do Analytics, essas informações são passadas como parâmetros de URL anexados a uma solicitação HTTP para http://www.google-analytics.com/_utm.gif (ga.js) e http://www.google-analytics.com/collect (analytics.js). Essa função é ga ('send', 'pageview') na biblioteca JavaScript analytics.js e _trackPageview na ga.js. Se a função de anonimização tiver sido chamada antes daquela de acompanhamento de páginas, outro parâmetro será adicionado à solicitação de pixel. O parâmetro de anonimização de IP tem esta aparência: &aip=1.

Rede de coleta do Google Analytics

É o conjunto de servidores que fornecem dois serviços importantes: a veiculação de ga.js e analytics.js (JavaScript do Google Analytics) e a coleta de dados enviados por meio de solicitações para _utm.gif e /collect.

Quando um pedido para ga.js, analytics.js, _utm.gif ou /collect chega, ele inclui mais informações no cabeçalho da solicitação HTTP (ou seja, o tipo de navegador usado) e no TCP/IP (o endereço IP do solicitante).

Assim que uma solicitação para _utm.gif é recebida, ela é tratada na memória para anonimização. Se o parâmetro &aip=1 for encontrado no URL de solicitação, como teria sido posicionado pelo JavaScript do Google Analytics após processar a função de anonimização em ga.js ou analytics.js, o último octeto do endereço IP do usuário será definido como zero enquanto estiver na memória. Por exemplo, um endereço IP 12.214.31.144 seria alterado para 12.214.31.0. Se o endereço IP é um endereço IPv6, os últimos 80 dos 128 bits são definidos como zero. Somente após esse processo de anonimização a solicitação é gravada no disco para processamento. Se o método de anonimização de IP é usado, o endereço IP completo não é gravado em disco, porque toda a anonimização ocorre na memória quase instantaneamente após o recebimento da solicitação.

Isso foi útil?
Como podemos melhorá-lo?