通过为 GDPR 合规性实施同意弹出窗口来避免处罚。 MonetizeMore 发布商的透明度和同意框架 2.0 (TCF2.0) 合规指南

已发表: 2022-06-06
MonetizeMore 发布商的 TCF 合规指南

这篇文章最近更新于 2022 年 11 月 17 日

2020 年 10 月 15 日生效——广告提供商将支持 TCF2.0 计划,并可能停止在未检测到同意信号的网站上为欧盟用户出价。 因此,所有发布商都必须符合 TCF2.0 标准,否则预计广告收入会下降。 在此处阅读 Google 的帮助中心文章。

在此处阅读我们的常见问题解答:
https://www.monetizemore.com/blog/frequently-asked-questions-gdpr-and-eprivacy-directive/

如果您有任何硬编码代码,例如 AdSense、Ad Exchange、GAM 标头和正文或 Google Analytics,欧盟用户必须明确表示同意,然后才能提供这些收集个人信息的任何标签。

如果您使用 MonetizeMore,这里有一个关于如何将您的页面代码转换为符合 TCF2.0 标准的快速指南:

如果您仍然有此标记,请检查您的源代码:

<script src =”https://cdn.pubguru.com/pg.js” />

如果是,请禁用或删除它! 然后根据您正在运行的页面代码继续执行以下操作:

AdSense

示例原始代码(不符合 TCF2.0 标准):

<script async src=”https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js”</script>
<!– adsense_320x50 –>
<ins class=”adsbygoogle”
style=”display:inline-block;width:320px;height:50px”
data-ad-client=”ca-pub-12345″
data-ad-slot=”123″></ins>
<脚本>
(adsbygoogle = window.adsbygoogle || []).push({});
</脚本>

TCF2.0 兼容代码:

可以放在页眉或正文中(将由 MonetizeMore 提供给您):

<script src=”//m2d.m2.ai/PUBDOMAIN.js” 异步></script>

身体:

<ins class=”adsbygoogle”
style=”display:inline-block;width:320px;height:50px”
data-ad-client=”ca-pub-12345″
data-ad-slot=”123″></ins>

代码中发生了什么变化以使其合规?

AdSense TCF

AdSense 自动广告

示例原始代码(不符合 TCF2.0 标准):

<script async src=”//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js”></script>
<脚本类型=“文本/javascript”>
(adsbygoogle = window.adsbygoogle || []).push({
google_ad_client:“ca-pub-XXXXXXXXXXXXXXX”,
enable_page_level_ads : true
});
</脚本>

TCF2.0 兼容代码:

<脚本类型=“文本/javascript”>
window.pg=window.pg||[];pg.atq=pg.atq||[];
pg.atq.push(函数() {
// Google Adsense 自动广告
(adsbygoogle = window.adsbygoogle || []).push({
google_ad_client:“ca-pub-XXXXXXXXXXXXXXXX”,
enable_page_level_ads: true
});
});
</脚本>
<script src=”//m2d.m2.ai/PUBDOMAIN.js” 异步></script>

代码中发生了什么变化以使其合规?

AdSense 自动广告 TCF

广告交易

示例原始代码(不符合 TCF2.0 标准):

<脚本类型=“文本/javascript”>
google_ad_client = “ca-pub-12345”;
/* sample.com_desktop_300X250 */
google_ad_slot = “123”;
google_ad_width = 300;
google_ad_height = 250;
</脚本>
<script type=”text/javascript” src=”//pagead2.googlesyndication.com/pagead/show_ads.js”>
</脚本>

TCF2.0 兼容代码:

可以放在页眉或正文中(将由 MonetizeMore 提供给您):

<script src=”//m2d.m2.ai/PUBDOMAIN.js” 异步></script>

身体:

<ins class=”adsbygoogle”
style=”display:inline-block;width:300px;height:250px”
data-ad-client=”ca-pub-12345″
data-ad-slot=”123″></ins>

代码中发生了什么变化以使其合规?

谷歌广告管理系统

示例原始代码(不符合 TCF2.0 标准):

头:

<脚本>
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
googletag.cmd.push(函数() {

googletag.defineSlot('/55555/ad1_sample', [[728, 90], [300, 250]], 'div-gpt-ad-22222-0').addService(googletag.pubads());

googletag.defineSlot('/55555/ad2_sample', [[970, 90], [728, 90]], 'div-gpt-ad-33333-0').addService(googletag.pubads());

googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
</脚本>

身体:

<div id='div-gpt-ad-22222-0′>
<脚本>
googletag.cmd.push(function() { googletag.display('div-gpt-ad-22222-0'); });
</脚本>
</div>

<div id='div-gpt-ad-33333-0'>
<脚本>
googletag.cmd.push(function() { googletag.display('div-gpt-ad-33333-0'); });
</脚本>
</div>

TCF2.0 兼容代码:

如果发布者正在运行 Traffic Cop(块),则任何与广告相关的内容都会进入pg.atq函数。

头:

<脚本>
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
window.pg=window.pg||[];pg.atq=pg.atq||[]; // 建立同意队列
pg.atq.push(函数() {
//GAM标签
googletag.cmd.push(函数(){

googletag.defineSlot('/12345/ad1_sample', [[728, 90], [300, 250]], 'div-gpt-ad-22222-0').addService(googletag.pubads());

googletag.defineSlot('/12345/ad2_sample', [[970, 90], [728, 90]], 'div-gpt-ad-33333-0').addService(googletag.pubads());

googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
});
</脚本>
<script src=”//m2d.m2.ai/pghb.domain.com.js” 异步></script>

身体:

<div id='div-gpt-ad-22222-0′>
<脚本>
pg.atq.push(function() {window.googletag.cmd.push(function() {googletag.display('div-gpt-ad-22222-0');})});
</脚本>
</div>

<div id='div-gpt-ad-33333-0'>
<脚本>
pg.atq.push(function() {window.googletag.cmd.push(function() {googletag.display('div-gpt-ad-33333-0');})});
</脚本>
</div>

代码中发生了什么变化以使其合规?

谷歌广告管理系统 TCF2

谷歌分析

示例原始代码(不符合 TCF2.0 标准):

<!– 全局站点代码 (gtag.js) – Google Analytics –>
<script async src=”https://www.googletagmanager.com/gtag/js?id=UA-12345-1″</script>
<脚本>
窗口.dataLayer = 窗口.dataLayer || [];
函数 gtag(){dataLayer.push(参数);}
gtag('js', new Date());
gtag('配置', 'UA-12345-1');
</脚本>

TCF2.0 兼容代码:

<脚本>
window.pg=window.pg||[];pg.acq=pg.acq||[]; // 建立同意队列
pg.acq.push(函数() {
// 全局网站代码 (gtag.js)
pg.loadJS(“https://www.googletagmanager.com/gtag/js?id=UA-12345-1”);
窗口.dataLayer = 窗口.dataLayer || [];
函数 gtag(){dataLayer.push(参数);}
gtag('js', new Date());
gtag('配置', 'UA-12345-1');
});
</脚本>

代码中发生了什么变化以使其合规?

谷歌分析 TCF

GAM + 谷歌分析

TCF2.0 兼容代码:

头:
<脚本>
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
window.pg=window.pg||[];pg.acq=pg.acq||[];
pg.acq.push(函数() {
//GAM标签
googletag.cmd.push(函数(){
googletag.defineSlot('/55555/sample_ad1', [[728, 90], [300, 250]], 'div-gpt-ad-22222-0').addService(googletag.pubads());

googletag.pubads().enableSingleRequest();
googletag.enableServices();
});

//谷歌分析
pg.loadJS(“https://www.googletagmanager.com/gtag/js?id=UA-147580335-1”); 窗口.dataLayer = 窗口.dataLayer || [];
函数 gtag(){dataLayer.push(参数);}
gtag('js', new Date());
gtag('配置', 'UA-147580335-1');
});
</脚本>
<script src=”//m2d.m2.ai/PUBDOMAIN.js” 异步></script>

身体:
<div id='div-gpt-ad-22222-0′>
<脚本>
pg.acq.push(function() {window.googletag.cmd.push(function() {googletag.display('div-gpt-ad-22222-0');})});
</脚本>
<分区>

Google Analytics、Facebook Pixels 或任何用户跟踪代码都需要在所有情况下进入pg.acq函数,无论发布者是否运行 TC。

如何正确测试 PubGuru DataGuard:

https://www.monetizemore.com/blog/how-properly-test-pubguru-dataguard-gdpr-consent-management/