IAB Europe 最终审定了与 IAB Tech Lab、共同成员公司一起拟定的透明度和用户意见征求框架 v2.0。Google 现在全面支持 TCF v2.0。
为了让发布商有时间处理与 IAB Europe 透明度和用户意见征求框架 v2.0 的发布相关的错误和配置问题,Google 将向发布商提供错误检测报告并给予 150 天的宽限期以供发布商纠正相关错误。
在本文中,您将详细了解如何解决 TCF v2.0 实施错误,具体内容包括:
更新后的指南
更新
- 关于 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 针对所需用途获得用户同意,并在用户意见及合法权益两个方面均被列为供应商(Google 的供应商 ID 为 755)。
IAB 规范
根据 IAB 规范,CMP 可以将用户意见征求字符串缓存 13 个月。
AddEventHandler
的调用(错误 2.1a、2.1b、2.2a、2.2b 和 2.2c)
相关错误
错误 2.1a。本指南可能也适用于错误 2.1b、2.2a、2.2b 和 2.2c。
更新后的指南
虽然不再有超时方面的要求,但我们建议 CMP 仔细检查实施情况,确保能立即返回对 AddEventListener getTCData
的调用。
如果 CMP 未响应,则相应请求可能会无法用于创收。
理由
Google 遵循 IAB 规范的如下规定:CMP 应立即响应 AddEventListener
函数。如果 CMP 未立即响应,则相应请求可能会无法用于创收。
此外,CMP 响应是事件链的一部分,会影响广告请求的发出速度。减少网页加载与广告请求之间的间隔时间可减少发布商错失的展示次数。
IAB 规范
适用的 IAB 规范:IAB AddEventListener 规范(在 GitHub 上)
AddEventListener
回调,即使 CMP 处于正在加载
状态以及 CMP 的 TC 数据不完整时也是如此。这样一来,调用的脚本便可访问其已注册的 listenerId
。此外,每当 TC 字符串发生更改时,系统都应调用该回调,除非已使用 RemoveEventListener
将其移除。错误报告
如果我们检测到与发布商的一个或多个网站或者应用关联的 TC 字符串存在问题,即会通过对应的产品界面通知对方。如果发布商收到错误通知,可使用自己的帐号进入“欧盟地区用户意见征求”页面,然后点击下载 TCF 错误报告来下载详细的报告,其中会包含系统在过去 7 天检测到的错误。
- Ad Manager:依次点击管理
欧盟地区用户意见征求。
- AdMob 和 AdSense:依次点击屏蔽控制功能
欧盟地区用户意见征求。
该报告将包含以下与检测到的各种错误有关的信息:
- 网域/MobileAppID:存在配置错误的网站或移动应用。
- 广告单元路径:与错误相关联的广告单元。
- 错误代码:系统为错误分配的代码。
- 错误数量:系统在前一周检测到内含错误的查询的数量。
- 上次检测日期:上次检测到错误的日期。
发布商可以使用报告中列出的错误代码,从下面的问题排查表格中找到建议采取的措施,然后纠正相关错误。
问题排查
为了帮助发布商修正存在配置错误的 IAB TCF v2.0 集成,我们在下面的表格中汇总了最常见的 TC 字符串错误类型以及对应的问题排查建议。
请善加利用各个表格,了解在广告请求层级出现的问题以及对应的系统行为。
意见征求情形受限
情形 1.1 和 1.3 总是会导致广告请求不被接受而出现广告空缺。情形 1.2 则不会。这三种情形的优先级始终高于配置错误,即使给定请求中含有多类错误也是如此。
情形 | 说明 | 建议采取的措施 |
---|---|---|
1.1 | 根据用户意见或合法权益,不允许将 Google 作为供应商。广告请求不被接受而出现广告空缺。 | 确认是用户故意拒绝了 Google 作为供应商、出现 CMP 实施错误,还是存在任何发布商限制。 |
1.2 | 针对欧洲经济区 (EEA) 的国家/地区和英国,未就用途 1 征得用户同意。 |
确认用户是故意拒绝了用途 1,还是由于 CMP 实施错误所致。 对于德国的发布商,如果他们不征求用户意见的话,就应确保正确设置
PublisherCC 和 PurposeOneTreatment 字段。 |
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 个月。CMP 应删除旧的 TC 字符串,并重新征得用户同意。 |
3.3 | TC 字符串的上次更新日期距今已超过 13 个月。 | CMP 应删除旧的 TC 字符串,并重新征得用户同意。 |
必须重新征得用户同意
必须征得用户同意。如果您上次征得用户同意的时间距今已超过 13 个月,或者是在 Google 加入全球供应商名单之前征得用户同意的,则应重新征得用户同意,否则广告请求将不被接受而出现广告空缺。
错误 | 说明 | 建议采取的措施 |
---|---|---|
4.1 | 在生成 TC 字符串时所用的那版全球供应商名单中,尚未列入 Google。 | 使用新版全球供应商名单(现已列入 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.0 字符串。 |
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 。 |
系统仅会投放受限广告。CMP 应修正 TC 字符串实施错误。 |
7.9 | AC 字符串版本不是 1 。 |
CMP 应将 AC 字符串版本设为 1 。 |
AC 字符串问题
如果出现这类问题,Google 将把更多意见征求方式 (AC) 字符串视为无效字符串,并且不会考虑 TC 字符串以外的其他供应商。
错误 | 说明 | 建议采取的措施 |
---|---|---|
8.1 | AC 字符串未使用版本分隔符 (~ )。 |
CMP 应使用“~ ”作为 AC 字符串的第二个字符,用于将版本号与已征得同意的供应商列表分开。 |
8.2 | AC 字符串中包含不符合预期格式(使用“.”分隔开的 int64s 列表)的供应商列表。 | CMP 应修正 AC 字符串实施错误。 |