Analytics(分析)中的 IP 匿名化

Analytics(分析)将 IP 地址匿名化的技术说明

概览

如果 Analytics(分析)客户请求将 IP 地址匿名化,Analytics(分析)会在技术允许的情况下,尽快在收集网络的早期阶段将该地址匿名化。Analytics(分析)中的 IP 匿名化功能会在 IPv4 用户 IP 地址及 IPv6 地址发送到 Analytics(分析)收集网络后,尽快在内存中将前者的最后八位位组和后者的最后 80 位设为零,这样就绝不会将完整 IP 地址写入磁盘。

详细介绍

自 2010 年 5 月 25 日起,Analytics(分析)在 ga.js JavaScript 库中推出了 _anonymizelp 功能(近期已在 analytics.js 库中推出 ga('set', 'anonymizeIp', true) 功能),以允许网站所有者请求在产品内对所有用户的 IP 地址进行匿名化。这项功能的用意在于帮助网站所有者遵守自己的隐私权政策,或遵守某些国家/地区当地数据保护机构有关避免存储完整 IP 地址信息的建议。IP 匿名化/掩盖将在 Analytics(分析)收集网络收到数据的同时进行,这一过程发生在存储或处理之前。

Analytics(分析)中的 IP 匿名化过程发生在收集流程的两个步骤中:JavaScript 代码以及收集网络。下面说明了这些步骤。

Analytics(分析)JavaScript 代码

当启用了 JavaScript 的网络浏览器加载添加了 Analytics(分析)代码(ga.js 或 analytics.js)的网页时,将以异步方式执行两项操作:加载并处理 Analytics(分析)函数队列和请求 Analytics(分析)JavaScript。函数队列是一个 JavaScript 数组,用于推送不同的 Analytics(分析)配置和收集函数。这些函数由网站所有者在实施Analytics(分析)时设置,可能包含的功能有指定Analytics(分析)帐号,以及将网页浏览数据实际发送给Analytics(分析)收集网络以便处理。

当 Analytics(分析)JavaScript 运行函数队列中将触发数据以发送到 Analytics(分析)收集网络的函数(通常,此函数在 analytics.js JavaScript 库中为 ga('send', 'pageview'),在 ga.js 库中为 _trackPageview)时,它会以附加到 HTTP 请求的网址参数的形式发送数据:http://www.google-analytics.com/_utm.gif(对于 ga.js)和 http://www.google-analytics.com/collect(对于 analytics.js)。如果在调用网页跟踪函数之前已调用匿名函数,则像素请求中会添加一个附加参数。IP 匿名化参数如下所示:&aip=1

Analytics(分析)收集网络

Analytics(分析)收集网络是一组服务器,主要提供以下两项服务:提供 ga.js 和 analytics.js(Analytics(分析)JavaScript),以及收集通过 _utm.gif 和 /collect 请求发送的数据。

当针对 ga.js、analytics.js、_utm.gif 或 /collect 的请求送达后,它将包含 HTTP 请求标头(即使用的浏览器类型)和 TCP/IP 标头(即请求者的 IP 地址)中的附加信息。

一旦 _utm.gif 请求送达,系统就会在内存中对其匿名化。如果在请求网址中找到 &aip=1 参数(它可能会由 Analytics(分析)JavaScript 在 ga.jsanalytics.js 中处理完匿名函数后插入),用户 IP 地址的最后一个八位位组将设为零,但仍然位于内存之中。例如,12.214.31.144 这个 IP 地址会变成 12.214.31.0。(如果 IP 地址是 IPv6 地址,则会将 128 位的最后 80 位设为零。)完成此匿名化过程后,请求才会写入磁盘中加以处理。采用 IP 匿名化方法后,系统绝不会将完整的 IP 地址写入磁盘,因为系统收到请求后,会立即在内存中执行所有匿名化过程。

本文是否对您有帮助?
您有什么改进建议?