返回博客

博客

CookiePass 与 Google 同意模式:同意横幅对您的流量意味着什么

发布于 · 阅读约 4 分钟

本站使用 CookiePass。它是一项 Cookie 同意服务,按照 Google 的规范实现了 Google 同意模式 v2——这一点最终比横幅的颜色更重要:它决定了在访客回答之前、点"是"之后和点"否"之后,您的 Google 代码在每次页面浏览时发送什么。下面是从服务器端看到的情况,每一次命中都会经过您的容器。

同意模式究竟改变了什么

同意模式不是代码的开关。启用后,Google 代码仍在每个页面上触发;改变的是每次命中上的一个标记,以及 Google 因此对命中的处理。当 analytics_storage 被拒绝时,代码不设置 Cookie,不在页面之间保留客户端 ID,只发送 Google 所称的"无 Cookie ping"——GA4 将其用于建模,而不是用于您阅读的报告。

这个标记是名为 gcs 的查询参数:两个字母加两位数字。第一位是 ad_storage,第二位是 analytics_storage;1 表示已授权,0 表示已拒绝。

gcs=G100   ad_storage denied,  analytics_storage denied
gcs=G101   ad_storage denied,  analytics_storage granted
gcs=G110   ad_storage granted, analytics_storage denied
gcs=G111   both granted
(no gcs)   no Consent Mode on the page — treated as granted

最后一行最容易被忽略。完全没有同意模式的页面不会发送 gcs,Google 会把它的每次命中都视为已同意。因此,添加一个实现同意模式的横幅并不会减少发送的内容——它只是开始如实说明。

CookiePass 如何接入

同意模式 v2 要求的是一个顺序,而不是一项设置。默认状态必须在 Google 代码加载之前声明——对尚未选择的人一律拒绝;访客做出决定的那一刻必须紧跟一次更新;并且每次回访都要恢复该状态。顺序一旦错误,每个会话的第一次页面浏览就会在横幅渲染之前以"已同意"发出。

这就是 CookiePass 由自身脚本生成的序列,因此不会有任何内容进入您的 Tag Manager 容器:

gtag('consent', 'default', {
  ad_storage: 'denied',
  analytics_storage: 'denied',
  ad_user_data: 'denied',
  ad_personalization: 'denied',
  wait_for_update: 500
});

// …the visitor accepts…
gtag('consent', 'update', {
  ad_storage: 'granted',
  analytics_storage: 'granted',
  ad_user_data: 'granted',
  ad_personalization: 'granted'
});

整个集成就是这样。Google 自己的代码会自动遵守同意状态,包括 SignalHost 发布到您网页容器中的代码。服务器容器中的任何内容都不需要同意条件;手动添加的结果,就是一个被限制的 Google 代码旁边站着未被限制的事件代码,把数据直接发给 Google。

选择前后您的服务器容器看到什么

每次命中走的仍是同一条路:浏览器发送到您自己的主机名,边缘节点转发到您的服务器容器,容器再发送给 GA4。区别全在载荷里。

  • 选择之前:每次命中带 gcs=G100,没有 _ga Cookie,每个页面都是新的客户端 ID。GA4 收到无 Cookie ping;您的容器计一次请求。
  • 接受之后:gcs=G111,Cookie 被设置,会话得以串联。从这里开始的命中才是报告的组成部分。
  • 拒绝之后:只要选择仍然有效,每个页面都是 gcs=G100。增强型衡量事件——scroll、file_download 等——遵循与 page_view 相同的规则。

这就是为什么有横幅之后,容器页面每个事件显示两个数字:带分析同意发送的命中(Analytics 将报告为用户和会话的部分),以及斜杠后面容器转发的全部。session_start 和 first_visit 不会出现在任何一列:Analytics 从第一个 page_view 上的标记推导它们,而不是作为事件接收。

对您的流量数字意味着什么

请预期两列并不一致,也请预期这个差距是页面上最有用的数字。

  • Analytics 报告的用户和会话少于容器计数的请求。差额就是拒绝或从未回答的访客比例——您的同意率,是测量出来的,不是猜的。
  • 一旦媒体资源达到 Google 的阈值,GA4 可以用行为建模填补部分差距。建模数据会出现在报告中;但永远不会出现在您的容器里,因为它从未被发送。
  • ad_storage 被拒绝时,Google Ads 转化跟踪无从归因,转化连接器也无从连接。服务器容器不会改变这一点,也不应该改变:第一方并不意味着免于同意。
  • 横幅的设计现在是一项衡量决策。60% 与 85% 的同意率是同一个网站配了不同的按钮,两列之间的差距会告诉您您属于哪一种。

检查清单

  • 在 Google 代码之前加载同意脚本。默认状态必须在第一次命中之前存在。
  • 打开一个横幅尚未回答的页面,在浏览器网络面板中读取 /g/collect 请求上的 gcs。应为 G100。
  • 接受后,在下一个页面再读一次。应为 G111。
  • 不要给服务器容器中的任何内容添加同意触发器。网页代码已经携带了状态。
  • 一天后回到容器页面,读取 page_view 上的一对数字。第一个除以第二个就是您的同意率。

我们选择 CookiePass,是因为它精确执行上述序列,一个下午就在本站上线,并且允许横幅使用网站自己的配色。上一节里的数字,就是它有效的证明。

别再把数据丢给广告拦截器

每月一万次请求,长期免费。四分钟就能知道它是否有用。