Saltar al contenido

Idioma

Menú de la documentación

API de JavaScript

Referencia de la API de JavaScript de Cookiesh: consulta y cambia el consentimiento, abre el banner o las preferencias, sincroniza usuarios y configura el script.

Última actualización: 29 de octubre de 2026

La API de JavaScript permite que tu propio código consulte y cambie el consentimiento. La misma API está disponible de dos formas:

  • El objeto global Cookiesh, que crea la etiqueta script. Úsalo en páginas HTML sencillas y desde la consola del navegador.
  • El paquete @cookiesh/js, un envoltorio tipado del objeto global para apps empaquetadas. Funciona igual e incluye definiciones de TypeScript.
npm install @cookiesh/js
import { cookiesh } from '@cookiesh/js';

El paquete no carga una segunda copia de Cookiesh. Espera a la etiqueta script y llama al objeto global. Todos los ejemplos siguientes usan el paquete, pero Cookiesh.ready() y cookiesh.ready() se comportan exactamente igual.

Estado del consentimiento

La mayoría de los métodos devuelven o reciben un objeto ConsentState:

interface ConsentState {
  necessary: true;
  preferences: boolean;
  analytics: boolean;
  marketing: boolean;
  /** Cómo se ha llegado al estado actual. */
  method: 'default' | 'banner' | 'preferences' | 'api' | 'gpc';
  /** ID aleatorio del registro de consentimiento guardado, o null antes de la primera elección. */
  consentId: string | null;
  /** Momento de la elección en ISO 8601, o null antes de la primera elección. */
  timestamp: string | null;
  bannerVersion: string;
  /** Región de la regla aplicada, como "FR" o "US-CA". */
  region: string;
}

Antes de que el visitante elija, method vale default y las categorías reflejan el estado por defecto de la región. En las regiones opt-in, eso significa que todo salvo necessary es false.

Consultar el consentimiento

ready()

ready(): Promise<ConsentState>

Se resuelve en cuanto Cookiesh conoce el estado del consentimiento: al instante para los visitantes recurrentes y tras detectar la región para los nuevos. No espera a que el visitante haga clic en el banner. Úsalo para arrancar el código que depende del consentimiento:

const consent = await cookiesh.ready();
if (consent.analytics) initAnalytics();

getConsent()

getConsent(): ConsentState | null

Devuelve el estado actual de forma síncrona, o null si Cookiesh aún no ha terminado de cargarse. Es preferible usar ready(), salvo que tengas la certeza de que el script ya se ha cargado.

hasConsent(category)

hasConsent(category: 'necessary' | 'preferences' | 'analytics' | 'marketing'): boolean

Un atajo para comprobar una sola categoría. Devuelve false hasta que Cookiesh se ha cargado.

Cambiar el consentimiento

Estos métodos guardan un nuevo registro de consentimiento, exactamente igual que si el visitante hubiera usado el banner. Llámalos solo como respuesta a una acción clara del visitante, como un clic en tu propia página de configuración.

acceptAll(): Promise<ConsentState>
rejectAll(): Promise<ConsentState>
setConsent(choices: Partial<Record<'preferences' | 'analytics' | 'marketing', boolean>>): Promise<ConsentState>
// Un interruptor propio en la página de configuración de la cuenta
await cookiesh.setConsent({ analytics: event.target.checked });

Las categorías que no indiques conservan su valor actual. necessary no se puede cambiar.

Mostrar la interfaz

showBanner(): void
openPreferences(): void
close(): void

showBanner() vuelve a mostrar el banner de primera capa, aunque el visitante ya haya elegido. openPreferences() abre el centro de preferencias, con interruptores por categoría y la declaración de cookies. close() cierra cualquiera de los dos sin guardar.

Usuarios con sesión iniciada

Por defecto, el consentimiento se guarda por navegador. En productos con inicio de sesión, vincúlalo al ID de tu usuario para que la elección lo acompañe en todos sus dispositivos:

identify(userId: string): Promise<ConsentState>
reset(): void
// Tras iniciar sesión
await cookiesh.identify(session.user.id);

// Tras cerrar sesión
cookiesh.reset();

identify() busca la última elección del usuario. Si existe, Cookiesh la aplica en este dispositivo y no muestra el banner. Si el visitante eligió antes de iniciar sesión, esa elección se guarda para el usuario. Cookiesh solo guarda un hash con sal del ID que le pasas, nunca el ID en sí. Usa un ID interno opaco, no una dirección de email.

reset() elimina el vínculo con el usuario, pero mantiene la elección actual en este dispositivo.

Atributos de la etiqueta script

La etiqueta script se configura con atributos data-:

Atributo Por defecto Descripción
data-site-id Obligatorio Tu Site ID, como ck_live_8f2a91
data-language Automático Fuerza el idioma del banner (consulta Personalización del banner)
data-auto-block true Ponlo en false para bloquear solo los scripts que etiquetes tú
data-nonce Ninguno Nonce de CSP que se aplica a los scripts que Cookiesh desbloquea
data-consent-mode true Ponlo en false para dejar de enviar las señales de Google Consent Mode

Depuración

Cookiesh.debug(): void

Ejecútalo en la consola del navegador para ver la región detectada, la regla aplicada, la versión del banner, cada script bloqueado y el estado actual de todas las categorías. Solo está disponible en el objeto global.