用户同意模式与 CMP
尊重用户的选择
用户同意模式与 CMP 是 CoddyKit 上的免费 Digital Marketing Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Digital Marketing Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Digital Marketing Academy 课程共包含 4 节课。
Consent Mode 为何存在
根据 GDPR 和 ePrivacy,通常需要先取得明确同意,才能设置非必要 Cookie 或为了广告共享数据。但如果用户拒绝同意后就阻止所有标签,衡量工作也会完全丢失。
Google Consent Mode 是一种桥梁:标签会读取用户的同意选择并调整行为,发送完整数据、保护隐私的信号,或者完全不发送任何数据。
同意信号
Consent Mode v2 定义了四种关键状态。其中两种此前就已存在:analytics_storage 和 ad_storage。另外两种是在 v2 中新增的:ad_user_data 和 ad_personalization。
每种状态要么是“granted”,要么是“denied”。ad_user_data 控制是否可以将用户数据发送给 Google 用于广告;ad_personalization 控制这些数据是否可以用于个性化广告和再营销。
Consent Mode v2 parameters
--------------------------------------
analytics_storage -> GA4 cookies
ad_storage -> ad cookies
ad_user_data -> send data to
Google for ads
ad_personalization -> use data for
remarketing
Values: 'granted' | 'denied'默认值与更新
该流程分为两个步骤。首先,在任何标签触发之前运行默认命令,通常会将 EU 用户的所有设置设为拒绝。然后,用户点击横幅后,更新命令会反映其实际选择。
在标签加载前设置默认值至关重要,否则标签可能会在获取同意之前以完整跟踪状态触发,这将构成违规。
Consent state example (gtag)
--------------------------------------
// 1) default - BEFORE any tags
gtag('consent','default',{
ad_storage:'denied',
ad_user_data:'denied',
ad_personalization:'denied',
analytics_storage:'denied',
wait_for_update: 500
});
// 2) update - after banner click
gtag('consent','update',{
ad_storage:'granted',
ad_user_data:'granted',
ad_personalization:'granted',
analytics_storage:'granted'
});基础模式与高级模式
基础同意模式会完全阻止 Google 标签,直到获得同意;在此之前不会发送任何信号。高级同意模式会立即加载标签,但在同意被拒绝时,会发送不使用 Cookie 的“信号”,也就是不含标识符的匿名信号。
高级模式会为 Google 的转化建模提供数据,用于估算您无法直接观测到的转化。它通常能恢复更多数据,但合规方面需要进行更深入的讨论。
无 Cookie 信号
在高级模式下,如果同意被拒绝,Google 仍会收到一个最小化的无 Cookie 信号:时间戳、页面 URL、同意状态本身,以及一个不会被存储的随机标识符。
这些信号不携带个人数据,也不会设置 Cookie,因此具有一定的合规依据。它们为 Google 的模型提供了足够的汇总信号,用于估算未被观测到的转化。
Denied-consent cookieless ping
--------------------------------------
SENT (no cookies, no user id):
- consent: ad_storage=denied
- timestamp
- page_location
- random non-stored token
NOT SENT:
- client_id / cookies
- user identifiers
-> feeds conversion modeling什么是 CMP
同意管理平台(CMP)是一种工具,用于显示横幅、记录用户的选择、存储同意证明,并将该选择提供给您的标签。
示例包括 Cookiebot、OneTrust、Usercentrics 和 Didomi。CMP 是同意状态的事实来源;同意模式则规定 Google 标签如何响应这一状态。
Google 认证的 CMP
对于同意模式 v2,Google 要求 Google Ads 再营销和 EEA 流量等产品使用经过认证的 CMP。经过认证的 CMP 能正确集成 v2 信号,并且位于 Google 的批准列表中。
CMP 必须传递四个同意参数,并在适用时与 IAB 透明度与同意框架(TCF)集成。使用未经认证的横幅或自行开发的横幅,可能导致相关功能被停用。
IAB TCF
IAB 透明度与同意框架是一项行业标准,它会将同意编码为“TC 字符串”——一种紧凑的令牌,用于列出用户允许的用途和供应商。
广告技术合作伙伴会读取 TC 字符串,以确定自己是否可以处理数据。许多 CMP 会自动生成该字符串;这套机制较为复杂,因此规模较小的网站通常会使用更轻量的 Google 认证方案,而不采用完整的 TCF。
TC string (conceptual)
--------------------------------------
TCString: CPxyz... (base64)
encodes:
- consent purposes 1..10
- legitimate interest flags
- vendor allow-list
- publisher restrictions
Vendors decode it to decide:
'may I process this user's data?'将 CMP 接入标签
集成模式如下:CMP 先加载,并将同意模式的默认值设为拒绝。用户做出选择后,CMP 触发同意更新,并触发一个 dataLayer 事件。
然后,您的 GTM 标签会自动响应同意模式(使用内置同意检查),或使用由同意事件控制的触发器。顺序很重要:CMP 在 GTM 之前,默认值在更新之前。
Load order (must be exact)
--------------------------------------
1. CMP script loads
2. consent 'default' = denied
3. GTM / gtag loads
4. user clicks banner
5. CMP fires consent 'update'
6. dataLayer.push({event:'consent_ready'})
7. gated tags now fire
Wrong order = tags fire pre-consent = breach服务器端的同意状态
同意状态会随事件一起传输到您的标签服务器。每个服务器端标签都可以在转发到目标平台之前,检查有效负载中的同意状态。
因此,即使数据已经离开浏览器,被拒绝的 ad_user_data 信号也应阻止 Meta CAPI 或 Google Ads 标签发送数据。同意控制必须同时存在于客户端和服务器端。
合规与信任
如果实施得当,同意模式加上经过认证的 CMP,就能尊重用户选择,并通过建模继续进行测量,同时不设置未经授权的 Cookie。实施不当时,它就会变成非法跟踪的遮羞布。
请定期进行审计:确认默认值为拒绝,横幅提供真正的拒绝选项,同意证明已被记录,并且任何用于识别用户的标签都不会在获得同意前触发。
快速检查
测试您对同意模式和 CMP 的理解。
回顾
同意模式 v2 使用四个信号(analytics_storage、ad_storage、ad_user_data、ad_personalization),将其设置为已授予或已拒绝,并采用默认拒绝、随后更新的流程。高级模式会在拒绝同意时发送无 Cookie 信号,为建模提供支持。
经过 Google 认证的 CMP 是同意状态的事实来源:它显示横幅、记录同意,并传递这些信号以及 IAB TC 字符串。在客户端和服务器端都执行同意控制,并审计确保默认值在任何标签触发前已设为拒绝。
常见问题解答
「用户同意模式与 CMP」课时是免费的吗?
是的 — 「用户同意模式与 CMP」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Digital Marketing Academy 课程的其余内容,请升级到 CoddyKit PRO。 Digital Marketing Academy 课程共包含 4 节课。
「用户同意模式与 CMP」这节课中我会学到什么?
尊重用户的选择 你通过在浏览器中直接运行的动手代码来练习 Digital Marketing Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Digital Marketing Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Digital Marketing Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「用户同意模式与 CMP」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Digital Marketing Academy 课中编写并运行代码吗?
能。每节 Digital Marketing Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。