- TCF v2.1:我们将继续接受 TCF v2.1 字符串,但建议意见征求管理平台 (CMP) 遵循 IAB 指南 中列出的实施里程碑采取行动,与整个行业一起逐步过渡到 TCF v2.2。
- Google 意见征求管理解决方案:Ad Manager、AdSense 和 AdMob 的“隐私权和消息”标签页中提供的 Google 意见征求管理解决方案支持在其欧洲法规消息中使用 TCF v2.2,以契合 IAB 针对 CMP 的更新后的要求。
为了帮助发布商处理与 IAB Europe 透明度和用户意见征求框架 v2.2 的发布相关的错误和配置问题,我们提供了错误检测报告。
在本文中,您将详细了解如何解决 TCF v2.2 实现方面的错误,具体内容包括:
更新后的指南
具体更新
- 关于 TCF 要求每 13 个月重新征得用户同意的提醒:
根据 IAB 透明度和用户意见征求框架 (TCF) 政策的要求,您需要至少每 13 个月(390 天)向用户发送一次意见征求提醒。如果用户意见征求决定已超过 13 个月,那么 Google 不会再将 TC 字符串视为有效,也不会向该用户投放广告。我们建议您与 CMP 合作,在未达到 13 个月的期限之前,向用户发送意见征求提醒。
- 错误类型 3.2 已删除。在过去 13 个月内更新的 TC 字符串仍然有效。
常见错误的解决方法
可通过采取以下措施,排查 Ad Manager、AdSense 和 AdMob 中的一些最常见的错误:
考虑使用不会用于创收的 TC 字符串重新征求用户意见(错误 1.1、3.1、4.1、5.1、5.2 和 6.1)
相关错误
更新后的指南
考虑重新向用户征求意见。
理由
发布商若符合以下情况,则会受益于重新征求用户意见:之前使用了带外范围字符串、全局范围字符串、无效的 CMP ID(来自测试)、无效的 GVL ID(来自测试),或者在实现过程中的某个环节进行了适当的用户意见征求,但却没有将 Google 作为供应商。
错误 1.1、1.2、1.3:请务必检查是否有大量流量存在这些错误。如果是的话,应考虑 CMP 端可能存在问题,同时确保 Google 就所需用途获得了用户同意,并基于用户意见和合法权益而作为供应商(供应商 ID 为 755)。
IAB 规范
根据 IAB 规范,CMP 可以将用户意见征求字符串缓存 13 个月。
AddEventHandler
的调用(错误 2.1a、2.1b、2.0a、2.0b 和 2.0c)
相关错误
错误 2.1a。本指南可能也适用于错误 2.1b、2.0a、2.0b 和 2.0c。
更新后的指南
虽然不再有超时方面的要求,但我们建议 CMP 仔细检查其实现代码,确保立即返回对 AddEventListener getTCData
的调用。
如果 CMP 未响应,则相应请求可能会无法用于创收。
理由
Google 遵循 IAB 规范的如下规定:CMP 应立即响应 AddEventListener
函数。如果 CMP 未立即响应,则相应请求可能会无法用于创收。
此外,CMP 响应是事件链中的一环,会影响广告请求的发出速度。缩短网页加载与广告请求之间所间隔的时间可减少发布商错失的展示次数。
IAB 规范
适用的 IAB 规范:IAB AddEventListener 规范(在 GitHub 上)
AddEventListener
回调函数,即使 CMP 处于 loading
状态并且 CMP 的 TC 数据不完整也应如此。这样,执行调用的脚本便可访问其已注册的 listenerId
。此外,每当 TC 字符串发生更改时,都应调用该回调函数,除非已使用 RemoveEventListener
将其移除。政策中心
如果应用或网站不符合 Google 意见征求管理要求,政策中心将通知发布商。
错误报告
如果我们检测到与发布商的一个或多个网站或者应用关联的 TC 字符串存在问题,即会通过对应的产品界面通知对方。如果发布商收到错误通知,可使用自己的账号进入“欧盟地区用户意见征求”页面,然后点击下载 TCF 错误报告来下载详细的报告,其中会包含系统在过去 7 天检测到的错误。
- Ad Manager:依次点击管理和欧盟地区用户意见征求。
- AdMob 和 AdSense:依次点击屏蔽控制功能和欧盟地区用户意见征求。
该报告将包含以下与检测到的各种错误有关的信息:
- 网域/MobileAppID:存在配置错误的网站或移动应用。
- 广告单元路径:与错误相关联的广告单元。
- 错误代码:系统为错误分配的代码。
- 错误数量:系统在前一周检测到的含有该错误的查询数量。
- 上次检测日期:上次检测到该错误的日期。
发布商可以根据此报告中列出的错误代码,从下面的问题排查表格中找到建议采取的措施,然后纠正相应错误。
问题排查
为了帮助发布商修正存在配置错误的 IAB TCF v2.2 集成,我们在下面的表格中汇总了最常见的 TC 字符串错误类型以及对应的问题排查建议。
请参考这些表格,了解在广告请求一级出现的问题以及对应的系统行为。
只征得有限同意的情形
这三种情形的优先级始终高于配置错误,即使给定请求中含有多类错误也是如此。
情形 | 说明 | 建议采取的措施 |
---|---|---|
1.1 | 根据用户意见或合法权益,不允许将 Google 作为供应商。 | 确认是用户故意拒绝了 Google 作为供应商、出现 CMP 实现错误,还是存在发布商限制。 |
1.2 | 对于欧洲经济区 (EEA) 国家/地区和英国,未能就用途 1 征得用户同意。 |
确认是用户故意拒绝了用途 1,还是由于 CMP 实现错误所致。 对于瑞士的发布商,如果他们不征求用户意见的话,就应确保正确设置
PublisherCC 和 PurposeOneTreatment 字段。自 2021 年 12 月起,我们将不再根据《德国电信和电信媒体数据保护法》针对来自德国的广告请求检查 |
1.3 | 已就用途 1 征得用户同意,但缺少投放基本广告的法律依据。 |
确认是用户就其他用途故意拒绝了合法权益,还是由于 CMP 实现错误所致。 |
配置错误
如果存在配置错误,系统将不会针对广告请求填充广告。
错误 | 说明 | 建议采取的措施 |
---|---|---|
2.1a | 由于 CMP 的状态为 stub 、loading 或 error ,代码或 SDK 未获得 TC 字符串。 |
如果您手动调用函数来请求广告,请确保返回值为 如果您没有手动调用函数来请求广告,那么请与您的 CMP 协力确保其实现了对 |
2.1b |
同时符合以下两个条件:
|
让您的 CMP 务必依照 IAB TCF 技术规范正确实现其 API。 |
2.2a |
TC 字符串并非使用 base64 编码的,因而无法解析。 示例: |
CMP(或发布商)应该在 gd_consent= 参数中仅发送以 base64 编码的数据。 |
2.2b |
由于解码错误,TC 字符串无法解析。 示例:包含的位数不正确 |
CMP 应修正 TC 字符串实现方面的错误。 |
2.2c |
由于数据错误,TC 字符串无法解析。 示例:时间戳不正确、供应商 ID 太大 |
CMP 应修正 TC 字符串实现方面的错误。 |
TC 字符串问题
与广告请求关联的 TC 字符串存在问题。广告请求将会被丢弃,从而出现广告空缺。
错误 | 说明 | 建议采取的措施 |
---|---|---|
3.1 | CMP ID 无效。 |
确保使用的是经过 IAB 验证的 CMP,并在 TC 字符串中正确设置其 ID。 如果 CMP 在生成 TC 字符串时处于有效状态,但后来被 IAB 删除,那么您需要使用有效的 CMP 重新征得用户同意。 |
3.2 | 不再使用。 | 无。之前的含义:TC 字符串的创建日期距今已超过 13 个月。 |
必须重新征得用户同意
必须征得用户同意。如果您征得用户同意的时间距今已超过 13 个月,或者使用的那版全球供应商名单中尚未列入 Google,则应重新征得用户同意,否则广告请求将被丢弃,从而出现广告空缺。
错误 | 说明 | 建议采取的措施 |
---|---|---|
3.3 | TC 字符串的上次更新日期距今已超过 13 个月。 |
CMP 应删除旧的 TC 字符串,并重新征得用户同意。 如果 CMP 废弃了之前的用户同意书却尚未重新征得用户同意,而发送广告请求时使用了已过期的 TC 字符串,则可能会出现少数此类错误。 如果您使用的是 Google 的意见征求管理解决方案,请参阅针对应用的问题排查步骤来解决此类错误。对于采用 Google 意见征求管理解决方案的 AdSense 发布商,无需针对此类错误采取任何行动。 |
4.1 | 在生成 TC 字符串时所用的那版全球供应商名单中,尚未列入 Google。 | 使用当前版本的全球供应商名单重新征得用户同意。 |
全局范围和带外范围
以下是与全局范围和带外范围(Ad Manager、AdMob、AdSense)相关的问题。如果 TC 字符串指明“带外”或“全局范围”,则广告将不会投放。
错误 | 说明 | 建议采取的措施 |
---|---|---|
5.1 | TC 字符串允许在带外范围内征求用户意见。 | 指示您的 CMP 从 TC 字符串中移除带外信号。 |
5.2 | TC 字符串指明适用于全局范围。 | 指示您的 CMP 将 TC 字符串更新为适用于具体服务。 |
广告投放量受限
系统将投放受限广告。
错误 | 说明 | 建议采取的措施 |
---|---|---|
6.1 | TC 字符串版本为 1 或 1.1 (即 v1.0 字符串)。 |
CMP 应发送 TCF v2.2 字符串。 |
Google 将负责处理问题
如果出现这类问题,Google 会在必要时自行采取措施来缓解该问题,并继续执行正常的 TCF 处理。
错误 | 说明 | 建议采取的措施 |
---|---|---|
7.1 | 未定义 gdprApplies ,或者是为其设置的值无效或无法解读,但是存在有效的 TC 字符串。 |
无 |
7.2 | 用来生成 TC 字符串的全球供应商名单版本比 Google 广告投放技术已知的当前版本更新。 | 无 |
7.3 | 某些用途、功能和/或供应商超出范围(未知)。 | 无 |
7.4 | TC 字符串中的 tcf_policy_version 比最新的全球供应商名单旧。 |
CMP 应删除旧的 TC 字符串,然后使用最新的全球供应商名单重新征得用户同意。 |
7.5 |
请求中包含 |
无 |
7.6 | 发布商的国家/地区代码无效,但是存在就用途 1 征求的用户意见。 | CMP 应修正 TC 字符串实现方面的错误。 |
7.7 | 语言代码无效。 | CMP 应修正 TC 字符串实现方面的错误。 |
7.8 | TC 字符串版本字段既不是 1 ,也不是 2 。 |
如果检测到无效的 TC 字符串,CMP 应通过重新征得用户同意,修正 TC 字符串实现方面的错误。 如果您使用的是 Google 的意见征求管理解决方案,请参阅针对应用的问题排查步骤来解决此类错误。对于采用 Google 意见征求管理解决方案的 AdSense 发布商,无需针对此类错误采取任何行动。 |
7.9 | AC 字符串版本既不是 1 ,也不是 2 。 |
CMP 应将 AC 字符串版本设为 1 或 2 。 |
AC 字符串问题
如果出现这类问题,Google 将把额外同意 (AC) 字符串视为无效字符串,并且不会考虑 TC 字符串以外的其他供应商。
错误 | 说明 | 建议采取的措施 |
---|---|---|
8.1 | AC 字符串未使用版本分隔符 (~ )。 |
CMP 应使用“~ ”作为 AC 字符串的第二个字符,用于将版本号与已征得同意的供应商名单分隔开来。 |
8.2 | AC 字符串中包含不符合预期格式(使用“.”分隔的 int64 列表)的供应商名单 | CMP 应修正 AC 字符串实现方面的错误。 |
CMP 认证
出现这些问题时,Google 会尝试投放非个性化广告。
错误 | 说明 | 建议采取的措施 |
---|---|---|
9.1 | 请求中出现的 TCF CMP 未经 Google 认证。 | CMP 应向 Google 申请认证。 |
广告请求中没有 TCF 信号
出现这些问题时,Google 会尝试投放受限广告。
错误 | 说明 | 建议采取的措施 |
---|---|---|
10.1 |
请求来自欧洲经济区 (EEA)、英国或瑞士,但缺少 TCF 信号。 |
发布商应集成经 Google 认证的 TCF CMP。 |