หลีกเลี่ยงบทลงโทษโดยใช้ป๊อปอัปยินยอมสำหรับการปฏิบัติตาม GDPR คู่มือการปฏิบัติตามกรอบความโปร่งใสและความยินยอม 2.0 (TCF2.0) สำหรับผู้เผยแพร่โฆษณาที่สร้างรายได้
เผยแพร่แล้ว: 2022-06-06โพสต์นี้ได้รับการอัปเดตล่าสุดเมื่อวันที่ 17 พฤศจิกายน 2022
มีผลตั้งแต่วันที่ 15 ตุลาคม 2020 – ผู้ให้บริการโฆษณาจะสนับสนุนความคิดริเริ่ม TCF2.0 และสามารถหยุดการเสนอราคาสำหรับผู้ใช้ในสหภาพยุโรปบนไซต์ที่ตรวจไม่พบสัญญาณขอความยินยอม ดังนั้น ผู้เผยแพร่ทั้งหมดต้องปฏิบัติตาม TCF2.0 มิฉะนั้นคาดว่ารายได้จากโฆษณาจะลดลง อ่านบทความในศูนย์ช่วยเหลือของ Google ที่นี่
อ่านคำถามที่พบบ่อยของเราที่นี่:
https://www.monetizemore.com/blog/frequently-asked-questions-gdpr-and-eprivacy-directive/
หากคุณมีฮาร์ดโค้ดใดๆ เช่น AdSense, Ad Exchange, ส่วนหัวและเนื้อหาของ GAM หรือ Google Analytics ผู้ใช้ EU จะต้องให้ความยินยอมอย่างชัดแจ้งก่อนที่แท็กใดๆ เหล่านี้ซึ่งรวบรวมข้อมูลส่วนบุคคลจะสามารถแสดงได้
หากคุณทำงานร่วมกับ MonetizeMore ต่อไปนี้เป็นคำแนะนำโดยย่อเกี่ยวกับวิธีแปลงโค้ดบนหน้าเว็บให้เป็นไปตาม TCF2.0:
ตรวจสอบซอร์สโค้ดของคุณหากคุณยังมีแท็กนี้:
<สคริปต์ src =”https://cdn.pubguru.com/pg.js” />
ถ้าใช่ ปิดการใช้งานหรือลบออก! จากนั้นดำเนินการด้านล่างโดยขึ้นอยู่กับว่าคุณกำลังเรียกใช้โค้ดบนหน้าเว็บใด:
โฆษณา
ตัวอย่างโค้ดดิบ (ไม่เป็นไปตามข้อกำหนด 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({});
</script>
รหัสที่สอดคล้องกับ TCF2.0:
สามารถไปได้ทั้งในส่วนหัวหรือเนื้อหา (จะให้คุณโดย MonetizeMore):
<script src=”//m2d.m2.ai/PUBDOMAIN.js” async></script>
ร่างกาย:
<ins class=”adsbygoogle”
style="display:inline-block;width:320px;height:50px"
data-ad-client =”ca-pub-12345″
data-ad-slot=”123″></ins>
มีการเปลี่ยนแปลงอะไรในรหัสเพื่อให้สอดคล้อง?
โฆษณาอัตโนมัติของ AdSense
ตัวอย่างโค้ดดิบ (ไม่เป็นไปตามข้อกำหนด TCF2.0):
<script async src=”//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js”></script>
<ประเภทสคริปต์=”ข้อความ/จาวาสคริปต์”>
(adsbygoogle = window.adsbygoogle || []).push({
google_ad_client : “ca-pub-XXXXXXXXXXXXXXX”
enable_page_level_ads : จริง
});
</script>
รหัสที่สอดคล้องกับ TCF2.0:
<ประเภทสคริปต์=”ข้อความ/จาวาสคริปต์”>
window.pg=window.pg||[];pg.atq=pg.atq||[];
pg.atq.push (ฟังก์ชัน () {
// โฆษณา Google Adsense อัตโนมัติ
(adsbygoogle = window.adsbygoogle || []).push({
google_ad_client: “ca-pub-XXXXXXXXXXXXXXXXXX”
enable_page_level_ads: จริง
});
});
</script>
<script src=”//m2d.m2.ai/PUBDOMAIN.js” async></script>
มีการเปลี่ยนแปลงอะไรในรหัสเพื่อให้สอดคล้อง?
การแลกเปลี่ยนโฆษณา
ตัวอย่างโค้ดดิบ (ไม่เป็นไปตามข้อกำหนด TCF2.0):
<ประเภทสคริปต์=”ข้อความ/จาวาสคริปต์”>
google_ad_client = “ca-pub-12345”;
/*sample.com_desktop_300X250 */
google_ad_slot = “123”;
google_ad_width = 300;
google_ad_height = 250;
</script>
<script type=”text/javascript” src=”//pagead2.googlesyndication.com/pagead/show_ads.js”>
</script>
รหัสที่สอดคล้องกับ TCF2.0:
สามารถไปได้ทั้งในส่วนหัวหรือเนื้อหา (จะให้คุณโดย MonetizeMore):
<script src=”//m2d.m2.ai/PUBDOMAIN.js” async></script>
ร่างกาย:
<ins class=”adsbygoogle”
style="display:inline-block;width:300px;height:250px"
data-ad-client =”ca-pub-12345″
data-ad-slot=”123″></ins>
มีการเปลี่ยนแปลงอะไรในรหัสเพื่อให้สอดคล้อง?
Google Ad Manager
ตัวอย่างโค้ดดิบ (ไม่เป็นไปตามข้อกำหนด TCF2.0):
ศีรษะ:
<สคริปต์>
var googletag = googleแท็ก || {};
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();
});
</script>
ร่างกาย:
<div id='div-gpt-ad-22222-0′>
<สคริปต์>
googletag.cmd.push (ฟังก์ชัน () { googletag.display ('div-gpt-ad-22222-0'); });
</script>
</div>
<div id='div-gpt-ad-33333-0′>
<สคริปต์>
googletag.cmd.push (ฟังก์ชัน () { googletag.display ('div-gpt-ad-33333-0'); });
</script>
</div>
รหัสที่สอดคล้องกับ TCF2.0:
สิ่งใดก็ตามที่เกี่ยวข้องกับโฆษณาจะเข้าสู่ฟังก์ชัน pg.atq หากผู้เผยแพร่เรียกใช้ Traffic Cop (บล็อก)
ศีรษะ:
<สคริปต์>
var googletag = googleแท็ก || {};
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>
<script src=”//m2d.m2.ai/pghb.domain.com.js” async></script>
ร่างกาย:
<div id='div-gpt-ad-22222-0′>
<สคริปต์>
pg.atq.push(ฟังก์ชัน() {window.googletag.cmd.push(ฟังก์ชัน() {googletag.display('div-gpt-ad-22222-0');})});
</script>
</div>
<div id='div-gpt-ad-33333-0′>
<สคริปต์>
pg.atq.push(ฟังก์ชัน() {window.googletag.cmd.push(ฟังก์ชัน() {googletag.display('div-gpt-ad-33333-0');})});
</script>
</div>
มีการเปลี่ยนแปลงอะไรในรหัสเพื่อให้สอดคล้อง?
Google Analytics
ตัวอย่างโค้ดดิบ (ไม่เป็นไปตามข้อกำหนด TCF2.0):
<!– แท็กที่ติดทั่วเว็บไซต์ (gtag.js) – Google Analytics –>
<script async src=”https://www.googletagmanager.com/gtag/js?id=UA-12345-1″</script>
<สคริปต์>
window.dataLayer = window.dataLayer || [];
ฟังก์ชัน gtag(){dataLayer.push(อาร์กิวเมนต์);}
gtag('js', วันที่ใหม่());
gtag('config', 'UA-12345-1');
</script>
รหัสที่สอดคล้องกับ 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”);
window.dataLayer = window.dataLayer || [];
ฟังก์ชัน gtag(){dataLayer.push(อาร์กิวเมนต์);}
gtag('js', วันที่ใหม่());
gtag('config', 'UA-12345-1');
});
</script>
มีการเปลี่ยนแปลงอะไรในรหัสเพื่อให้สอดคล้อง?
GAM + Google Analytics
รหัสที่สอดคล้องกับ TCF2.0:
ศีรษะ:
<สคริปต์>
var googletag = googleแท็ก || {};
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();
});
// Google Analytics
pg.loadJS(“https://www.googletagmanager.com/gtag/js?id=UA-147580335-1″); window.dataLayer = window.dataLayer || [];
ฟังก์ชัน gtag(){dataLayer.push(อาร์กิวเมนต์);}
gtag('js', วันที่ใหม่());
gtag('config', 'UA-147580335-1');
});
</script>
<script src=”//m2d.m2.ai/PUBDOMAIN.js” async></script>
ร่างกาย:
<div id='div-gpt-ad-22222-0′>
<สคริปต์>
pg.acq.push(ฟังก์ชัน() {window.googletag.cmd.push(ฟังก์ชัน() {googletag.display('div-gpt-ad-22222-0');})});
</script>
<div>
Google Analytics, Facebook Pixels หรือโค้ดติดตามผู้ใช้ใดๆ จำเป็นต้องเข้าไปอยู่ในฟังก์ชัน pg.acq ในทุกสถานการณ์ ไม่ว่าผู้เผยแพร่จะใช้ TC หรือไม่ก็ตาม
วิธีทดสอบ PubGuru DataGuard อย่างถูกต้อง:
https://www.monetizemore.com/blog/how-properly-test-pubguru-dataguard-gdpr-consent-management/