Oppsett & installasjon

Velkommen til Consentify-dokumentasjonen. Her finner du all informasjonen du trenger for å installere, konfigurere og tilpasse samtykkebanneret for nettstedet ditt. Vårt mål er å gjøre GDPR-samsvar så enkelt og sømløst som mulig.

CLI-hurtigstart

Foretrekker du terminalen? Én kommando setter opp et helt nettsted: den logger deg inn, oppretter domenet, fjerner eventuelt gammelt cookie-verktøy og legger inn banner-scriptet. Ingen kopiering og liming.

Kjør denne i prosjektmappen din

$npx consentify-migrate

Krever Node 18 eller nyere.

Hva den gjør

  1. Oppdager rammeverket ditt (Next.js, Vite, Vue, WordPress eller ren HTML) og hvor scriptet skal plasseres.
  2. Fjerner eventuelt eksisterende samtykkeverktøy (Cookiebot, OneTrust, Iubenda) og legger inn Consentify-banneret.
  3. Konfigurerer sporerne den finner slik at de er sperret bak samtykke fra første lasting, og committer endringen.

Nyttige flagg

  • --dry-run bare oppdag, endre ingenting
  • --git=branch|commit|push|none hvordan endringer committes
  • bulk <folder> sett opp alle prosjekter i en mappe samtidig

Når den er ferdig

Det nye domenet ditt dukker opp i dashbordet, klart til å tilpasses i banner-editoren. Nye brukere opprettes på stedet via GitHub eller Google, ingen egen registrering nødvendig.

Integrasjoner

Consentify gjør det enkelt å integrere med populære tredjeparts tjenester som Google Analytics, Facebook Pixel og mange flere. Systemet vårt sørger for at disse skriptene kun lastes inn etter at en bruker har gitt sitt eksplisitte samtykke, noe som hjelper deg med å opprettholde GDPR-samsvar.

Slik fungerer integrasjoner

Når en bruker gir samtykke for en spesifikk kategori (f.eks. Analyse eller Markedsføring), injiserer Consentify dynamisk de tilhørende tredjepartsskriptene i nettstedet ditt. Dette betyr at du ikke trenger å manuelt administrere betinget skriptinnlasting – Consentify håndterer det automatisk for deg.

For hver integrasjon oppgir du vanligvis en ID (f.eks. en Google Analytics Tracking ID eller en Facebook Pixel ID) i ditt Consentify-dashbord. Systemet vårt gjengir deretter riktig skript for den tjenesten.

Støttede integrasjoner

Consentify støtter et bredt spekter av populære tjenester. Du kan aktivere og konfigurere dem direkte fra dashbordet ditt under 'Integrasjoner'-fanen.

Se integrasjoner

Videoer og widgeter

En YouTube-video, et Google-kart eller en Calendly-widget begynner å sette informasjonskapsler i det siden din åpnes, lenge før noen har sagt ja til noe. Consentify holder dem tilbake og viser en liten boks i stedet, til den besøkende har bestemt seg.

Hva du må gjøre

Én liten endring per innbygging. Flytt adressen ut av src og inn i data-csfy-src, og sett i tillegg type til text/plain på laster-script for widgeter. Da har nettleseren ingen adresse å hente, og ingenting når leverandøren før vi setter den tilbake. Kommandoen npx consentify-migrate gjør endringen for deg hvis nettstedet ligger i et repo.

Videoer, kart og andre iframes

Før

<iframe
  src="https://www.youtube.com/embed/VIDEO_ID"
></iframe>

Etter

<iframe
  data-csfy-src="https://www.youtube.com/embed/VIDEO_ID"
></iframe>

Laster-script for widgeter

Før

<script
  src="https://assets.calendly.com/assets/external/widget.js"
></script>

Etter

<script
  type="text/plain"
  data-csfy-src="https://assets.calendly.com/assets/external/widget.js"
></script>

Lar du en innbygging stå akkurat slik leverandøren skrev den, får den fortsatt en plassholder og havner fortsatt i cookie-erklæringen din. Det den ikke får er ekte blokkering: nettleseren sender forespørselen mens den leser siden, før noe script på den har kjørt, så når vi ser innbyggingen har leverandøren allerede hørt fra den besøkende.

Hva som holdes tilbake

YouTube, Vimeo, Spotify, SoundCloud, Instagram, Facebook, X og Typeform venter på samtykke til markedsføring. Google Maps og Calendly venter på funksjonelle, så en som takker nei til markedsføring fortsatt finner kontoret ditt og får bestilt et møte.

Hva de besøkende ser

Der videoen eller widgeten skulle vært står en liten boks i samme farger som banneret ditt, som sier hvilken tjeneste som er skjult og hvorfor. En knapp tar dem til cookie-innstillingene, åpnet på nøyaktig den tjenesten. Sier de ja, dukker innholdet opp der boksen sto.

Cookie-erklæringen holder seg oppdatert selv

Legger du inn en video på en side til neste år, trenger du ikke huske å si fra til noen. Den første besøkende som åpner den siden er nok til at den havner i cookie-erklæringen din, med sine informasjonskapsler. Vi går aldri gjennom nettstedet ditt for å finne ut av det.

Slå det av

Under Verktøy ligger en bryter hvis du heller vil at innebygd innhold skal lastes med en gang. Den står på som standard. Med den av vises innholdet fortsatt i cookie-erklæringen, men å stå oppført der er ikke det samme som å være tillatt.

For utviklere

En innbygging skrevet med data-csfy-src har ingen adresse nettleseren kan hente, så ingenting når leverandøren før samtykket kommer og vi setter src tilbake. Det er den eneste formen som faktisk holdes tilbake. En vanlig iframe med src er noe annet: nettleseren starter forespørselen i det den leser taggen, før noe script på siden har kjørt. Vi testet alle veier rundt det, blant annet MutationObserver, det synkrone DOMNodeInserted-eventet og å overstyre src-setteren på prototypen, og forespørselen går ut først i alle sammen.

Plassholdere tegnes i en shadow root, så din CSS og vår ikke når hverandre. Laster-script lages på nytt ved samtykke, og widget-beholdere skjules så de ikke etterlater et tomt hull der widgeten skulle vært. Script-taggen vår er async og hører hjemme i head, men det handler om at banneret vises tidlig og fanger innbygginger som JavaScript legger til senere. Det er ikke det som holder tilbake innbygginger i markupen din, det klarer data-csfy-src på egen hånd.

Automatisk Personvernerklæring

Å holde personvernerklæringen oppdatert ved hver minste tekniske endring er tidkrevende. Consentify automatiserer dette ved å generere en dynamisk oversikt over alle dine aktive trackere og cookies.

Slik fungerer det

Skriptet vårt har en innebygd motor for personvernregler. Den oppdager hvilke integrasjoner du har aktivert (som Google Analytics eller egne skript) og genererer en ferdig formatert tabell med informasjonskapsler, leverandører og formål.

Automatisk Injisering

For å vise din dynamiske erklæring, oppretter du ganske enkelt en side på nettstedet ditt (f.eks. /personvern) og legger til et tomt element med følgende ID:

Legg dette til på din personvernside:

<!-- Cookie declaration: categorized table of active cookies -->
<div id="consentify-cookie-declaration"></div>

<!-- Consent receipt: visitor's current consent, change / withdraw -->
<div id="consentify-consent-state"></div>

Both work anywhere on your site. A dedicated cookie page is not required, a section on your existing privacy policy page is enough. The legacy ID consentify-privacy-policy still renders the declaration.

Sanntidsoppdateringer

Oversikten genereres fortløpende. Hvis du legger til en ny integrasjon i dashbordet ditt, vil den dukke opp i tabellen på nettsiden din umiddelbart – helt uten at du trenger å endre kode.

Tilpasning av utseende

Den injiserte tabellen kommer med et rent og nøytralt design, men du kan enkelt overstyre CSS-klassene (som .csfy-pp-table) for å matche din merkevare perfekt.

Tips & Triks

Slik ser du banneret igjen

Når en bruker har tatt et valg, vil Consentify-banneret ikke automatisk dukke opp igjen ved senere besøk, med mindre policyversjonen endres eller samtykket utløper. Hvis du trenger å teste banneret eller endre samtykket ditt, her er noen måter:

  • 1. Tøm lokal lagring: Den enkleste måten å tvinge banneret til å dukke opp igjen er å tømme `csfy_consent`-elementet fra nettleserens lokale lagring for domenet ditt. Du kan gjøre dette i nettleserens utviklerverktøy (Applikasjon -> Lokal lagring).
  • 2. Bruk inkognito/privat surfing: Åpning av nettstedet ditt i et inkognito- eller privat nettleservindu vil behandle deg som en ny besøkende, noe som får banneret til å vises.
  • 3. Programmatisk gjenåpning: Consentify-skriptet eksponerer en global funksjon `window.consentifyReopenBanner()` som du kan kalle fra nettleserens konsoll eller din egen JavaScript for å tvinge banneret til å vises igjen.

Policyversjonering

Consentify bruker et policyversjoneringssystem. Hvis du oppdaterer informasjonskapselpolicyen din eller gjør betydelige endringer i bannerkonfigurasjonen din i dashbordet, vil økt 'Policyversjon' sikre at alle brukere ser banneret igjen og blir bedt om å gi nytt samtykke, selv om de tidligere har akseptert.

Lokal lagringsnøkkel

Consentify lagrer brukerens samtykkepreferanser i nettleserens lokale lagring under nøkkelen `csfy_consent`. De lagrede dataene inkluderer preferanser for nødvendige, analyse- og markedsføringskapsler, sammen med `policy_version` og en `delete_token`.

Feilsøking av Banneret

Consentify tilbyr flere innebygde mekanismer for å hjelpe deg med å feilsøke banneret og integrasjonsskriptene.

Feilsøkingsmoduser (GTM Preview, Hotjar Verify)

Consentify-skriptet oppdager automatisk visse URL-parametere som vanligvis brukes av feilsøkingsverktøy som Google Tag Manager (GTM) forhåndsvisningsmodus eller Hotjar Verify. Når disse parameterne er til stede, vil Consentify aktivere alle integrasjonsskript uavhengig av brukerens samtykke, slik at du kan teste sporingskonfigurasjonene dine.

  • For GTM forhåndsvisningsmodus, se etter parametere som `gtm_preview`, `gtm_auth` eller `gtm_debug`.
  • For Hotjar Verify, se etter `hjVerifyInstall` eller `hjVerifyUUID`.

Utviklingsdomenevalidering-bypass

I utviklingsmiljøer (`NODE_ENV === "development"`) omgår Consentify automatisk domenevalidering. Dette betyr at du kan teste banneret på `localhost` eller en hvilken som helst utviklings-URL uten å måtte registrere det i dashbordet ditt.

Sidevisningssporing

Consentify sporer sidevisninger for fakturerings- og analyseformål. Skriptet øker en sidevisnings teller via et API-endepunkt (`/api/gateway/increment-pageview`). Dette skjer automatisk ved første sideinnlasting og ved påfølgende ruteendringer (for SPA-er) hvis samtykke er gitt eller forhåndsgodkjent.

Avansert Bruk

Når Consentify-banneret er installert, kan du lese samtykke-tilstanden i din egen kode, både på klientsiden og på serveren. Dette lar deg styre dine egne skript, API-kall eller UI basert på samtykke uten å være avhengig av at banneret gjør det for deg.

Lese samtykke i din egen JavaScript

Samtykke lagres i localStorage under nøkkelen csfy_consent. Du kan lese det når som helst fra dine egne skript:

const consent = JSON.parse(localStorage.getItem('csfy_consent') || '{}');

if (consent.analytics) {
  // Run your own analytics code
  myAnalytics.track('page_view');
}

if (consent.marketing) {
  // Run marketing code
  loadRetargetingPixel();
}

Dette er nyttig hvis du har kode utenfor en Consentify-integrasjon som bare skal kjøre etter at analyse-samtykke er gitt for eksempel en egendefinert hendelsessporer eller et A/B-testverktøy.

Lese samtykke på server-siden

Consentify setter en cookie kalt csfy_consent med samme verdi som localStorage. Denne cookien kan leses i server-side kode som Next.js middleware, API-ruter, eller en hvilken som helst server som mottar HTTP-forespørsler fra nettleseren.

// Next.js middleware (edge runtime)
import { NextRequest } from 'next/server';

const raw = request.cookies.get('csfy_consent')?.value;
const consent = raw ? JSON.parse(decodeURIComponent(raw)) : null;

if (consent?.analytics) {
  // User has given analytics consent
}
// Next.js API route / Server Component (Node runtime)
import { cookies } from 'next/headers';

const raw = cookies().get('csfy_consent')?.value;
const consent = raw ? JSON.parse(decodeURIComponent(raw)) : null;

if (consent?.marketing) {
  // Skip marketing API call if not consented
}

Dette mønsteret er nyttig for betinget server-side rendering, å hoppe over analyse-API-kall i backend, eller justere responser basert på brukersamtykke uten å kreve en klient-side round-trip.

Hva trenger samtykke og hva trenger det ikke

Ikke alle cookies eller lagring krever brukersamtykke. Under GDPR og ePrivacy-direktivet er strengt nødvendige og funksjonelle cookies unntatt. Slik kategoriserer du dine egne cookies:

Strengt nødvendig krever ikke samtykke

Cookies og lagring som er teknisk nødvendig for at siden skal fungere, eller som lagrer en preferanse brukeren eksplisitt har angitt. Eksempler: sesjonstokens, autentiseringscookies (f.eks. Supabase), CSRF-tokens, språkpreferanse (NEXT_LOCALE), handlekurvstatus.

Analyse krever samtykke

Cookies som brukes til å måle hvordan siden din brukes. Eksempler: Google Analytics (_ga, _gid), PostHog, Microsoft Clarity, Mixpanel. Disse må blokkeres til brukeren aksepterer analyse-kategorien.

Markedsføring krever samtykke

Cookies som brukes til annonsemålretting, retargeting eller sporing på tvers av nettsteder. Eksempler: Facebook Pixel (_fbp), TikTok Pixel, LinkedIn Insight, Google Ads. Disse må blokkeres til brukeren aksepterer markedsføringskategorien.

Egendefinerte integrasjoner og når de kjøres

Skript lagt til via Egendefinerte integrasjoner i dashbordet ditt injiseres etter at brukeren aksepterer den tilsvarende kategorien. Du tilordner hvert egendefinert skript til enten analyse eller markedsføring, Consentify tar seg av resten. Hvis du vil at et egendefinert skript også skal sette en cookie, dokumenterer du den cookien i cookie-tabellen når du legger til integrasjonen, slik at den vises riktig i bannerets opplysningsmodal og din auto-genererte personvernerklæring.

Gratis for alltid, ingen kortopplysninger

Få cookie-banneret live på 5 minutter

Lim inn én script-tag på siden din, så er du dekket. Ingen plugin å installere, ingen kode å skrive, ingenting å betale.

  • 1 domene
  • 5 000 sidevisninger/mnd
  • Alle integrasjoner
  • GDPR, ekomloven og ePrivacy
Start gratis

Ingen kortopplysninger. Gratis for alltid.

Sammenlign planer