← Forsiden Logg inn

Dokumentasjon

Tilpass banneret i dashboardet

Du kan tilpasse:

  • Språk: bokmål, engelsk, svensk eller dansk — eller automatisk etter besøkerens nettleserspråk (dine egne tekster brukes på språket du har valgt; de andre språkene får standardtekstene, og ukjente språk faller tilbake til det valgte)
  • Plassering: nederst, nederst til venstre eller nederst til høyre
  • Farger
  • Overskrift
  • Brødtekst
  • Lenke til personvernerklæring, og en valgfri versjon av erklæringen (f.eks. «2026-09») som stemples på hvert samtykke
  • Knappetekster
  • Hvilke kategorier som er tilgjengelige

Godta og Avvis har alltid lik vekt. De to knappene tegnes med samme størrelse, farge og skrift, så det er like enkelt å avvise som å godta — slik Datatilsynet og EDPB forventer. Det kan ikke skrus av.

💡 Bra å vite

Hver lagring publiseres som en ny versjon. Samtykkeloggen knyttes til den banner-versjonen som var aktiv da besøkeren tok valget — slik holder dokumentasjonen seg korrekt over tid.

Passiv observasjon: hva som faktisk finnes på nettstedet

Under Passiv observasjon på nettstedets side i dashboardet ser du hvilke informasjonskapsler, lagringsnøkler og tredjepartsverter banneret har sett på sidene dine – basert på ekte sidevisninger, ikke en skanning. Funnene er ment som grunnlag for cookie-erklæringen: du går gjennom dem, setter kategori og legger dem i erklæringen med ett klikk. Ingenting klassifiseres eller publiseres automatisk.

Slik virker det

  • Noen sekunder etter at banneret har lastet, ser det på navnene på informasjonskapslene i document.cookie, nøklene i localStorage og sessionStorage, og vertsnavnene til <script src> og <iframe src> på siden. Verter som er nettstedets eget domene (eller underdomener av det registrerte domenet) tas ikke med – de er ikke tredjeparter.
  • Fra en liten andel av sidevisningene (standard 5 %) sendes navnene og vertsnavnene til Nettkapsler i det samme tekniske signalet som installasjonshelsen bruker, sammen med hvilken samtykketilstand besøkeren hadde (ingen valg ennå, alt avvist, eller hvilke valgfrie kategorier som var tillatt). Én sidevisning gir aldri mer enn ett signal.
  • På serveren samles funnene per nettsted: første og siste gang sett, antall stikkprøver, og hvilke samtykketilstander de er sett under. Navn normaliseres slik at _ga_ABC123 blir _ga_*, tall blir #, og nøkler som består av tilfeldige ID-er (UUID-er, lange hex-strenger) forkastes eller reduseres til et mønster.
  • Kjente leverandører (Google, Meta, LinkedIn, YouTube, Vimeo, Hotjar, Wix, Cloudflare, Nettkapsler …) gjenkjennes fra en liten kuratert katalog og får en foreslått kategori. Ukjente funn får ingen automatisk kategori.

Hva som aldri sendes

Signalet inneholder bare cookie-navn, lagringsnøkler og vertsnavn. Det inneholder aldri verdier (verken fra cookies eller fra localStorage/sessionStorage), sidens adresse, sti, spørring eller fragment, besøks-ID, IP-adresse, tekst fra siden eller innhold i script. Serveren avviser signaler med andre felt, og forkaster stille navn som ikke overlever normaliseringen. Grenser: maks 50 funn og 4 KB per signal, 100 tegn per navn, 253 tegn per vertsnavn, maks 30 signaler per nettsted per minutt og maks 500 distinkte funn per nettsted.

Etter at besøkeren har gjort et valg i banneret, husker banneret i sessionStorage (cs_findings, bare i den fanen) hva det nylig har sendt, slik at samme funn ikke sendes igjen på ti minutter. Før et valg lagres ingenting i nettleseren – da gjelder bare stikkprøven. Funn slettes hos Nettkapsler 180 dager etter siste observasjon, og med en gang hvis du sletter nettstedet eller kontoen. Databehandleravtalen beskriver behandlingen.

Gå gjennom funnene

  • Nye er funn du ikke har tatt stilling til. Klassifiserte har fått en kategori av deg. Ignorerte er funn du har valgt å se bort fra (kan angres).
  • Merkelappene Før valg, Preferanser, Statistikk, Markedsføring og Alt avvist viser under hvilke samtykketilstander funnet er observert. En statistikk-cookie som er sett Før valg eller under Alt avvist, settes uten samtykke – se installasjonshelsen for hva du bør gjøre.
  • Sett kategori lagrer din vurdering. Legg til i erklæringen lager en post i erklæringsutkastet: kjente poster (som cs_consent, _ga og _ga_*) får formål og varighet fra katalogen, for andre fyller du inn teksten selv. Finnes navnet allerede i utkastet eller siste publiserte versjon, lages ingen ny post. Erklæringen publiseres aldri automatisk.
  • Verter (script/iframe) kan klassifiseres, men legges ikke inn som poster – erklæringen lister informasjonskapsler og lagring, ikke domener.
  • Et funn som ikke er sett på 90 dager, merkes Forsvunnet. Dukker det opp igjen, forsvinner merket av seg selv.
  • Vil du ikke ha observasjon på et nettsted, slår du den av øverst på siden. Da observerer banneret ingenting der.

Hva banneret ikke kan se

Passiv observasjon ser bare det JavaScript i siden kan se: HttpOnly-cookies, forespørsler uten script- eller iframe-element (fetch, XHR, bilde-piksler), service workers, sporing på serversiden, innholdet i tredjeparts-iframes, tagger inne i en Tag Manager-container (containeren selv sees som www.googletagmanager.com), elementer som lastes etter at signalet er sendt, og cookies satt på andre domener enn ditt, er usynlige. Bruk funnene som en start, ikke som en fullstendig liste.

Blokker andre tredjeparts-script til samtykke

Noen script leser ikke Google Consent Mode selv — for eksempel chat, piksler eller videoer. Da kan du sette scriptet til type="text/plain" og legge på data-consent-category. Banneret aktiverer scriptet først når besøkeren har samtykket til riktig kategori:

<script type="text/plain" data-consent-category="marketing"
        src="https://eksempel.no/piksel.js"></script>

Gyldige kategorier:

  • preferences
  • statistics
  • marketing

Eksempler på hva som passer hvor:

  • Chat-widget → preferences
  • Analyseverktøy → statistics
  • Piksler og annonser → marketing

Blokker innebygd tredjepartsinnhold (YouTube, Vimeo, kart)

En vanlig <iframe> med YouTube, Vimeo eller Google Maps kontakter leverandøren med én gang siden lastes — før besøkeren har tatt stilling til noe. Nettkapsler kan holde slike embeds tilbake til riktig samtykke er gitt, og vise en lokal forklaring i stedet.

Slik gjør du det: flytt adressen til data-consent-src

Bytt ut src med data-consent-src, og legg på data-consent-category. Alt annet i taggen beholder du som det er.

<iframe
    data-consent-src="https://www.youtube-nocookie.com/embed/VIDEO-ID"
    data-consent-category="marketing"
    width="560" height="315" title="Produktvideo"
    allow="accelerometer; clipboard-write; encrypted-media; picture-in-picture"
    referrerpolicy="strict-origin-when-cross-origin"
    allowfullscreen></iframe>

En samtykkestyrt iframe må ikke ha src eller srcdoc.

Begge deler får nettleseren til å opprette et dokument på egen hånd, og srcdoc-innhold kan hente eksterne ressurser like godt som en vanlig src. Er ett av dem til stede, er innholdet allerede hentet før Nettkapsler rekker å gjøre noe, og vi later ikke som noe annet: embeden merkes misconfigured, det skrives en advarsel i konsollen, og den vises med feilstatus i Nettkapsler.debug(). Ingen placeholder settes over den — en placeholder ville gitt inntrykk av at noe var blokkert.

Hvorfor ikke bare la src stå?

Fordi det ikke lar seg blokkere i ettertid. Nettleseren starter forespørselen i det øyeblikket <iframe src> settes inn i siden, og det skjer før noe JavaScript på siden rekker å gripe inn — også når Nettkapsler-snutten ligger helt øverst i <head>. Vi har målt dette i Chrome: forespørselen gikk ut i alle forsøk, selv når koden fikk fjerne src umiddelbart etterpå. Med adressen i data-consent-src finnes det ingenting for nettleseren å hente, og blokkeringen er derfor garantert — ikke et kappløp.

Eksempler

YouTube:

<iframe data-consent-src="https://www.youtube-nocookie.com/embed/VIDEO-ID"
        data-consent-category="marketing"
        width="560" height="315" title="Produktvideo" allowfullscreen></iframe>

Vimeo:

<iframe data-consent-src="https://player.vimeo.com/video/VIDEO-ID"
        data-consent-category="marketing"
        width="560" height="315" title="Introduksjonsvideo" allowfullscreen></iframe>

Google Maps:

<iframe data-consent-src="https://www.google.com/maps/embed?pb=DIN-KODE"
        data-consent-category="marketing"
        width="600" height="450" title="Slik finner du oss"></iframe>

Mekanismen er ikke bundet til disse tre — den virker for enhver https-adresse. YouTube, Vimeo og Google Maps er bare de vanligste, og de får et gjenkjennelig navn i forklaringsboksen. youtube-nocookie.com behandles som YouTube og blokkeres på samme måte; Nettkapsler skriver ikke om adressene dine.

Hvilken kategori?

Bruk de samme kategoriene som banneret: preferences, statistics eller marketing. Vår anbefaling for video og kart er marketing, fordi disse leverandørene typisk setter cookies til annonseformål. Det er en anbefaling, ikke en juridisk fasit — vurderingen er nettstedets egen. Glemmer du attributtet, brukes marketing.

Hva besøkeren ser

Før samtykke erstattes embeden av en lokal forklaringsboks i samme størrelse, med hvilken kategori som kreves og en «Endre samtykke»-knapp som åpner samtykkeinnstillingene på riktig kategori. Knappen åpner bare innstillingene — den gir ikke samtykke, endrer ikke det lagrede valget og aktiverer ikke innholdet. Det skjer først når du selv lagrer et valg.

Forklaringsboksen Nettkapsler bygger, henter ingenting utenfra: ingen miniatyrbilder, ingen oEmbed, ingen skrifter, ingen metadata fra YouTube, Vimeo eller Google. For at layouten skal holde arver boksen class og style fra din egen iframe. Det betyr at din egen CSS fortsatt gjelder for boksen — har den for eksempel en background-image fra en ekstern adresse, laster nettleseren den som før. Nettkapsler endrer ikke stilarket ditt, så den delen er utenfor garantien vår.

Endring uten ny sidelasting

  • Gir besøkeren samtykke, aktiveres innholdet med én gang — ingen reload.
  • Har besøkeren allerede sagt ja fra før, lastes embeden ved sidelasting, uten at banneret vises.
  • Trekker besøkeren samtykket tilbake, fjernes iframen fra siden igjen og forklaringsboksen kommer tilbake, i samme sidevisning. Leverandøren slutter da å kjøre og sender ingen nye forespørsler.
  • Embeds som legges inn dynamisk etter at siden er lastet, fanges også opp.

Det tilbaketrekking ikke kan gjøre

Forespørsler som allerede er sendt til leverandøren, kan ikke gjøres ugjort — de er utført. Cookies leverandøren allerede har satt på sitt eget domene, kan Nettkapsler heller ikke slette; de blir liggende til de utløper eller besøkeren fjerner dem selv. Tilbaketrekking stopper videre bruk, den visker ikke ut det som allerede har skjedd.

Vanlige feil

  • src eller srcdoc sammen med data-consent-src: da har nettleseren allerede hentet innholdet, og Nettkapsler kan ikke reparere det i etterkant. Fjern begge. Feilen vises som misconfigured i Nettkapsler.debug() og i nettleserkonsollen.
  • Andre script som setter src selv: ingen annen kode på nettstedet må sette src eller srcdoc på en samtykkestyrt iframe før besøkeren har valgt. Skjer det mens elementet står i siden, går forespørselen ut med én gang — også her rapporterer vi det som misconfigured i stedet for å påstå at det ble blokkert. Nettkapsler overvåker attributtene for diagnostikk, men det er ikke det samme som å forhindre forespørselen.
  • Andre adresser enn https: bare https: aktiveres. javascript:, data:, blob: og lignende avvises, og embeden aktiveres aldri.
  • Innholdet lastes ikke etter samtykke: sjekk nettleserkonsollen. En leverandør kan blokkere innbygging (X-Frame-Options), eller nettstedets egen Content-Security-Policy kan stoppe den. Det er ikke en samtykkefeil, og Nettkapsler overvåker ikke leverandørenes oppetid.

Hva denne mekanismen ikke dekker

Nettkapsler finner ikke embeds automatisk. Blokkeringen gjelder de iframene du selv har merket med data-consent-src. En vanlig <iframe src> et annet sted på nettstedet, embeds som settes inn av en Google Tag Manager-container, eller innhold fra andre systemer som ikke bruker denne markupen, må du styre der de settes inn. Bruker du GTM, må taggene i containeren ha riktige samtykkekrav i GTM.

Trenger du å blokkere et <script> i stedet for en iframe, se Blokker andre tredjeparts-script til samtykke.

Ferdige integrasjoner (Meta Pixel og LinkedIn Insight Tag)

I stedet for å lime inn leverandørens kodesnutt kan du oppgi bare den offentlige ID-en under Ferdige integrasjoner på nettstedet. Nettkapsler bruker da leverandørens egen offisielle kodesnutt, og laster den først når besøkeren har samtykket til markedsføring.

IntegrasjonDu oppgirHva Nettkapsler gjør
Meta Pixel Pixel ID (tall) Laster Metas fbevents.js, kjører init og sender én PageView
LinkedIn Insight Tag Partner ID (tall) Registrerer partner-ID-en og laster LinkedIns insight.min.js; sidevisningen ligger i selve lastingen

TikTok Pixel er ikke tilgjengelig ennå. Vi legger ikke inn en leverandør før vi kan lese den offisielle kodesnutten og samtykkemodellen direkte fra leverandøren selv — å bygge den på tredjepartsbeskrivelser ville undergravd hele poenget med en ferdig integrasjon.

Begge krever markedsføringssamtykke

Kategorien er låst til markedsføring og kan ikke endres. Begge verktøyene setter annonsecookies, og et fast valg fjerner den vanligste konfigurasjonsfeilen. Dette er Nettkapslers konservative standard, ikke en juridisk fasit — vurderingen av eget oppsett er fortsatt nettstedets.

Uavhengig av lastemetoden for Google

Valget mellom «Etter samtykke» og «Avansert Consent Mode» gjelder Googles egne tagger. Ferdige integrasjoner lastes aldri før markedsføringssamtykke, uansett hvilken lastemetode nettstedet bruker.

Fjern en manuelt installert tag først

Har du allerede limt inn Meta- eller LinkedIn-snutten på nettstedet, bør du fjerne den før du slår på integrasjonen her. Ellers ville taggen kjørt to ganger, og den gamle ville dessuten kjørt før besøkeren rakk å velge.

Som sikkerhetsnett ser widgeten etter en tag som allerede er lastet, og hopper i så fall over sin egen: statusen blir conflict i Nettkapsler.debug(), og det skrives en advarsel i konsollen. Dette er nettopp et sikkerhetsnett — ikke en fullstendig skanning av nettstedet, og ikke en garanti for at alle varianter oppdages.

Aktivering er et eget valg

ID-en og «Aktivert» er to forskjellige ting. Du kan lagre ID-en uten å slå integrasjonen på, og du kan slå den av igjen uten å miste ID-en. En lagret ID alene fører aldri til sporing. Tømmer du ID-feltet, fjernes integrasjonen helt. Endringer krever at du bekrefter passordet ditt.

Ikke legg til leverandørens noscript-bilde

Begge leverandørene har et <noscript><img> i sin egen snutt. Nettkapsler lager det ikke, og du bør heller ikke legge det inn: bildet lastes når siden parses, før noe JavaScript har kjørt, og sender dermed en forespørsel til leverandøren helt uten samtykke. Uten JavaScript vises heller ikke banneret, så det finnes ikke noe samtykke å respektere — da er det riktig at ingenting lastes.

Når samtykket trekkes tilbake

Nettkapsler starter ingen nye lastinger, og ved neste sidevisning lastes ingenting i det hele tatt. Det er den harde garantien. For Meta kalles i tillegg leverandørens egen consent revoke, som pauser videre oversending. LinkedIn har ingen tilsvarende dokumentert mekanisme, og vi later ikke som om biblioteket kan avlastes.

Trekker besøkeren samtykket tilbake i det korte tidsrommet mens leverandørens script er underveis, kan den lastingen ikke avbrytes. Vi har målt det: fjerner man script-elementet mens svaret er på vei, kjører det likevel når det kommer fram. Sidevisningen som ble satt i gang mens samtykket faktisk gjaldt, blir altså sendt. For Meta betyr det konkret at init og PageView ligger i køen før revoke, og behandles i den rekkefølgen — revoke stopper det som kommer etterpå, ikke det som allerede lå i kø.

Det som allerede har skjedd, kan ikke gjøres om

Forespørsler som allerede er sendt til Meta eller LinkedIn, kan ikke trekkes tilbake, og cookies de har satt på sine egne domener kan Nettkapsler ikke slette.

CSP og annonseblokkere

Bruker nettstedet Content-Security-Policy, må disse domenene tillates for at integrasjonene skal kunne laste:

  • Meta Pixel: connect.facebook.net og www.facebook.com
  • LinkedIn Insight Tag: snap.licdn.com og px.ads.linkedin.com

Blokkerer en annonseblokker, en CSP eller nedetid hos leverandøren lastingen, får integrasjonen status failed i debug. Det er ikke en samtykkefeil, det rapporteres ikke til oss, og det forsøkes ikke på nytt.

Dette er ikke en Script Manager

Ferdige integrasjoner er en kort, fast liste. Du kan ikke legge inn egen JavaScript, egne script-adresser eller egne HTML-snutter her, og widgeten kjører kun de loaderne den selv har innebygd — en ukjent leverandør i konfigurasjonen blir ignorert. Skal du styre et annet tredjepartsskript, merker du det i nettstedets kode: se Blokker andre tredjeparts-script til samtykke.

La besøkeren endre samtykke

Etter at besøkeren har tatt et valg, vises en liten tannhjul-knapp nede til venstre. Den åpner samtykkevalgene på nytt.

Vil du ha en egen lenke (f.eks. i footeren eller i personvernerklæringen), bruk denne:

<a href="#" onclick="Nettkapsler.open(); return false;">Endre samtykke</a>

Har du allerede en lenke som kaller ConsentSaaS.open()? Den virker fortsatt, men bruk Nettkapsler.open() i nytt oppsett.

Gjenbesøkende

Når en besøkende tar et valg, lagres det i en cookie:

cs_consent

Valget lagres i 365 dager. Ved neste besøk:

  • banneret holdes skjult
  • tidligere valg brukes automatisk
  • besøkeren kan fortsatt endre valget via tannhjul-knappen eller en egen «Endre samtykke»-lenke