Unikaj kar, wdrażając wyskakujące okienko zgody na zgodność z RODO. Przewodnik zgodności z zasadami Transparency and Consent Framework 2.0 (TCF2.0) dla wydawców MonetizeMore

Opublikowany: 2020-10-12
Przewodnik zgodności z TCF dla wydawców MonetizeMore

Ten post został ostatnio zaktualizowany 18 listopada 2022 r

Od 15 października 2020 r. — dostawcy reklam będą wspierać inicjatywę TCF2.0 i mogą przestać licytować użytkowników z UE w witrynach, w których nie są wykrywane sygnały zgody. Dlatego wszyscy wydawcy muszą być zgodni z TCF2.0 lub spodziewać się spadku przychodów z reklam. Przeczytaj artykuł w Centrum pomocy Google tutaj.

Przeczytaj nasze często zadawane pytania tutaj:
https://www.monetizemore.com/blog/frequently-asked-questions-gdpr-and-eprivacy-directive/

Jeśli masz zakodowane na stałe kody, takie jak AdSense, Ad Exchange, nagłówek i treść GAM lub Google Analytics, użytkownicy z UE muszą wyraźnie wyrazić zgodę, zanim którykolwiek z tych tagów zbierających dane osobowe będzie mógł zostać wyświetlony.

Jeśli pracujesz z MonetizeMore, oto krótki przewodnik, w jaki sposób możesz przekonwertować kody na stronie, aby były zgodne z TCF2.0:

Wszystko, co jest związane z reklamami, trafia do funkcji pg.atq .

Google Analytics, piksele Facebooka lub dowolny kod śledzenia użytkownika muszą wejść do funkcji pg.acq we wszystkich scenariuszach, niezależnie od tego, czy wydawca korzysta z TC, czy nie.

Sprawdź swój kod źródłowy, jeśli nadal masz ten tag:

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

Jeśli tak, wyłącz go lub usuń! Następnie wykonaj poniższe czynności w zależności od używanych kodów onpage:

AdSense

Przykładowy surowy kod (niezgodny z TCF2.0):

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"</script>
<!– adsense_320x50 –>
<ins class="adsbygoogle"
style = „wyświetlanie: blok w tekście; szerokość: 320 pikseli; wysokość: 50 pikseli”
data-ad-client=”ca-pub-12345″
data-ad-slot=”123″></ins>
<skrypt>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>

Kod zgodny z TCF2.0:

Może przejść do nagłówka lub treści (dostaniesz od MonetizeMore):

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

Ciało:

<ins class="adsbygoogle"
style = „wyświetlanie: blok w tekście; szerokość: 320 pikseli; wysokość: 50 pikseli”
data-ad-client=”ca-pub-12345″
data-ad-slot=”123″></ins>

Co zmieniono w kodzie, aby był zgodny?

TCF AdSense

Automatyczne reklamy AdSense

Przykładowy surowy kod (niezgodny z TCF2.0):

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<typ skryptu=”tekst/javascript”>
(adsbygoogle = window.adsbygoogle || []).push({
google_ad_client : „ca-pub-XXXXXXXXXXXXXXX”,
enable_page_level_ads : prawda
});
</script>

Kod zgodny z TCF2.0:

<typ skryptu=”tekst/javascript”>
okno.pg=okno.pg||[];pg.atq=pg.atq||[];
pg.atq.push(funkcja() {
// Automatyczne reklamy Google Adsense
(adsbygoogle = window.adsbygoogle || []).push({
google_ad_client: „ca-pub-XXXXXXXXXXXXXXX”,
enable_page_level_ads: prawda
});
});
</script>
<script src=”//m2d.m2.ai/PUBDOMAIN.js” async></script>

Co zmieniono w kodzie, aby był zgodny?

Automatyczne reklamy AdSense TCF

Giełda reklam

Przykładowy surowy kod (niezgodny z TCF2.0):

<typ skryptu=”tekst/javascript”>
google_ad_client = „ca-pub-12345”;
/* próbka.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>

Kod zgodny z TCF2.0:

Może przejść do nagłówka lub treści (dostaniesz od MonetizeMore):

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

Ciało:

<ins class="adsbygoogle"
style = „wyświetlanie: blok wbudowany; szerokość: 300 pikseli; wysokość: 250 pikseli”
data-ad-client=”ca-pub-12345″
data-ad-slot=”123″></ins>

Co zmieniono w kodzie, aby był zgodny?

Menedżer reklam Google

Przykładowy surowy kod (niezgodny z TCF2.0):

Głowa:

<skrypt>
var tag google = tag google || {};
tag google.cmd = tag google.cmd || [];
googletag.cmd.push(funkcja() {

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>

Ciało:

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

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

Kod zgodny z TCF2.0:

Głowa:

<skrypt>
var tag google = tag google || {};
tag google.cmd = tag google.cmd || [];
okno.pg=okno.pg||[];pg.atq=pg.atq||[]; // zbuduj kolejkę zgody
pg.atq.push(funkcja() {
//Tag GAM
googletag.cmd.push(funkcja () {

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>

Ciało:

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

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

Co zmieniono w kodzie, aby był zgodny?

Menedżer reklam Google TCF2

Google Analytics

Przykładowy surowy kod (niezgodny z TCF2.0):

<!– Globalny tag witryny (gtag.js) – Google Analytics –>
<script async src=”https://www.googletagmanager.com/gtag/js?id=UA-12345-1″</script>
<skrypt>
window.dataLayer = window.dataLayer || [];
funkcja gtag(){dataLayer.push(argumenty);}
gtag('js', nowa data());
gtag('konfiguracja', 'UA-12345-1');
</script>

Kod zgodny z TCF2.0:

<skrypt>
okno.pg=okno.pg||[];pg.acq=pg.acq||[]; // zbuduj kolejkę zgody
pg.acq.push(funkcja() {
// Globalny tag witryny (gtag.js)
pg.loadJS("https://www.googletagmanager.com/gtag/js?id=UA-12345-1");
window.dataLayer = window.dataLayer || [];
funkcja gtag(){dataLayer.push(argumenty);}
gtag('js', nowa data());
gtag('konfiguracja', 'UA-12345-1');
});
</script>

Co zmieniono w kodzie, aby był zgodny?

Google Analytics TCF

GAM + Google Analytics

Kod zgodny z TCF2.0:

Głowa:
<skrypt>
var tag google = tag google || {};
tag google.cmd = tag google.cmd || [];
okno.pg=okno.pg||[];pg.acq=pg.acq||[];
pg.acq.push(funkcja() {
//Tag GAM
googletag.cmd.push(funkcja () {
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 || [];
funkcja gtag(){dataLayer.push(argumenty);}
gtag('js', nowa data());
gtag('config', 'UA-147580335-1');
});
</script>
<script src=”//m2d.m2.ai/PUBDOMAIN.js” async></script>

Ciało:
<div id='div-gpt-ad-22222-0′>
<skrypt>
pg.acq.push(function() {window.googletag.cmd.push(function() {googletag.display('div-gpt-ad-22222-0');})});
</script>
<dział>

Jak poprawnie przetestować PubGuru DataGuard:

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