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 2.3, le finalità di Easy Mode o i tipi di Google Consent Mode.

Due modalità di consenso

UniConsent supporta due modalità di consenso. La modalità applicata dipende dalla configurazione della tua CMP e dalla regione del visitatore:

  • IAB TCF Mode — Utilizzata per la conformità al GDPR (UE) con l'IAB Transparency & Consent Framework. Usa gli attributi unic-purpose-id con gli ID di finalità TCF (1–11).
  • Easy Mode (Simple Mode) — Una modalità di consenso semplificata per le regioni non TCF, come LGPD (Brasile), PIPL (Cina), POPIA (Sudafrica) o qualsiasi regione in cui abiliti Easy Mode. Usa gli attributi 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 usano unic-purpose-id non 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 di finalità di Easy Mode

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

Caricare script in base all'ID di finalità di Easy Mode

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>

Caricare iframe in base all'ID di finalità di Easy Mode

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

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 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 GoogleTipo Simple Mode 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

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>

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-unicscriptContrassegna il div per il controllo del consenso
style="display:none"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 { }

Esempi per Easy Mode

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>

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>

<!-- 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'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