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

Embed-integrasjoner

Noen integrasjoner fungerer annerledes enn vanlig skriptinjeksjon. I stedet for bare å legge til en script-tag, krever de et plassholderelement i side-HTML-en som Consentify styrer. YouTube og Calendly fungerer begge på denne måten.

YouTube

YouTube-iframer setter sporings-cookies idet de lastes, før brukeren har mulighet til å samtykke. Consentify erstatter hvert YouTube-div med en blokkert plassholder til besøkende godtar markedsføringscookies, og bytter deretter inn den ekte iframen.

Steg 1: Aktiver YouTube i dashbordet

Gå til Integrasjoner i Consentify-dashbordet, finn YouTube under Markedsføring, og lim inn embed-URL-en til videoen. Du kan kopiere denne fra YouTubes Del-meny ved å velge Bygg inn og kopiere src-URL-en.

Steg 2: Legg til diven på siden

Dashbordet genererer en kode-snippet når du har lagt inn en video-URL. Kopier den og plasser den der du vil at videoen skal vises.

Eksempel-snippet:

<div data-consentify-youtube="4OYBJi8b5U0" style="width:100%;aspect-ratio:16/9;"></div>

Slik fungerer det

Når siden lastes uten markedssamtykke, erstatter Consentify diven med et uskarpgjort miniatyrbilde og en blokkert overlegg. Når den besøkende aksepterer markedsføringscookies, lastes siden på nytt og den ekte iframen injiseres i stedet.

Flere videoer på samme side

Legg til én div per video, hver med sin egen video-ID. Consentify håndterer dem alle uavhengig.

<div data-consentify-youtube="4OYBJi8b5U0" style="width:100%;aspect-ratio:16/9;"></div>
<div data-consentify-youtube="dQw4w9WgXcQ" style="width:100%;aspect-ratio:16/9;"></div>

Styling

Inline-stiler på diven overføres til både plassholderen og den endelige iframen. CSS-klasser fungerer også. Standard-snippeten bruker width: 100% og aspect-ratio: 16/9, som fungerer for de fleste layouter.

Calendly

Calendlys bookingwidget setter funksjonelle cookies når den lastes. Consentify holder tilbake widget-scriptet til den besøkende aksepterer funksjonelle cookies, og injiserer det deretter slik at widgeten lastes normalt.

Steg 1: Aktiver Calendly i dashbordet

Gå til Integrasjoner, finn Calendly under Funksjonell, og skriv inn Calendly-lenken din. Lenken skal se slik ut: https://calendly.com/ditt-navn.

Steg 2: Legg til widget-diven på siden

Dashbordet genererer en klar-til-bruk snippet med Calendly-URL-en din forhåndsutfylt. Plasser den på en hvilken som helst side der du vil at bookingwidgeten skal vises.

<div class="calendly-inline-widget"
     data-url="https://calendly.com/your-name"
     style="min-width:320px;height:630px;">
</div>

Før og etter samtykke

Før samtykke sitter diven tom. Når den besøkende aksepterer funksjonelle cookies, injiserer Consentify Calendly-scriptet og widgeten lastes automatisk inn i diven.

Ikke legg til Calendlys script-tag selv

Consentify injiserer den etter samtykke. Hvis du legger til script-tagen manuelt i tillegg, vil widgeten laste uten å vente på samtykke.

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.