Web & AMP: Métodos

Web & AMP: Métodos

Métodos en web normal / AMP


Métodos UI del CMP

El script añade el objeto SibboCMP de forma global. Este objeto tiene los siguientes métodos:

init

Carga toda la configuración y comprueba si la interfaz tiene que mostrarse:
  1. SibboCMP.init(configuración); 

open

Muestra la interfaz CMP si está oculta. La vista predeterminada que se mostrará será la vista de Consentimiento basado en Propósitos. Esta será la vista que se mostrará cuando el usuario quiera editar su configuración de consentimientos:
  1. SibboCMP.open(); 

openBanner

Mostrar el banner inicial del CMP:
  1. SibboCMP.openBanner();                                                                                                                                                     


openBannerIfNoTCS

Mostrar el banner inicial de CMP cuando se utiliza la propiedad de configuración bannerHidden: true si no hay una cadena de consentimiento guardada en el almacenamiento local ni en las Cookies:
  1. SibboCMP.openBannerIfNoTCS();                                                                                                                                                     


isOpen

Devuelve true si CMP es visible y false si no:
  1. SibboCMP.isOpen();                                                                                                                                                     


openBanner

Devuelve true si CMP necesita reflotar el banner inicial y false si no, se usa cuando la propiedad de configuración bannerHidden: true. Usado con los métodos open/openBanner/openBannerIfNoTCS:
  1. SibboCMP.initialBannerHasToRefloatCheck();                                                                                                                                                     


getActualView

Devuelve el nombre de la vista activa del CMP: principal, propósitos, propósitosLegInt, proveedores, política de privacidad, política de cookies, política de cookies de privacidad, términos y condiciones, proveedores de consentimiento adicionales:
  1. SibboCMP.getActualView();                                                                                                                                                     


getVendorList

Devuelve la lista de proveedores como un objeto:
  1. SibboCMP.getVendorList();                                                                                                                                                     


tcsIsStoredinCookies

Devuelve true si la cadena de consentimiento (euconsent-v2) se almacena en Cookies y false en caso contrario:
  1. SibboCMP.tcsIsStoredinCookies();                                                                                                                                                     


tcsIsStoredinLocalStorage

Devuelve true si la cadena de consentimiento (euconsent-v2) está almacenada en el almacenamiento local y false en caso contrario:
  1. SibboCMP.tcsIsStoredinLocalStorage();                                                                                                                                                     


deleteDataInCookiesAndLocalStorage

Elimina todos los datos de CMP tanto de las cookies como del almacenamiento local:
  1. SibboCMP.deleteDataInCookiesAndLocalStorage(true);                                                                                                                                                     
Elimina todos los datos de CMP tanto de las cookies como del almacenamiento local, salvo los datos sibbo-uuid, la identificación de usuario única:
  1. SibboCMP.deleteDataInCookiesAndLocalStorage(false);  

close

Oculta la interfaz del CMP:
  1. SibboCMP.close();                                                                                                                                                     

destroy

Destruye la cadena de consentimiento y la configuración de propósitos almacenada en memoria en ejecución, útil en algunos casos específicos. Si queremos reflotar el CMP habrá que ejecutar
SibboCMP.init(configuración) de nuevo:
  1. SibboCMP.destroy();

todos los métodos salvo SibboCMP.init, sólo pueden usarse después de haberse inicializado correctamente el CMP.     

Métodos para obtener consentimientos

Para obtener los consentimientos usamos el método __tcfapi con diversos comandos como 'addEventListener', 'getVendorConsent', 'getOtherVendorConsents' como veremos a continuación.
El antiguo comando 'getTCData' ha quedado obsoleto y debe usarse 'addEventListener' en su lugar para obtener la cadena de consentimiento.

Obtener cadena de consentimiento

Para obtener la cadena de consentimiento del usuario, hay que llamar al comando addEventListener:
  1. __tcfapi('addEventListener', 2, (tcData, success) => {                                                                                                         

  2.   if(success) {

  3.     const consent = tcData.tcString;
  4.     console.log(consent);

  5.   } else {
  6.     // hacer otra cosa

  7.   }

  8. });


Obtener consentimiento de VENDORS NO INCLUIDOS EN IAB (comando personalizado CMP SIBBO)

Para obtener el consentimiento de vendors no incluidos en IAB, hay que llamar al comando getOtherVendorConsents:

Para obtener los consentimientos de todos los vendors no incluidos en IAB:
  1. __tcfapi("getOtherVendorConsents", 2, (otherVendorConsents, success) => {                                                   
  2.   if (success) {
  3.     console.log(otherVendorConsents);
  4.   } else {
  5.     console.error('Error: could not get otherVendorConsents')
  6.   }
  7. });

Para obtener el consentimento de un vendor no incluido en IAB concreto, hay que usar la propiedad cookieName de la configuración para identificarlo.
Ejemplo para el vendor Cynapsis Interactive GmbH, su cookieName es cynapsisConsent:
  1. __tcfapi("getOtherVendorConsents", 2, (otherVendorConsents, success) => {                                                   
  2.   if (success) {
  3.     const cynapsis = otherVendorConsents.cynapsisConsent;
  4.     console.log(cynapsis);
  5.   } else {
  6.     console.error('Error: could not get otherVendorConsents')
  7.   }
  8. });


Obtener consentimiento de VENDOR DE IAB (comando personalizado CMP SIBBO)

Para obtener el consentimiento de un vendor específico, hay que llamar al comando getVendorConsent pasando el ID del vendor (idVendor) como parámetro. Devuelve true en caso de que el vendor, los propósitos y las características especiales (si aplica) del vendor hayan sido aceptados o false en caso contrario:
  1. __tcfapi("getVendorConsent", 2, (vendorConsent, success) => {                                                                         
  2.   if (success) {
  3.     console.log(vendorConsent);
  4.   } else {
  5.     console.error('Error: could not get getVendorConsent')
  6.   }
  7. }, idVendor);


Obtener consentimiento de Google (comando personalizado CMP SIBBO)

Para obtener si Google puede servir publicidad, hay que llamar al comando isGoogleAccepted. Devuelve true en caso de poder servir publicidad o false en caso contrario:
  1. __tcfapi("isGoogleAccepted", 2, (googleConsent, success) => {                                                                          
  2.   if (success) {
  3.     console.log(googleConsent);
  4.   } else {
  5.     console.error('Error: could not get isGoogleAccepted')
  6.   }
  7. });

Cómo obtener el consentimiento adicional de Google (comando personalizado para SIBBO CMP)


Para obtener la cadena de consentimiento adicional de Google (AC string), que contiene una lista de proveedores de tecnología publicitaria de Google a los que se ha dado consentimiento y que no están registrados en IAB, debes llamar al comando getAddtlconsent.

  1. __tcfapi("getAddtlconsent", 2, (addtlconsent, success) => {                                                                          
  2.   if (success) {
  3.     console.log(addtlconsent);
  4.   } else {
  5.     console.error('Error: could not get addtlconsent');
  6.   }
  7. });



Comprobar si todos los propósitos han sido aceptados (comando personalizado CMP SIBBO)

Este método sólo se puede utilizar si se han definido los vendors en la configuración.
Para comprobar si se ha otorgado el consentimiento a todos los propósitos, hay que llamar a comando isAllAccepted. Devuelve true en caso positivo y false en caso negativo:
  1. __tcfapi("isAllAccepted", 2, (isAllAccepted, success) => {                                                                                    
  2.   if (success) {
  3.     console.log(isAllAccepted);
  4.   } else {
  5.     console.error('Error: could not get isAllAccepted')
  6.   }
  7. });

Comprobar si los propósitos y proveedores seleccionados han sido aceptados (comando personalizado para SIBBO CMP) 

Para verificar si los propósitos y proveedores seleccionados han sido aceptados, llama al comando isAllAcceptedCustom. Este comando devuelve true (verdadero) o false (falso).

Debes especificar los propósitos y proveedores con arreglos separados por comas, siguiendo el orden de los siguientes arreglos:

Array con propósitos basados en consentimiento,
Array con propósitos basados en interés legítimo,
Array con propósitos del editor basados en consentimiento,
Array con propósitos del editor basados en interés legítimo,
Array con propósitos personalizados del editor,
Array con características especiales,
Array con proveedores basados en consentimiento,
Array con proveedores basados en interés legítimo.

Deben existir 8 arrays, algunos de los cuales pueden estar vacíos.

El siguiente ejemplo verifica la aceptación de 10 propósitos basados en consentimiento, 1 propósito basado en interés legítimo, 10 propósitos del editor basados en consentimiento, 1 propósito del editor basado en interés legítimo y 1 característica especial:

  1. __tcfapi("isAllAcceptedCustom", 2, (isAllAccepted, success) => {                                                                                    
  2.   if (success) {
  3.     console.log(isAllAccepted);
  4.   } else {
  5.     console.error('Error: could not get isAllAccepted');
  6.   }
  7. }, [1,2,3,4,5,6,7,8,9,10], [2], [1,2,3,4,5,6,7,8,9,10], [2], [], [1], [], [] );

El siguiente ejemplo verifica la aceptación de 14 proveedores basados en consentimiento:

  1. __tcfapi("isAllAcceptedCustom", 2, (isAllAccepted, success) => {                                                                                    
  2.   if (success) {
  3.     console.log(isAllAccepted);
  4.   } else {
  5.     console.error('Error: could not get isAllAccepted');
  6.   }
  7. }, [], [], [], [], [], [], [21, 32, 50, 77, 115, 126, 278, 284, 373, 531, 653, 755, 812, 1126], [] );

El siguiente ejemplo verifica la aceptación de 4 propósitos basados en consentimiento, 1 propósito personalizado del editor y 73 proveedores basados en interés legítimo:

  1. __tcfapi("isAllAcceptedCustom", 2, (isAllAccepted, success) => {                                                                                    
  2.   if (success) {
  3.     console.log(isAllAccepted);
  4.   } else {
  5.     console.error('Error: could not get isAllAccepted');
  6.   }
  7. }, [8,9,10,11], [], [], [], [1], [], [], [1,2,4,6,8,10,11,12,13,14,15,16,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,36,37,39,40,42,44,45,46,47,48,49,50,52,53,55,56,57,58,59,60,61,62,66,69,70,71,73,75,76,77,78,80,82,83,84,85,87,90,91,92,93,94,95,97,98,100] );

Ejemplos para obtener consentimientos

En el objeto tcData del comando addEventListener está guardada toda la información que el CMP genera. A continuación se muestra algunos ejemplos del tipo de información que se puede obtener:

Obtener consentimiento de un propósito

Para obtener el consentimiento de un propósito de la IAB (ejemplo con ID 10):

  1. __tcfapi('addEventListener', 2, (tcData, success) => {                                                                                                      

  2.   if(success) {

  3.     const consent = tcData.purpose.consents[10];
  4.     console.log(consent);

  5.   }

  6. });


Obtener consentimiento de un propósito de interés legítimo

Para obtener el consentimiento de un propósito de interés legítimo de la IAB (ejemplo con ID 10):

  1. __tcfapi('addEventListener', 2, (tcData, success) => {                                                                                                      

  2.   if(success) {

  3.     const consent = tcData.purpose.legitimateInterests[10];
  4.     console.log(consent);

  5.   }

  6. });


Obtener consentimiento de un vendor

Para obtener el consentimiento específico de un vendor (ejemplo con ID 565):

  1. __tcfapi('addEventListener', 2, (tcData, success) => {                                                                                                     

  2.   if(success) {

  3.     const consent = tcData.vendor.consents[565];
  4.     console.log(consent);

  5.  }

  6. });


Obtener consentimiento de un propósito de interés legitimo de un vendor

Para obtener el consentimiento específico de un vendor (ejemplo con ID 565):

  1. __tcfapi('addEventListener', 2, (tcData, success) => {                                                                                                    

  2.   if(success) {

  3.     const consent = tcData.vendor.legitimateInterests[565];
  4.     console.log(consent);

  5.   }

  6. });


Obtener consentimiento de un propósito del publisher

Para obtener el valor de un propósito del publisher (ejemplo con ID 10):

  1. __tcfapi('addEventListener', 2, (tcData, success) => {                                                                                                    

  2.   if(success) {

  3.     const consent = tcData.publisher.consents[10];
  4.     console.log(consent);

  5.   }

  6. });


Obtener consentimiento de un propósito de interés legítimo del publisher

Para obtener el valor de un propósito legítimo del publisher (ejemplo con ID 10):

  1. __tcfapi('addEventListener', 2, (tcData, success) => {                                                                                                    

  2.   if(success) {

  3.     const consent = tcData.publisher.legitimateInterests[10];
  4.     console.log(consent);

  5.   }

  6. });


Obtener consentimiento de un propósito custom

Para obtener el valor de un propósito custom (ejemplo con ID 1):

  1. __tcfapi('addEventListener', 2, (tcData, success) => {                                                                                                    

  2.   if(success) {

  3.     const consent = tcData.publisher.customPurpose.consents[1];
  4.     console.log(consent);

  5.   }

  6. });


Obtener consentimiento de interés legítimo de un propósito custom

Para obtener el valor de un propósito legítimo custom (ejemplo con ID 1):

  1. __tcfapi('addEventListener', 2, (tcData, success) => {                                                                                                    

  2.   if(success) {

  3.     const consent = tcData.publisher.customPurpose.legitimateInterests[1];
  4.     console.log(consent);

  5.   }

  6. });


Obtener consentimiento de una característica especial

Para obtener el valor de una característica especial (ejemplo con ID 1):

  1. __tcfapi('addEventListener', 2, (tcData, success) => {                                                                                                    

  2.   if(success) {

  3.     const consent = tcData.specialFeatureOptins[1];
  4.     console.log(consent);

  5.   }

  6. });

Métodos en Web Superfast


Métodos UI del CMP

El archivo sibbo-cmp-loader.js añade el objeto SibboCMPLoader de forma global. Este objeto tiene los siguientes métodos:

init

Carga toda la configuración y comprueba si la interfaz tiene que mostrarse:
  1. SibboCMPLoader.init( url core, url configuración )                                                                                                                                                     

openCmpConfig

Reflota el CMP si éste está oculto. La vista por defecto que mostrará será la de propósitos. Útil cuando el usuario quiera editar su consentimiento:
  1. SibboCMPLoader.openCmpConfig(true)
openCmpConfig sólo puede usarse después de haberse inicializado correctamente el CMP.                


Métodos para obtener consentimientos

Para obtener los consentimientos usamos el método __tcfapi con diversos comandos como 'addEventListener', 'getVendorConsent', 'getOtherVendorConsents' como veremos a continuación.
El antiguo comando 'getTCData' ha quedado obsoleto y debe usarse 'addEventListener' en su lugar para obtener la cadena de consentimiento.

Si está usando el CMP para Web Superfast deberá asegurarse de que el archivo sibbo-cmp-loader.js se ha terminado de ejecutar antes de poder usar los siguientes métodos __tcfapi.

Hay dos maneras de hacerlo:
  1. Ejecutar estos métodos dentro de la función onContentLoaded, ver Guía técnica para la implementación del CMP
  2. Usar un escuchador de eventos que espere el evento 'sibbo-loader-init' y al recibirlo ejecutar el método __tcfapi, ejemplo:
  1. function initProgrammatic() {

  2.             // ejecutar aquí __tcfapi
  3.             
  4.             document.removeEventListener('sibbo-loader-init', initProgrammatic);

  5.  }

  6. document.addEventListener('sibbo-loader-init', initProgrammatic);


Obtener cadena de consentimiento

Para obtener la cadena de consentimiento del usuario, hay que llamar al comando addEventListener:
  1. __tcfapi('addEventListener', 2, (tcData, success) => {                                                                                                         

  2.   if(success) {

  3.     const consent = tcData.tcString;
  4.     console.log(consent);

  5.   } else {
  6.     // hacer otra cosa

  7.   }

  8. });


Obtener consentimiento de VENDORS NO INCLUIDOS EN IAB (comando personalizado CMP SIBBO)

Para obtener el consentimiento de vendors no incluidos en IAB, hay que llamar al comando getOtherVendorConsents:
  1. __tcfapi("getOtherVendorConsents", 2, (otherVendorConsents, success) => {                                                   
  2.   if (success) {
  3.     console.log(otherVendorConsents);
  4.     //Ej. consent de Twitter
  5.     const twitter = otherVendorConsents.twitter;
  6.   } else {
  7.     console.error('Error: could not get otherVendorConsents')
  8.   }
  9. });


Obtener consentimiento de VENDOR DE IAB (comando personalizado CMP SIBBO)

Para obtener el consentimiento de un vendor específico, hay que llamar al comando getVendorConsent pasando el ID del vendor (idVendor) como parámetro. Devuelve true en caso de el vendor tener consentimiento o false en caso contrario:
  1. __tcfapi("getVendorConsent", 2, (vendorConsent, success) => {                                                                         
  2.   if (success) {
  3.     console.log(vendorConsent);
  4.   } else {
  5.     console.error('Error: could not get getVendorConsent')
  6.   }
  7. }, idVendor);


Obtener consentimiento de Google (comando personalizado CMP SIBBO)

Para obtener si Google puede servir publicidad, hay que llamar al comando isGoogleAccepted. Devuelve true en caso de poder servir publicidad o false en caso contrario:
  1. __tcfapi("isGoogleAccepted", 2, (googleConsent, success) => {                                                                          
  2.   if (success) {
  3.     console.log(googleConsent);
  4.   } else {
  5.     console.error('Error: could not get isGoogleAccepted')
  6.   }
  7. });

Cómo obtener el consentimiento adicional de Google (comando personalizado para SIBBO CMP)


Para obtener la cadena de consentimiento adicional de Google (AC string), que contiene una lista de proveedores de tecnología publicitaria de Google a los que se ha dado consentimiento y que no están registrados en IAB, debes llamar al comando getAddtlconsent.

  1. __tcfapi("getAddtlconsent", 2, (addtlconsent, success) => {                                                                          
  2.   if (success) {
  3.     console.log(addtlconsent);
  4.   } else {
  5.     console.error('Error: could not get addtlconsent');
  6.   }
  7. });


Comprobar si todos los propósitos han sido aceptados (comando personalizado CMP SIBBO)

Este método sólo se puede utilizar si se han definido los vendors en la configuración.
Para comprobar si se ha otorgado el consentimiento a todos los propósitos, hay que llamar a comando isAllAccepted. Devuelve true en caso positivo y false en caso negativo:
  1. __tcfapi("isAllAccepted", 2, (isAllAccepted, success) => {                                                                                    
  2.   if (success) {
  3.     console.log(isAllAccepted);
  4.   } else {
  5.     console.error('Error: could not get isAllAccepted')
  6.   }
  7. });

Comprobar si los propósitos y proveedores seleccionados han sido aceptados (comando personalizado para SIBBO CMP) 

Para verificar si los propósitos y proveedores seleccionados han sido aceptados, llama al comando isAllAcceptedCustom. Este comando devuelve true (verdadero) o false (falso).

Debes especificar los propósitos y proveedores con arreglos separados por comas, siguiendo el orden de los siguientes arreglos:

Array con propósitos basados en consentimiento,
Array con propósitos basados en interés legítimo,
Array con propósitos del editor basados en consentimiento,
Array con propósitos del editor basados en interés legítimo,
Array con propósitos personalizados del editor,
Array con características especiales,
Array con proveedores basados en consentimiento,
Array con proveedores basados en interés legítimo.

Deben existir 8 arrays, algunos de los cuales pueden estar vacíos.

El siguiente ejemplo verifica la aceptación de 10 propósitos basados en consentimiento, 1 propósito basado en interés legítimo, 10 propósitos del editor basados en consentimiento, 1 propósito del editor basado en interés legítimo y 1 característica especial:

  1. __tcfapi("isAllAcceptedCustom", 2, (isAllAccepted, success) => {                                                                                    
  2.   if (success) {
  3.     console.log(isAllAccepted);
  4.   } else {
  5.     console.error('Error: could not get isAllAccepted');
  6.   }
  7. }, [1,2,3,4,5,6,7,8,9,10], [2], [1,2,3,4,5,6,7,8,9,10], [2], [], [1], [], [] );

El siguiente ejemplo verifica la aceptación de 14 proveedores basados en consentimiento:

  1. __tcfapi("isAllAcceptedCustom", 2, (isAllAccepted, success) => {                                                                                    
  2.   if (success) {
  3.     console.log(isAllAccepted);
  4.   } else {
  5.     console.error('Error: could not get isAllAccepted');
  6.   }
  7. }, [], [], [], [], [], [], [21, 32, 50, 77, 115, 126, 278, 284, 373, 531, 653, 755, 812, 1126], [] );

El siguiente ejemplo verifica la aceptación de 4 propósitos basados en consentimiento, 1 propósito personalizado del editor y 73 proveedores basados en interés legítimo:

  1. __tcfapi("isAllAcceptedCustom", 2, (isAllAccepted, success) => {                                                                                    
  2.   if (success) {
  3.     console.log(isAllAccepted);
  4.   } else {
  5.     console.error('Error: could not get isAllAccepted');
  6.   }
  7. }, [8,9,10,11], [], [], [], [1], [], [], [1,2,4,6,8,10,11,12,13,14,15,16,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,36,37,39,40,42,44,45,46,47,48,49,50,52,53,55,56,57,58,59,60,61,62,66,69,70,71,73,75,76,77,78,80,82,83,84,85,87,90,91,92,93,94,95,97,98,100] );

Ejemplos para obtener consentimientos

En el objeto tcData de la función addEventListener está guardada toda la información que el CMP genera. A continuación se muestra algunos ejemplos del tipo de información que se puede obtener:

Obtener consentimiento de un propósito

Para obtener el consentimiento de un propósito de la IAB (ejemplo con ID 10):

  1. __tcfapi('addEventListener', 2, (tcData, success) => {                                                                                                      

  2.   if(success) {

  3.     const consent = tcData.purpose.consents[10];
  4.     console.log(consent);

  5.   }

  6. });


Obtener consentimiento de un propósito de interés legítimo

Para obtener el consentimiento de un propósito de interés legítimo de la IAB (ejemplo con ID 10):

  1. __tcfapi('addEventListener', 2, (tcData, success) => {                                                                                                      

  2.   if(success) {

  3.     const consent = tcData.purpose.legitimateInterests[10];
  4.     console.log(consent);

  5.   }

  6. });

Obtener consentimiento de un vendor

Para obtener el consentimiento específico de un vendor (ejemplo con ID 565):

  1. __tcfapi('addEventListener', 2, (tcData, success) => {                                                                                                     

  2.   if(success) {

  3.     const consent = tcData.vendor.consents[565];
  4.     console.log(consent);

  5.  }

  6. });


Obtener consentimiento de un propósito de interés legitimo de un vendor

Para obtener el consentimiento específico de un vendor (ejemplo con ID 565):

  1. __tcfapi('addEventListener', 2, (tcData, success) => {                                                                                                    

  2.   if(success) {

  3.     const consent = tcData.vendor.legitimateInterests[565];
  4.     console.log(consent);

  5.   }

  6. });


Obtener consentimiento de un propósito del publisher

Para obtener el valor de un propósito del publisher (ejemplo con ID 10):

  1. __tcfapi('addEventListener', 2, (tcData, success) => {                                                                                                    

  2.   if(success) {

  3.     const consent = tcData.publisher.consents[10];
  4.     console.log(consent);

  5.   }

  6. });


Obtener consentimiento de un propósito de interés legítimo del publisher

Para obtener el valor de un propósito legítimo del publisher (ejemplo con ID 10):

  1. __tcfapi('addEventListener', 2, (tcData, success) => {                                                                                                    

  2.   if(success) {

  3.     const consent = tcData.publisher.legitimateInterests[10];
  4.     console.log(consent);

  5.   }

  6. });


Obtener consentimiento de un propósito custom

Para obtener el valor de un propósito custom (ejemplo con ID 1):

  1. __tcfapi('addEventListener', 2, (tcData, success) => {                                                                                                    

  2.   if(success) {

  3.     const consent = tcData.publisher.customPurpose.consents[1];
  4.     console.log(consent);

  5.   }

  6. });


Obtener consentimiento de interés legítimo de un propósito custom

Para obtener el valor de un propósito legítimo custom (ejemplo con ID 1):

  1. __tcfapi('addEventListener', 2, (tcData, success) => {                                                                                                    

  2.   if(success) {

  3.     const consent = tcData.publisher.customPurpose.legitimateInterests[1];
  4.     console.log(consent);

  5.   }

  6. });


Obtener consentimiento de una característica especial

Para obtener el valor de una característica especial (ejemplo con ID 1):

  1. __tcfapi('addEventListener', 2, (tcData, success) => {                                                                                                    

  2.   if(success) {

  3.     const consent = tcData.specialFeatureOptins[1];
  4.     console.log(consent);

  5.   }

  6. });