跳到正文
Stape Server-Side Tracking Blog·精选AI 评分74

Google Tag Manager GDPR 合规配置实操指南

Google Tag Manager GDPR compliance: a complete guide

AI 导读

Stape 梳理了 Google Tag Manager 实现 GDPR 合规的完整配置流程,指出 GTM 本身不决定合规性,核心在于标签触发与同意状态设置。

推荐理由

拆解了 GTM 的 6 种同意信号与 CMP 配置细节,为出海站点与营销团队提供了规避隐私合规风险的实操排查路径。

正文 · AI 翻译

核心要点

  • GTM 本身不存在合规或不合规一说——是否合规,完全取决于代码与用户同意设置的具体配置方式。

  • 用户同意机制主要依赖六类信号:analytics_storage、ad_storage、ad_user_data、ad_personalization、functionality_storage、security_storage。

  • CMP 必须默认设为“拒绝”(denied)状态,并在用户做出选择后实时将更新推送到 GTM。

  • Google 旗下的代码能自动响应“同意模式”(Consent Mode);其他第三方代码(如 Meta、TikTok、自定义 HTML)则需要明确配置拦截规则和基于同意状态的触发器。

  • 服务端 GTM 虽能增强对发送至第三方服务商的数据控制,但网页端容器仍需向其传递同意信号——它无法替代同意管理机制。

安装 Google Tag Manager (GTM) 通常非常简单:把代码放进 <head> 标签,就算搞定了!

但随着隐私意识的提升与数据保护法规的收紧,真正棘手的是如何确保全流程合规,面对不同地区的法律及其适用范围时尤其如此。

本文不构成任何法律意见,旨在探讨使用 GTM 时常见的术语与法规含义,以及如何实现合规配置。建议务必咨询法务团队,确保业务完全符合所有法定要求。

违反 GDPR 的部分罚款可高达 2000 万欧元(约合 2320 万美元)或上一财年全球年营业额的 4%,以较高者为准。不过万幸的是,这只是顶格处罚,并非所有配置失误都会面临如此重罚。 

除了直接的经济处罚,企业还需承担其他资源成本,比如调查投诉、解释未能尊重用户同意意愿的原因,以及修复甚至推倒重构追踪体系。

因此,若企业未能符合 GDPR 或违反相关法规,将面临巨大风险。严肃的背景介绍就到这里,接下来我们看看在使用 GTM 时,这些环节是如何相互关联的。

GTM 本质上只是一个代码管理工具,其自身不追踪也不记录任何内容,仅用于安装或加载其他追踪脚本。最常见的对象就是各类数据分析和广告平台工具。

这样一来,你就不必凡事都依赖开发或工程团队去部署脚本,还能顺手添加额外的追踪事件,例如表单提交、按钮点击、文件下载、完成购买等……总之,凡是你想在网站上追踪的用户行为,都可以通过 GTM 搞定。

那么,在追踪用户在你的网站上的各种行为时,GDPR 是在哪个环节发挥作用的?只要网站开始处理任何个人数据,它就必须介入——哪怕你没有收集用户的真实姓名,只要网络标识符能识别出具体个人,就同样受其约束。

那么,GTM 到底符合 GDPR 规范吗?GTM 本身无所谓合规与否,它只是一种分发机制。真正决定合规性的,是你在其中配置的内容:触发了哪些代码、收集了什么数据、允许在何时触发,以及这些数据最终流向了哪里。

这就需要针对每个 GTM 容器(如果你的业务配置了多个)分别进行评估,并逐一审查其中触发的每一项代码。

或许只有空无一物的 GTM 容器才是绝对合规的。当然,如果你压根不装,那肯定也完全合规。 

但 GDPR 监管的远不止数据收集环节,它还涵盖了数据存储与保留、最小化原则、透明度、安全性,以及贯穿整个追踪生命周期的各项个人权利。 

若想研读完整的法律条文,可以查阅欧盟 GDPR 法规全文。此外,欧盟 GDPR 与英国版 GDPR 之间也存在一些细微差别。 

在讨论网站追踪时,你可能经常听到“GDPR Cookie 授权许可”、“授权横幅(Consent banner)”以及“CMP(许可管理平台)”等说法。 

无论用户最终选择同意还是拒绝,在做出决定前,网站都只能写入基础必要 Cookie。通过接入 CMP,配合 GTM(Google 标签管理器)的追踪就能满足合规要求。GTM 的做法是,先将默认许可状态设为“拒绝(denied)”。

CMP 会将这些许可信号同步给 GTM,GTM 再传递给各个代码(Tag)。部分代码本身具备“许可感知(consent-aware)”能力,能自动调整追踪行为;而对于不支持该特性的代码,则需要显式拦截,只在获得相应许可后才触发。

简而言之,GTM 会监听用户的授权决定,确保只有在拿到对应许可的前提下,代码才会向平台回传追踪数据。粗略来说,想让 GTM 符合合规要求,主要通过以下两点实现:

  1. 1.

    将默认许可状态设为“拒绝”。

  2. 2.

    根据用户的实际授权选择来触发代码。

当然,实际细节远不止这么简单。用户的授权选择具体是通过以下信号来传递的:

信号控制内容在 CMP 中的对应分类*
analytics_storage用于分析的存储偏好或统计
ad_storage用于广告营销的存储营销或广告
ad_user_data向 Google 发送用于广告目的的用户数据
ad_personalization个性化广告
functionality_storage记录用户偏好(如语言、设置等)功能或偏好
security_storage网站核心功能(如安全登录、页面导航等)基础必要或绝对必要

*不同 CMP 中的分类名称可能略有不同,它们本质上只是将特定类型的 Cookie 打包归类。

因此,用户一旦勾选“营销/广告”类 Cookie,对应的这三个信号就都会被设为同意。这样一来,用户就不必面对晦涩的技术信号,直接做选择也更简单。

接下来,我们看看具体该如何实操。

1. 盘点现有代码与数据 

首先需要全面盘点现有代码以及网站当前收集的所有数据,无论是通过 GTM、插件、应用部署,还是直接硬编码到网页中的。针对每一款工具,记录以下信息:

  • 触发条件是什么

  • 收集并发送了哪些数据(包括各类事件参数)

  • 使用了哪些 Cookie 或浏览器存储

  • 对应哪种许可分类(或信号)

  • 代码模板自带哪些许可检查,是否额外配置了其他许可检查

清理掉所有闲置的脚本和代码,把精力集中在真正需要的项目上。 

2. 安装 CMP

CMP 既可以独立部署,也可以通过 GTM 引入;如果希望集中管理,用 GTM 会更方便。不过,即便 CMP 是硬编码写入或通过插件安装的,只要能和 GTM 正常通信,同样可行。

如果选择通过 GTM 部署,务必将其绑定到 Consent Initialization(许可初始化)触发器上。该触发器的唯一用途就是在其他所有代码之前执行并获取许可状态,以便后续代码知晓用户的选择。

正如前文所述,在 GTM 中,除基础/必要分类外,CMP 代码应将默认许可状态统一设置为“拒绝(denied)”。

此外,还可以在 GTM 设置中开启“许可概览(Consent Overview)”,这样管理所有代码的许可状态会轻松得多。

Install the CMP

 接下来,确保各项代码遵从用户的选择。

3. 配置许可状态更新

用户不仅在首次看到同意弹窗并做出选择时会触发更新,后续也可能撤回或调整同意设置。无论哪种情况,GTM 都需要记录这些状态,并把用户的同意信息同步给相关工具。

因此,要将用户的选择映射到前面提到的对应许可信号上。举个例子,如果用户只接受了分析类 Cookie,那就不能放行广告类 Cookie,更不能触发任何营销类代码。

此外,许可状态更新必须在当前页面立刻发送,不能等到跳转之后。否则用户可能刚同意跟踪就离开了页面,导致信号还没来得及传给代码。

许可模式主要分为两种:

  1. 1.

    基本模式(Basic):在获得相关授权之前,会拦截所有 Google 代码,完全不发送任何信息。

  2. 2.

    高级模式(Advanced,亦称 v2):即使同意请求被拒,Google 代码依然会触发,并向 Google 各类工具发送无 Cookie 的 Ping 请求。系统随后会将这些匿名断点数据输入机器学习算法,用于后续的数据建模。

高级许可模式如今基本已成为主流标配,除非法律法规或特殊要求强制完全拦截相关代码。但要注意,即便工具技术上支持发送无 Cookie 的 Ping 请求,也不代表法律上就一定合规,这一点需要单独评估。

前面讨论的都是 Google 官方代码模板,但像 Meta、TikTok 等第三方自定义模板以及所有自定义 HTML 代码,并不会响应“Google 许可模式(GCM)”,必须采用其他配置方式。

这就意味着,在明确拿到“已授权”(granted)信号之前,必须对这些代码进行“显式拦截”。此时,可以将 CMP 推送的 dataLayer 事件,或是变量中包含相关许可信号的具体事件,作为 GTM 中的触发器。 

比如,可以在 cookie_consent_update 触发且对应变量包含广告/营销类 Cookie 授权时,再去触发 Meta Pixel;或者在 add_to_cart 等相关触发器激活且营销类 Cookie 获批时,再触发 AddtoCart。

好在目前主流工具的代码模板大多已在代码层级提供了某种形式的 GCM 检查。启用后,代码就会根据 GCM 从 CMP 接收到的许可信号来做出相应响应。 

Enable consent mode support

不过就算有这种检查机制,依然需要通过预览模式并检查浏览器中的网络请求(Network),来确认用户许可是否真正得到了遵守——这也正是我们接下来要讨论的内容。

4. 充分测试,反复验证!

最后,一定要进行全面测试,观察代码和脚本在各种场景下的表现。测试场景可以包括:

  • 未对弹窗进行任何操作:许可状态应默认为拒绝(denied)。

  • 仅接受必要 Cookie:许可状态应为拒绝,代码不应触发,或者在适用情况下仅发送无 Cookie 的 Ping 请求。

  • 仅接受分析类:仅 analytics_storage 状态应为“granted”,不得触发任何营销类代码。

  • 仅接受广告类:仅有三个广告信号应为“granted”,不得触发任何分析类代码。

  • 全部接受:这种情况最简单,所有信号都应为“granted”。

  • 撤回之前授予的同意:后续代码应及时调整行为模式。

  • 带着已保存的同意状态再次访问:检查最初的选择是否依然有效。

进行这些测试时,可以结合浏览器存储和网络请求,在 GTM 的预览模式下观察不同状态下分别向各工具发送了哪些数据。如果你配置了服务端跟踪,也可以一并利用 sGTM 的预览模式。 

务必重点关注首次浏览页面、结账以及跨域名跳转等关键行为,排查是否存在数据不一致或状态更新异常等问题。

以下几类常见错误非常容易踩坑,提前了解有助于规避风险:

  1. 1.

    未完全由 GTM 控制:访客可能拒绝了 Cookie,但如果部分跟踪代码是通过插件或第三方工具直接加载的,依然会被触发。

  2. 2.

    同意状态更新过晚:用户即便选择了拒绝,但如果状态更新滞后,已经触发的代码请求其实早就发送出去了。

  3. 3.

    将“未设置”直接当成拒绝:必须明确设置默认同意状态,并测试 CMP 未加载或加载缓慢时会出现什么情况。

  4. 4.

    将所有信号绑定一次性授权:用户仅同意分析类跟踪,绝不能顺带把其他所有信号也一并算作已同意。

  5. 5.

    未测试撤回与修改授权信号:重新打开横幅修改同意状态后,后续的跟踪行为必须即时受到相应控制。

  6. 6.

    哈希处理不等于合规:广告平台在做高级客户匹配时使用的邮箱哈希值,并不意味着完全匿名且合法。

上述问题主要集中在 GTM 层面。通常来说,一套规范合规的 CMP 横幅配置还应涵盖以下几个维度:

  • 说明清晰:明确向访客解释每个跟踪分类的具体含义和跟踪内容。

  • 主动选择:无视横幅、滑动页面或继续浏览都不能视为已同意。针对非必要跟踪,必须由用户主动做出选择。

  • 分类独立:访客应能自主选择仅同意分析跟踪而不接受广告跟踪,反之亦然。

  • 拒绝入口显眼:拒绝应当和接受一样简单,不要藏在三级菜单里或埋在很深的位置。

  • 撤回或调整方便:横幅关闭后,依然要保留随时查看和修改 Cookie 偏好的入口。

CMP 还应记录并存储用户的同意凭据,包括用户看到了什么、同意了什么以及具体时间。你也可以强制要求用户先与横幅交互才能继续浏览网站,但“接受”、“拒绝”和“自定义”这几个选项必须同等明显、易于点击。

聊完 CMP 的机制,再来看看目前市面上都有哪些优秀工具和解决方案。

严格来说并不存在绝对的最佳工具,关键在于团队的维护能力以及它与现有技术栈的契合度。

不过行业内确实有一些知名度较高的 CMP,例如 Cookiebot、CookieYes、Usercentrics CMP 等。从核心功能来看,它们(理应)都能实现相同的目标:

  • 传递默认同意状态

  • 根据用户选择发送状态更新指令

  • 保存用户同意记录

  • 支持添加横幅并进行自定义配置

  • 扫描站点 Cookie 并辅助或直接完成分类

  • 集成 Google 同意模式(GCM)

各家的收费档位和界面设计自然会有所差异,因此列出上述工具并不代表官方背书。如果你想看官方精选名单,可以查阅 Google 认证 CMP 合作伙伴。

因此,在挑选 CMP 时,不仅要对比上述核心功能,还要评估它与你的网站或 CMS(如 Shopify、WordPress 或自建系统)的集成兼容性。大多数 CMP 都提供免费试用,不妨先上手实测几款,再做最终决定。

另一种解决方案是采用服务端追踪。很多与 GDPR 和 Cookie 授权相关的合规问题,根源都在于数据是如何直接发送给第三方工具的。 

改用第一方环境通常就能化解这些问题:也就是先把追踪数据发送到你自己的服务器上,这样一来,无论数据最终是要同步给 Google Analytics 还是各类广告平台,你都能自主掌控具体向这些工具发送哪些内容。 

部署此类服务器有多种工具可选,它们所能带来的收益也有很大差异:

  • 专业的全托管服务商——例如 Stape

  • 手动/自建托管(其他云服务与 Docker)——AWS、Microsoft Azure、Render 或 Cloudflare Workers 等

具体选择哪种工具,在成本以及搭建和维护的工作量上会有很大差异,需要单独深入评估,毕竟最适合的方案还要结合你的业务场景和其他因素来决定。

前文多次提到了服务端 GTM(即 sGTM),现在不妨来深入聊聊它。

在服务端 GTM 架构下,你的 Web 或客户端 GTM 会先将采集到的数据请求发送至 sGTM,随后再由其转发至各自的目标平台。

这样一来,你就多了一层把关机制,能够审查并控制向第三方厂商发送的具体数据。对于支持该功能的 Google 代码,Web 端 Google 代码会将用户授权参数同步至服务端容器,具备授权感知能力的服务端代码便会像在 Web 容器中一样,相应调整其触发逻辑。

其他厂商和自定义事件则需要单独配置授权控制逻辑,不过通常情况下,Web 容器同样可以将授权参数同步至服务端。换句话说,你可以直接在 sGTM 中进行配置:只有在满足特定授权信号的前提下,才将数据转发给对应的厂商。

对于 sGTM,建议重点审查以下几点:

  • 发送至各平台的数据——检查事件参数、URL 及各类标识符,剔除目标平台不需要的所有多余信息。

  • 授权管理——确保 Web 容器采集到的用户授权选择能实时同步至服务端容器,且触发的代码均严格遵循这些选择。

  • 数据保留——如果系统会保存请求日志或用户标识符,必须核查具体存储了哪些内容以及何时删除。托管服务商、底层存储数据库以及接收数据的平台各自都有不同的数据保留策略。

  • 服务器所在地——明确服务器的实际运行地以及接收平台处理数据的具体区域。服务器设在欧洲并不等同于数据就一定会留在欧洲,这一点需要做进一步评估。

sGTM 虽然赋予了你极大的控制权,但你依然必须主动利用好这种掌控力来确保合规,且整个过程应当咨询法务团队的意见。明确了这一点之后,我们来看最后的总结。

安装 GTM、添加代码以及设计一个美观的授权弹窗确实需要投入精力,但单凭这些都无法直接保证合规。从用户数据的采集到各触点的流转,整条链路都必须始终尊重用户的授权意愿,并将其准确传递给每一个下游平台。

全面审查现有配置、梳理实际追踪需求并做好文档记录,能为你合规部署 GTM 提供坚实保障。在此基础上,你还可以进一步引入服务端追踪——这也正是未来数据追踪的大势所趋。

来源:Stape Server-Side Tracking Blog · stape.io

EVAOO 主站实战落地 · 追踪归因、CRO 与用户留存

看完情报?回到 EVAOO 主站直接上手工具与完整 SOP

返回 EVAOO 主站