Événements CMP

Pour recevoir des notifications lorsque certains événements se produisent, vous pouvez utiliser les méthodes JavaScript suivantes :

  • __cmp("addEventListener",["eventname",callableFunction,capture],null)
  • __cmp("removeEventListener",["eventname",callableFunction,capture],null)
  • __tcfapi("addEventListener",2, callableFunction)
  • __tcfapi("removeEventListener",2, callableFunction, listenerId)

Le CMP peut déclencher les événements suivants :

Événement

Description

init

Le code CMP est chargé et le code de remplacement a été supprimé. À ce stade, le CMP ne dispose pas encore d'informations sur le consentement.

settings

Le CMP a terminé le chargement de ses paramètres. Si une chaîne de consentement existait déjà, les données de consentement peuvent désormais être lues à partir du CMP.

consentscreen

Le CMP affiche l'écran de consentement

consentscreenoff

Le CMP supprime l'écran de consentement

consentscreencustom

Le CMP affiche la page des choix personnalisés

consent

Le CMP a recueilli le consentement ou un cookie préexistant a été trouvé. Les données de consentement peuvent désormais être lues à partir du CMP.

consentapproved

Le visiteur a donné son consentement à tous les fournisseurs/finalités

consentrejected

Le visiteur a rejeté tous les fournisseurs et toutes les finalités

consentcustom

Le visiteur a donné son consentement personnalisé (acceptations et refus)

liestablished

L'écran de consentement s'affiche, un intérêt légitime a été établi pour ce visiteur.

vendorconsent

Le visiteur a accepté un élément de contenu dynamique. L'identifiant du fournisseur de l'élément accepté se trouve dans la variable de sous-type.

gpp

Divers événements pour la norme IAB GPP

tcfv2

Divers événements pour la norme IAB TCF

loadShowing

Une fois le chargement terminé (voir l'événement settings) et que le système a décidé d'afficher la couche de consentement.

loadNotShowing

Une fois le chargement terminé (voir l'événement settings) et que le système a décidé de ne pas afficher la couche de contenu.

Les gestionnaires d'événements sont définis comme suit :

var handler = function (eventname, cmpobject, subtype){…} 

Avertissement : n'utilisez cmpobject . Cette fonction est obsolète. Utilisez plutôt des appels API.

Exemple :

<script>
  function getInfos(e,o)
  {     
    var result = __cmp('getCMPData');
    /*... do something with result ...*/
  }
  __cmp("addEventListener",["consent",getInfos,false],null);
</script>

Veuillez noter que la commande addEventListener de l'IAB TCF v2 ne réagira qu'à un sous-ensemble d'événements.

Exemples

Rediriger le visiteur vers un autre site web si aucun consentement n'est donné

Veuillez noter que ce comportement n'est pas recommandé et pourrait entraîner des problèmes juridiques !

<script>
  function getInfos(e,o)
  { 
    location.href = "https://www.mywebsite.com/alternative-content.html";
  }
  __cmp("addEventListener",["consentrejected",getInfos,false],null);
</script>

Afficher un message si le visiteur a refusé

<div id="mymessage" style="display:none; position:fixed; left:calc(50% - 300px); top:calc(50% - 200px); width:600px; height:400px; background-color: #fff0c7; padding: 20px; box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.25);"><b>Please consider</b><br>Our website is mainly financed by online advertising. Without consent we will not be able to show you tailored ads and our ad revenue will be much lower. As we respect your choice we like to ask you, if you maybe like to donate 1 EUR instead? This will help us keep the quality of our service up.<br>
<br>
  <a href="donate.html"><b>Donate 1 EUR now!</b></a><br>
<br>
  <a href="#" onclick="document.getElementById('mymessage').style.display = 'none';">No, thanks!</a>
</div>
<script>
  function getInfos(e,o){ document.getElementById('mymessage').style.display = 'block';}
  __cmp("addEventListener",["consentrejected",getInfos,false],null);
</script>

Déplacer le contenu de la page vers le bas lorsque la fenêtre de consentement s'ouvre

<script>
 var iscmpopen = false;

 function handleSize()
 {
  if(iscmpopen)
  {
   document.body.style.paddingTop = document.getElementById('cmpbox').offsetHeight + 'px';
  }
  else
  {
   document.body.style.paddingTop = 'inherit';
  }
 }

 function pushDown(e, o)
 {
  iscmpopen = true;
  handleSize();
 }

 function pushUp(e, o)
 {
  iscmpopen = false;
  handleSize();
 }

 window.addEventListener('resize', handleSize, false);
 window.addEventListener('load', handleSize, false);

 __cmp('addEventListener', ['consentscreen', pushDown, false], null);
 __cmp('addEventListener', ['consentscreenoff', pushUp, false], null);
</script>

We do our best to keep this purely informative documentation up to date. However, if you notice that any of these guides need a little touch-up, let us know!