Anonimizacja adresów IP w Analytics

Objaśnienie aspektów technicznych anonimizacji adresów IP w Analytics

W skrócie

Gdy klient usługi Analytics poprosi o anonimizację adresów IP, Analytics ukrywa te adresy najszybciej, jak to tylko technicznie możliwe, na najwcześniejszym etapie procesu przetwarzania danych przez Analytics Collection Network. Dostępna w Analytics funkcja anonimizacji adresów IP wstawia w pamięci zera w miejsce ostatniego oktetu adresów IP użytkownika korzystającego z protokołu IPv4 i w miejsce ostatnich 80 bitów adresów IPv6 wkrótce po wysłaniu tych adresów do Analytics Collection Network. W takim przypadku pełny adres IP nie jest nigdy zapisywany na dysku.

Podczas tworzenia usługi dostępne są trzy opcje i w każdej z nich anonimizacja adresów IP może być realizowana w jeden z następujących sposobów:

Szczegółowe informacje

Od 25 maja 2010 r. Analytics udostępnia funkcję _anonymizelp w bibliotece JavaScript ga.js (oraz od niedawna funkcję ga('set', 'anonymizeIp', true) w bibliotece analytics.js). Dzięki niej właściciele witryn mogą zgłaszać potrzebę anonimizacji wszystkich adresów IP ich użytkowników w Analytics. Funkcja ta ma pomagać właścicielom witryn w spełnianiu wymagań własnej polityki prywatności lub, w niektórych krajach, zaleceń miejscowych organów ochrony danych, które mogą zabraniać przechowywania pełnych informacji o adresach IP. Anonimizacja/maskowanie adresów IP zachodzi tuż po odebraniu informacji przez Analytics Collection Network, przed rozpoczęciem przechowywania lub przetwarzania danych.

Procedura anonimizacji adresów IP jest realizowana w Analytics na dwóch etapach procesu zbierania danych: w tagu JavaScript i w Collection Network. Etapy te opisano poniżej.

Tag JavaScript usługi Analytics

Gdy przeglądarka internetowa z włączoną obsługą JavaScript wczytuje stronę z tagiem Analytics (ga.js lub analytics.js), asynchronicznie wykonuje dwie czynności: wczytuje i przetwarza kolejkę funkcji Analytics oraz wysyła żądanie kodu JavaScript Analytics. Kolejka funkcji jest tablicą w języku JavaScript, w której umieszczane są różne funkcje Analytics związane z konfiguracją i zbieraniem danych. Te funkcje konfiguruje właściciel witryny podczas implementacji kodu Analytics. Mogą one obejmować np. wskazywanie numeru konta Analytics i faktyczne przesyłanie informacji o wyświetlaniu stron do sieci Analytics Collection Network w celu ich przetwarzania.

Gdy kod JavaScript Analytics uruchamia z kolejki funkcji taką funkcję, która powoduje wysłanie danych do Analytics Collection Network (zwykle jest to ga('send', 'pageview') w przypadku biblioteki JavaScript analytics.js i _trackPageview w przypadku biblioteki ga.js), wysyła dane jako parametry adresu URL dołączone do żądania HTTP dla http://www.google-analytics.com/_utm.gif (w przypadku ga.js) i http://www.google-analytics.com/collect (w przypadku analytics.js). Jeśli funkcja anonimizacji została wywołana przed funkcją śledzenia strony, do żądania piksela dołączany jest dodatkowy parametr anonimizacji adresów IP, który wygląda tak: &aip=1.

Sieć Analytics Collection Network

Sieć Analytics Collection Network to zestaw serwerów wykonujących dwie główne czynności: udostępnianie kodów ga.js i analytics.js (kod JavaScript Analytics) oraz zbieranie danych wysyłanych za pomocą żądań _utm.gif i /collect.

Odebrane żądanie kodu ga.js, analytics.js, _utm.gif lub /collect zawiera dodatkowe informacje w nagłówku żądania HTTP (tj. typ używanej przeglądarki) oraz w nagłówku TCP/IP (tj. adres IP, z którego pochodzi żądanie).

Odebrane żądanie obrazu _utm.gif zostaje natychmiast zatrzymane w pamięci w celu anonimizacji. Jeśli w adresie URL żądania występuje parametr &aip=1 (tak jak w przypadku umieszczenia go przez kod JavaScript Analytics po przetworzeniu funkcji _anonymizelp w kodzie ga.js lub analytics.js), to ostatni oktet adresu IP użytkownika jest zastępowany zerem, kiedy adres znajduje się jeszcze w pamięci. Na przykład adres IP 12.214.31.144 zostanie zamieniony na 12.214.31.0 (w przypadku adresu IPv6 ostatnie 80 bitów ze wszystkich 128 zostanie zastąpionych zerami). Dopiero po wykonaniu anonimizacji żądanie zostanie zapisane na dysku w celu dalszego przetwarzania. Po zastosowaniu metody anonimizacji adresów IP pełny adres IP nigdy nie zostaje zapisany na dysku, ponieważ cała anonimizacja odbywa się w pamięci niemal od razu po odebraniu żądania.

Czy to było pomocne?
Jak możemy ją poprawić?