简介
如果 Universal Analytics 客户要求将 IP 地址掩盖,那么 Google Analytics(分析)会在技术上可行时尽早截断 IP 地址。在地址发送到 Google Analytics(分析)后,Google Analytics(分析)中的 IP 掩盖功能很快就会在内存中将 IPv4 用户 IP 地址的最后一个八位字节和 IPv6 地址的最后 80 位设为零。这样就绝不会将完整 IP 地址写入磁盘。
此后可以根据截断的 IP 地址得出地理位置维度。
在 Universal Analytics 中,可选择启用 IP 地址掩盖,具体实现说明见下文的“详细说明”部分。
详细说明
Google Analytics(分析)提供 anonymize_ip 功能(gtag.js 库中的 gtag('config', '<GA_MEASUREMENT_ID>', { 'anonymize_ip': true })
),以允许网站所有者请求在产品内对所有用户的 IP 地址进行掩盖。这项功能旨在帮助网站所有者遵守自己的隐私权政策,或遵守某些国家/地区当地数据保护机构有关避免存储完整 IP 地址信息的建议。Google Analytics(分析)将在收到数据的同时进行 IP 截断/掩盖,然后才会对数据进行存储或处理操作。
Google Analytics(分析)中的 IP 掩盖过程发生在收集流程中的以下两个环节内:JavaScript 代码和收集网络。下文介绍了这些步骤。
Google Analytics(分析)JavaScript 代码
当启用了 JavaScript 的网络浏览器加载添加了 Google Analytics(分析)代码的网页时,将以异步方式执行两项操作:加载并处理 Google Analytics(分析)函数队列,然后请求 Google Analytics(分析)JavaScript。函数队列是一个 JavaScript 数组,用于推送不同的 Google Analytics(分析)配置和收集函数。这些函数由网站所有者在实施 Google Analytics(分析)时设置,可能包括用于指定 Google Analytics(分析)帐号的函数,以及将网页浏览数据实际发送给 Google Analytics(分析)进行处理的函数等。
当 Google Analytics(分析)JavaScript 运行函数队列中触发向 Google Analytics(分析)发送数据的函数时(通常情况下,在 gtag.js 库中此函数为 gtag('config', '<GA_MEASUREMENT_ID>'
),它会以附加到 HTTP 请求的网址参数的形式发送数据:http://www.google-analytics.com/collect。如果在调用网页跟踪函数之前已调用掩盖函数,像素请求中会添加一个额外的参数。IP 掩盖参数如下所示:
&aip=1
Google Analytics(分析)收集网络
Google Analytics(分析)收集网络是一组服务器,主要提供以下两项服务:提供 gtag.js(Google Analytics [分析] JavaScript)以及收集通过 /collect 请求发送的数据。
在针对 gtag.js 的请求送达后,该请求会在 HTTP 请求标头(例如使用的浏览器类型)和 TCP/IP 标头(例如请求者的 IP 地址)中包含其他信息。
请求送达后,就会保存在内存中以进行截断。如果在请求网址中找到 &aip=1 参数,则用户 IP 地址的最后一个八位字节将设为零,此时它仍然位于内存之中。例如,12.214.31.144 这个 IP 地址会变成 12.214.31.0(如果 IP 地址是 IPv6 地址,128 位的最后 80 位将设为零)。完成此截断过程后,才会将请求写入磁盘中加以处理。采用 IP 截断方法时,系统绝不会将完整的 IP 地址写入磁盘,因为系统收到请求后,会近乎即时地在内存中完成所有截断操作。