Leading Consent Management Platform

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

API JavaScript

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.

API della CMP di UniConsent v2

  • openunic

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')
  • agreeAll

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')
  • rejectAll

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')
  • openOptions

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')
  • openVendorList

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')
  • openCookiesList

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>
  • getUConsent

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
  }
})
  • getUCData

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)
  }
})
  • getEConsent

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
  }
})
  • getCustomConsent

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
    }
  }
});
  • setCustomConsent

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 });
  • getConsentId

Ottieni l'ID di consenso di audit per lo stato del consenso dell'utente.

__unicapi('getConsentId', 2, (consentId) => {
  console.log(consentId);
});
  • getTCData (deprecata, usa addEventListener)
__tcfapi(
  'getTCData',
  2,
  (tcData, success) => {
    if (success) {
      // do something with tcData
    } else {
      // do something else
    }
  },
  [1, 2, 3]
) // vendors Ids
  • ping
__tcfapi('ping', 2, (pingReturn) => {
  // do something with pingReturn
})
  • addEventListener
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)
  • getVendorList
__tcfapi(
  'getVendorList',
  2,
  (gvl, success) => {
    if (success) {
      // do something with gvl
    } else {
      // do something else
    }
  },
  'LATEST'
)

Trovi tutte le API qui: documentazione IAB TCF.

Meccanismo di segnalazione dell'utente U.S. Privacy "USP API" (meccanismo di conformità al CCPA)

  • getUSPData

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---" */
}
  • registerDeletion

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:

  1. Viene richiamata la callback di cancellazione registrata, che consente all'editore di eseguire l'effettiva cancellazione dei dati.
  2. Il consenso USP dell'utente viene impostato su opt-out (1YY), a indicare che l'utente non acconsente alla vendita dei dati personali.
  3. La stringa di consenso USP viene salvata nel cookie usprivacy.
  4. L'interfaccia del consenso viene chiusa.
  • performDeletion

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)

Attendere la scelta IAB TCF prima di avviare gli annunci

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
    }
  }
})

Variabili dell'evento unic_data

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.

VariabileSignificato
UNIC_IS_LOADDove 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
GEORegione le cui regole si applicano, ad esempio EU, CA, USCA o USTX
LOCPosizione 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_OTHERTrue per la posizione del visitatore
US_STATECodice di due lettere dello stato USA del visitatore, vuoto fuori dagli USA
GEO_IS_MSPATrue in uno stato coperto da US State Privacy
TC_STRINGStringa IAB TCF
GPP_STRINGStringa IAB GPP
uspDataStringa US Privacy
MSPA_STRINGStringa US State Privacy (sezione IAB GPP US National)
GPCTrue quando il browser invia Global Privacy Control
UNIC_P_1 … UNIC_P_10, UNIC_SF_1, UNIC_SF_2Finalità e funzionalità speciali IAB TCF
UNIC_EP_1 … UNIC_EP_4Categorie di consenso da 1 a 4
UNIC_CP_{id}Le tue finalità personalizzate, per ID
customVendorsConsenso per i tuoi fornitori personalizzati, per ID
CONSENT_MODEValori 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);
  }
});

Come caricare le tue pagine web con la CMP di UniConsent in un iFrame

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);

Hai ancora domande?

Contattaci: support@uniconsent.com