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 |
|
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. |
|
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. |
|
CMP muestra la pantalla de consentimiento |
|
CMP elimina la pantalla de consentimiento |
|
CMP muestra la página de opciones personalizadas |
|
CMP ha obtenido su consentimiento o se encontró una cookie preexistente. Los datos de consentimiento ahora se pueden leer desde el CMP. |
|
El visitante dio su consentimiento positivo a todos los vendedores / propósitos |
|
El visitante rechazó todos los vendedores y propósitos. |
|
El visitante dio su consentimiento personalizado (acepta y rechaza) |
|
Se muestra la pantalla de consentimiento, se ha establecido un interés legítimo para este visitante. |
|
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. |
|
Varios eventos para el estándar IAB GPP |
tcfv2 |
Varios eventos para el estándar IAB TCF |
|
Una vez finalizada la carga (ver evento |
|
Una vez finalizada la carga (ver evento |
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>