W skrócie
Gdy klient usługi Universal Analytics poprosi o maskowanie adresów IP, Analytics obcina te adresy najszybciej, jak to tylko technicznie możliwe. Dostępna w Universal Analytics funkcja maskowania 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 Google Analytics. W takim przypadku pełny adres IP nie jest nigdy zapisywany na dysku.
Wymiary geograficzne są uzyskiwane później na podstawie obciętych adresów IP.
W Universal Analytics użytkownik musi włączyć i wdrożyć maskowanie adresów IP w sposób opisany poniżej w sekcji „Informacje szczegółowe”.
Informacje szczegółowe
Analytics udostępnia funkcję anonymize_ip (gtag('config', '<IDENTYFIKATOR_POMIARU_ANALYTICS>', { 'anonymize_ip': true })
w bibliotece gtag.js), dzięki której właściciele witryn mogą poprosić, aby ta usługa maskowała wszystkie adresy IP ich użytkowników. 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. Obcinanie (maskowanie) adresów IP zachodzi tuż po odebraniu informacji przez Google Analytics, a przed jakimikolwiek działaniami związanymi z przechowywaniem lub przetwarzaniem danych.
Procedura maskowania adresów IP jest realizowana w Analytics na 2 etapach procesu zbierania danych: w tagu JavaScript i w Collection Network. Poniżej omawiamy te etapy.
Tag JavaScript usługi Analytics
Gdy przeglądarka internetowa z włączoną obsługą JavaScriptu wczytuje stronę z tagiem Analytics, asynchronicznie wykonuje 2 działania: wczytuje i przetwarza kolejkę funkcji Analytics oraz wysyła żądanie kodu JavaScriptu usługi 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 Google Analytics w celu ich przetwarzania.
Gdy kod JavaScriptu usługi Analytics uruchamia z kolejki funkcji taką funkcję, która powoduje wysłanie danych do Google Analytics (zwykle jest to gtag('config', '<IDENTYFIKATOR_POMIARU_ANALYTICS>'
w bibliotece gtag.js), wysyła dane jako parametry adresu URL dołączone do żądania HTTP kierowanego do strony http://www.google-analytics.com/collect. Jeśli funkcja maskowania została wywołana przed funkcją śledzenia strony, do żądania piksela dołączany jest dodatkowy parametr, który wygląda tak:
&aip=1
Sieć Analytics Collection Network
Sieć Analytics Collection Network to zestaw serwerów wykonujących 2 główne działania: dostarczanie kodu gtag.js (czyli kodu JavaScriptu usługi Analytics) oraz zbieranie danych wysyłanych za pomocą żądań „/collect”.
Gdy pojawi się żądanie kodu gtag.js, zawiera ono 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 zostaje natychmiast zatrzymane w pamięci w celu obcięcia. Jeśli w adresie URL żądania występuje parametr &aip=1, to ostatni oktet adresu IP użytkownika jest zastępowany zerem, kiedy adres znajduje się jeszcze w pamięci, np. 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 obcięciu adresu IP żądanie zostaje zapisane na dysku w celu dalszego przetwarzania. Gdy stosowana jest metoda obcinania adresów IP, pełny adres IP nigdy nie zostaje zapisany na dysku, ponieważ wszystkie działania związane z obcinaniem odbywają się w pamięci niemal od razu po odebraniu żądania.