Vai al contenuto

Lingua

Menu della documentazione

API JavaScript

Riferimento dell'API JavaScript di Cookiesh: leggi e modifica il consenso, apri banner e preferenze, sincronizza gli utenti con login e configura il tag script.

Ultimo aggiornamento: 29 ottobre 2026

L’API JavaScript permette al tuo codice di leggere e modificare il consenso. La stessa API è disponibile in due modi:

  • L’oggetto globale Cookiesh, creato dal tag script. Usalo nelle pagine HTML semplici e dalla console del browser.
  • Il pacchetto @cookiesh/js, un wrapper tipizzato dell’oggetto globale per le app che usano un bundler. Funziona allo stesso modo e include le definizioni TypeScript.
npm install @cookiesh/js
import { cookiesh } from '@cookiesh/js';

Il pacchetto non carica una seconda copia di Cookiesh: attende il tag script e richiama l’oggetto globale. Tutti gli esempi qui sotto usano il pacchetto, ma Cookiesh.ready() e cookiesh.ready() si comportano in modo identico.

Stato del consenso

La maggior parte dei metodi restituisce o riceve un oggetto ConsentState:

interface ConsentState {
  necessary: true;
  preferences: boolean;
  analytics: boolean;
  marketing: boolean;
  /** Come si è arrivati allo stato attuale. */
  method: 'default' | 'banner' | 'preferences' | 'api' | 'gpc';
  /** ID casuale del record di consenso salvato, oppure null prima della prima scelta. */
  consentId: string | null;
  /** Ora della scelta in formato ISO 8601, oppure null prima della prima scelta. */
  timestamp: string | null;
  bannerVersion: string;
  /** Regione della regola applicata, ad esempio "FR" o "US-CA". */
  region: string;
}

Prima che il visitatore faccia una scelta, method vale default e le categorie riflettono lo stato predefinito della regione. Nelle regioni opt-in significa che tutto, tranne necessary, è false.

Leggere il consenso

ready()

ready(): Promise<ConsentState>

Si risolve non appena Cookiesh conosce lo stato del consenso: subito per i visitatori di ritorno, dopo il rilevamento della regione per quelli nuovi. Non attende che il visitatore faccia clic sul banner. Usalo per avviare il codice che dipende dal consenso:

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

getConsent()

getConsent(): ConsentState | null

Restituisce lo stato attuale in modo sincrono, oppure null se Cookiesh non ha ancora finito di caricarsi. Usa piuttosto ready(), a meno che tu non sia sicuro che lo script sia già stato caricato.

hasConsent(category)

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

Una scorciatoia per controllare una sola categoria. Restituisce false finché Cookiesh non si è caricato.

Modificare il consenso

Questi metodi salvano un nuovo record di consenso, esattamente come se il visitatore avesse usato il banner. Chiamali solo in risposta a un’azione chiara del visitatore, come un clic nella tua pagina delle impostazioni.

acceptAll(): Promise<ConsentState>
rejectAll(): Promise<ConsentState>
setConsent(choices: Partial<Record<'preferences' | 'analytics' | 'marketing', boolean>>): Promise<ConsentState>
// Un interruttore personalizzato nella pagina delle impostazioni dell'account
await cookiesh.setConsent({ analytics: event.target.checked });

Le categorie che non indichi mantengono il valore attuale. necessary non può essere modificato.

Mostrare l’interfaccia

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

showBanner() mostra di nuovo il banner di primo livello, anche se il visitatore ha già scelto. openPreferences() apre il centro preferenze con gli interruttori per categoria e la dichiarazione dei cookie. close() chiude l’uno o l’altro senza salvare.

Utenti con login

Per impostazione predefinita, il consenso viene salvato per browser. Nei prodotti con login, collegalo all’ID utente, così la scelta segue l’utente su tutti i suoi dispositivi:

identify(userId: string): Promise<ConsentState>
reset(): void
// Dopo l'accesso
await cookiesh.identify(session.user.id);

// Dopo la disconnessione
cookiesh.reset();

identify() cerca l’ultima scelta dell’utente. Se esiste, Cookiesh la applica su questo dispositivo e non mostra il banner. Se il visitatore ha fatto una scelta prima di accedere, quella scelta viene salvata per l’utente. Cookiesh conserva solo un hash con salt dell’ID che passi, mai l’ID stesso. Usa un ID interno opaco, non un indirizzo email.

reset() rimuove il collegamento con l’utente, ma mantiene la scelta attuale su questo dispositivo.

Attributi del tag script

Il tag script si configura con attributi data-:

Attributo Predefinito Descrizione
data-site-id Obbligatorio Il tuo Site ID, ad esempio ck_live_8f2a91
data-language Automatico Impone la lingua del banner (vedi Personalizzazione del banner)
data-auto-block true Imposta false per bloccare solo gli script a cui assegni tu una categoria
data-nonce Nessuno Nonce CSP applicato agli script che Cookiesh sblocca
data-consent-mode true Imposta false per non inviare più i segnali di Google Consent Mode

Debug

Cookiesh.debug(): void

Eseguilo nella console del browser per visualizzare la regione rilevata, la regola applicata, la versione del banner, ogni script bloccato e lo stato attuale di ogni categoria. È disponibile solo sull’oggetto globale.