Eventi CMP

Per ricevere notifiche quando si verificano determinati eventi, puoi utilizzare i seguenti metodi JavaScript:

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

Il CMP può richiamare i seguenti eventi:

Evento

Descrizione

init

Il codice CMP è stato caricato e il codice stub è stato rimosso. In questa fase il CMP non dispone ancora di informazioni sul consenso.

settings

Il CMP ha terminato il caricamento delle impostazioni. Se esisteva già una stringa di consenso, i dati relativi al consenso possono ora essere letti dal CMP.

consentscreen

Il CMP mostra la schermata di consenso

consentscreenoff

Il CMP rimuove la schermata di consenso

consentscreencustom

Il CMP mostra la pagina delle scelte personalizzate

consent

Il CMP ha raccolto il consenso o è stato trovato un cookie preesistente. I dati relativi al consenso possono ora essere letti dal CMP.

consentapproved

Il visitatore ha dato il consenso a tutti i fornitori/finalità

consentrejected

Il visitatore ha rifiutato tutti i fornitori e le finalità

consentcustom

Il visitatore ha fornito un consenso personalizzato (accettazioni e rifiuti)

liestablished

Viene visualizzata la schermata di consenso, è stato stabilito un interesse legittimo per questo visitatore.

vendorconsent

Il visitatore ha accettato un elemento di contenuto dinamico. L'ID del fornitore dell'elemento accettato è reperibile nella variabile del sottotipo.

gpp

Vari eventi per lo standard IAB GPP

tcfv2

Vari eventi per lo standard IAB TCF

loadShowing

Una volta terminato il caricamento (vedi evento settings) e il sistema ha deciso di mostrare il layer di consenso.

loadNotShowing

Una volta terminato il caricamento (vedi evento settings) e il sistema ha deciso di non mostrare il livello di contenuto.

Gli handler di eventi sono definiti come:

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

Attenzione: non utilizzare cmpobject più. La funzione è deprecata. Utilizza invece le chiamate API.

Esempio:

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

Si prega di notare che il comando addEventListener di IAB TCF v2 reagirà solo a un sottoinsieme di eventi.

Esempi

Reindirizzare il visitatore a un altro sito web se non viene dato il consenso

Si prega di notare che questo comportamento non è raccomandato e potrebbe causare problemi legali!

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

Visualizza un messaggio se il visitatore ha rifiutato

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

Spostare il contenuto della pagina verso il basso quando si apre il layer di consenso

<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!