Información
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

"en eso"

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.

"configuración" / "cnf"

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.

"pantalla de consentimiento"

CMP muestra la pantalla de consentimiento

"consentimiento pantalla"

CMP elimina la pantalla de consentimiento

"consentimiento"

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

"aprobado por consentimiento"

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

"consentimiento rechazado"

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

"consentimiento personalizado"

El visitante dio su consentimiento personalizado (acepta y rechaza)

"establecido"

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

"consentimiento del proveedor"

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.

El controlador de eventos se define como:

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

Ejemplo:

<script>
  function getInfos(e,o)
  { 
    /*... do something ...*/
  }
  __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 arriba