我选择 Quantcast Choice 作为我网站的同意管理平台。然而,在访问者同意相关 vendor (Google) 之前,他们的基本解决方案仍会向访问者转换 Google Adsense 广告。由于 2 天后,Adsense 中会收到确认此问题的通知,并且在 90 天的宽限期后,将不再提供广告。错误消息:“2.1a:标签或 SDK 未收到 TC 字符串,因为 CMP 状态为 stub 、加载或错误。”
我对脚本一点也不熟悉,但似乎我必须使用一些脚本才能使 Quantcast Choice 真正起作用。
基本上我需要知道如何:
到目前为止我学到了什么:
在访问者同意之前,我可以将此脚本添加到我的 Google Adsense 代码中以不显示任何广告:
<script>(adsbygoogle=window.adsbygoogle||[]).pauseAdRequests=1;</script>
到目前为止没有问题。但是,我应该能够知道访问者是否已同意 vendor Google。 Google 在 TCF v2.0 中的 vendor 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
但是我该如何做这些“电话”呢?所以我想我理解要遵循的步骤,只是我不知道如何实现这些步骤并连接点。任何帮助将非常感激!
我用过的来源:
似乎可以实现我想要实现的网站示例: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>
关于javascript - 如何使用 Quantcast Choice 根据 IAB TCF v2.0 的同意显示或阻止个性化 Adsense 广告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63440572/