javascript - 如何使用 Quantcast Choice 根据 IAB TCF v2.0 的同意显示或阻止个性化 Adsense 广告?
问题描述
我选择 Quantcast Choice 作为我网站的同意管理平台。然而,在访问者同意相关供应商 (Google) 之前,他们的基本解决方案仍会向访问者投放 Google Adsense 广告。由于 2 天后,Adsense 中会收到确认此问题的通知,并且在 90 天的宽限期后将不再提供广告。错误消息:“ 2.1a:标签或 SDK 未收到 TC 字符串,因为 CMP 状态为存根、加载或错误。 ”
我对脚本一点也不熟悉,但似乎我必须使用一些脚本才能使 Quantcast Choice 真正起作用。基本上我需要知道如何:
- 在访问者同意 Google 之前不投放任何 Google 广告
- 征得同意后投放个性化广告
- 在未经同意的情况下投放非个性化广告
到目前为止我学到了什么:
在访问者同意之前,我可以将此脚本添加到我的 Google Adsense 代码中以不显示任何广告:
<script>(adsbygoogle=window.adsbygoogle||[]).pauseAdRequests=1;</script>
到目前为止没有问题。但是,我应该能够知道访问者是否已同意供应商 Google。Google 在 TCF v2.0 中的供应商 ID 是 755。我在 Quantcast 页面之一上发现了以下代码和文本的混合,但我不知道如何使用它。我应该把它放在我的网页上的 Quantcast Choice 脚本中还是...?(来源链接如下)
{{QC - __cmpConsents.iabVendorConsentIds}} matches the regular expression (^|,)755(,|$).
因此,如果找到 ID 755,我应该调用:
(adsbygoogle=window.adsbygoogle||[]).pauseAdRequests=0
如果找不到 ID 755,我应该致电:
(adsbygoogle=window.adsbygoogle||[]).requestNonPersonalizedAds=1
(adsbygoogle=window.adsbygoogle||[]).pauseAdRequests=0
但是我该如何做这些“电话”呢?
所以我想我理解要遵循的步骤,只是我不知道如何实施这些步骤并连接点。任何帮助将非常感激!
我用过的来源:
- https://support.google.com/adsense/answer/9042142
- https://help.quantcast.com/hc/en-us/articles/360051794434
似乎可以实现我想要实现的网站示例:carscoops.com
解决方案
我会推荐一个非常简单的解决方案。使用 TCF 2.0,您不必根据给定的同意手动配置 Adsense 参数(个性化广告等)。您只需保证,在成功加载同意后开始加载广告。Adsense 库自动读取同意字符串并根据给定的同意显示广告。
将 Quantcast Choices 与 Adsense 集成的示例代码:
<!-- Quantcast Choice. Consent Manager Tag v2.0 (for TCF 2.0) -->
...
<!-- End Quantcast Choice. Consent Manager Tag v2.0 (for TCF 2.0) -->
<script>
__tcfapi('addEventListener', 2, function(tcData, success) {
if (success) {
if (tcData.eventStatus == 'useractioncomplete' || tcData.eventStatus == 'tcloaded') {
var hasStoreOnDeviceConsent = tcData.purpose.consents[1] || false;
if (hasStoreOnDeviceConsent) {
var adsbygoogle_script = document.createElement('script');
adsbygoogle_script.src = 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js';
document.head.appendChild(adsbygoogle_script);
}
}
}
});
</script>
推荐阅读
- vue.js - Vue组件正在渲染但页面为空白。我可以通过检查页面来查看代码
- java - Spring Webflux webclient 出现问题,尝试发送发布请求时没有任何反应
- typescript - 在 TSConfig baseUrl 中使用相对 unix 主路径(波浪号“~”)?
- amazon-web-services - istio - 使用 vs 服务和 gw 代替负载均衡器不起作用
- azure-devops - 构建和部署具有相同版本的管道
- swagger - Slate 和 Swagger 会在什么场景下一起使用?
- php - 一条记录在 PHP 中的数据库中保存为两个或多个
- http-post - Indy HttpClient.Post 在为发布而构建但不在调试时给出范围检查错误 - 为什么?
- java - 如何在操作栏上隐藏和显示菜单项
- html - 如何为具有填充的图像添加边框?