Empezar gratisPanel
Documentación

API de JavaScript

La mayoría de los sitios nunca necesitan esta página. Léela cuando tu propio código tenga que saber qué ha permitido un visitante, o cuando quieras botones y enlaces propios.

Empieza aquí: espera al estado

La línea de Cookiemark está al principio de tu head y se ejecuta enseguida, así que window.Cookiemark existe para todos los scripts que van detrás. La elección del visitante se conoce un poco más tarde, cuando ya se ha leído la página. Usa el evento ready para conocer el estado al cargar la página, y change para seguir lo que pasa después.

Cookiemark.on('ready', function (detail) {
  if (detail.consent.statistics) {
    startMyAnalytics();
  }
});

Cookiemark.on('change', function (detail) {
  if (detail.consent.marketing) {
    loadChatWidget();
  }
});

Antes de tu primera publicación, el script no contiene nada y window.Cookiemark no existe. Comprueba que existe antes de llamarlo, para que tu código también funcione en un sitio que sigue en borrador.

Una función que añades con on('ready') cuando el estado ya se conoce se ejecuta al momento. Los demás eventos no se repiten para los listeners que llegan tarde. Con ready y change juntos no se te escapa nada.

Cada evento también se envía en window como CustomEvent con el prefijo cookiemark:. Los datos están en event.detail.

window.addEventListener('cookiemark:change', function (event) {
  console.log(event.detail.action, event.detail.consent);
});

Propiedades

Todas las propiedades son de solo lectura y siempre muestran el estado actual.

PropiedadValor
Cookiemark.consentUn objeto con necessary, preferences, statistics y marketing, cada uno true o false. necessary siempre es true.
Cookiemark.hasResponseTrue cuando el visitante ha hecho una elección que sigue siendo válida.
Cookiemark.consentedTrue cuando se permite al menos una categoría opcional.
Cookiemark.declinedTrue cuando no se permite ninguna categoría opcional.
Cookiemark.consentIdEl ID aleatorio del consentimiento de este visitante, como en el registro de consentimientos. Vacío hasta que elige.
Cookiemark.consentTimeCuándo se hizo la elección guardada, en milisegundos desde 1970. Cero si no hay elección.

declined también es true para un visitante nuevo que todavía no ha respondido, porque en ese momento no se permite nada. Comprueba también hasResponse cuando necesites saber que el visitante ha dicho que no.

if (Cookiemark.hasResponse && Cookiemark.declined) {
  // The visitor chose to reject everything.
}

Métodos

MétodoQué hace
show()Muestra el banner.
hide()Oculta el banner sin guardar una elección.
showPreferences()Abre la ventana de preferencias. renew() hace lo mismo.
acceptAll()Permite todas las categorías, igual que el botón de aceptar.
denyAll()Rechaza todas las categorías opcionales, igual que el botón de rechazar.
withdraw()Retira el consentimiento. El registro lo anota como una retirada.
submitConsent(choice)Guarda una elección propia. Las categorías que no incluyas cuentan como rechazadas.
runScripts()Ejecuta los scripts retenidos que ahora están permitidos. Úsalo después de añadir tú mismo scripts marcados a la página.
googleConsentState()Devuelve lo que Cookiemark le dice a Google, señal por señal.
on(name, fn) y off(name, fn)Añade o quita una función para un evento. El nombre funciona con cookiemark: o sin él.
Cookiemark.submitConsent({ preferences: true, statistics: true, marketing: false });

Cada elección que guardas a través de la API es una elección real. Instala la cookie, entra en el registro de consentimientos y libera o retira scripts, exactamente igual que un clic en el banner.

Eventos

EventoCuándo
readyUna vez por página vista, cuando Cookiemark conoce el estado.
changeDespués de cada elección del visitante.
acceptDespués de una elección que permite al menos una categoría, y al cargarse la página para un visitante que ya lo hizo antes.
declineDespués de una elección que no permite nada, y al cargarse la página para un visitante que rechazó antes.
dialog-openCuando aparece el banner o la ventana de preferencias.
dialog-closeCuando se cierra la ventana de preferencias.
scripts-executedCuando Cookiemark ha ejecutado los scripts retenidos, al cargarse la página y después de cada elección.

Todos los listeners reciben el mismo objeto. consent contiene las cuatro categorías. action es accept_all, deny_all, custom, withdraw o signal después de una elección, y vacío en los demás casos. first es true cuando es la primera elección del visitante.

La cola de listeners

window.cookiemarkListeners es una cola para el código que puede ejecutarse antes que el script de Cookiemark, como una plantilla de Tag Manager. Añade una función a la cola. Cookiemark la llama en cuanto se conoce la elección, y de nuevo después de cada cambio.

window.cookiemarkListeners = window.cookiemarkListeners || [];
window.cookiemarkListeners.push(function (googleState, categories) {
  // googleState: { analytics_storage: 'granted', ad_storage: 'denied', ... }
  // categories:  { necessary: true, preferences: false, statistics: true, marketing: false }
});

El primer argumento sigue la correspondencia de la pestaña Google y GTM. Con un visitante nuevo, Cookiemark llama a la función en cuanto elige.

Marcado que entiende el script

Puedes crear tus propios botones y enlaces sin escribir JavaScript. Cookiemark gestiona el clic en cualquier elemento con estos atributos.

MarcadoEfecto
data-cookiemark-action="accept"Permite todo.
data-cookiemark-action="deny"Rechaza todo.
data-cookiemark-action="withdraw"Retira el consentimiento.
data-cookiemark-action="preferences"Abre la ventana de preferencias.
data-cmk-allow="marketing"Permite la categoría indicada y deja el resto de la elección como está.
Un enlace a #cookiemark-preferencesAbre la ventana de preferencias.

Cookiemark también rellena elementos con los datos del propio visitante. Como lo hace el navegador, la página en sí es la misma para todos y se puede guardar en caché sin problema.

MarcadoCookiemark rellena
data-cookiemark-consent-idEl ID de consentimiento, como texto.
data-cookiemark-consent-dateLa fecha y la hora de la elección, como texto.
data-cookiemark-consent-state="marketing"El atributo data-granted, con valor true o false. Dale estilo con CSS.
<a href="#cookiemark-preferences">Cookie settings</a>
<button type="button" data-cookiemark-action="withdraw">Withdraw my consent</button>
<button type="button" data-cmk-allow="marketing">Allow marketing cookies</button>

<p>Your consent ID: <span data-cookiemark-consent-id></span></p>
<p>Chosen on: <span data-cookiemark-consent-date></span></p>

Una página de política de cookies es un buen sitio para el ID de consentimiento. Un visitante que pregunte qué aceptó puede indicarlo, y tú lo buscas en el registro de consentimientos.

Cookiemark guarda la elección en una cookie propia llamada cookiemark_consent. Su valor es un JSON codificado para URL como este.

{"necessary":true,"preferences":false,"statistics":true,"marketing":false,
 "v":1,"id":"0b0f6c1e-3d0a-4c54-9f0e-2f1c8a4e7b11","ts":1791974400}

v es la versión de consentimiento y ts la hora de la elección en segundos. Una cookie con una versión de consentimiento anterior cuenta como si no hubiera elección, así que el banner vuelve a aparecer. Siempre que puedas, lee la elección a través de la API y no de la cookie, porque la API también tiene en cuenta las regiones y las señales de privacidad.

La API de Cookiebot

El código de temas y plugins escrito para Cookiebot suele consultar Cookiebot.consent.marketing o escuchar CookiebotOnAccept. Activa Responder a la API de JavaScript de Cookiebot en la pestaña Google y GTM, y Cookiemark responderá a ese código. No interviene si el script real de Cookiebot sigue en la página.

CookiebotLo que responde Cookiemark
Cookiebot.consent.necessary, .preferences, .statistics, .marketingLa elección actual.
Cookiebot.consent.stampEl ID de consentimiento de Cookiemark.
Cookiebot.consent.utcLa hora de la elección, en milisegundos.
Cookiebot.consent.methodexplicit después de una elección, implied fuera de tus regiones.
Cookiebot.consented, .declined, .hasResponseIgual que en Cookiemark, salvo que declined sigue en false hasta que el visitante responde.
show(), hide(), renew(), withdraw(), runScripts()Los métodos de Cookiemark con el mismo nombre.
submitCustomConsent(preferences, statistics, marketing)Guarda esa elección.

Los eventos CookiebotOnLoad, CookiebotOnConsentReady, CookiebotOnAccept, CookiebotOnDecline, CookiebotOnDialogInit, CookiebotOnDialogDisplay y CookiebotOnTagsExecuted se disparan en window. También se llama a las funciones de callback antiguas, como CookiebotCallback_OnAccept.