Приховування IP-адреси в Analytics

Технічний опис процесу приховування IP-адрес у Analytics

Коротко

Якщо користувач Analytics надсилає запит на приховування IP-адреси, система робить це за першої технічної можливості на найбільш ранньому етапі збору даних. При цьому частина IP-адреси користувача, а саме її останній октет (у версії IPv4) або останні 80 бітів (у версії IPv6) скидаються до нуля невдовзі після надсилання інформації в мережу збирання даних Analytics Collection Network. У такому випадку повна IP-адреса ніколи не записується на наші диски.

Докладно

З 25 травня 2010 року Analytics підтримує функцію _anonymizelp у бібліотеці ga.js коду JavaScript (а віднедавна й функцію ga('set', 'anonymizeIp', true) в бібліотеці analytics.js), яка дає власникам веб-сайтів змогу приховувати всі IP-адреси своїх користувачів у нашій системі. Ця функція допомагає власникам сайтів дотримуватися своїх правил конфіденційності, а також (у деяких країнах) вказівок місцевих органів із захисту даних, які не дозволяють зберігати інформацію про повну IP-адресу. IP-адреса приховується (або "маскується"), щойно потрапляє в мережу Analytics Collection Network, ще до обробки та зберігання.

На шляху збирання інформації в Analytics процес приховування IP-адрес відбувається у два етапи: на рівні тегу JavaScript і в мережі Collection Network. Ці етапи описано нижче.

Тег JavaScript у Analytics

Коли веб-переглядач із підтримкою JavaScript завантажує сторінку з тегом Analytics (ga.js або analytics.js), він асинхронно виконує дві дії: завантажує й обробляє чергу функцій Analytics, а також надсилає запит JavaScript у Analytics. Черга функцій – це масив JavaScript, у якому починається виконання різних функцій конфігурації та збирання Analytics. Ці функції, які налаштовує власник сайту під час застосування Analytics, можуть містити, наприклад, функції визначення номера рахунку Analytics і надсилання даних про перегляди сторінок у мережу Analytics Collection Network для обробки.

Коли тег JavaScript у Analytics виконує функцію з цієї черги, активується надсилання даних у Analytics Collection Network (зазвичай це функція ga('send', 'pageview') у бібліотеці JavaScript analytics.js і _trackPageview в бібліотеці ga.js). Дані передаються як параметри URL-адреси, додані до запиту HTTP: http://www.google-analytics.com/_utm.gif (для ga.js) і http://www.google-analytics.com/collect (для analytics.js). Якщо функцію приховування викликано ще до функції відстеження сторінки, до запиту пікселя додається додатковий параметр приховування IP-адреси, який виглядає так: &aip=1.

Analytics Collection Network

Analytics Collection Network – це ряд серверів, які виконують два основні завдання: розміщення ga.js і analytics.js (кодів JavaScript у Analytics) і збирання даних, надісланих у запитах _utm.gif і /collect.

Коли надходить запит на ga.js, analytics.js, _utm.gif або /collect, у заголовку HTTP-запиту міститься додаткова інформація (а саме тип переглядача, що використовується) і заголовок TCP/IP (тобто IP-адреса особи, що надіслала запит).

Щойно запит _utm.gif надходить у систему, він передається в пам’ять для приховування. Якщо в його URL-адресі міститься параметр &aip=1 (який додається тегом JavaScript Analytics після обробки функції приховування в ga.js або analytics.js), останній октет IP-адреси користувача скидається до нуля під час перебування в пам’яті. Наприклад, IP-адреса 12.214.31.144 змінюється на 12.214.31.0 (для IP-адрес за протоколом IPv6 до нуля скидаються останні 80 зі 128 біт). Лише після таких дій приховування запит записується на диск для обробки. Під час використання функції приховування повна IP-адреса ніколи не зберігається в системі, оскільки скидання її частини відбувається в пам’яті одразу після отримання запиту.

Чи корисна ця інформація?
Як можна її покращити?