Riportiamo di seguito la procedura originale che prevede l’inclusione di due tag script:
<script>
google_ad_client = "ca-pub-00000000";
google_ad_slot = "XXXXXXXXXX";
google_ad_width = 728;
google_ad_height = 90;
</script>
<script src="//pagead2.googlesyndication.com/pagead/show_ads.js"></script>
Per evitare che i banner Google AdSense registrino cookie prima del consenso è necessario apportare queste modifiche:
Definire la funzione iubenda_adsense_unblock
associandola alla callback onConsentGiven
:
<script>
function iubenda_adsense_unblock() {
var t = 1;
$('._iub_cs_activate_google_ads').each(function() {
var banner = $(this);
setTimeout(function() {
var client = banner.data('client');
var slot = banner.data('slot');
var width = banner.data('width');
var height = banner.data('height');
var adsense_script = '<scr' + 'ipt type="text/javascript">\n' +
'google_ad_client = "' + client + '";\n' +
'google_ad_slot = "' + slot + '";\n' +
'google_ad_width = ' + width + ';\n' +
'google_ad_height = ' + height + ';\n' +
'</scr' + 'ipt>';
var script = document.createElement('script');
var ads = document.createElement('ads');
var w = document.write;
// override and replace with our version
document.write = (function(params) {
// replace our placeholder with real ads
ads.innerHTML = params;
// put the old implementation back in place
// Aristos, add this check because called more than ones
// and ends, with this symbol.
if (params.indexOf("</ins>") != -1)
document.write = w;
});
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', 'http://pagead2.googlesyndication.com/pagead/show_ads.js');
script.setAttribute('async', 'async');
banner.html(adsense_script).append(ads).append(script);
}, t);
t += 200;
});
}
if ('callback' in _iub.csConfiguration) {
_iub.csConfiguration.callback.onConsentGiven = iubenda_adsense_unblock;
} else {
_iub.csConfiguration.callback = {};
_iub.csConfiguration.callback.onConsentGiven = iubenda_adsense_unblock;
}
</script>
È consigliabile inserire il codice appena riportato subito dopo la configurazione della iubenda Privacy Controls and Cookie Solution.
Creare un tag div per ogni banner, trasponendo i parametri su attributi di tipo data-
e inserendoci la classe _iub_cs_activate_google_ads
:
<div style="width: 728px; height:90px;" class="_iub_cs_activate_google_ads"
data-client="ca-pub-00000000"
data-slot="XXXXXXXXXX"
data-width="728"
data-height="90">
</div>
Affinché Google Ad Manager (evoluzione di DFP, DoubleClick for Publishers) possa installare cookie solo dopo la raccolta del consenso dell’utente, bisogna adottare il metodo descritto in questo articolo per far sì che la iubenda Privacy Controls and Cookie Solution possa interagire con Google Ad Manager, in particolare bloccandone il tracciamento quando il cookie di preferenza di iubenda non è presente nel browser dell’utente.
Inclusione dello script Google Ad Manager:
<script async src="//securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
<script>var googletag = window.googletag || {cmd: []};</script>
<script>
googletag.cmd.push(function() {
googletag.pubads().set("adsense_background_color", "FFFFFF");
});
</script>
<script>
googletag.cmd.push(function() {
googletag.defineSlot('/1010125/Prontoimprese/Ros/300x250Top-ProntoImprese-Ros', [
[300, 250],
[300, 600]
], 'div-gpt-ad-1330418177496-1').addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
</script>
I singoli banner Google Ad Manager:
<div id="div-gpt-ad-1330418177496-1">
<script>
googletag.cmd.push(function() {
googletag.display("div-gpt-ad-1330418177496-1");
});
</script>
</div>
Aggiungi la classe _iub_cs_activate
e l’attributo data-iub-purposes="5"
(necessario per il consenso per categoria) agli script di Google Ad Manager:
<script async type="text/plain" class="_iub_cs_activate" data-iub-purposes="5" src="//securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
<script>var googletag = window.googletag || {cmd: []};</script>
<script type="text/plain" class="_iub_cs_activate" data-iub-purposes="5">
googletag.cmd.push(function () {
googletag.pubads().set("adsense_background_color", "FFFFFF");
});
</script>
<script type="text/plain" class="_iub_cs_activate" data-iub-purposes="5">
googletag.cmd.push(function() {
googletag.defineSlot('/1010125/Prontoimprese/Ros/300x250Top-ProntoImprese-Ros', [[300, 250], [300, 600]], 'div-gpt-ad-1330418177496-1').addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
</script>
Aggiungi ad ogni banner Google Ad Manager la classe _iub_cs_activate-inline
e l’attributo data-iub-purposes="5"
:
<div id="div-gpt-ad-1330418177496-1" style="width: 728px; height: 90px">
<script type="text/plain" class="_iub_cs_activate-inline" data-iub-purposes="5">
googletag.cmd.push(function () {
googletag.display("div-gpt-ad-1330418177496-1");
});
</script>
</div>