Évitez les pénalités en mettant en place une fenêtre contextuelle de consentement pour la conformité au RGPD. Guide de conformité Transparency and Consent Framework 2.0 (TCF2.0) pour les éditeurs MonetizeMore

Publié: 2020-10-12
Guide de conformité au TCF pour les éditeurs MonetizeMore

Ce message a été mis à jour pour la dernière fois le 18 novembre 2022

À compter du 15 octobre 2020 - Les fournisseurs de publicité prendront en charge l'initiative TCF2.0 et pourraient cesser d'enchérir pour les utilisateurs de l'UE sur les sites où les signaux de consentement ne sont pas détectés. Par conséquent, tous les éditeurs doivent être conformes au TCF2.0 ou s'attendre à une baisse des revenus publicitaires. Lisez l'article du centre d'aide de Google ici.

Lisez notre FAQ ici :
https://www.monetizemore.com/blog/frequently-asked-questions-gdpr-and-eprivacy-directive/

Si vous avez des codes codés en dur comme AdSense, Ad Exchange, l'en-tête et le corps GAM ou Google Analytics, les utilisateurs de l'UE doivent explicitement donner leur consentement avant que l'une de ces balises, qui collectent des informations personnelles, puisse être utilisée.

Si vous travaillez avec MonetizeMore, voici un guide rapide sur la façon dont vous pouvez convertir vos codes sur la page pour qu'ils soient conformes au TCF2.0 :

Tout ce qui est lié à la publicité va dans la fonction pg.atq .

Google Analytics, Facebook Pixels ou tout code de suivi d'utilisateur doivent entrer dans la fonction pg.acq dans tous les scénarios, que l'éditeur exécute TC ou non.

Vérifiez votre code source si vous avez toujours cette balise :

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

Si oui, désactivez-le ou supprimez-le ! Procédez ensuite ci-dessous en fonction des codes de page que vous utilisez :

AdSense

Exemple de code brut (non conforme au 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>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>

Code conforme TCF2.0 :

Peut aller soit dans l'en-tête, soit dans le corps (vous sera fourni par MonetizeMore) :

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

Corps:

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

Qu'est-ce qui a changé dans le code pour le rendre conforme ?

FCT AdSense

Annonces automatiques AdSense

Exemple de code brut (non conforme au TCF2.0) :

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<type de script="texte/javascript">
(adsbygoogle = window.adsbygoogle || []).push({
google_ad_client : "ca-pub-XXXXXXXXXXXXXXX",
enable_page_level_ads : vrai
});
</script>

Code conforme TCF2.0 :

<type de script="texte/javascript">
window.pg=window.pg||[];pg.atq=pg.atq||[];
pg.atq.push(fonction() {
// Annonces automatiques Google Adsense
(adsbygoogle = window.adsbygoogle || []).push({
google_ad_client : "ca-pub-XXXXXXXXXXXXXXXX",
enable_page_level_ads : vrai
});
});
</script>
<script src="//m2d.m2.ai/PUBDOMAIN.js" async></script>

Qu'est-ce qui a changé dans le code pour le rendre conforme ?

TCF des annonces automatiques AdSense

Échange d'annonces

Exemple de code brut (non conforme au TCF2.0) :

<type de script="texte/javascript">
google_ad_client = "ca-pub-12345" ;
/* exemple.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>

Code conforme TCF2.0 :

Peut aller soit dans l'en-tête, soit dans le corps (vous sera fourni par MonetizeMore) :

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

Corps:

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

Qu'est-ce qui a changé dans le code pour le rendre conforme ?

Gestionnaire d'annonces Google

Exemple de code brut (non conforme au TCF2.0) :

Diriger:

<script>
var googletag = googletag || {} ;
googletag.cmd = googletag.cmd || [] ;
googletag.cmd.push(fonction() {

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>

Corps:

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

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

Code conforme TCF2.0 :

Diriger:

<script>
var googletag = googletag || {} ;
googletag.cmd = googletag.cmd || [] ;
window.pg=window.pg||[];pg.atq=pg.atq||[]; // crée une file d'attente de consentement
pg.atq.push(fonction() {
//Balise GAM
googletag.cmd.push(fonction () {

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>

Corps:

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

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

Qu'est-ce qui a changé dans le code pour le rendre conforme ?

FCT 2 du gestionnaire d'annonces Google

Google Analytics

Exemple de code brut (non conforme au TCF2.0) :

<!– Global site tag (gtag.js) – Google Analytics –>
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-12345-1″</script>
<script>
window.dataLayer = fenêtre.dataLayer || [] ;
fonction gtag(){dataLayer.push(arguments);}
gtag('js', nouvelle Date());
gtag('config', 'UA-12345-1');
</script>

Code conforme TCF2.0 :

<script>
window.pg=window.pg||[];pg.acq=pg.acq||[]; // crée une file d'attente de consentement
pg.acq.push(fonction() {
// Balise globale du site (gtag.js)
pg.loadJS("https://www.googletagmanager.com/gtag/js?id=UA-12345-1");
window.dataLayer = fenêtre.dataLayer || [] ;
fonction gtag(){dataLayer.push(arguments);}
gtag('js', nouvelle Date());
gtag('config', 'UA-12345-1');
});
</script>

Qu'est-ce qui a changé dans le code pour le rendre conforme ?

google analytics TCF

GAM + Google Analytics

Code conforme TCF2.0 :

Diriger:
<script>
var googletag = googletag || {} ;
googletag.cmd = googletag.cmd || [] ;
window.pg=window.pg||[];pg.acq=pg.acq||[];
pg.acq.push(fonction() {
//Balise GAM
googletag.cmd.push(fonction () {
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 = fenêtre.dataLayer || [] ;
fonction gtag(){dataLayer.push(arguments);}
gtag('js', nouvelle Date());
gtag('config', 'UA-147580335-1');
});
</script>
<script src="//m2d.m2.ai/PUBDOMAIN.js" async></script>

Corps:
<div id='div-gpt-ad-22222-0′>
<script>
pg.acq.push(fonction() {window.googletag.cmd.push(fonction() {googletag.display('div-gpt-ad-22222-0');})});
</script>
<div>

Comment tester correctement PubGuru DataGuard :

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