Hotjar Heatmap og Session Recording Cookie Samtykke Integrationsvejledning: 2026 Playbook for Udgivere
Hotjar har en unik plads i værktøjsstakken. Det er ikke en webanalyseplataform som Google Analytics, ikke en produktanalyseplataform som Amplitude eller Mixpanel og heller ikke en tagmanager. Det er et brugeroplevelsesforskningsværktøj, der specifikt eksisterer for at registrere, hvad individuelle brugere gør på en side — hvor de bevæger musen, hvad de klikker på, hvor de scroller, hvor de tøver, og i tilfælde af sessionsoptagelse, præcis hvad de tastede og så vist på skærmen. Den granularitet er produktet. Det er også grunden til, at regulatorer har peget på sessionsafspilning som en af de højrisikokategorier for adfærdsbehandling, og hvorfor en uforsigtig Hotjar-implementering er en af de nemmeste måder for et ellers compliant websted at komme ud af overensstemmelse. CNIL, Garante og EDPB har alle offentliggjort vejledning, der specifikt er rettet mod sessionsafspilningsadfærd, og EDPB's cookiebanner-taskforce for 2026 behandler det som en prioritetskategori. Den gode nyhed er, at Hotjar er et af de bedre teknisk opbyggede værktøjer i kategorien til samtykke-første implementering — forudsat at udgiveren faktisk bruger de eksisterende kontrolfunktioner.
Hvorfor Hotjar kræver eksplicit samtykke
Hotjars indsamlingsprofil er det, der udløser samtykkeforpligtelser på tværs af alle relevante rammer. Ved en standardinitialisering skriver Hotjar-sporingsscriptet mindst tre førstepartscookies — _hjSessionUser_{siteId}, _hjSession_{siteId} og en række undertrykkelse- og indgående-kilde-cookies — til browseren inden for millisekunder efter sideindlæsning. Scriptet begynder derefter at streame en kontinuerlig registrering af markørkoordinater, klikkoordinater, scroll-position, visningsportsstørrelse og, når sessionsoptagelse er aktiveret, den fuldt renderede DOM sammenlignet med en baseline.
I henhold til artikel 5(3) i ePrivacy-direktivet er hver af disse cookies en lager- og adgangsoperation, der kræver forudgående, frit givet, specifikt, informeret og utvetydigt samtykke i EØS, UK, Schweiz og enhver jurisdiktion, der har indført samme standard. Under GDPR udgør adfærdsstrømmen behandling af personoplysninger, fordi kombinationen af markørsporet, IP-adressen, enhedsfingeraftryk og sessionsidentifikatoren er tilstrækkelig til at udpege en enkeltperson. Under CCPA og CPRA tæller den samme indsamling som et salg eller en deling, medmindre udgiveren har den relevante serviceudbyderaftale med Hotjar — som Hotjar tilbyder via sin CCPA-kompatible DPA, men som kun træder i kraft, når integrationen er konfigureret korrekt. Under EDPB's vejledning om sessionsafspilning er barren endnu højere: afspilning skal være knyttet til et specifikt, legitimt UX-forskningsformål, opbevaringsperioden skal være den minimalt nødvendige, og den registrerede skal informeres ikke kun om, at optagelser eksisterer, men om, at deres egen session kan genafspilles af en analytiker.
Hvad Hotjar indsamler inden samtykke — og hvad der skal undertrykkes
Den mest almindelige implementeringsfejl er den, der følger med Hotjars egen hurtigstart: at indsætte sporingsscriptet direkte i sidens <head>. Det virker, men det indlæser Hotjar, inden cookiebanneret overhovedet er renderet, hvilket betyder, at cookies sættes og adfærdsoptagelse begynder ved den allerførste sidevisning — uanset hvad brugeren beslutter sig for senere. Enhver EU-regulator, der har truffet afgørelse om dette mønster, har truffet den samme afgørelse: cookies sat inden samtykke er ulovlige, og udgiveren hæfter.
En compliant integration skal derfor forhindre Hotjar-scriptet i overhovedet at indlæse, indtil den relevante samtykkekategori er tildelt. Den reneste måde at gøre dette på er at pakke Hotjar-kodestykket ind i et samtykke-gated <script>-tag, som CMP'en kun injicerer, efter at brugeren har tilvalgt kategorien for analyse eller produktforskning. Hvis scriptet indlæses via en tagmanager, er ækvivalenten at indstille triggeren til en samtykke-givet hændelse frem for All Pages. Hotjars egen dokumentation anbefaler nu eksplicit dette mønster, og platformen eksponerer en hj('consent', 'grant')-API til tilfælde, hvor scriptet skal være til stede, men forblive i dvale, indtil samtykke er registreret.
Cookies og lagring, som Hotjar skriver
Hotjar Tracking Code 6.x skriver følgende identifikatorer, som alle er ikke-essentielle og kræver samtykke: _hjSessionUser_{siteId} med en udløbsdato på 365 dage indeholdende brugeridentifikatoren, _hjSession_{siteId} med en udløbsdato på 30 minutter indeholdende sessionsidentifikatoren, _hjFirstSeen, _hjIncludedInSessionSample_{siteId}, _hjAbsoluteSessionInProgress og en række kampagne-attributions-cookies, når undersøgelser eller feedback-widgets er aktive. Selve sessionsoptagelserne opbevares på Hotjars servere og er koblet til sessionsidentifikatoren — tilbagekaldelse af samtykke skal derfor også signalere en sletningsanmodning via Hotjars API eller brugersletningstilgangen i produktet.
Mapping af Hotjar til samtykkerammer
Hotjar integrerer ikke nativt med IAB TCF eller IAB Global Privacy Platform. Det er ikke en annoncetech-leverandør og var aldrig tiltænkt at være det. Det integreres dog med Google Consent Mode v2 via signalet analytics_storage og eksponerer sin egen native samtykke-API, som enhver CMP kan binde sig til. Det mønster, der overlever en regulators gennemgang, behandler hver Hotjar-funktion som en separat samtykkeport.
- Heatmaps og klikmaps er knyttet til analyse- eller produktforskningsformålet. I TCF-termer er dette oftest formål 8 (mål indholdspræstation) kombineret med formål 1 (opbevare og/eller tilgå information). For Consent Mode er det analytics_storage.
- Sessionsoptagelse bør ligge bag et strengere, separat signal. Optagelse fanger den renderede DOM og ethvert umaskeret felt, og et eksplicit præference-niveau tilvalg — ikke generelt samtykke til analyse — er den forsvarlige holdning under EDPB's vejledning om sessionsafspilning.
- Undersøgelser og feedback-widgets kan køre under den samme samtykkeport som sessionsoptagelse, når de indsamler fri-tekst-input, eller under analyseporten, når de kun indsamler vurderingsdata.
- Tragte og konverteringssporing er knyttet til analyseporten; hvis en brugeridentifikator udbredes til et CRM eller en annonceplataform, gælder markedsføringsporten også.
Det integrationsmønster, der virker
Referenceimplementeringen har fire dele: en CMP, der eksponerer en realtids samtykkeændringshændelse, en forsinket scriptindlæser, der kun injicerer Hotjar-kodestykket efter at analysesamtykke er aktiv, et sessionsoptagelsesundertrykkende lag, der som standard sætter optagelse til fra, indtil en separat port åbnes, og en inputmaskereringskonfiguration, der hårdt undertrykker ethvert felt, som en regulator ville betragte som følsomt, selv når samtykke er givet. Det fjerde punkt overses ofte: inputmaskerering er ikke et alternativ til samtykke, men det er et alternativ til katastrofe, når samtykke gives til legitim forskning og en bruger tilfældigvis indsætter følsomme data i et fritekstfelt.
Webimplementering
På nettet er det reneste mønster at abonnere på CMP'ens samtykkeændringshændelse og derefter betinget injicere Hotjar-kodestykket, når analyseformålet skifter fra false til true. Brug document.createElement('script') til at injicere sporingskoden med async-attributten sat og tilknyt en onload-handler, der kalder hj('identify', userId, properties) kun hvis der eksisterer en servervalideret brugeridentifikator. Når samtykke tilbagekaldes, kald hj('consent', 'revoke'), udløb alle _hj-cookies via document.cookie og afsend en sletningsanmodning via Hotjar Data API for brugerens tidligere sessionsoptagelser. Initialiser ikke Hotjar dovent i samme render-pass som banneret — scriptet skal vente på en eksplicit tildeling, og tildelingen skal registreres med et tidsstempel og en samtykkestreng, inden scriptet overhovedet kører.
Inputmaskerering og undertrykkelse af følsomme data
Hotjars sessionsoptager leveres med tre maskeringstilstande: Suppress mode, som er standarden for adgangskodefelter og ethvert element markeret med data-hj-suppress-attributten; Whitelist mode, hvor kun eksplicit tilvalgte input optages; og Mask mode, hvor tastetryk optages som asterisker. Under GDPR's regler for særlige kategorier og CCPA's definition af følsomme personoplysninger skal ethvert felt, der kan indfange helbredsoplysninger, finansielle detaljer, statslige identifikatorer, biometriske data, præcis geolokalisering eller indhold af private kommunikationer, bruge Suppress mode uanset brugerens samtykkestatus. At indstille data-hj-suppress på formularniveau frem for feltniveau er det sikreste mønster — det undertrykker hele formularen, selv hvis en udvikler efterfølgende tilføjer et nyt felt, som de glemmer at markere individuelt.
Enkeltside-applikationer og ruteændringer
For SPA'er (React, Vue, Angular, Svelte) binder Hotjar-kodestykket som standard kun til den første sideindlæsning. For at spore virtuelle sidetransitioner skal bootstrapet kalde hj('stateChange', newPath) ved hver ruteændring. Dette kald respekterer den samtykkestatus, Hotjar holder på det tidspunkt, så CMP-gatingslogikken behøver ikke duplikeres — men ruteændringen må ikke i sig selv udløse en ny scriptindlæsning, hvis samtykke er tilbagekaldt mellem sidevisninger.
Validering af integrationen
Valideringstrinnet er det, regulatorer tjekker, og det, udgivere oftest springer over. En korrekt integreret Hotjar-implementering skal bestå fire test i rækkefølge. For det første bør en ny browsersession med banneret vist men ingen valg foretaget producere nul anmodninger til static.hotjar.com, script.hotjar.com eller vars.hotjar.com og nul _hj-cookies i document.cookie. For det andet bør afvisning af analyse bevare den tilstand — ingen scriptindlæsning, ingen optagelse, ingen cookies. For det tredje bør accept af analyse producere en scriptindlæsning og de forventede _hjSessionUser- og _hjSession-cookies med korrekte SameSite-attributter, og en heatmap-optagelse bør vises i Hotjar-dashboardet inden for fem minutter. For det fjerde bør efterfølgende tilbagekaldelse af samtykke øjeblikkeligt stoppe yderligere optagelse, udløbe cookies og udløse en sletningsanmodning — forsinket oprydning er et fund.
Revisionssporet er separat vigtigt. Regulatorer forventer, at udgiveren kan bevise, for enhver given optagelse på Hotjar-kontoen, at den bruger, der genererede den, havde givet gyldigt samtykke i øjeblikket for optagelsen. Standardmønsteret er at indlejre samtykkeversionen og tidsstemplet som en brugerdefineret attribut på Hotjar-brugerposten via hj('identify', userId, { consent_version: 'v3', consent_ts: ts }). Det gør enhver specifik optagelse sporbar tilbage til en specifik samtykkelogpost, hvilket er den standard, EDPB har sat, og den standard, udgivere bør adoptere uanset, hvor de opererer. En korrekt gateed implementering kombineret med inputmaskerering, der undertrykker som standard, og en sletningssti, der aktiveres ved tilbagekaldelse, er det, der gør Hotjar til en forsvarlig del af en forskningsstack frem for en compliance-hæftelse.