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

Ottiene il segnale di consenso dei tuoi fornitori personalizzati.

__unicapi(
  'getUConsent',
  2,
  (uConsent, success) => {
    if (success) {
      // do something with tcData
    } else {
      // do something else
    }
  },
  [1, 2, 3]
) // vendors Ids
  • getUCData

Ottiene i dati del segnale di consenso dei tuoi fornitori personalizzati.

__unicapi(
  'getUCData',
  2,
  (ucData, success) => {
    if (success) {
      // do something with tcData
    } else {
      // do something else
    }
  },
  [1, 2, 3]
) // vendors Ids
  • getCustomConsent

Ottiene 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 programmaticamente lo stato del consenso delle tue finalità personalizzate. I valori forniti vengono uniti allo stato del consenso esistente e salvati in localStorage.

__unicapi('setCustomConsent', 2, { "custom_analytics": true, "ab_testing": false });
  • getConsentId

Ottiene l'ID di consenso per la verifica dello stato del consenso dell'utente.

__unicapi('getConsentId', 2, (consentId) => {
  console.log(consentId);
});

// or

UnicI.getConsentId();

L'ID di consenso per la verifica può essere recuperato anche dal local storage dell'utente in __unic -> __unid.

  • 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') {
    // 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": "1YN" /* string; not applicable: "1--" */ /* number; 1 applies, 0 doesn't apply, -1 not set */
}
  • 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 us_privacy.
  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)

### Ritardare il caricamento degli annunci finché il consenso TCF non viene o non è stato dato

Assicurati che il tuo stack pubblicitario ottenga il consenso degli utenti prima di avviarsi.

Esempio:

```javascript
__tcfapi('addEventListener', 2, function (tcData, success) {
  if (success && tcData.unicLoad === true) {
    if (!window._initAds) {
      window._initAds = true
      // your code to kick off the ads
      console.log('_initAds started.')
    }
  }
})

Ascoltare e attendere i dati del consenso unic_data con JavaScript puro

Esempio:

;(function waitCMP() {
  var readyCMP
  if (!readyCMP && window['dataLayer']) {
    window['dataLayer'].forEach(function (event) {
      if (event['event'] === 'unic_data') {
        readyCMP = 1
        console.log(event)
        // your other codes;
      }
    })
  }
  if (!readyCMP) {
    setTimeout(waitCMP, 100)
  }
})()

Puoi usare la seguente API JavaScript per accedere ai dati di Google Consent Mode:

(function waitCMP() {
  var readyCMP
  if (!readyCMP && window['dataLayer']) {
    window['dataLayer'].forEach(function (event) {
      if (event['event'] === 'unic_data') {
        readyCMP = 1
        console.log(event['CONSENT_MODE'])
      }
    })
  }
  if (!readyCMP) {
    setTimeout(waitCMP, 100)
  }
})()

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