CMP QR: Métodos

CMP QR: Métodos

Métodos para Smart TV y HbbTV

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:

Ejemplo con protocolo HTTPS
  1. SibboCMP.init(configuración, boolean, boolean); 
Ejemplo con protocolo HTTP
  1. SibboCMP.init(configuración, boolean, boolean, configuración 2); 


openBanner

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


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();                                                                                                                                                     


initialBannerHasToRefloatCheck

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();                                                                                                                                                     


close

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

sendKeyPressEvent

Método para enviar desde la aplicación el evento keydown al CMP, usado junto con la propiedad customKeydown de la configuración. Este método puede usarse cuando existe un conflicto entre los suscriptores al evento keydown del dispositivo y del CMP.
Con la propiedad customKeydown: true, el CMP dejará de escuchar el evento keydown, y lo recibirá de la app mediante este método.
  1. SibboCMP.sendKeyPressEvent(event); 
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', 'getInAppTCData', '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:
El CMP se ejecuta en un dispositivo de TV, no se puede usar javascript ES6: funciones flecha, const, let, etc. Se debe usar ES5.
  1. __tcfapi('addEventListener', 2, function(tcData, success) {                                                                                                         

  2.   if(success) {

  3.     var 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:
El CMP se ejecuta en un dispositivo de TV, no se puede usar javascript ES6: funciones flecha, const, let, etc. Se debe usar ES5.

Para obtener los consentimientos de todos los vendors no incluidos en IAB:
  1. __tcfapi("getOtherVendorConsents", 2, function(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, function(otherVendorConsents, success) {                                                   
  2.   if (success) {
  3.     var cynapsis = otherVendorConsents.cynapsisConsent;
  4.     console.log(cynapsis);
  5.   } else {
  6.     console.error('Error: could not get otherVendorConsents')
  7.   }
  8. });



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):
El CMP se ejecuta en un dispositivo de TV, no se puede usar javascript ES6: funciones flecha, const, let, etc. Se debe usar ES5.
  1. __tcfapi('addEventListener', 2, function(tcData, success) {                                                                                                      

  2.   if(success) {

  3.     var 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):
El CMP se ejecuta en un dispositivo de TV, no se puede usar javascript ES6: funciones flecha, const, let, etc. Se debe usar ES5.
  1. __tcfapi('addEventListener', 2, function(tcData, success) {                                                                                                      

  2.   if(success) {

  3.     var 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):
El CMP se ejecuta en un dispositivo de TV, no se puede usar javascript ES6: funciones flecha, const, let, etc. Se debe usar ES5.
  1. __tcfapi('addEventListener', 2, function(tcData, success) {                                                                                                     

  2.   if(success) {

  3.     var 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):
El CMP se ejecuta en un dispositivo de TV, no se puede usar javascript ES6: funciones flecha, const, let, etc. Se debe usar ES5.
  1. __tcfapi('addEventListener', 2, function(tcData, success) {                                                                                                    

  2.   if(success) {

  3.     var 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):
El CMP se ejecuta en un dispositivo de TV, no se puede usar javascript ES6: funciones flecha, const, let, etc. Se debe usar ES5.
  1. __tcfapi('addEventListener', 2, function(tcData, success) {                                                                                                    

  2.   if(success) {

  3.     var 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):
El CMP se ejecuta en un dispositivo de TV, no se puede usar javascript ES6: funciones flecha, const, let, etc. Se debe usar ES5.
  1. __tcfapi('addEventListener', 2, function(tcData, success) {                                                                                                    

  2.   if(success) {

  3.     var 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):
El CMP se ejecuta en un dispositivo de TV, no se puede usar javascript ES6: funciones flecha, const, let, etc. Se debe usar ES5.
  1. __tcfapi('addEventListener', 2, function(tcData, success) {                                                                                                    

  2.   if(success) {

  3.     var 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):
El CMP se ejecuta en un dispositivo de TV, no se puede usar javascript ES6: funciones flecha, const, let, etc. Se debe usar ES5.
  1. __tcfapi('addEventListener', 2, function(tcData, success) {                                                                                                    

  2.   if(success) {

  3.     var 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):
El CMP se ejecuta en un dispositivo de TV, no se puede usar javascript ES6: funciones flecha, const, let, etc. Se debe usar ES5.
  1. __tcfapi('addEventListener', 2, function(tcData, success) {                                                                                                    

  2.   if(success) {

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

  5.   }

  6. });