Leading Consent Management Platform

Compliant with GDPR, CCPA, COPPA, LGPD, PECR, PDPA, PIPEDA, and more.

Tag di UniConsent per il web

Configurazione rapida con il tag singolo di UniConsent (consigliata)

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.

  • Il tag singolo sostituisce il tag stub, il tag dello stato predefinito di Consent Mode e il loader cmp.js descritti di seguito. Non aggiungerli di nuovo.
  • Imposta un valore predefinito di Consent Mode con tutti gli storage negati e un wait_for_update di 3 secondi. Se imposti i tuoi valori predefiniti di Consent Mode, inseriscili dopo il tag, altrimenti verranno sovrascritti.
  • Il tag si ignora se lo script della CMP è già presente nella pagina.
  • Usa 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>

Installazione con i plugin per WordPress e Drupal:

Trovi la chiave di licenza nella sezione Install & Setup.

Per gli utenti di WordPress con WP Rocket

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:

  1. Accedi alla dashboard di amministrazione di WordPress > Settings > WP Rocket.
  2. Fai clic sulla scheda File Optimization e scorri fino alla sezione JavaScript Files.
  3. Minify JavaScript files > Exclude JavaScript Files: inserisci 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.

Per gli utenti di Cloudflare Rocket Loader

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>

Installazione tramite Google Tag Manager

Trovi le istruzioni su come installare UniConsent tramite Google Tag Manager all'indirizzo https://www.uniconsent.com/docs/tutorials/gtm-integration.

Suggerimento sulle prestazioni: preconnessione al dominio della CMP

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.

Perché il tag è sincrono per impostazione predefinita

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.

Se preferisci caricare il tag con async

Puoi aggiungere async al tag. Tieni presente quanto segue:

  • Il tuo codice inline potrebbe essere eseguito prima del tag, quindi 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.
  • Lo stato predefinito di Consent Mode potrebbe essere impostato dopo il caricamento dei tuoi tag Google. Imposta tu stesso lo stato predefinito di Consent Mode prima dei tag Google, oppure carica i tag Google da una callback unicReady.
  • Lo stesso vale per lo stub IAB TCF. Con 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.

Integrazione con l'API in caso di caricamento asincrono

<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.

Passaggi successivi

Se vuoi integrare i tuoi tag JavaScript di terze parti, vai alla sezione Integrazione di tag JavaScript di terze parti.

Verificare la configurazione

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.

Configurazione del tag classico (installazioni esistenti)

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.

Codici stub

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

Utenti di WP Rocket e Cloudflare Rocket Loader con il tag classico

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>
  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.