Compliant with GDPR, CCPA, COPPA, LGPD, PECR, PDPA, PIPEDA, and more.
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.
UniConsent usa due tipi di consenso, in base al tipo di banner e alla regione del visitatore:
unic-purpose-id con gli ID di finalità IAB TCF (da 1 a 11).unic-e-purpose-id con gli ID di categoria (da 1 a 4).Quale attributo usare:
| Attributo | Dove si carica |
|---|---|
unic-e-purpose-id, unic-e-purpose-ids | Ovunque. 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-ids | Ovunque, in base ai segnali di Google Consent Mode. |
unic-cp-id, unic-cp-ids | Ovunque, in base alle finalità personalizzate. |
unic-purpose-id, unic-purpose-ids | Dove 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-id | Con 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-idounic-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 |
|---|---|
| 1 | Strettamente necessari — Cookie essenziali per le funzionalità di base del sito (sempre concessi) |
| 2 | Prestazioni / Analisi — Cookie di analisi e misurazione |
| 3 | Funzionalità — Cookie per funzionalità avanzate e personalizzazione |
| 4 | Targeting / 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>
| ID finalità | Descrizione |
|---|---|
| 1 | Archiviare e/o accedere a informazioni su un dispositivo |
| 2 | Utilizzare dati limitati per selezionare la pubblicità |
| 3 | Creare profili per la pubblicità personalizzata |
| 4 | Utilizzare profili per selezionare pubblicità personalizzata |
| 5 | Creare profili per personalizzare i contenuti |
| 6 | Utilizzare profili per selezionare contenuti personalizzati |
| 7 | Misurare le prestazioni della pubblicità |
| 8 | Misurare le prestazioni dei contenuti |
| 9 | Comprendere il pubblico tramite statistiche o combinazioni di dati provenienti da fonti diverse |
| 10 | Sviluppare e migliorare i servizi |
| 11 | Utilizzare dati limitati per selezionare i contenuti |
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>
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>
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>
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>
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>
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>
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 Google | Tipo Consent Categories di UniConsent | Finalità |
|---|---|---|
ad_storage | Targeting e pubblicità | Abilita i cookie pubblicitari. |
analytics_storage | Prestazioni | Abilita i cookie di analisi. |
functionality_storage | Funzionalità | Abilita i cookie funzionali per le funzionalità e le impostazioni del sito web. |
personalization_storage | Funzionalità | Abilita i cookie funzionali per la personalizzazione dell'utente. |
security_storage | Strettamente necessari | Abilita i cookie necessari per la sicurezza, la protezione e le preferenze dell'interfaccia del sito web. Questi cookie non richiedono il consenso. |
ad_user_data | Targeting e pubblicità | Abilita i cookie pubblicitari e imposta il consenso all'invio di dati personali ai servizi principali di Google. |
ad_personalization | Targeting e pubblicità | Abilita i cookie pubblicitari per l'uso dei dati nella personalizzazione degli annunci, come il remarketing. |
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>
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).
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>
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.
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.
| Attributo | Obbligatorio | Descrizione |
|---|---|---|
data-unicscript | Sì | 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-message | No | Messaggio personalizzato (predefinito: "This content requires your consent to be displayed.") |
unic-consent-button | No | Testo del pulsante (predefinito: "Accept") |
unic-consent-action | No | "grant" = concede il consenso in modo silenzioso tramite API, "open" o assente = apre la finestra di dialogo della CMP |
* È obbligatorio un attributo di finalità.
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.
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>
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>
Puoi concedere una specifica finalità in modo programmatico, senza mostrare alcuna interfaccia:
window.__unicapi('grantPurpose', 2, function(){}, {type: 'p', id: '1'});
| Tipo | Formato ID | Esempio | Descrizione |
|---|---|---|---|
'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'});
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>
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'attributounic-purpose-idappropriato (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>
Contattaci: support@uniconsent.com
Leggi sulla privacy, consenso e conformità, poche email al mese.