用浏览器开发者工具调试 Google Consent Mode:读懂 gcs 参数
为什么要在浏览器中验证
看起来正常的同意横幅并不能证明你的标签行为正确。Consent Mode 的问题是悄无声息的:页面照常加载,广告照常展示,报表照常填充,但发送给 Google 的信号可能是错的。借助浏览器的开发者工具,你无需额外软件,几分钟内就能查看实际情况。
步骤 1:干净地打开 Network 面板
- 在无痕窗口中打开页面,确保没有保存之前的选择。
- 打开 DevTools,进入 Network 面板。
- 勾选 Preserve log,使请求在页面跳转后仍然保留。
- 重新加载页面,先不要操作横幅。
步骤 2:在请求中找到同意状态
Google 标签会在请求中添加 gcs 参数。你可以用 collect 或 google 过滤网络列表,并打开任意一条请求查看其查询字符串。其值形如 G100 或 G111。
- G100 — 广告存储和分析存储均被拒绝。
- G111 — 两者均被授予。
- G101 和 G110 — 一个授予,一个拒绝。
从 G1 之后的字符从左到右读:第一位数字是广告存储状态,第二位是分析存储状态,其中 1 表示授予,0 表示拒绝。较新的实现还会发送 gcd 参数,其编码的状态更长,包含 Consent Mode v2 新增的信号。
步骤 3:做出任何选择之前应看到什么
在需要同意的地区,访问者交互之前发出的最初几个请求应显示拒绝状态。如果访问者还没点击任何内容就看到了 G111,说明你的默认值有误,或者标签在默认值设置之前就已触发。
步骤 4:接受之后应看到什么
点击接受,然后观察新的请求。状态应变为授予,标签应继续执行。如果横幅显示已接受,但请求仍带着拒绝状态,说明 update 调用没有送达 Google 标签,或者执行得太晚。
步骤 5:检查数据层
在控制台中输入 dataLayer 并展开各条目。你需要按顺序找到两样东西:
- 一个使用 default 命令的 consent 条目,对需要同意的地区将所有信号列为拒绝。
- 用户做出选择之后,一个使用 update 命令的 consent 条目。
Consent Mode v2 的信号包括 ad_storage、analytics_storage、ad_user_data 和 ad_personalization。如果缺少后两个,则说明是 v1 式的配置。
最常见的错误
- 默认值设置过晚。default 命令必须在 Google 标签或 Tag Manager 容器加载之前运行。
- 从未发送 update。横幅保存了选择,却从不调用 update 命令。
- 只有两个信号。缺少用于用户数据和个性化的 v2 信号。
- 地区逻辑错误。来自需要同意地区的访问者被默认视为已授予。
- 被扩展程序拦截。你自己浏览器中的隐私扩展会隐藏请求;请关闭扩展后再测试。
- 缓存的选择。你在已保存过往选择的普通窗口中进行了测试。
步骤 6:检查 Tag Manager 预览模式
如果你使用 Google Tag Manager,预览模式会显示页面上每个事件的同意状态,以及哪些标签已触发或被拦截。请将其与你在 Network 面板中看到的内容对照:两种视图应当一致。
把它变成例行工作
每次修改横幅、发布容器或发布网站版本后,都运行这个五分钟检查。为四种情况写下预期的 gcs 值:首次访问、接受后、拒绝后,以及之后更改选择后。任何不匹配的地方都是需要修复的 bug,别等报表来告诉你。
FlexyConsent 的定位
FlexyConsent 是 Google 认证的 CMP(CMP ID 317),支持 Google Consent Mode v2,会为你发送 default 和 update 信号。你仍应在自己的页面上运行这项浏览器检查,因为标签顺序和容器设置因站点而异。
要点回顾
- 在无痕窗口中测试,并保留网络日志。
- 读取 gcs 值:G100 为拒绝,G111 为授予。
- 在访问者做出选择之前,必须能看到拒绝的默认值。
- update 必须在选择之后立即改变状态。
- 确认数据层中出现全部四个 Consent Mode v2 信号。