Info
Contenido

Eventos CMP

Para recibir notificaciones cuando ocurren ciertos eventos, puede usar los siguientes métodos de JavaScript:

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

El CMP puede llamar a los siguientes eventos:

Evento

Descripción

init

Se carga el código CMP y se ha eliminado el código auxiliar. En esta etapa, el CMP aún no tiene información sobre el consentimiento.

settings

CMP terminó de cargar su configuración. Si ya existía una cadena de consentimiento, los datos de consentimiento ahora se pueden leer desde el CMP.

consentscreen

CMP muestra la pantalla de consentimiento

consentscreenoff

CMP elimina la pantalla de consentimiento

consentscreencustom

CMP muestra la página de opciones personalizadas

consent

CMP ha obtenido su consentimiento o se encontró una cookie preexistente. Los datos de consentimiento ahora se pueden leer desde el CMP.

consentapproved

El visitante dio su consentimiento positivo a todos los vendedores / propósitos

consentrejected

El visitante rechazó todos los vendedores y propósitos.

consentcustom

El visitante dio su consentimiento personalizado (acepta y rechaza)

liestablished

Se muestra la pantalla de consentimiento, se ha establecido un interés legítimo para este visitante.

vendorconsent

El visitante aceptó un elemento de contenido dinámico. El ID de proveedor del artículo aceptado se puede encontrar en la variable de subtipo.

gpp

Varios eventos para el estándar IAB GPP

tcfv2

Varios eventos para el estándar IAB TCF

loadShowing

Una vez finalizada la carga (ver evento settings) y el sistema ha decidido mostrar la capa correspondiente.

loadNotShowing

Una vez finalizada la carga (ver evento settings) y el sistema ha decidido no mostrar la capa conesnt.

El controlador de eventos se define como:

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

Advertencia: No utilice cmpobject nunca más. La función está obsoleta. En su lugar, utilice llamadas a la API.

Ejemplo:

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

Tenga en cuenta que el comando addEventListener IAB TCF v2 reaccionará solo en un subconjunto de eventos.

Ejemplos

Redirigir al visitante a un sitio web diferente si no se da su consentimiento

Tenga en cuenta que este comportamiento no se recomienda y puede causar problemas legales.

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

Mostrar un mensaje si el visitante rechazó

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

Empujar el contenido de la página hacia abajo cuando se abre la capa de consentimiento

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