Leading Consent Management Platform

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

Gestire elementi e tag della pagina con UnicScript

Puoi gestire gli elementi della pagina con UnicScript per caricare i tag in base al consenso dell'utente per specifici ID di finalità o ID di fornitori personalizzati, secondo le finalità definite da IAB TCF, le finalità di Consent Categories o i tipi di Google Consent Mode.

Due modalità di consenso

UniConsent usa due tipi di consenso, in base al tipo di banner e alla regione del visitatore:

  • IAB TCF: i banner GDPR e IAB TCF Canada. Usa unic-purpose-id con gli ID di finalità IAB TCF (da 1 a 11).
  • Consent Categories: il banner a categorie dei progetti Consent Categories e i banner per LGPD (Brasile), PIPL (Cina), POPIA (Sudafrica), PDPD (Vietnam) e le regole per gli altri paesi in qualsiasi progetto. Usa unic-e-purpose-id con gli ID di categoria (da 1 a 4).

Quale attributo usare:

AttributoDove si carica
unic-e-purpose-id, unic-e-purpose-idsOvunque. Dove si applica IAB TCF le categorie seguono le sue finalità, e dopo un opt-out USA la categoria 4 è disattivata.
unic-gcm-id, unic-gcm-idsOvunque, in base ai segnali di Google Consent Mode.
unic-cp-id, unic-cp-idsOvunque, in base alle finalità personalizzate.
unic-purpose-id, unic-purpose-idsDove si applica IAB TCF, con i banner USA e dove non si applica alcun banner. Mai dove si applica un banner Consent Categories, nemmeno dopo l'accettazione.
unic-vendor-idCon IAB TCF, quando il visitatore consente il fornitore personalizzato. Con Consent Categories segue la categoria 4. Richiede Enable Custom Vendors.

Suggerimento: per uno script che deve funzionare in ogni regione e con ogni tipo di banner, usa unic-e-purpose-id o unic-gcm-id. Gli attributi al plurale (unic-e-purpose-ids="2,4") si caricano solo quando tutti gli ID indicati sono consentiti.

ID finalitàDescrizione
1Strettamente necessari — Cookie essenziali per le funzionalità di base del sito (sempre concessi)
2Prestazioni / Analisi — Cookie di analisi e misurazione
3Funzionalità — Cookie per funzionalità avanzate e personalizzazione
4Targeting / Pubblicità — Cookie per pubblicità e tracciamento

Esempio 1: caricare uno script per il consenso all'analisi (Consent Categories)

<script type="text/unicscript" unic-e-purpose-id="2">
  console.log('Analytics consent granted');
</script>

Esempio 2: caricare uno script esterno per l'analisi (Consent Categories)

<script type="text/unicscript" unic-e-purpose-id="2" src="https://example.com/analytics.js"></script>

Esempio 3: caricare Google Analytics (gtag.js) con Consent Categories

<script type="text/unicscript" unic-e-purpose-id="2" async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXX"></script>
<script type="text/unicscript" unic-e-purpose-id="2">
  window.dataLayer = window.dataLayer || [];
  function gtag(){ dataLayer.push(arguments); }
  gtag('js', new Date());
  gtag('config', 'G-XXXXXXX');
</script>

Esempio 4: caricare uno script per il consenso alla pubblicità (Consent Categories)

<script type="text/unicscript" unic-e-purpose-id="4" src="https://example.com/ads.js"></script>
<iframe
  data-unicscript
  unic-e-purpose-id="2"
  width="560"
  height="315"
  data-src="https://example.com/analytics-widget"
  frameborder="0"
></iframe>

IAB TCF Mode

ID di finalità di IAB TCF

ID finalitàDescrizione
1Archiviare e/o accedere a informazioni su un dispositivo
2Utilizzare dati limitati per selezionare la pubblicità
3Creare profili per la pubblicità personalizzata
4Utilizzare profili per selezionare pubblicità personalizzata
5Creare profili per personalizzare i contenuti
6Utilizzare profili per selezionare contenuti personalizzati
7Misurare le prestazioni della pubblicità
8Misurare le prestazioni dei contenuti
9Comprendere il pubblico tramite statistiche o combinazioni di dati provenienti da fonti diverse
10Sviluppare e migliorare i servizi
11Utilizzare dati limitati per selezionare i contenuti

Caricare script in base all'ID di finalità TCF

Puoi caricare JavaScript inline in modo dinamico in base al consenso per specifici ID di finalità.

Esempio 1: caricare uno script per un singolo ID di finalità

<script type="text/unicscript" unic-purpose-id="1">
  console.log('Consent granted for purpose 1');
</script>

Esempio 2: caricare uno script esterno con un ID di finalità

<script type="text/unicscript" unic-purpose-id="1" src="path-to-external-script.js"></script>

Caricare JavaScript inline in base a più ID di finalità

Esempio: caricare uno script per più ID di finalità

<script type="text/unicscript" unic-purpose-ids="1,2,3">
  console.log('Consent granted for purposes 1, 2, and 3');
</script>

Caricare JavaScript inline in base al consenso per un ID di fornitore personalizzato

Esempio:

<script type="text/unicscript" unic-vendor-id="1">
  console.log('hello vendor 1');
</script>

Esempio 2:

<script type="text/unicscript" unic-vendor-id="1" src="xxxxx"></script>

Caricare iframe inline in base al consenso per un ID di finalità

Puoi caricare iframe in modo dinamico in base al consenso per uno specifico ID di finalità.

Esempio: caricare un iframe per un singolo ID di finalità

<iframe
  data-unicscript
  unic-purpose-id="1"
  width="560"
  height="315"
  data-src="https://www.youtube.com/embed/XXXX"
  frameborder="0"
  allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
  allowfullscreen
></iframe>

Caricare iframe inline in base a più ID di finalità

Esempio: caricare un iframe per più ID di finalità

<iframe
  data-unicscript
  unic-purpose-ids="1,2,3"
  width="560"
  height="315"
  data-src="https://www.youtube.com/embed/XXXX"
  frameborder="0"
  allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
  allowfullscreen
></iframe>

Caricare iframe inline in base al consenso per un ID di fornitore personalizzato

Esempio: caricare un iframe per un singolo ID di fornitore

<iframe
  unic-vendor-id="1"
  width="560"
  height="315"
  data-src="https://www.youtube.com/embed/XXXX"
  frameborder="0"
  allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
  allowfullscreen
></iframe>

Caricare JavaScript inline in base agli ID di finalità personalizzate

Puoi caricare script e iframe in base al consenso per le finalità personalizzate utilizzando gli attributi unic-cp-id e unic-cp-ids.

Esempio 1: caricare uno script per un singolo ID di finalità personalizzata

<script type="text/unicscript" unic-cp-id="custom_analytics">
  console.log('Custom analytics consent granted');
</script>

Esempio 2: caricare uno script esterno per un ID di finalità personalizzata

<script type="text/unicscript" unic-cp-id="custom_analytics" src="https://example.com/analytics.js"></script>

Esempio 3: caricare uno script per più ID di finalità personalizzate (è necessario il consenso per tutte)

<script type="text/unicscript" unic-cp-ids="custom_analytics,ab_testing">
  console.log('Both custom purposes consented');
</script>

Esempio 4: caricare un iframe per un ID di finalità personalizzata

<iframe
  data-unicscript
  unic-cp-id="custom_analytics"
  width="560"
  height="315"
  data-src="https://example.com/widget"
  frameborder="0"
></iframe>

Questa sezione descrive come caricare JavaScript inline in base ai tipi di consenso di Google Consent Mode, abbinati ai tipi di consenso di Consent Categories di UniConsent.

La tabella seguente mostra come i vari tipi di consenso di Google Consent Mode corrispondono ai tipi di consenso di Consent Categories di UniConsent, con le rispettive finalità:

Tipo di consenso GoogleTipo Consent Categories di UniConsentFinalità
ad_storageTargeting e pubblicitàAbilita i cookie pubblicitari.
analytics_storagePrestazioniAbilita i cookie di analisi.
functionality_storageFunzionalitàAbilita i cookie funzionali per le funzionalità e le impostazioni del sito web.
personalization_storageFunzionalitàAbilita i cookie funzionali per la personalizzazione dell'utente.
security_storageStrettamente necessariAbilita i cookie necessari per la sicurezza, la protezione e le preferenze dell'interfaccia del sito web. Questi cookie non richiedono il consenso.
ad_user_dataTargeting e pubblicitàAbilita i cookie pubblicitari e imposta il consenso all'invio di dati personali ai servizi principali di Google.
ad_personalizationTargeting e pubblicitàAbilita i cookie pubblicitari per l'uso dei dati nella personalizzazione degli annunci, come il remarketing.

Esempio: caricare JavaScript inline

Utilizza il seguente formato per caricare JavaScript inline in base al consenso dell'utente:

<script type="text/unicscript" unic-gcm-id="functionality_storage">
  console.log('Consent for functionality storage is granted, script is executed.');
</script>

Puoi specificare più tipi di consenso utilizzando l'attributo unic-gcm-ids, come mostrato di seguito:

<script type="text/unicscript" unic-gcm-ids="analytics_storage,ad_user_data">
  console.log('Consent for analytics storage and ad user data is granted, script is executed.');
</script>

Esempio: caricare iframe in base al consenso

Puoi applicare le impostazioni di consenso anche agli iframe. Ecco un esempio:

<iframe data-unicscript unic-gcm-ids="functionality_storage,ad_personalization" 
  width="560" height="315" 
  data-src="https://www.youtube.com/embed/XXXXXXX" 
  frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" 
  allowfullscreen>
</iframe>

Questo esempio garantisce che il contenuto dell'iframe venga caricato solo se è stato fornito il consenso per le categorie specificate (functionality_storage e ad_personalization).

Gestire Google AdSense con UnicScript

AdSense legge da solo la scelta IAB TCF del visitatore e pubblica annunci non personalizzati o limitati quando gli annunci personalizzati non sono consentiti. Nella maggior parte dei casi, lascia invariati i tag di AdSense: bloccarli interrompe anche quegli annunci.

Per mostrare AdSense solo ai visitatori che consentono i profili pubblicitari (finalità IAB TCF 3), sostituisci:

<script
  async
  src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"
  type="text/javascript"
></script>

con:

<script
  async
  src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"
  unic-purpose-id="3"
  type="text/unicscript"
></script>

Poi modifica il tag dell'unità pubblicitaria nella pagina:

<ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-XXXXXX" data-ad-slot="XXXXXXX" data-ad-format="auto" data-full-width-responsive="true"></ins>
<script type="text/javascript">
(adsbygoogle = window.adsbygoogle || []).push({});
</script>

con:

<ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-XXXXXX" data-ad-slot="XXXXXXX" data-ad-format="auto" data-full-width-responsive="true"></ins>
<script type="text/unicscript" unic-purpose-id="3" >
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>

Blocchi segnaposto per il consenso inline

Mostra un segnaposto inline con un messaggio personalizzato quando un contenuto è bloccato per mancanza di consenso. Una volta concesso il consenso, il segnaposto scompare e viene mostrato il contenuto originale.

È utile per contenuti incorporati come video di YouTube, widget di analisi o script di terze parti, quando vuoi mostrare agli utenti perché il contenuto è bloccato e offrire loro un modo per concedere il consenso direttamente.

Utilizzo di base

Racchiudi il contenuto in un <div> con data-unicscript e l'attributo di finalità appropriato:

<div data-unicscript
     style="display:none"
     unic-purpose-id="1"
     unic-consent-message="We need your consent to show this content."
     unic-consent-button="Allow">
    <iframe data-src="https://www.youtube.com/embed/XXXX"
            width="560" height="315" allowfullscreen></iframe>
</div>

Importante: aggiungi sempre style="display:none" per evitare che il contenuto venga mostrato per un istante prima del caricamento della CMP.

Attributi

AttributoObbligatorioDescrizione
data-unicscriptSìContrassegna il div per il controllo del consenso
style="display:none"SìEvita la comparsa momentanea del contenuto prima del caricamento della CMP
unic-purpose-id*Singolo ID di finalità IAB TCF (ad es. "1")
unic-purpose-ids*Più ID di finalità IAB TCF, separati da virgole (ad es. "1,3,4" — devono essere tutti concessi)
unic-cp-id*ID di finalità personalizzata
unic-e-purpose-id*ID di finalità Easy
unic-gcm-id*Segnale di Google Consent Mode (ad es. "analytics_storage")
unic-vendor-id*ID di fornitore personalizzato
unic-consent-messageNoMessaggio personalizzato (predefinito: "This content requires your consent to be displayed.")
unic-consent-buttonNoTesto del pulsante (predefinito: "Accept")
unic-consent-actionNo"grant" = concede il consenso in modo silenzioso tramite API, "open" o assente = apre la finestra di dialogo della CMP

* È obbligatorio un attributo di finalità.

Bloccare i contenuti all'interno del div

Iframe — usa data-src invece di src per impedirne il caricamento prima del consenso:

<iframe data-src="https://www.youtube.com/embed/XXXX" width="560" height="315"></iframe>

Script — usa type="text/plain" per impedirne l'esecuzione prima del consenso:

<script type="text/plain" src="https://example.com/analytics.js"></script>

<script type="text/plain">
    console.log('This runs only after consent is granted');
</script>

Quando viene concesso il consenso, data-src viene copiato in src e gli script con type="text/plain" vengono attivati automaticamente.

Modalità di azione del pulsante

Aprire la finestra di dialogo della CMP (predefinita)

Facendo clic sul pulsante si apre l'interfaccia completa di gestione del consenso, in cui l'utente può esaminare e concedere il consenso:

<div data-unicscript
     style="display:none"
     unic-purpose-id="3"
     unic-consent-message="This content uses advertising cookies."
     unic-consent-button="Manage Preferences">
    <div id="ad-slot"></div>
</div>

Concedere il consenso direttamente (senza interfaccia)

Facendo clic sul pulsante si concede in modo silenzioso la finalità richiesta e il contenuto viene mostrato immediatamente:

<div data-unicscript
     style="display:none"
     unic-purpose-id="1"
     unic-consent-message="We need analytics consent to show this widget."
     unic-consent-button="Accept Analytics"
     unic-consent-action="grant">
    <script type="text/plain" src="https://example.com/widget.js"></script>
    <div id="analytics-widget"></div>
</div>

API JavaScript: grantPurpose

Puoi concedere una specifica finalità in modo programmatico, senza mostrare alcuna interfaccia:

window.__unicapi('grantPurpose', 2, function(){}, {type: 'p', id: '1'});
TipoFormato IDEsempioDescrizione
'p'Singolo o separato da virgole'1' o '1,3,4'Finalità IAB TCF
'cp'ID stringa'analytics'Finalità personalizzata
'ep'Stringa numerica'2'Finalità Easy
'v'Stringa numerica'123'Fornitore personalizzato
'gcm'Nome del segnale'analytics_storage'Google Consent Mode

Esempi:

// Concedere la finalità IAB 1
window.__unicapi('grantPurpose', 2, function(){}, {type: 'p', id: '1'});

// Concedere più finalità IAB contemporaneamente
window.__unicapi('grantPurpose', 2, function(){}, {type: 'p', id: '1,3,4'});

// Concedere una finalità personalizzata
window.__unicapi('grantPurpose', 2, function(){}, {type: 'cp', id: 'analytics'});

// Concedere un fornitore personalizzato
window.__unicapi('grantPurpose', 2, function(){}, {type: 'v', id: '512'});

// Concedere l'analisi di Google Consent Mode
window.__unicapi('grantPurpose', 2, function(){}, {type: 'gcm', id: 'analytics_storage'});

Personalizzare gli stili del segnaposto

Il segnaposto utilizza queste classi CSS, che puoi sovrascrivere:

.unic-consent-placeholder { }           /* contenitore esterno */
.unic-consent-placeholder-inner { }     /* wrapper flex */
.unic-consent-placeholder-message { }   /* testo del messaggio */
.unic-consent-placeholder-btn { }       /* pulsante */
.unic-consent-placeholder-btn:hover { }

Quando la tua CMP utilizza Consent Categories, usa unic-e-purpose-id invece di unic-purpose-id:

Widget di analisi (Consent Categories):

<div data-unicscript
     style="display:none"
     unic-e-purpose-id="2"
     unic-consent-message="We need analytics consent to show this widget."
     unic-consent-button="Accept Analytics"
     unic-consent-action="grant">
    <script type="text/plain" src="https://example.com/analytics-widget.js"></script>
    <div id="analytics-widget"></div>
</div>

Contenuti pubblicitari (Consent Categories):

<div data-unicscript
     style="display:none"
     unic-e-purpose-id="4"
     unic-consent-message="Please accept advertising cookies to view this content."
     unic-consent-button="Accept"
     unic-consent-action="grant">
    <div id="ad-slot"></div>
</div>

Esempi di contenuti social incorporati e widget di terze parti

Video di YouTube:

<!-- IAB TCF Mode -->
<div data-unicscript
     style="display:none"
     unic-purpose-id="4"
     unic-consent-message="Please accept advertising cookies to watch this video."
     unic-consent-button="Accept & Play"
     unic-consent-action="grant">
    <iframe data-src="https://www.youtube.com/embed/XXXX"
            width="560" height="315" allowfullscreen></iframe>
</div>

<!-- Consent Categories -->
<div data-unicscript
     style="display:none"
     unic-e-purpose-id="4"
     unic-consent-message="Please accept advertising cookies to watch this video."
     unic-consent-button="Accept & Play"
     unic-consent-action="grant">
    <iframe data-src="https://www.youtube.com/embed/XXXX"
            width="560" height="315" allowfullscreen></iframe>
</div>

Post di X (Twitter):

<div data-unicscript
     style="display:none"
     unic-e-purpose-id="4"
     unic-consent-message="Please accept cookies to view this X post."
     unic-consent-button="Show Post"
     unic-consent-action="grant">
    <blockquote class="twitter-tweet">
        <a href="https://twitter.com/user/status/XXXX"></a>
    </blockquote>
    <script type="text/plain" src="https://platform.twitter.com/widgets.js"></script>
</div>

Post di Instagram:

<div data-unicscript
     style="display:none"
     unic-e-purpose-id="4"
     unic-consent-message="Please accept cookies to view this Instagram post."
     unic-consent-button="Show Post"
     unic-consent-action="grant">
    <blockquote class="instagram-media" data-instgrm-permalink="https://www.instagram.com/p/XXXX/">
    </blockquote>
    <script type="text/plain" src="https://www.instagram.com/embed.js"></script>
</div>

Post di Facebook:

<div data-unicscript
     style="display:none"
     unic-e-purpose-id="4"
     unic-consent-message="Please accept cookies to view this Facebook post."
     unic-consent-button="Show Post"
     unic-consent-action="grant">
    <div class="fb-post" data-href="https://www.facebook.com/user/posts/XXXX"></div>
    <script type="text/plain" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v18.0"></script>
</div>

Video di TikTok:

<div data-unicscript
     style="display:none"
     unic-e-purpose-id="4"
     unic-consent-message="Please accept cookies to view this TikTok video."
     unic-consent-button="Show Video"
     unic-consent-action="grant">
    <blockquote class="tiktok-embed" cite="https://www.tiktok.com/@user/video/XXXX">
    </blockquote>
    <script type="text/plain" src="https://www.tiktok.com/embed.js"></script>
</div>

Google Maps:

<div data-unicscript
     style="display:none"
     unic-e-purpose-id="3"
     unic-consent-message="Please accept cookies to view the map."
     unic-consent-button="Show Map"
     unic-consent-action="grant">
    <iframe data-src="https://www.google.com/maps/embed?pb=XXXX"
            width="600" height="450" style="border:0;" allowfullscreen loading="lazy"></iframe>
</div>

Commenti Disqus:

<div data-unicscript
     style="display:none"
     unic-e-purpose-id="3"
     unic-consent-message="We need your consent to display comments."
     unic-consent-button="Show Comments"
     unic-consent-action="grant">
    <div id="disqus_thread"></div>
    <script type="text/plain">
        var disqus_config = function () { this.page.url = PAGE_URL; this.page.identifier = PAGE_IDENTIFIER; };
        (function() { var d = document, s = d.createElement('script');
        s.src = 'https://EXAMPLE.disqus.com/embed.js';
        s.setAttribute('data-timestamp', +new Date());
        (d.head || d.body).appendChild(s); })();
    </script>
</div>

Nota: gli esempi precedenti usano unic-e-purpose-id (Consent Categories). Se il tuo sito utilizza IAB TCF Mode, sostituiscilo con l'attributo unic-purpose-id appropriato (ad es. unic-purpose-id="1" per l'archiviazione sul dispositivo, unic-purpose-id="4" per la pubblicità personalizzata).

Contenuti vincolati a Google Consent Mode:

<div data-unicscript
     style="display:none"
     unic-gcm-id="ad_storage"
     unic-consent-message="Ad storage consent is required for personalized recommendations."
     unic-consent-button="Allow"
     unic-consent-action="grant">
    <script type="text/plain">
        loadPersonalizedRecs();
    </script>
    <div id="personalized-recs"></div>
</div>

Hai ancora domande?

Contattaci: support@uniconsent.com

Sempre aggiornati su privacy e consenso

Leggi sulla privacy, consenso e conformità, poche email al mese.

Niente spam, disiscriviti quando vuoi. Privacy