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 sieci zbierającej dane. 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 sieci zbierania danych Analytics. W takim przypadku pełny adres IP nie jest nigdy zapisywany na dysku.

Szczegółowo

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ą żądać, by w ramach danego produktu wszystkie adresy IP ich użytkowników były anonimizowane. Funkcja ta ma pomagać właścicielom witryn w spełnianiu wymagań własnej polityki prywatności lub, w niektórych krajach, zaleceń miejscowych urzędów ds. ochrony danych osobowych, 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, a przed jakimikolwiek działaniami z zakresu 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 sieci zbierania danych. 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 i wysyła żądanie kodu JavaScript Analytics. Kolejka funkcji jest macierzą 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 funkcję z kolejki funkcji, która powoduje wysłanie danych do Analytics Collection Network (zazwyczaj jest to funkcja ga('send', 'pageview') w bibliotece JavaScript analytics.js i _trackPageview w bibliotece ga.js), wysyła dane jako parametry adresu URL dołączone do żądania 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 jest dodawany dodatkowy parametr. Parametr anonimizacji adresów IP wygląda następująco: &aip=1

Analytics Collection Network

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

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

Gdy tylko pojawi się żądanie obrazu _utm.gif, zostaje ono wstrzymane w pamięci do anonimizacji. Jeśli parametr &aip=1 znajduje się w adresie URL żądania (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 ustawiany jako zero, mimo że znajduje się wciąż 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 zostaje niemal natychmiast zapisany na dysku, bo cała anonimizacja odbywa się w pamięci niemal od razu po odebraniu żądania.

Czy ten artykuł był pomocny?
Jak możemy ją poprawić?