Cookiebot

Programando Cookiebot CMP (del inglés Consent Management Platform)

A continuación, hay información técnica avanzada, principalmente para programadores. Si buscas nuestra guía de implementación por defecto de cómo iniciase en Cookiebot CMP, pudes encontrarla aquí:

En esta página encontrarás documentación de SDK para construir implementaciones personalizadas de banners y control de cookies. Además, también encontrarás las opciones para anular manualmente los mecanismos automáticos de nuestro banner de consentimiento de cookies.   

Para que funcione nuestro SDK, el script de Cookiebot CMP necesita ser implementado en tu web. 

Carga el script de consentimiento de cookies a través de:

https://consent.cookiebot.com/uc.js?cbid=00000000-0000-0000-0000-000000000000

O como:

https://consent.cookiebot.com/uc.js

(con el atributo data-cbid='00000000-0000-0000-0000-000000000000')

Recuerda sustituir 00000000-0000-0000-0000-000000000000 por tu propio identificador de tu grupo de dominio, que se encuentra bajo “Sus scripts”, en tu cuenta de Cookiebot CMP. 

El script de Cookiebot CMP se carga y construye un objeto de JavaScript del lado del cliente, denominado “Cookiebot,” que presenta las siguientes propiedades públicas, métodos, eventos y funciones de retrollamada (callback).

Propiedades


NombreTipoPor defectoDescripción
consent.necessarybooltrueVerdadero si el usuario actual ha aceptado las cookies necesarias. La propiedad es de solo lectura.
consent.preferencesboolfalseVerdadero si el usuario actual ha aceptado las cookies de preferencias. La propiedad es de solo lectura.
consent.statisticsboolfalseVerdadero si el usuario actual ha aceptado las cookies estadísticas. La propiedad es de solo lectura.
consent.marketingboolfalseVerdadero si el usuario actual ha aceptado las cookies de marketing. La propiedad es de solo lectura.
consentedboolfalseVerdadero si el usuario ha aceptado el uso de cookies. La propiedad es de solo lectura.
declinedboolfalseVerdadero si el usuario no ha aceptado el uso de cookies. La propiedad es de solo lectura.
hasResponseboolfalseVerdadero si el usuario ha respondido al diálogo de consentimiento con un "aceptar" o un "rechazar". La propiedad es de solo lectura.
doNotTrackboolfalseVerdadero si el usuario ha habilitado la opción "No rastreo" (DNT). Si está activada, Cookiebot no activará la cookie CookieConsentBulkTicket (se usa para dar un consentimiento masivo). La propiedad es de solo lectura.
regulations.gdprAppliesboolfalseTe permite determinar si se aplica el RGPD basándose en la geolocalización del usuario. La propiedad es solo de lectura.
regulations.ccpaAppliesboolfalseTe permite determinar si la CCPA se aplica basada en la geolocalización del usuario. La propiedad es solo de lectura.
regulations.lgpdAppliesboolfalseTe permite determinar si la LGPD se aplica basada en la geolocalización del usuario. La propiedad es solo de lectura.

Métodos


NombreParámetrosDescripción
showNingunoFuerza la aparición del diálogo de consentimiento de cookies.
hideNingunoFuerza al diálogo de consentimiento de cookies a ocultarse.
renewNingunoMuestra de nuevo el diálogo de consentimiento de cookies para que el usuario lo renueve o cambie su estado.
getScriptstring URL,
bool async,
func callback
Carga un archivo de tipo JavaScript. URL: Ruta absoluta del archivo JavaScript.
async (Opcional): Determina si el script debería cargar asincrónicamente.
callback (Opcional): Función JavaScript para ejecutar cuando el script ha terminado de cargar.
runScriptsNingunoEvalúa todas las etiquetas de script cargadas del tipo "text/plain" con el atributo "data-cookieconsent" y ejecuta los scripts de acuerdo con el estado del consentimiento del usuario. Para usarlo en sitios web que cargan el contenido dinámicamente, p. ej., en aplicaciones de una sola página. Los scripts solo se ejecutan una vez, por lo que es seguro llamar a esta función varias veces, p. ej., cada vez que se carga nuevo contenido.
withdrawNingunoRetirar mi consentimiento para este sitio web.
submitCustomConsentbool optinPreferences,
bool optinStatistics,
bool optinMarketing
Usa esto fuera del contexto del banner de cookies, como por ejemplo, un botón en el encabezado/pie de página de tu web para elegir si aceptar o no - O para añadir un botón en tu banner que permita el consentimiento partical, por ejemplo, "Aceptar Preferencias y Estadísticas".

Ejemplo: Si prefieres no emplear el widget de Cookiebot CMP, puede que quieras crear un enlace personalizado que permita al usuario cambiar o renovar su consentimiento de cookies. Aun así, nosotros seguimos recomendando usar el widget de Cookiebot CMP para lograr la mejor experiencia de usuario posible.

<a href="javascript: Cookiebot.renew()">Renovar o cambiar el consentimiento de las cookies</a>

Gestión de eventos


NombreDescripción
CookiebotOnConsentReadyEl evento se dispara cuando la declaración de consentimiento del usuario está lista, ya sea porque se haya enviado o porque se haya cargado de una cookie preexistente. Emplea este evento si necesitas recuperar el consentimiento del usuario y ejecutar scripts adicionales lo antes posible en función de los valores de consentimiento.
CookiebotOnLoadEl evento se activa cuando el consentimiento del usuario se ha cargado – ya sea cuando el usuario envíe el consentimiento o cuando el usuario navegue por una página donde dicho consentimiento ya ha sido presentado.
CookiebotOnAcceptEl evento se activa si el usuario acepta el uso de cookies. El evento también se activa si el usuario ha dado su consentimiento en una visita anterior al sitio web.
CookiebotOnDeclineEl evento se activa si el usuario rechaza el uso de cookies haciendo clic en el botón rechazar del diálogo de consentimiento de cookies. El evento también se activa si el usuario ya había rechazado el uso de cookies en una visita anterior al sitio web.
CookiebotOnDialogInitSe activa cuando se inicializa el banner de consentimiento de cookies, antes de compilar el contenido del banner.
CookiebotOnDialogDisplaySe attiva cuando el banner de consentimiento de cookies se muestra al usuario final.
CookiebotOnTagsExecutedSe attiva cuando las etiquetas marcadas para consentimiento previo (por ejemplo, el atributo "data-cookieconsent") se han activado.

Ejemplo: cargar cookies de marketing si el usuario ha aceptado

<script type="text/javascript">

      window.addEventListener('CookiebotOnAccept', function (e) {
      if (Cookiebot.consent.marketing)
          {
          //Execute code that sets marketing cookies
          }
      }, false);

</script>

Callbacks


NombreDescripción
CookiebotCallback_OnLoadLa llamada asíncrona se activa cuando el banner de cookies se ha cargado para obtener el contenido de usuario.
CookiebotCallback_OnAcceptEl callback asíncrono se activa cuando algún usuario hace clic en el botón de aceptar del diálogo de consentimiento de cookies y cada vez que algún usuario que haya dado su consentimiento carga una página.
CookiebotCallback_OnDeclineEl callback asíncrono se activa cuando algún usuario rechaza el uso de cookies haciendo clic en el botón de rechazar del diálogo de consentimiento de cookies. También se activa cada vez que un usuario que ha rechazado el uso de cookies carga una página.
CookiebotCallback_OnDialogInitSe activa cuando se inicializa el banner de consentimiento de cookies, antes de compilar el contenido del banner.
CookiebotCallback_OnDialogDisplaySe attiva cuando el banner de consentimiento de cookies se muestra al usuario final.
CookiebotCallback_OnTagsExecutedSe attiva cuando las etiquetas marcadas para consentimiento previo (por ejemplo, el atributo "data-cookieconsent") se han activado.

Ejemplo: Carga cookies estadísticas si el usuario ha aceptado las cookies estadísticas


Por favor, ten en cuenta que este ejemplo es relevante sólo si no has establecido el modo “auto” para el data-blockingmode y si no has marcado tu script para control con data-cookieconsent.

<script type="text/javascript">
  function CookiebotCallback_OnAccept() {
        if (Cookiebot.consent.statistics)            
{      
enableStatisticsCookies();              
}
}
function enableStatisticsCookies() {  
       //Ejecuta código que establece cookies de estadísticas
     }  
</script>

Script para la atribución de etiquetas de datos


NombreTipoObligatorioDescripción
data-cbidstringEl identificador único para su grupo de dominio Cookiebot.
data-typestringnoAnula el tipo de diálogo por defecto con uno de los siguientes valores:
"optin", "optout", "optinout", "leveloptin", "inlineoptin", "optionaloptin"
data-levelstringnoAnula el método de consentimiento por defecto con los siguientes valores "implicit", "strict"
data-culturestringnoPara establecer un idioma específico en el diálogo de consentimiento, establece el valor de este atributo a un código de lenguaje de cultura neutral ISO 639-1, por ejemplo, "EN" para inglés. Al establecer este atributo con un lenguaje válido, se anula la opción "detección automática del idioma" establecida en el gestor de Cookiebot.
data-frameworkstringnoPermite a Cookiebot señalar el consentimiento a otros marcos (frameworks) de consentimiento implementados en un sitio web además del marco de consentimiento estándar contenido en Cookiebot. El valor del atributo debe coincidir con el código abreviado del marco externo. Marcos de consentimiento de terceros actualmente admitidos: Código abreviado "IAB": Marco de transparencia y consentimiento de IAB Europa
data-blockingmodestringnoDefine si Cookiebot debería bloquear de manera automática todas las cookies hasta que el usuario hay consentido, valor: "auto". En caso contrario, (valor: "none") los scripts de establecimiento de cookies deberían ser marcados manualmente como se ha descrito en nuestra guía de implementación manual. Si omite este atributo, el comportamiento equivaldría al valor: "none".
data-consentmodestringnoTe permite deshabilitar el Modo de Consentimiento de Google al pasar un valor "disabled".

Ejemplo: Forzar el consentimiento del cuadro de diálogo mostrarse en inglés


<script id="Cookiebot" data-culture="EN" src="https://consent.cookiebot.com/uc.js" data-cbid="00000000-0000-0000-0000-000000000000" type="text/javascript"></script>

Uso del servidor


Si tu sitio web va a utilizar cookies en el servidor, puedes averiguar qué tipo de cookies puedes utilizar en función del estado actual del diálogo de consentimiento de cookies del usuario.

  • C#
  • PHP
  • VB
using System.Web.Script.Serialization;
 ...

HttpCookie CurrentUserConsent = Request.Cookies["CookieConsent"];

 if (CurrentUserConsent != null) 
{
       switch (CurrentUserConsent.Value) 
       {
              case "-1":
                    //The user is not within a region that requires consent - all cookies are accepted 
                    break; 

              default: //The user has given their consent

                     //Read current user consent in encoded JavaScript format 
                     JavaScriptSerializer CookieConsentSerializer = new JavaScriptSerializer();
                     dynamic CookieConsent = CookieConsentSerializer.Deserialize<object>(HttpUtility.UrlDecode(CurrentUserConsent.Value));


if (!CookieConsent["preferences"] && !CookieConsent["statistics"] && !CookieConsent["marketing"])
                     {
                         //The user has opted out of cookies, set strictly necessary cookies only
                     }
                     else
                     {

                     if (CookieConsent["preferences"]) 
                     {
                            //Current user accepts preference cookies
                     }
                     else 
                     {
                           //Current user does NOT accept preference cookies
                     }

                     if (CookieConsent["statistics"]) 
                     {
                           //Current user accepts statistics cookies
                     }
                     else
                     { 
                          //Current user does NOT accept statistics cookies
                     } 

                     if (CookieConsent["marketing"])
                     { 
                          //Current user accepts marketing cookies 
                     } 
                     else
                     { 
                          //Current user does NOT accept marketing cookies
                     } 
              }
       } 
}
 else 
{ 
      //The user has not accepted cookies - set strictly necessary cookies only 
}
if (isset($_COOKIE["CookieConsent"])) 
{ 
      switch ($_COOKIE["CookieConsent"])
      {
            case "-1":
                  //The user is not within a region that requires consent - all cookies are accepted
                  break; 

            default: //The user has given their consent 

                  //Read current user consent in encoded JavaScript format 
                  $valid_php_json = preg_replace('/\s*:\s*([a-zA-Z0-9_]+?)([}\[,])/', ':"$1"$2', preg_replace('/([{\[,])\s*([a-zA-Z0-9_]+?):/', '$1"$2":', str_replace("'", '"',stripslashes($_COOKIE["CookieConsent"])))); 
                  $CookieConsent = json_decode($valid_php_json); 



if (!filter_var($CookieConsent->preferences, FILTER_VALIDATE_BOOLEAN) 
&& !filter_var($CookieConsent->statistics, FILTER_VALIDATE_BOOLEAN) && !
filter_var($CookieConsent->marketing, FILTER_VALIDATE_BOOLEAN))
                  {
                         //The user has opted out of cookies, set strictly necessary cookies only
                  }
                  else
                  {

                  if (filter_var($CookieConsent->preferences, FILTER_VALIDATE_BOOLEAN)) 
                  { 
                        //Current user accepts preference cookies 
                  } 
                  else 
                  { 
                        //Current user does NOT accept preference cookies
                  } 

                  if (filter_var($CookieConsent->statistics, FILTER_VALIDATE_BOOLEAN))
                  { 
                        //Current user accepts statistics cookies 
                  } 
                  else 
                  { 
                        //Current user does NOT accept statistics cookies
                  }

                  if (filter_var($CookieConsent->marketing, FILTER_VALIDATE_BOOLEAN))
                  { 
                        //Current user accepts marketing cookies
                  }
                  else 
                  { 
                        //Current user does NOT accept marketing cookies
                  }
             }
       }
 } 
else 
{
      //The user has not accepted cookies - set strictly necessary cookies only 
}
Imports System.Web.Script.Serialization
 ... 

Dim CurrentUserConsent As HttpCookie = Request.Cookies("CookieConsent")

 If CurrentUserConsent IsNot Nothing Then 
      Select Case CurrentUserConsent.Value 
            
            Case "-1" 
                  REM The user is not within a region that requires consent - all cookies are accepted 
                  Exit Select 

            Case Else REM The user has given their consent 

                  REM Read current user consent in encoded JavaScript format 
                  Dim CookieConsentSerializer As New JavaScriptSerializer() 
                  Dim CookieConsent As dynamic = CookieConsentSerializer.Deserialize(Of Object)(HttpUtility.UrlDecode(CurrentUserConsent.Value)) 

                  If Not CookieConsent("preferences") And Not 
CookieConsent("statistics") And Not CookieConsent("marketing") Then
                  REM The user has opted out of cookies, set strictly necessary cookies only
                  Else

                  If CookieConsent("preferences") Then 
                       REM Current user accepts preference cookies 
                  Else 
                       REM Current user does NOT accept preference cookies 
                  End If 

                  If CookieConsent("statistics") Then 
                       REM Current user accepts statistics cookies 
                  Else 
                       REM Current user does NOT accept statistics cookies
                  End If

                  If CookieConsent("marketing") Then
                       REM Current user accepts marketing cookies 
                  Else 
                       REM Current user does NOT accept marketing cookies
                  End If 
            End If
      End Select 
Else 
      REM The user has not accepted cookies - set strictly necessary cookies only 
End If