Google Analytics(分析)中的 IP 匿名化(也称作 IP 掩盖)

有关 Google Analytics(分析)如何对 IP 地址进行匿名化处理的技术说明

概述

如果 Analytics(分析)客户要求将 IP 地址匿名化,那么一旦在技术上可行,Analytics(分析)就会在收集网络中尽可能早的阶段将该地址匿名化。在地址发送到 Analytics(分析)收集网络后,Analytics(分析)中的 IP 匿名化功能很快就会在内存中将 IPv4 用户 IP 地址的最后一个八位字节和 IPv6 地址的最后 80 位设为零,这样就绝不会将完整 IP 地址写入磁盘。

在您创建媒体资源时,IP 地址匿名化的实现方式如下:

详细说明

自 2010 年 5 月 25 日起,Google Analytics(分析)在 ga.js JavaScript 库中推出了 _anonymizelp 功能(近期又在 analytics.js 库中推出了 ga('set', 'anonymizeIp', true) 功能),以便网站所有者能够要求在此产品内对其所有用户的 IP 地址进行匿名化。这项功能旨在帮助网站所有者遵守自己的隐私权政策,在某些国家/地区则帮助他们遵守当地数据保护机构的建议,这些建议可能指出要避免存储完整的 IP 地址信息。在 Analytics(分析)收集网络收到数据后,IP 匿名化/掩盖就会立即进行,这一过程完成后才会对数据进行任何存储或处理操作。

Analytics(分析)中的 IP 匿名化过程发生在收集流程中的以下两个环节内:JavaScript 代码和收集网络。下文对这两个环节作了说明。

Analytics(分析)JavaScript 代码

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

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

Google 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 参数(因为它本该由 Google Analytics(分析)JavaScript 在 ga.jsanalytics.js 中处理匿名化函数后插入),用户 IP 地址的最后一个八位字节将设为零,此时它仍然位于内存之中。例如,12.214.31.144 这个 IP 地址会变成 12.214.31.0。(如果 IP 地址是 IPv6 地址,则会将 128 位的最后 80 位设为零。)完成此匿名化过程后,才会将请求写入磁盘中加以处理。采用 IP 匿名化方法时,系统绝不会将完整的 IP 地址写入磁盘,因为系统收到请求后,会近乎即时地在内存中完成所有匿名化操作。

该内容对您有帮助吗?
您有什么改进建议?

需要更多帮助?

登录可获取更多支持选项,以便快速解决您的问题