Leading Consent Management Platform

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

Exécuter du code JavaScript et déterminer le signal de consentement

Si vous avez installé UniConsent avec la balise unique (https://cmp.uniconsent.com/v2/cmp.js), deux fonctions sont disponibles dès l'exécution de la balise :

  • unicReady(callback) se déclenche une fois, lorsque l'état du consentement est définitif.
  • unicUpdate(callback) se déclenche en même temps que unicReady, puis à nouveau après chaque modification du consentement.
unicReady(function (status) {
  if (status.UNIC_P_1) {
    loadAnalytics();
  }
});

unicUpdate(function (status) {
  applyConsent(status);
});

Consultez la référence complète, y compris l'objet de statut, les événements DOM et la protection de la file asynchrone, dans API Consent Ready.

API UniConsent CMP v2

  • openunic

L'API openunic affiche l'interface de la plateforme de gestion du consentement (CMP) UniConsent. Appelez-la lorsque vous devez présenter l'interface de la CMP à l'utilisateur pour qu'il puisse consulter et modifier ses préférences de consentement.

__unicapi('openunic')
  • agreeAll

L'API agreeAll indique que l'utilisateur accepte toutes les options de consentement. Appelez-la depuis l'interface personnalisée de votre CMP lorsque l'utilisateur clique sur le bouton « Tout accepter » du premier niveau. Elle signale que l'utilisateur consent à toutes les catégories de traitement des données.

__unicapi('agreeAll')
  • rejectAll

L'API rejectAll indique que l'utilisateur refuse toutes les options de consentement. Appelez-la depuis l'interface personnalisée de votre CMP lorsque l'utilisateur clique sur le bouton « Tout refuser » du premier niveau. Elle signale que l'utilisateur ne consent à aucune catégorie de traitement des données.

__unicapi('rejectAll')
  • openOptions

L'API openOptions ouvre le deuxième niveau de l'interface de la CMP UniConsent, qui propose des options et des réglages de consentement plus détaillés.

__unicapi('openOptions')
  • openVendorList

L'API openVendorList affiche la liste des fournisseurs dans la CMP UniConsent, avec des informations détaillées sur les fournisseurs tiers susceptibles de traiter les données des utilisateurs.

__unicapi('openVendorList')
  • openCookiesList

L'API openCookiesList affiche la liste des cookies dans la CMP UniConsent, avec des informations détaillées sur les cookies utilisés par le site.

__unicapi('openCookiesList')

Exemple de lien HTML :

<a class="font-bold underline cursor-pointer" href="javascript:void(0);" onclick="__unicapi('openCookiesList');">Cookies List</a>
  • getUConsent

Obtenir le consentement de vos fournisseurs personnalisés, sous forme d'identifiant de fournisseur associé à true ou false. Renvoie false lorsque les fournisseurs personnalisés ne sont pas activés.

__unicapi('getUConsent', 2, (uConsent, success) => {
  if (success && uConsent && uConsent['1']) {
    // custom vendor 1 is allowed
  }
})
  • getUCData

Obtenir les données de consentement de vos fournisseurs personnalisés, avec le consentement de chaque fournisseur dans vendor.consents.

__unicapi('getUCData', 2, (ucData, success) => {
  if (success && ucData.vendor) {
    console.log(ucData.vendor.consents)
  }
})
  • getEConsent

Sur les bannières de catégories de consentement, obtenir les catégories autorisées par le visiteur, sous forme d'identifiant de catégorie (1 à 4) associé à true, par exemple {"1": true, "2": true}. Ne suit pas les choix IAB TCF : pour une valeur définie dans toutes les régions, utilisez UNIC_EP_1 à UNIC_EP_4 de unicReady et unicUpdate.

__unicapi('getEConsent', 2, (eConsent, success) => {
  if (success && eConsent && eConsent['2']) {
    // category 2 (Performance / Analytics) is allowed
  }
})
  • getCustomConsent

Obtenir l'état du consentement de vos finalités personnalisées.

__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

Définir par programmation l'état du consentement de vos finalités personnalisées. Les valeurs fournies sont fusionnées avec l'état existant et enregistrées avec les autres choix du visiteur.

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

Obtenir l'identifiant de consentement d'audit correspondant à l'état du consentement de l'utilisateur.

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

API de la plateforme de gestion du consentement IAB TCF V2

  • getTCData (obsolète, utilisez 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'
)

Vous trouverez toutes les API dans la documentation IAB TCF.

Mécanisme de signal utilisateur de confidentialité aux États-Unis « USP API » (mécanisme de conformité CCPA)

  • getUSPData

Obtenir les données de consentement USP actuelles.

__uspapi('getUSPData', 1, (uspData, success) => {
  if (success) {
    // do something with uspData
  } else {
    // do something else
  }
})

Réponse uspData :

{
 "version": 1, /* number indicating the U.S. Privacy spec version */
 "uspString": "1YNN" /* string; not applicable: "1---" */
}
  • registerDeletion

Enregistre une fonction de rappel appelée lorsque l'utilisateur clique sur le bouton « Supprimer mes données » de l'interface de consentement CCPA/USP. Les éditeurs peuvent ainsi traiter les demandes de suppression de données comme l'exige la 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' })
  });
})

Lorsque l'utilisateur clique sur « Supprimer mes données », les actions suivantes ont lieu dans l'ordre :

  1. La fonction de suppression enregistrée est appelée, pour que l'éditeur supprime effectivement les données.
  2. Le consentement USP de l'utilisateur passe à l'opposition (1YY) : l'utilisateur ne consent pas à la vente de ses données personnelles.
  3. La chaîne de consentement USP est enregistrée dans le cookie usprivacy.
  4. L'interface de consentement se ferme.
  • performDeletion

Déclenche par programmation la suppression des données. Appelle la fonction enregistrée avec registerDeletion et permet de créer votre propre interface de suppression.

__uspapi('performDeletion', 1, null, param)

Attendre le choix IAB TCF avant de lancer les publicités

tcData.unicLoad est true dès que le choix IAB TCF du visiteur est connu : un choix enregistré au chargement de la page, ou le choix qui vient d'être fait, acceptation ou refus. Votre pile publicitaire lit alors le choix dans la chaîne TC. Là où IAB TCF ne s'applique pas, il est toujours true.

__tcfapi('addEventListener', 2, function (tcData, success) {
  if (success && tcData.unicLoad === true) {
    if (!window._initAds) {
      window._initAds = true
      // your code to start the ads
    }
  }
})

Variables de l'événement unic_data

L'événement unic_data de la couche de données contient ces variables, que vous pouvez lire dans Google Tag Manager comme variables de couche de données. Il est envoyé au chargement de la page puis après chaque choix ou modification du consentement. Dans le code de la page, unicReady et unicUpdate fournissent les mêmes valeurs de consentement : voir Consent Ready API.

VariableSignification
UNIC_IS_LOADLà où IAB TCF s'applique, true uniquement si le visiteur autorise le stockage ou un fournisseur personnalisé : false avant un choix et après un refus. Toujours true là où IAB TCF ne s'applique pas
GEORégion dont les règles s'appliquent, par exemple EU, CA, USCA ou USTX
LOCLocalisation détectée
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 pour la localisation du visiteur
US_STATECode à deux lettres de l'État américain du visiteur, vide hors des États-Unis
GEO_IS_MSPATrue dans un État couvert par US State Privacy
TC_STRINGChaîne IAB TCF
GPP_STRINGChaîne IAB GPP
uspDataChaîne US Privacy
MSPA_STRINGChaîne US State Privacy (section IAB GPP US National)
GPCTrue quand le navigateur envoie Global Privacy Control
UNIC_P_1 … UNIC_P_10, UNIC_SF_1, UNIC_SF_2Finalités et fonctionnalités spéciales IAB TCF
UNIC_EP_1 … UNIC_EP_4Catégories de consentement 1 à 4
UNIC_CP_{id}Vos finalités personnalisées, par identifiant
customVendorsConsentement pour vos fournisseurs personnalisés, par identifiant
CONSENT_MODEValeurs Google Consent Mode

unic_data est envoyé dans la couche de données avant l'exécution de unicUpdate : dans un callback unicUpdate, le dernier événement unic_data contient donc les valeurs actuelles de Google Consent Mode (lorsque Google Consent Mode est activé) :

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

Charger vos pages avec la CMP UniConsent dans une iFrame

Pour synchroniser les cookies avec SameSite=None; Partitioned;, ce qui peut être nécessaire lorsque votre page est chargée dans une iFrame (par exemple dans Discord), ajoutez le code suivant sous votre balise 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);

Vous avez encore des questions ?

Contactez-nous : support@uniconsent.com

Gardez une longueur d'avance sur la confidentialité et le consentement

Lois sur la confidentialité, consentement et conformité, quelques e-mails par mois.

Pas de spam, désabonnement à tout moment. Confidentialité