Nedenfor finder du avanceret teknisk information primært til udviklere. Hvis du leder efter vores standard implementeringsguide for at komme i gang med Cookiebot, kan den findes her.
På denne side vil du finde vores SDK dokumentation til at bygge tilpassede implementeringer af banner og cookiekontrol. Ligesom mulighederne for at tilsidesætte de automatiske mekanismer i vores cookie samtykkebanner med dine manuelle.
For at nedenstående SDK skal virke, skal Cookiebot-scriptet være implementeret på din hjemmeside.
Indlæs cookie samtykke-scriptet via:
https://consent.cookiebot.com/uc.js?cbid=00000000-0000-0000-0000-000000000000
Eller som:
https://consent.cookiebot.com/uc.js
(med attributtet data-cbid=’00000000-0000-0000-0000-000000000000′)
Husk at erstatte 00000000-0000-0000-0000-000000000000 med dit domænegruppe-ID som kan findes under ”Dine scripts” på din Cookiebot-konto.
Cookiebot-scriptet indlæses og bygger et klientside-JavaScript-objekt kaldet ”Cookiebot”, som viser de følgende offentlige egenskaber, metoder, events og callback-funktioner.
Egenskaber
Navn | Type | Standard | Beskrivelse |
---|---|---|---|
consent.necessary | bool | true | Sand hvis den aktuelle bruger har accepteret nødvendige cookies. Egenskaben kan ikke ændres. |
consent.preferences | bool | false | Sand hvis den aktuelle bruger har accepteret præference-cookies. Egenskaben kan ikke ændres. |
consent.statistics | bool | false | Sand hvis den aktuelle bruger har accepteret statistik-cookies. Egenskaben kan ikke ændres. |
consent.marketing | bool | false | Sand hvis den aktuelle bruger har accepteret marketing-cookies. Egenskaben kan ikke ændres. |
consent.method | string | null | Den måde, hvorpå samtykket blev givet. Enten “underforstået”, når samtykket gives automatisk, eller “udtrykkeligt”, når det gives af brugeren. Hvis der ikke foreligger noget samtykke, er værdien nul. Hvis samtykkeformen er ukendt (gamle samtykker), betragtes den som “underforstået”. Egenskaben er skrivebeskyttet. |
consented | bool | false | Sand, hvis brugeren har accepteret cookies. Egenskaben kan ikke ændres. |
declined | bool | false | Sand, hvis brugeren har afslået brugen af cookies. Egenskaben kan ikke ændres. |
hasResponse | bool | false | Sand, hvis brugeren har svaret på dialog med enten accept eller afslag. Egenskaben kan ikke ændres. |
doNotTrack | bool | false | Sand, hvis brugeren har aktiveret browserens ‘Do not track’-indstilling (DNT). Hvis DNT er aktiveret sætter Cookiebot ikke tredjeparts-cookien CookieConsentBulkTicket, som anvendes til massesamtykke. Egenskaben kan ikke ændres. |
regulations.gdprApplies | bool | false | Gør dig i stand til at se om GDPR gælder baseret på brugerens geolokation. Egenskaben kan ikke ændres. |
regulations.ccpaApplies | bool | false | Gør dig i stand til at se om CCPA gælder baseret på brugerens geolokation. Egenskaben kan ikke ændres. |
regulations.lgpdApplies | bool | false | Gør dig i stand til at se om LGPD gælder baseret på brugerens geolokation. Egenskaben kan ikke ændres. |
Metoder
Navn | Parametre | Beskrivelse |
---|---|---|
show | Ingen | Tvinger cookie-samtykke-dialogen til at blive vist. |
hide | Ingen | Tvinger cookie-samtykke-dialogen til at blive skjult. |
renew | Ingen | Viser samtykke-dialogboksen, så brugeren kan forny eller ændre sit samtykke. |
getScript | string URL, bool async, func callback | Indlæser en JavaScript-fil. URL: Absolut sti til JavaScript-fil. async (Valgfri): Bestemmer om scriptet skal indlæses asynkront. callback (Valgfri): Javascript-funktion, som skal eksekveres, når scriptet er indlæst. |
runScripts | Ingen | Evaluerer alle indlæste script-tags af typen “text/plain” med attributten “data-cookieconsent” og eksekverer disse scripts i overensstemmelse med brugerens samtykke-tilstand. Til brug for websteder, der indlæser indhold dynamisk, f.eks. single page applications. Scripts eksekveres kun én gang, så denne funktion er sikker at kalde flere gange, f.eks hver gang nyt indhold er indlæst. |
withdraw | Ingen | Tilbagekald mit samtykke for denne hjemmeside. |
submitCustomConsent | bool optinPreferences, bool optinStatistics, bool optinMarketing | Brug dette uden for cookiebannerets kontekst, f.eks. som en knap på din hjemmesides sidehoved/-fod til at til- eller fravælge cookies – Eller for at tilføje en knap til dit banner, der muliggør delvist samtykke, f.eks. til “Acceptér Præferencer og Statistikker”. |
Eksempel: Hvis du foretrækker ikke at bruge Cookiebot CMPs Privacy Trigger, kunne du måske oprette et link i stedet, som gør det muligt for dine brugere at ændre eller forny deres cookiesamtykke. Vi anbefaler dog stadig at bruge Cookiebot CMPs Privacy Trigger for at opnå den bedste brugeroplevelse.
<a href="javascript: Cookiebot.renew()">Ændring af dit samtykke</a>
Eventhåndtering
Navn | Beskrivelse |
---|---|
CookiebotOnConsentReady | Udløses, når brugerens samtykkestatus er klar, enten fordi det er blevet afgivet, eller lastet fra en eksisterende cookie. Lyt efter dette event, hvis du skal tilbagetrække brugerens samtykke og køre yderligere scripts snarest muligt baseret på samtykkeværdier. |
CookiebotOnLoad | Udløses på samme tid som window.onload eventet når brugerens samtykke er blevet lastet – enten når brugeren afgiver samtykke eller når brugeren navigerer til en side, hvor samtykke allerede er afgivet. |
CookiebotOnAccept | Eventen udløses, hvis brugeren accepterer brugen af cookies. Eventen udløses også, hvis brugeren har givet sit samtykke ved et tidligere besøg på hjemmesiden. |
CookiebotOnDecline | Eventen udløses, hvis brugeren afviser brugen af cookies ved at klikke på afslå-knappen i cookie-samtykke-dialogen. Eventen udløses også, hvis brugeren allerede har afslået cookies ved et tidligere besøg på hjemmesiden. |
CookiebotOnDialogInit | Udløses, når cookie-samtykkebanneret initialiseres, før kompilering af bannerindholdet. |
CookiebotOnDialogDisplay | Udløses, når cookie-samtykkebanneret vises til slutbrugeren. |
CookiebotOnTagsExecuted | Udløses, når tags markeret for forudgående samtykke (f.eks. attributten “data-cookieconsent”) er blevet udløst. |
Eksempel: Load marketing-cookies, hvis brugeren har accepteret
<script type="text/javascript">
window.addEventListener('CookiebotOnAccept', function (e) {
if (Cookiebot.consent.marketing)
{
//Execute code that sets marketing cookies
}
}, false);
</script>
Callbacks
Navn | Beskrivelse |
---|---|
CookiebotCallback_OnLoad | Det asynkrone callback udløses, når cookiebanneret er blevet indlæst for at få brugerens samtykke. |
CookiebotCallback_OnAccept | Det asynkrone callback udløses når en bruger klikker på accepter-knappen på samtykke-dialogen og hver gang en bruger, der tidligere har afgivet positivt samtykke, indlæser en side. |
CookiebotCallback_OnDecline | Det asynkrone callback udløses når en bruger afviser brugen af cookies ved at klikke på afslå-knappen i cookie-samtykke-dialogen. Funktionen udløses også hver gang en bruger, der tidligere har afvist brugen af cookies, indlæser en side. |
CookiebotCallback_OnDialogInit | Udløses, når cookie-samtykkebanneret initialiseres, før kompilering af bannerindholdet. |
CookiebotCallback_OnDialogDisplay | Udløses, når cookie-samtykkebanneret vises til slutbrugeren. |
CookiebotCallback_OnTagsExecuted | Udløses, når tags markeret for forudgående samtykke (f.eks. attributten “data-cookieconsent”) er blevet udløst. |
Eksempel: Indlæs statistik-cookies hvis brugeren har givet samtykke til disse
Bemærk, at dette eksempel kun er relevant, hvis du ikke har sat data-blockingmode til “auto”, og hvis du ikke har opmærket dit script til kontrol med data-cookieconsent.
<script type="text/javascript">
function CookiebotCallback_OnAccept() {
if (Cookiebot.consent.statistics)
{
enableStatisticsCookies();
}
}
function enableStatisticsCookies() {
//Eksekvér kode, der sætter statistik-cookies
}
</script>
Script-tag dataattributter
Navn | Type | Obligatorisk | Beskrivelse |
---|---|---|---|
data-cbid | string | ja | Det unikke ID for din Cookiebot domænegruppe. |
data-type | string | nej | Tilsidesætter standard-dialogboks-type med en af følgende værdier: “optin” (accepter), “optout” (afslå), “optinout” (accepter og afslå), “leveloptin” (multi-niveau på banner), “inlineoptin” (multi-niveau på detalje-panel), “optionaloptin” (opt-out som foreskrevet i California Consumer Privacy Act) |
data-level | string | nej | Tilsidesætter standard-samtykke-metoden med en af følgende værdier: “implied” (underforstået), “strict” (udtrykkeligt) |
data-culture | string | nej | Hvis du vil gennemtvinge et bestemt sprog, når samtykke-dialogen vises, sættes værdien af denne attribut til en kultur-neutral ISO 639-1 sprogkode, f.eks. “DA” for dansk. Indstilling af denne egenskab med en gyldig sprogkode tilsidesætter indstillingen “Auto-detekter brugerens sprog” i Cookiebots manager. |
data-framework | string | nej | Gør det muligt for Cookiebot at signalere samtykke til andre samtykke-frameworks, som er implementeret på et website – ud over standard samtykke-frameworket indeholdt i Cookiebot. Værdien af attributten skal matche forkortelsen for det eksterne framework. For øjeblikket understøttes følgende tredjeparts samtykke-frameworks: Forkortelse “IAB”: IAB Europe Transparency & Consent Framework |
data-blockingmode | string | nej | Definerer, om Cookiebot automatisk skal blokere alle cookies indtil en bruger har givet sit samtykke: værdi: “auto”. Hvis ikke, (værdi: “none”) bør cookiesættende scripts opmærkes manuelt som beskrevet i vores manuelle implementeringsguide. Hvis du udelader denne attribut, vil handlingen være lig med værdien: “none”. |
data-consentmode | string | nej | Giver dig mulighed for at deaktivere Google Consent Mode, ved at anvende værdien “disabled”. |
Eksempel: Fremtving den engelsksprogede udgave af samtykke-dialogen
<script id="Cookiebot" data-culture="EN" src="https://consent.cookiebot.com/uc.js" data-cbid="00000000-0000-0000-0000-000000000000" type="text/javascript"></script>
Server-side brug
Hvis dit websted sætter cookies server side, kan du aflæse hvilken type cookies, du har lov til at sætte, ved at kontrollere brugernes aktuelle samtykke-tilstand gennem standard cookie-håndtering.
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