JavaScript-API
Cookieshin JavaScript-API:n viite: lue ja muuta suostumusta, avaa banneri tai asetuskeskus, synkronoi kirjautuneet käyttäjät ja määritä script-tagi.
Päivitetty viimeksi 29. lokakuuta 2026
JavaScript-API:n avulla oma koodisi voi lukea ja muuttaa suostumusta. Sama API on käytettävissä kahdella tavalla:
- Globaali
Cookiesh-olio, jonka script-tagi luo. Käytä sitä tavallisilla HTML-sivuilla ja selaimen konsolissa. @cookiesh/js-paketti, tyypitetty kääre globaalin olion ympärille paketoiduille sovelluksille. Se toimii samalla tavalla ja sisältää TypeScript-määrittelyt.
npm install @cookiesh/js
import { cookiesh } from '@cookiesh/js';
Paketti ei lataa Cookieshista toista kopiota. Se odottaa script-tagia ja kutsuu globaalia oliota. Kaikki alla olevat esimerkit käyttävät pakettia, mutta Cookiesh.ready() ja cookiesh.ready() toimivat täsmälleen samoin.
Suostumustila
Useimmat metodit palauttavat tai ottavat vastaan ConsentState-olion:
interface ConsentState {
necessary: true;
preferences: boolean;
analytics: boolean;
marketing: boolean;
/** Miten nykyinen tila on syntynyt. */
method: 'default' | 'banner' | 'preferences' | 'api' | 'gpc';
/** Tallennetun suostumustietueen satunnainen tunniste tai null ennen ensimmäistä valintaa. */
consentId: string | null;
/** Valinnan ajankohta ISO 8601 -muodossa tai null ennen ensimmäistä valintaa. */
timestamp: string | null;
bannerVersion: string;
/** Alue, johon sääntö osui, kuten "FR" tai "US-CA". */
region: string;
}
Ennen kuin kävijä tekee valinnan, method on default ja kategoriat vastaavat alueen oletustilaa. Ennakkosuostumusta edellyttävillä alueilla kaikki paitsi necessary on siis false.
Suostumuksen lukeminen
ready()
ready(): Promise<ConsentState>
Ratkeaa heti, kun Cookiesh tietää suostumustilan: palaaville kävijöille välittömästi ja uusille alueen tunnistamisen jälkeen. Se ei odota, että kävijä napsauttaa banneria. Käytä sitä suostumuksesta riippuvan koodin käynnistämiseen:
const consent = await cookiesh.ready();
if (consent.analytics) initAnalytics();
getConsent()
getConsent(): ConsentState | null
Palauttaa nykyisen tilan synkronisesti tai null, jos Cookiesh ei ole vielä latautunut. Käytä mieluummin ready()-metodia, ellet ole varma, että skripti on latautunut.
hasConsent(category)
hasConsent(category: 'necessary' | 'preferences' | 'analytics' | 'marketing'): boolean
Oikotie yhden kategorian tarkistamiseen. Palauttaa false, kunnes Cookiesh on latautunut.
Suostumuksen muuttaminen
Nämä metodit tallentavat uuden suostumustietueen täsmälleen samoin kuin jos kävijä olisi käyttänyt banneria. Kutsu niitä vain kävijän selkeän toiminnon seurauksena, esimerkiksi kun hän napsauttaa jotain omalla asetussivullasi.
acceptAll(): Promise<ConsentState>
rejectAll(): Promise<ConsentState>
setConsent(choices: Partial<Record<'preferences' | 'analytics' | 'marketing', boolean>>): Promise<ConsentState>
// Oma valintakytkin tilisi asetussivulla
await cookiesh.setConsent({ analytics: event.target.checked });
Kategoriat, jotka jätät pois, säilyttävät nykyisen arvonsa. necessary-kategoriaa ei voi muuttaa.
Käyttöliittymän näyttäminen
showBanner(): void
openPreferences(): void
close(): void
showBanner() näyttää ensimmäisen tason bannerin uudelleen, vaikka kävijä olisi jo tehnyt valintansa. openPreferences() avaa asetuskeskuksen, jossa on kategoriakohtaiset valintakytkimet ja evästeluettelo. close() sulkee kumman tahansa tallentamatta.
Kirjautuneet käyttäjät
Oletuksena suostumus tallennetaan selainkohtaisesti. Kirjautumista edellyttävissä tuotteissa voit liittää sen käyttäjätunnisteeseesi, jolloin valinta seuraa käyttäjää laitteelta toiselle:
identify(userId: string): Promise<ConsentState>
reset(): void
// Kirjautumisen jälkeen
await cookiesh.identify(session.user.id);
// Uloskirjautumisen jälkeen
cookiesh.reset();
identify() hakee käyttäjän viimeisimmän valinnan. Jos sellainen on, Cookiesh ottaa sen käyttöön tällä laitteella eikä näytä banneria. Jos kävijä teki valinnan ennen kirjautumista, valinta tallennetaan käyttäjälle. Cookiesh tallentaa välittämästäsi tunnisteesta vain suolatun tiivisteen, ei koskaan itse tunnistetta. Käytä läpinäkymätöntä sisäistä tunnistetta, älä sähköpostiosoitetta.
reset() poistaa linkin käyttäjään mutta säilyttää nykyisen valinnan tällä laitteella.
Script-tagin attribuutit
Script-tagi määritetään data--attribuuteilla:
| Attribuutti | Oletus | Kuvaus |
|---|---|---|
data-site-id |
Pakollinen | Sivustosi tunniste, kuten ck_live_8f2a91 |
data-language |
Automaattinen | Pakottaa bannerin kielen (katso Bannerin mukauttaminen) |
data-auto-block |
true |
Aseta arvoksi false, jos haluat estää vain itse merkitsemäsi skriptit |
data-nonce |
Ei mitään | CSP-nonce, joka lisätään Cookieshin vapauttamiin skripteihin |
data-consent-mode |
true |
Aseta arvoksi false, jos et halua lähettää Google Consent Mode -signaaleja |
Virheenkorjaus
Cookiesh.debug(): void
Suorita se selaimen konsolissa, niin se tulostaa tunnistetun alueen, osuneen säännön, bannerin version, jokaisen estetyn skriptin ja kaikkien kategorioiden nykyisen tilan. Metodi on käytettävissä vain globaalissa oliossa.