Compliant with GDPR, CCPA, COPPA, LGPD, PECR, PDPA, PIPEDA, and more.
Aggiungi un tag script con la tua chiave di licenza su ogni pagina, il più in alto possibile nel <head>. Il tag imposta lo stato predefinito di Google Consent Mode, definisce subito unicReady e unicUpdate e poi carica la CMP completa in background.
<script src="https://cmp.uniconsent.com/v2/cmp.js" data-license="YOUR_LICENSE"></script>
Trovi la tua chiave di licenza nella sezione Install & Setup.
cmp.js descritti di seguito. Non aggiungerli di nuovo.wait_for_update di 3 secondi. Se imposti i tuoi valori predefiniti di Consent Mode, inseriscili dopo il tag, altrimenti verranno sovrascritti.unicReady e unicUpdate per eseguire il tuo codice quando il consenso è definitivo. Consulta la Consent Ready API.Hai già installato UniConsent con il classico tag in due parti? Continua a funzionare. Consulta la sezione Configurazione del tag classico in fondo a questa pagina.
Puoi disabilitare il "badge della privacy" e aggiungere il seguente link alla tua pagina.
<a href="#" onclick='__unicapi("openunic");return false;'>Consent Settings</a>
Puoi indicare un DIV delle tue pagine web con un selettore CSS: UniConsent inserisce automaticamente il link alle impostazioni del consenso all'interno del DIV in base alla geolocalizzazione e alle funzionalità abilitate.
<div id="uniconsent-config"></div>
Puoi inserire il seguente DIV segnaposto nel footer delle tue pagine web: UniConsent inserisce automaticamente il link alle impostazioni del consenso all'interno del segnaposto in base alla geolocalizzazione e alle funzionalità abilitate.
<div id="uniconsent-config"></div>
Trovi la chiave di licenza nella sezione Install & Setup.
Evita il lazy load dei tag della CMP:
Devi aggiungere data-nowprocket a tutti gli script:
<script data-nowprocket data-cfasync="false" src="https://cmp.uniconsent.com/v2/cmp.js" data-license="YOUR_LICENSE"></script>
Devi anche escludere il JavaScript inline dalla combinazione:
cmp.uniconsent.com.Se ti serve la WP Consent API, aggiungi il seguente tag alle pagine:
<script data-nowprocket data-cfasync="false" async src="http://cmp.uniconsent.com/v2/wp-consent-api.min.js"></script>
Scopri di più su Come abilitare la WP Consent API.
Devi aggiungere data-cfasync="false" agli script:
<script data-nowprocket data-cfasync="false" src="https://cmp.uniconsent.com/v2/cmp.js" data-license="YOUR_LICENSE"></script>
Trovi le istruzioni su come installare UniConsent tramite Google Tag Manager all'indirizzo https://www.uniconsent.com/docs/tutorials/gtm-integration.
Aggiungi i seguenti tag in cima alle pagine, nel <head> prima del tag di UniConsent. Consentono al browser di risolvere il DNS e aprire in anticipo la connessione a cmp.uniconsent.com, così lo script della CMP inizia a essere scaricato prima e il banner di consenso compare più rapidamente.
<link rel='dns-prefetch' href='//cmp.uniconsent.com' />
<link rel="preconnect" href="https://cmp.uniconsent.com" crossorigin>
Se distribuisci la CMP da un dominio CMP di prima parte, usa il tuo dominio personalizzato al posto di cmp.uniconsent.com.
Il tag singolo viene caricato senza async di proposito. Viene eseguito prima di qualsiasi altra cosa nella pagina, in modo che lo stato predefinito di Google Consent Mode, gli stub IAB TCF, USP e GPP e le funzioni unicReady e unicUpdate siano tutti disponibili prima dell'esecuzione dei tuoi tag Google, dei tag pubblicitari o del tuo codice. Il tag in sé è piccolo e memorizzato nella cache, e la CMP completa viene caricata in background, quindi l'impatto sul caricamento della pagina è minimo. In combinazione con i tag di preconnessione sopra indicati, ciò garantisce la visualizzazione più rapida del banner senza il rischio che i tag vengano attivati prima dell'impostazione dei valori predefiniti del consenso.
Puoi aggiungere async al tag. Tieni presente quanto segue:
unicReady e unicUpdate potrebbero non esistere ancora. Aggiungi le due righe di protezione con coda mostrate di seguito, in modo che le chiamate effettuate in anticipo vengano rieseguite una volta caricato il tag.unicReady.async, __tcfapi potrebbe non esistere ancora quando i tuoi tag pubblicitari o Prebid lo chiamano. Aggiungi il tag stub prima dei tag pubblicitari, oppure caricali da una callback unicReady.<script async src="https://cmp.uniconsent.com/v2/cmp.js" data-license="YOUR_LICENSE"></script>
<script>
window.unicReady = window.unicReady || function (cb) { (window.unicReady.q = window.unicReady.q || []).push(cb); };
window.unicUpdate = window.unicUpdate || function (cb) { (window.unicUpdate.q = window.unicUpdate.q || []).push(cb); };
unicReady(function (status) {
// consent is final: load your tags here
});
unicUpdate(function (status) {
// every consent change
});
</script>
Puoi anche ascoltare gli eventi DOM unic:ready e unic:update su window, registrandoli prima del tag. Consulta la Consent Ready API per l'oggetto di stato e tutti i dettagli.
Se vuoi integrare i tuoi tag JavaScript di terze parti, vai alla sezione Integrazione di tag JavaScript di terze parti.
Puoi monitorare la console per sviluppatori alla ricerca di messaggi di avviso oppure usare lo UniConsent Consent Validator per assicurarti che i dati di Consent Mode, IAB TCF e IAB GPP siano disponibili e vengano trasmessi correttamente nelle tue pagine web.
Controlla regolarmente lo stato della verifica dell'implementazione nella tua dashboard.
Questa sezione si applica ai siti web che hanno installato UniConsent prima che fosse disponibile il tag singolo. Il classico tag in due parti continua a funzionare e non è necessario migrare. Per passare al nuovo tag, rimuovi tutti i tag indicati di seguito e aggiungi il tag singolo descritto all'inizio di questa pagina.
Ciascuno dei tuoi siti web ha un tag JavaScript univoco da installare su ogni pagina.
Trovi il tag di UniConsent nella sezione Install & Setup.
Il tag è composto da due parti. La prima parte è uno stub che deve essere incorporato in cima alla pagina. La seconda parte può essere caricata con async. L'impatto sulle prestazioni del sito è minimo.
Puoi anche scegliere di caricare il codice stub con il seguente tag JavaScript:
<script src="https://cmp.uniconsent.com/v2/stub.min.js"></script>
Per migliorare la velocità della pagina, puoi anche sostituire il codice seguente con il tag stub indicato sopra:
<script type="text/javascript">
!function(){var e,t,a;e="__tcfapiLocator",t=[],(a=window.frames[e])||(function t(){var n=window.document,i=!!a;if(!i)if(n.body){var o=n.createElement("iframe");o.style.cssText="display:none",o.name=e,n.body.appendChild(o)}else setTimeout(t,50);return!i}(),window.__tcfapi=function(){for(var e,a=[],n=0;n<arguments.length;n++)a[n]=arguments[n];if(!a.length)return t;if("setGdprApplies"===a[0])a.length>3&&2===parseInt(a[1],10)&&"boolean"==typeof a[3]&&(e=a[3],"function"==typeof a[2]&&a[2]("set",!0));else if("ping"===a[0]){var i={gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"};"function"==typeof a[2]&&a[2](i,!0)}else t.push(a)},window.addEventListener("message",(function(e){var t="string"==typeof e.data,a={};try{a=t?JSON.parse(e.data):e.data}catch(e){}var n=a.__tcfapiCall;if(n)try{window.__tcfapi(n.command,n.version,(function(a,i){var o={__tcfapiReturn:{returnValue:a,success:i,callId:n.callId}};t&&(o=JSON.stringify(o)),e.source&&"function"==typeof e.source.postMessage&&e.source.postMessage(o,"*")}),n.parameter)}catch(e){}}),!1))}();
!function(){var e,a,t;e="__uspapiLocator",a=[],(t=window.frames[e])||(function a(){var n=window.document,s=!!t;if(!t)if(n.body){var i=n.createElement("iframe");i.style.cssText="display:none",i.name=e,n.body.appendChild(i)}else setTimeout(a,50);return!s}(),window.__uspapi=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(!e.length)return a;"ping"===e[0]?"function"==typeof e[2]&&e[2]({cmpLoaded:!1,cmpStatus:"stub"},!0):a.push(e)},window.addEventListener("message",(function(e){var a="string"==typeof e.data,t={};try{t=a?JSON.parse(e.data):e.data}catch(e){}var n=t&&t.__uspapiCall;if(n)try{window.__uspapi(n.command,n.version,(function(t,s){var i={__uspapiReturn:{returnValue:t,success:s,callId:n.callId}};a&&(i=JSON.stringify(i)),e.source&&"function"==typeof e.source.postMessage&&e.source.postMessage(i,"*")}),n.parameter)}catch(e){}}),!1))}();
window.__gpp_addFrame=function(e){if(!window.frames[e])if(document.body){var t=document.createElement("iframe");t.style.cssText="display:none",t.name=e,document.body.appendChild(t)}else window.setTimeout(window.__gpp_addFrame,50,e)},window.__gpp_stub=function(){var e=arguments;if(__gpp.queue=__gpp.queue||[],__gpp.events=__gpp.events||[],!e.length||1==e.length&&"queue"==e[0])return __gpp.queue;if(1==e.length&&"events"==e[0])return __gpp.events;var t=e[0],p=e.length>1?e[1]:null,s=e.length>2?e[2]:null;if("ping"===t)p&&p({gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnatv1","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[-1],gppString:"",parsedSections:{}},!0);else if("addEventListener"===t){"lastId"in __gpp||(__gpp.lastId=0),__gpp.lastId++;var n=__gpp.lastId;__gpp.events.push({id:n,callback:p,parameter:s}),p({eventName:"listenerRegistered",listenerId:n,data:!0,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnatv1","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[-1],gppString:"",parsedSections:{}}},!0)}else if("removeEventListener"===t){for(var a=!1,i=0;i<__gpp.events.length;i++)if(__gpp.events[i].id==s){__gpp.events.splice(i,1),a=!0;break}p({eventName:"listenerRemoved",listenerId:s,data:a,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnatv1","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[-1],gppString:"",parsedSections:{}}},!0)}else"hasSection"===t?p(!1,!0):"getSection"===t||"getField"===t?p(null,!0):__gpp.queue.push([].slice.apply(e))},window.__gpp_msghandler=function(e){var t="string"==typeof e.data;try{var p=t?JSON.parse(e.data):e.data}catch(e){p=null}if("object"==typeof p&&null!==p&&"__gppCall"in p){var s=p.__gppCall;try{window.__gpp(s.command,(function(p,n){var a={__gppReturn:{returnValue:p,success:n,callId:s.callId}};e.source&&"function"==typeof e.source.postMessage&&e.source.postMessage(t?JSON.stringify(a):a,"*")}),"parameter"in s?s.parameter:null,"version"in s?s.version:"1.1")}catch(e){}}},"__gpp"in window&&"function"==typeof window.__gpp||(window.__gpp=window.__gpp_stub,window.addEventListener("message",window.__gpp_msghandler,!1),window.__gpp_addFrame("__gppLocator"));
</script>
Il codice stub o il tag indicati sopra supportano le seguenti API: IAB TCF API, IAB GPP API, IAB USP API.
Se non usi Google Tag Manager ma vuoi abilitare Consent Mode V2, puoi aggiungere questo tag in cima alle pagine:
<script src="https://cmp.uniconsent.com/v2/stubgcm.min.js"></script>
oppure aggiungi il seguente codice in cima alle pagine:
<script>
window.gtag||(window.dataLayer=window.dataLayer||[],window.gtag=function(){window.dataLayer.push(arguments)}),window.gtag("set","developer_id.dZTcxZD",!0),window.gtag("consent","default",{ad_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",analytics_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",security_storage:"granted",wait_for_update:3e3}),window.gtag("set","ads_data_redaction",!0),window.gtag("set","url_passthrough",!1);
</script>
Scopri di più sulla configurazione di Google Consent Mode all'indirizzo https://www.uniconsent.com/docs/tutorials/google-consent-mode
Aggiungi data-nowprocket e data-cfasync="false" a entrambi gli script. Si applicano anche le impostazioni di esclusione di WP Rocket indicate sopra.
<script data-nowprocket data-cfasync="false" src="https://cmp.uniconsent.com/v2/stub.min.js"></script>
<script data-nowprocket data-cfasync="false" async src='https://cmp.uniconsent.com/v2/YOUR_ID/cmp.js'></script>
Google Consent Mode è abilitato, ma manca il codice stub dello stato predefinito
Problema: potresti visualizzare un messaggio di errore nel Validator o nella console per sviluppatori:
Error: Consent Mode Default Status is not added.
Soluzione: aggiungi il codice stub dello stato predefinito in cima alle pagine per risolvere il problema. Puoi seguire le istruzioni qui: Installazione del tag dello stato predefinito di Consent Mode.
Google Consent Mode è abilitato, ma il codice stub dello stato predefinito è aggiunto dopo i tag Google
Problema: se il codice stub dello stato predefinito viene aggiunto dopo i tag Google, potresti visualizzare il seguente messaggio di errore nel Validator o nella console per sviluppatori:
Error: Your Google tags are loaded before Consent Mode Default Status and CMP.
Soluzione: assicurati che il codice stub dello stato predefinito sia aggiunto all'inizio delle pagine, prima di qualsiasi tag Google. Segui la guida qui: Installazione del tag dello stato predefinito di Consent Mode.
Google Consent Mode è abilitato tramite Google Tag Manager, ma non tutti i tag Google sono gestiti in Google Tag Manager
Problema: quando alcuni tag Google non sono gestiti in Google Tag Manager, potresti visualizzare errori simili a quelli descritti sopra.
Soluzione: aggiungi il codice stub dello stato predefinito in cima alle pagine oppure assicurati che tutti i tag Google siano gestiti in Google Tag Manager. Consulta la guida: Installazione del tag dello stato predefinito di Consent Mode.
Manca il codice stub IAB TCF
Problema: il codice stub IAB TCF non è incluso, il che può causare errori.
Soluzione: aggiungi il codice stub IAB TCF in cima alle pagine. Segui le istruzioni qui: Installazione dei codici stub.
Manca il codice stub IAB GPP
Problema: il codice stub IAB GPP manca dalla tua implementazione.
Soluzione: includi il codice stub IAB GPP in cima alle pagine. Trovi la guida pertinente qui: Installazione dei codici stub.
Manca il codice stub della USP API
Problema: il codice stub IAB USP non è presente.
Soluzione: per risolvere il problema, aggiungi il codice stub IAB USP in cima alle pagine. Le istruzioni dettagliate sono disponibili qui: Installazione dei codici stub.