Compliant with GDPR, CCPA, COPPA, LGPD, PECR, PDPA, PIPEDA, and more.
Se hai installato UniConsent con il tag singolo (https://cmp.uniconsent.com/v2/cmp.js), sono disponibili due funzioni non appena il tag viene eseguito:
unicReady(callback) viene attivata una sola volta, quando lo stato del consenso è definitivo.unicUpdate(callback) viene attivata nello stesso momento di unicReady e di nuovo dopo ogni modifica del consenso.unicReady(function (status) {
if (status.UNIC_P_1) {
loadAnalytics();
}
});
unicUpdate(function (status) {
applyConsent(status);
});
Consulta il riferimento completo, che include l'oggetto di stato, gli eventi DOM e la protezione con coda per il caricamento asincrono, in Consent Ready API.
L'API openunic serve a mostrare agli utenti l'interfaccia della Consent Management Platform (CMP) di UniConsent. Questa funzione deve essere chiamata quando devi presentare all'utente l'interfaccia della CMP, consentendogli di rivedere e modificare le proprie preferenze di consenso.
__unicapi('openunic')
L'API agreeAll serve a indicare che l'utente ha accettato tutte le opzioni di consenso. Questa funzione deve essere attivata programmaticamente nell'interfaccia personalizzata della Consent Management Platform (CMP) quando l'utente fa clic sul pulsante "Accetta tutto" nell'interfaccia utente (UI) di primo livello. Questa azione segnala che l'utente acconsente a tutte le categorie di trattamento dei dati.
__unicapi('agreeAll')
L'API rejectAll serve a indicare che l'utente ha rifiutato tutte le opzioni di consenso. Questa funzione deve essere attivata programmaticamente nell'interfaccia personalizzata della Consent Management Platform (CMP) quando l'utente fa clic sul pulsante "Rifiuta tutto" nell'interfaccia utente (UI) di primo livello. Questa azione segnala che l'utente non acconsente ad alcuna categoria di trattamento dei dati.
__unicapi('rejectAll')
L'API openOptions serve ad aprire l'interfaccia utente (UI) di secondo livello della Consent Management Platform (CMP) di UniConsent. Questo secondo livello offre agli utenti opzioni e impostazioni di consenso più dettagliate.
__unicapi('openOptions')
L'API openVendorList serve a mostrare l'interfaccia utente (UI) dell'elenco dei fornitori all'interno della CMP di UniConsent. Questa interfaccia fornisce agli utenti informazioni dettagliate sui fornitori di terze parti che potrebbero trattare i loro dati.
__unicapi('openVendorList')
L'API openCookiesList serve a mostrare l'interfaccia utente (UI) dell'elenco dei cookie all'interno della CMP di UniConsent. Questa interfaccia fornisce agli utenti informazioni dettagliate sui cookie utilizzati dal sito web.
__unicapi('openCookiesList')
Esempio di link HTML:
<a class="font-bold underline cursor-pointer" href="javascript:void(0);" onclick="__unicapi('openCookiesList');">Cookies List</a>
Ottieni il consenso dei tuoi fornitori personalizzati, come ID fornitore associato a true o false. Restituisce false quando i fornitori personalizzati non sono attivi.
__unicapi('getUConsent', 2, (uConsent, success) => {
if (success && uConsent && uConsent['1']) {
// custom vendor 1 is allowed
}
})
Ottieni i dati di consenso dei tuoi fornitori personalizzati, con il consenso di ogni fornitore in vendor.consents.
__unicapi('getUCData', 2, (ucData, success) => {
if (success && ucData.vendor) {
console.log(ucData.vendor.consents)
}
})
Nei banner delle categorie di consenso, ottieni le categorie consentite dal visitatore, come ID categoria (da 1 a 4) associato a true, ad esempio {"1": true, "2": true}. Non segue le scelte IAB TCF: per un valore impostato in ogni regione, usa da UNIC_EP_1 a UNIC_EP_4 di unicReady e unicUpdate.
__unicapi('getEConsent', 2, (eConsent, success) => {
if (success && eConsent && eConsent['2']) {
// category 2 (Performance / Analytics) is allowed
}
})
Ottieni lo stato del consenso delle tue finalità personalizzate.
__unicapi('getCustomConsent', 2, (data, success) => {
if (success) {
console.log(data);
// Example: { "custom_analytics": true, "ab_testing": false }
if (data['custom_analytics']) {
// custom analytics consent is granted
}
}
});
Imposta tramite codice lo stato del consenso delle tue finalità personalizzate. I valori forniti vengono uniti allo stato esistente e salvati con le altre scelte del visitatore.
__unicapi('setCustomConsent', 2, { "custom_analytics": true, "ab_testing": false });
Ottieni l'ID di consenso di audit per lo stato del consenso dell'utente.
__unicapi('getConsentId', 2, (consentId) => {
console.log(consentId);
});
__tcfapi(
'getTCData',
2,
(tcData, success) => {
if (success) {
// do something with tcData
} else {
// do something else
}
},
[1, 2, 3]
) // vendors Ids
__tcfapi('ping', 2, (pingReturn) => {
// do something with pingReturn
})
const callback = (tcData, success) => {
if (success && (tcData.eventStatus === 'tcloaded' || tcData.eventStatus === 'useractioncomplete')) {
// do something with tcData.tcString
// remove the ourself to not get called more than once
__tcfapi(
'removeEventListener',
2,
(success) => {
if (success) {
// oh good...
}
},
tcData.listenerId
)
} else {
// do something else
}
}
__tcfapi('addEventListener', 2, callback)
__tcfapi(
'getVendorList',
2,
(gvl, success) => {
if (success) {
// do something with gvl
} else {
// do something else
}
},
'LATEST'
)
Trovi tutte le API qui: documentazione IAB TCF.
Ottiene i dati attuali del consenso USP.
__uspapi('getUSPData', 1, (uspData, success) => {
if (success) {
// do something with uspData
} else {
// do something else
}
})
Risposta uspData:
{
"version": 1, /* number indicating the U.S. Privacy spec version */
"uspString": "1YNN" /* string; not applicable: "1---" */
}
Registra una funzione di callback che verrà richiamata quando un utente fa clic sul pulsante "Delete My Data" nell'interfaccia del consenso CCPA/USP. Ciò consente agli editori di gestire le richieste di cancellazione dei dati degli utenti, come previsto dal California Consumer Privacy Act (CCPA).
__uspapi('registerDeletion', 1, (param) => {
// Handle user data deletion request
// For example: call your backend API to delete user data
console.log('User requested data deletion');
// Example: send a deletion request to your server
fetch('/api/delete-user-data', {
method: 'POST',
body: JSON.stringify({ action: 'delete' })
});
})
Quando l'utente fa clic su "Delete My Data", si verificano in sequenza le seguenti azioni:
1YY), a indicare che l'utente non acconsente alla vendita dei dati personali.usprivacy.Attiva programmaticamente il flusso di cancellazione dei dati. Richiama la callback registrata in precedenza tramite registerDeletion e può essere usata per creare un'interfaccia di cancellazione personalizzata.
__uspapi('performDeletion', 1, null, param)
tcData.unicLoad è true appena la scelta IAB TCF del visitatore è nota: una scelta salvata al caricamento della pagina, oppure la scelta appena fatta, accettazione o rifiuto. Il tuo stack pubblicitario legge poi la scelta dalla stringa TC. Dove IAB TCF non si applica, è sempre true.
__tcfapi('addEventListener', 2, function (tcData, success) {
if (success && tcData.unicLoad === true) {
if (!window._initAds) {
window._initAds = true
// your code to start the ads
}
}
})
L'evento unic_data nel data layer contiene queste variabili, che puoi leggere in Google Tag Manager come variabili del livello dati. Viene inviato al caricamento della pagina e di nuovo dopo ogni scelta o modifica del consenso. Nel codice della pagina, unicReady e unicUpdate forniscono gli stessi valori di consenso: vedi Consent Ready API.
| Variabile | Significato |
|---|---|
UNIC_IS_LOAD | Dove si applica IAB TCF, true solo quando il visitatore consente l'archiviazione o un fornitore personalizzato: false prima di una scelta e dopo un rifiuto. Sempre true dove IAB TCF non si applica |
GEO | Regione le cui regole si applicano, ad esempio EU, CA, USCA o USTX |
LOC | Posizione rilevata |
GEO_IS_EU, GEO_IS_US, GEO_IS_USCA, GEO_IS_CA, GEO_IS_BR, GEO_IS_CN, GEO_IS_ZA, GEO_IS_APAC, GEO_IS_LATAM, GEO_IS_OTHER | True per la posizione del visitatore |
US_STATE | Codice di due lettere dello stato USA del visitatore, vuoto fuori dagli USA |
GEO_IS_MSPA | True in uno stato coperto da US State Privacy |
TC_STRING | Stringa IAB TCF |
GPP_STRING | Stringa IAB GPP |
uspData | Stringa US Privacy |
MSPA_STRING | Stringa US State Privacy (sezione IAB GPP US National) |
GPC | True quando il browser invia Global Privacy Control |
UNIC_P_1 … UNIC_P_10, UNIC_SF_1, UNIC_SF_2 | Finalità e funzionalità speciali IAB TCF |
UNIC_EP_1 … UNIC_EP_4 | Categorie di consenso da 1 a 4 |
UNIC_CP_{id} | Le tue finalità personalizzate, per ID |
customVendors | Consenso per i tuoi fornitori personalizzati, per ID |
CONSENT_MODE | Valori di Google Consent Mode |
unic_data viene inviato al livello dati prima che venga eseguito unicUpdate, quindi in un callback di unicUpdate l'ultimo evento unic_data contiene i valori attuali di Google Consent Mode (quando Google Consent Mode è attivo):
unicUpdate(function () {
var events = (window.dataLayer || []).filter(function (e) { return e && e.event === 'unic_data'; });
var latest = events[events.length - 1];
if (latest) {
console.log(latest.CONSENT_MODE);
}
});
Per sincronizzare i cookie con SameSite=None; Partitioned;, che può essere necessario quando la tua pagina viene caricata in un iFrame (ad esempio in Discord), puoi aggiungere il seguente codice sotto il tag della CMP.
const callback = (tcData, success) => {
if (success && tcData.eventStatus === "useractioncomplete") {
__tcfapi(
'removeEventListener',
2,
(success) => {
if (success) {
const date = new Date();
date.setTime(date.getTime() + (300 * 24 * 60 * 60 * 1000));
const expires = `expires=${date.toUTCString()}`;
document.cookie = `euconsent-v2=${tcData.tcString}; ${expires}; path=/; Secure; SameSite=None; Partitioned`;
}
},
tcData.listenerId
)
}
}
__tcfapi('addEventListener', 2, callback);
Contattaci: support@uniconsent.com