作者
Ira Holubovska
《通用数据保护条例》(GDPR)的实施使保护用户隐私成为必要措施。根据 GDPR,在将用户数据传输至任何美国公司拥有的工具之前,应删除所有可识别个人身份的信息。Privacy Shield(隐私盾协议)被宣布无效后,这一步骤变得尤为必要。
本文将介绍如何使用 Stape 的 Anonymizer power-up 自动删除用户数据,以及如何通过网页端和服务器端 GTM 手动移除用户数据。本文是我们此前发布的文章的延伸,该文章介绍了为什么需要使用代理服务器才能以符合 GDPR 要求的方式使用 Google Analytics。
在一些欧盟国家(意大利、法国、奥地利和丹麦),曾有人向当地数据保护机构咨询,在网站上使用 Google Analytics 是否符合 GDPR 要求。在所有这些案例中,得到的答复都是:使用 Google Analytics 不符合 GDPR 要求。
主要原因是,包括 Google 在内的美国公司没有提供足够的安全措施来保护欧盟用户的个人数据。因此,与美国公司共享个人身份信息(PII)违反 GDPR。您可以在我们之前的博客文章中了解更多信息。
好消息是,有一种方法可以在使用 Google Analytics 的同时,实现符合 GDPR 要求的服务器端跟踪。法国数据保护机构 CNIL 表示,要以符合 GDPR 要求的方式使用 Google Analytics,需要实施两项主要措施:使用位于欧盟的代理服务器,以及在导出用户数据之前对其进行假名化处理。
代理服务器可确保网站与美国分析工具之间不会发生直接通信。实施此类代理服务器最简单的方法是使用服务器端 Google Tag Manager(sGTM)容器。代理服务器必须满足一系列要求,其中最重要的是:提供代理服务器的公司必须在欧盟注册,托管 sGTM 容器的服务器也必须实际位于欧盟境内。基于这两个原因,您不能使用 Google Cloud(GCP)来托管 sGTM。原因与 Google Analytics 相同:Google Cloud 属于美国公司 Google。
另一个好消息是,Stape 已经为您提供了解决方案。我们有一款专门的产品——Stape Europe,可满足欧盟代理服务器的所有要求。Stape Europe 在欧盟(爱沙尼亚)注册,并使用 Scaleway 提供的欧盟云服务器来运行您的 sGTM 容器。
本文将重点介绍法律要求的第二部分,即用户数据的假名化。Stape 正在开发一系列功能,以帮助您自动删除用户数据。因此,我将本文分为两个部分:
需要进行假名化处理的用户数据范围并没有十分明确的界定。
将数据发送至分析平台时,IP 地址是最常见的隐私问题之一。虽然 GA4 会自动匿名化 IP 地址,但某些企业可能需要在 IP 地址离开自身基础设施之前将其替换。了解如何使用服务器端 GTM 为 GA4 实施额外的 IP 匿名化处理。
目前,我们仅针对 GA4 开发 Stape Anonymizer power-up。不过,在未来的更新中,该功能也将进行调整,以支持 UA 匿名化。
需要注意的是,GA4 发送的参数可能会发生变化。我们会持续更新本文,但请务必在将匿名化配置发布到生产环境之前,测试用户数据是否已正确匿名化。
在我找到的工具中,这款工具最适合用于跟踪和识别 GA4 参数。
用户数据的假名化处理在网页端和服务器端 GTM 容器的 GA4 标签中进行。如果您尚未设置 GA4 服务器端跟踪,请按照我们的GA4 服务器端跟踪设置指南进行操作。
目前并没有严格的指导原则规定必须删除哪些数据。您可以自行决定如何保障公司的数据安全。例如,您可以完全删除用户的 IP 地址,也可以只隐藏最后几位数字。另一个重要问题涉及国家、语言、浏览器等参数。单独使用其中任何一个参数,可能不足以识别用户身份,但将多个参数组合起来,就可能实现用户识别。
对于是否应删除客户端 ID 或 URL 查询参数等信息,则没有太多疑问。由于 Google 使用唯一标识符,单独使用这些参数就可能识别出用户身份。
假设您需要分析移动端与桌面端流量的差异,或者比较不同浏览器中的转化情况。那么,您应该删除所有可能用于生成指纹和识别用户身份的数据,还是只删除其中一部分?如果已经删除所有其他参数,是否可以保留浏览器和设备信息?
请务必与您的法律顾问或数据保护官(DPO)讨论这些问题,以便在监管机构开展调查时为公司提供充分保护。我认为,删除所有可能用于生成指纹或重新识别用户身份的标识符,是保障公司数据安全的更好选择。
本文并不是一套必须遵循的操作规范。我们只是分享删除或假名化数据的经验,以及 Stape 如何自动完成这些操作。您可以选择不使用我们的 Anonymizer power-up,也可以手动匿名化每个参数。
我们最近推出了 Anonymizer power-up。所有 Stape 用户均可使用该功能。Anonymizer 的主要目的是删除或匿名化 Google Analytics 4 中的用户数据。
要启用 Anonymizer,请在 Stape 中打开您的 sGTM 容器,点击 Power-ups,然后选择 Anonymizer。

本产品包含由 MaxMind 创建的 GeoLite2 数据,可通过 https://www.maxmind.com 获取。
您需要选择哪些参数保持不变、删除或匿名化。配置完成后,应更新 Google Analytics 4 的标记服务器 URL。如果您之前使用的标记服务器 URL 是 https://sgtm.example.com,启用 Anonymizer 后,更新后的 URL 将变为 https://sgtm.example.com/anonymize。我们会通过 /anonymize 路径将请求代理至 sGTM,并删除指定的数据。
当 GA 请求通过包含 /anonymize 的标记服务器 URL 发送时,我们会自动删除或匿名化所选参数。
启用并配置 Anonymizer 后,请确保已将 Web GTM 配置标签中的 GA4/UA 传输 URL 修改为以 /anonymize 结尾的 URL。
以下列出了 Anonymizer 可以删除或匿名化的所有参数。在开发 Anonymizer 时,我们的目标是让客户能够删除所有可能被视为用户个人数据的参数。您可以自行选择需要删除的参数。请咨询您的 DPO 或法律顾问,以确定应删除哪些参数。
对于大多数参数,您有两个选项:保持不变或删除。对于 IP 和 Client ID 这两个参数,还提供 Anonymize 和 Anonymize Strictly 选项。
IP
Anonymize – 删除最后一个八位字节。
Anonymize Strictly – 删除最后两个八位字节。
Client ID. 仅在使用 JavaScript Managed 客户端识别方式时有效。
Anonymize – 使用 IP + UserAgent 的哈希值,并添加年份和月份。
Anonymize Strictly – 使用 IP + UserAgent 的哈希值,并添加时间戳:crc32_hash(IP+UA).timestamp。
| 参数名称 | 说明 | GA4 参数 | 匿名化 |
|---|---|---|---|
| IP | 用户 IP 地址 | IP Address | Anonymize – 删除最后一个八位字节。Anonymize Strictly – 删除最后两个八位字节 |
| Client ID | Google Analytics 客户端 ID,_ga、_ga_*、FPLC、FPID Cookie | cid, _ga, _ga_*, FPLC, FPID | Anonymize – 使用 IP + UserAgent 哈希值并添加年份和月份。Anonymize Strictly – 使用 IP + UserAgent 哈希值并添加时间戳:crc32_hash(IP+UA).timestamp |
| User ID | 用户 ID、Google Developer ID、Firebase ID | uid, gdid, _fid | – |
| Session ID | 会话 ID、新会话 ID | sid, _nsi | – |
| Query parameters | 删除 Document Location 中的查询参数 | dl | – |
| Referer | Document Referrer 请求头、Document Referrer 参数 | referer header, dr | – |
| 参数名称 | 说明 | GA4 参数 |
|---|---|---|
| User Agent | Document User-Agent 请求头、Sec-Ch-Ua 请求头、Sec-Ch-Ua-Platform 请求头、Sec-Ch-Ua-Mobile 请求头、User-Agent 参数 | user-agent header, sec-ch-ua header, sec-ch-ua-platform header, sec-ch-ua-mobile header, ua |
| User Country | 地理位置标识符、用户当前所在国家/地区 | geoid, _uc |
| Browser plugins | Java 是否启用、Flash 版本 | je, fl |
| Screen Info | 浏览器屏幕分辨率、视口大小 | sr, vp |
| Screen Colors | 指定屏幕颜色深度 | sd |
| User Language | 浏览器当前使用的语言设置 | ul |
| 参数名称 | GA4 参数 |
|---|---|
| User Agent Architecture | uaa |
| User Agent Bitness | uab |
| User Agent Full Version List | uafvl |
| User Agent Mobile | uamb |
| User Agent Model | uam |
| User Agent Platform | uap |
| User Agent Platform Version | uapv |
| User Agent WOW64 | uaw |
| 参数名称 | GA4 参数 |
|---|---|
| Campaign Medium | cm |
| Campaign Source | cs |
| Campaign Name | cn |
| Campaign Content | cc |
| Campaign ID | ci |
| Campaign Term | ck |
| Campaign Creative Format | ccf |
| Campaign Marketing Tactic | cmt |
| Google Ads ID | gclid |
| Google Display Ads ID | dclid |
Google Analytics 4 收集的参数可能会不时发生变化。因此,您需要检查 GA4 请求,确保所有用户数据都已被删除。
在 Anonymizer 中配置参数,并将 GA4 传输 URL 更新为以 /anonymize 结尾的 URL 后,我们会删除或匿名化指定参数。
启用 Anonymizer 并更新 GA4 传输 URL 后,请使用网页端和 sGTM 调试工具、控制台以及 GA4 调试工具进行测试,确认所有需要删除的参数均已被移除。
这一操作相对容易实现,但也存在一些争议。Google 提供了一项内置功能,可以删除 IP 地址的最后一个字节。删除最后一个字节后,Google 识别用户身份的概率为 1/256。然而,当 IP 地址与其他参数结合使用时,仍可能快速识别出特定个人。
有些人认为删除最后一个八位字节就足够了,另一些人则认为应完全删除用户的 IP 地址。我个人认为,最好彻底覆盖用户的 IP 地址。因为您永远无法确定 Google 是否以及如何重复使用 IP 地址。
“需要注意的是,IP 地址或 Cookie 中存储的信息等在线标识符通常可用于识别用户,尤其是在与其他类似信息结合使用时。GDPR 序言第 30 条说明了这一点:将 IP 地址和 Cookie 标识符等在线标识符分配给自然人或其设备,可能会留下痕迹。特别是当这些痕迹与唯一标识符以及服务器接收的其他信息结合时,就可能被用于创建自然人的个人画像并识别其身份。”
以下是法国国家信息与自由委员会(CNIL)关于IP的说明:
为了删除用户的 IP 地址,我使用了服务器端 GA4 标签,并将 ip_override 设置为一个随机 IP 地址。

Google 会为每个浏览器与设备的组合分配一个唯一的客户端 ID,并使用它识别同一用户是否再次访问您的网站。在将此参数发送至 GA4 之前,必须将其删除或进行假名化处理。
“为了确保有效的假名化,执行替换操作的算法应保证足够的哈希碰撞概率(即两个不同标识符在哈希处理后产生相同结果的概率足够高),并包含随时间变化的组成部分(向哈希数据中添加一个随时间变化的值,使同一标识符不会始终产生相同的哈希结果)。”
以下是法国国家信息与自由委员会(CNIL)关于客户ID的说明。
匿名化客户端 ID 的方法有很多,具体取决于您的想法以及所使用的工具。不过,请确保客户端 ID 具有唯一性,并添加随时间变化的组成部分。
您可以使用 User Agent、IP 地址、GTM 随机数变量等信息的哈希值。与用户 IP 地址不同,我们没有找到在服务器端移除客户端 ID 的方法,因此选择在客户端执行这一操作。


匿名化 Google Analytics 客户端 ID 后,您可能还希望使用新值覆盖 GA4 Cookie,以确保 GA4 不会设置任何用户标识符。为此,我使用了服务器端 GTM 容器的 Cookie Monster 标签模板。您只需要添加 Cookie 名称和值。完成后,请不要忘记使用浏览器控制台检查 GA 设置的 Cookie。

匿名化客户端 ID 会对 GA4 报告产生重大影响。由于客户端 ID 每次都会不同,GA 将无法区分新访客和回访访客。此外,多渠道归因以及会话开始、首次访问等事件也会受到影响。
外部引荐来源用于确定用户通过什么渠道进入您的网站。例如,用户可能来自自然搜索、付费广告或社交媒体。
要删除这类信息,您需要覆盖 page_referrer 参数。

URL 参数的主要用途是确定广告活动的流量来源。这些参数可能包括 utm_source、utm_medium、各种点击 ID 等。此外,某些平台还会自动将用户数据添加到 URL 中。
要删除 URL 参数,您必须重写页面 URL。Web GTM 模板库中有多个变量可以帮助您完成这项操作。我使用的是 Trim Query。您只需指定要阻止的查询参数列表(blocklist)或允许保留的参数列表(allowlist),该变量就会自动完成其余操作。

这类信息可能包括 User Agent、设备、浏览器、屏幕分辨率、语言、操作系统等。请确保删除所有可能用于生成浏览器指纹的信息。

请确保不要使用用户 ID 或 CRM ID 等跨网站标识符。
这一部分可能有些难以理解,但我建议您检查 sGTM 容器发送给 GA 的请求,确保其中不包含任何可用于重新识别用户身份的参数。
首先,打开服务器端 GTM 调试工具,检查发送至 GA4 的出站请求。请确保测试不同场景,例如存在或不存在用户参数的情况、URL 参数、不同事件、引荐来源等。

第二种方法是使用 Google Analytics 4 调试工具,查看 GA4 实际处理了哪些数据。

收集欧盟用户数据并将其传输至美国,从而违反 GDPR 的公司并不只有 Google。多年来,许多公司一直在收集欧洲用户的个人数据。如今,随着 Privacy Shield 被废除,以及欧盟用户数据传输至美国被裁定违反 GDPR,这些做法似乎将在更广泛的范围内受到限制。
如果您是在欧盟运营网站的网站所有者,现在就应该重新审视与美国公司共享的数据。否则,您可能面临监管机构的罚款。
准备开始使用服务器端跟踪了吗?
免费试用
评论