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 2.3, le finalità di Easy Mode o i tipi di Google Consent Mode.
UniConsent supporta due modalità di consenso. La modalità applicata dipende dalla configurazione della tua CMP e dalla regione del visitatore:
unic-purpose-id con gli ID di finalità TCF (1–11).unic-e-purpose-id con gli ID di finalità Easy (1–4).Importante: quando Easy Mode è abilitata per una regione, vengono elaborati solo gli attributi
unic-e-purpose-id. Gli script che usanounic-purpose-idnon verranno attivati. Assicurati di usare l'attributo corretto per la configurazione della tua CMP.
Se non sei sicuro di quale modalità si applichi, controlla le impostazioni "Easy Mode" e "Region" nella dashboard della tua CMP.
| 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 (Easy Mode)
<script type="text/unicscript" unic-e-purpose-id="2">
console.log('Analytics consent granted');
</script>
Esempio 2: caricare uno script esterno per l'analisi (Easy Mode)
<script type="text/unicscript" unic-e-purpose-id="2" src="https://example.com/analytics.js"></script>
Esempio 3: caricare Google Analytics (gtag.js) con Easy Mode
<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à (Easy Mode)
<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 Simple Mode di UniConsent.
La tabella seguente mostra come i vari tipi di consenso di Google Consent Mode corrispondono ai tipi di consenso di Simple Mode di UniConsent, con le rispettive finalità:
| Tipo di consenso Google | Tipo Simple Mode 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).
Modifica:
<script
async
src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"
type="text/javascript"
></script>
in:
<script
async
src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"
unic-purpose-id="3"
type="text/unicscript"
></script>
Modifica il tag dello slot pubblicitario di Google AdSense aggiunto alla pagina, cambiando:
<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>
in:
<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 Easy Mode, usa unic-e-purpose-id invece di unic-purpose-id:
Widget di analisi (Easy Mode):
<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 (Easy Mode):
<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>
<!-- Easy Mode -->
<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(Easy Mode). 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