Przewodnik po integracji zgody na pliki cookie map cieplnych i nagrań sesji Hotjar: Podręcznik 2026 dla wydawców

Hotjar zajmuje wyjątkowe miejsce w stosie narzędzi. Nie jest platformą analityki internetowej jak Google Analytics, nie jest platformą analityki produktowej jak Amplitude czy Mixpanel i nie jest menedżerem tagów. Jest narzędziem do badania doświadczeń użytkowników, które istnieje specjalnie w celu rejestrowania tego, co indywidualni użytkownicy robią na stronie — gdzie poruszają myszą, co klikają, gdzie przewijają, gdzie się wahają, a w przypadku nagrywania sesji dokładnie co wpisali i widzieli wyrenderowane na ekranie. Ta szczegółowość jest produktem. To również powód, dla którego regulatorzy wyróżnili odtwarzanie sesji jako jedną z kategorii przetwarzania behawioralnego o najwyższym ryzyku, i dlaczego niedbałe wdrożenie Hotjar jest jednym z najłatwiejszych sposobów, w jaki w innym przypadku zgodna strona może wyjść poza zakres zgodności. CNIL, Garante i EDPB wszystkie opublikowały wytyczne skierowane konkretnie na zachowanie odtwarzania sesji, a grupa zadaniowa EDPB ds. banerów z plikami cookie na rok 2026 traktuje to jako kategorię priorytetową. Dobra wiadomość jest taka, że Hotjar jest jednym z lepiej zaprojektowanych narzędzi w tej kategorii do wdrożenia z podejściem consent-first — pod warunkiem, że wydawca faktycznie korzysta z istniejących kontroli.

Dlaczego Hotjar wymaga wyraźnej zgody

Profil zbierania danych Hotjar jest tym, co wyzwala obowiązki dotyczące zgody we wszystkich istotnych ramach prawnych. Przy domyślnej inicjalizacji skrypt śledzący Hotjar zapisuje co najmniej trzy pliki cookie stron trzecich — _hjSessionUser_{siteId}, _hjSession_{siteId} i serię plików cookie dotyczących tłumienia i źródła przychodzącego — w przeglądarce w ciągu milisekund po załadowaniu strony. Skrypt następnie zaczyna strumieniować ciągły zapis współrzędnych kursora, współrzędnych kliknięć, pozycji przewijania, rozmiaru okna widoku, a gdy nagrywanie sesji jest włączone, pełnego wyrenderowanego DOM porównanego z linią bazową.

Na mocy artykułu 5 ust. 3 dyrektywy ePrivacy każdy z tych plików cookie jest operacją przechowywania i dostępu, która wymaga uprzedniej, dobrowolnej, konkretnej, świadomej i jednoznacznej zgody w EOG, Wielkiej Brytanii, Szwajcarii i każdej jurysdykcji, która przyjęła ten sam standard. Zgodnie z RODO strumień behawioralny stanowi przetwarzanie danych osobowych, ponieważ kombinacja śladu kursora, adresu IP, odcisku palca urządzenia i identyfikatora sesji jest wystarczająca do wyodrębnienia osoby fizycznej. Zgodnie z CCPA i CPRA to samo zbieranie liczy się jako sprzedaż lub udostępnianie, chyba że wydawca posiada odpowiednią umowę z dostawcą usług z Hotjar — którą Hotjar oferuje za pośrednictwem swojego DPA zgodnego z CCPA, ale która wchodzi w życie dopiero po prawidłowym skonfigurowaniu integracji. Zgodnie z wytycznymi EDPB dotyczącymi odtwarzania sesji poprzeczka jest jeszcze wyższa: odtwarzanie musi być powiązane z konkretnym, uzasadnionym celem badań UX, okres przechowywania musi być minimalnie konieczny, a podmiot danych musi być poinformowany nie tylko o tym, że nagrania istnieją, ale że jego własna sesja może być odtworzona przez analityka.

Co Hotjar zbiera przed zgodą — i co musi być tłumione

Najczęstszym błędem implementacyjnym jest ten dostarczany z własnym przewodnikiem szybkiego startu Hotjar: wklejenie skryptu śledzącego bezpośrednio do sekcji <head> strony. To działa, ale ładuje Hotjar zanim baner plików cookie zdąży się nawet wyrenderować, co oznacza, że pliki cookie są ustawiane, a rejestrowanie zachowań rozpoczyna się przy pierwszym wyświetleniu strony — niezależnie od tego, co użytkownik później zdecyduje. Każdy regulator UE, który orzekał w sprawie tego wzorca, orzekał tak samo: pliki cookie ustawione przed wyrażeniem zgody są niezgodne z prawem, a wydawca ponosi odpowiedzialność.

Dlatego zgodna integracja musi uniemożliwić ładowanie skryptu Hotjar w ogóle do czasu przyznania odpowiedniej kategorii zgody. Najczystszym sposobem na to jest opakowanie fragmentu Hotjar w tag <script> z kontrolą zgody, który CMP wstrzykuje dopiero po tym, jak użytkownik wyrazi zgodę na kategorię analityki lub badań produktowych. Jeśli skrypt jest ładowany za pośrednictwem menedżera tagów, odpowiednikiem jest ustawienie wyzwalacza na zdarzenie przyznania zgody, a nie na Wszystkie strony. Dokumentacja własna Hotjar zaleca teraz ten wzorzec wprost, a platforma udostępnia API hj('consent', 'grant') dla przypadków, gdy skrypt musi być obecny, ale powinien pozostawać uśpiony do momentu zarejestrowania zgody.

Pliki cookie i pamięć masowa zapisywane przez Hotjar

Kod śledzący Hotjar 6.x zapisuje następujące identyfikatory, z których wszystkie są nieistotne i wymagają zgody: _hjSessionUser_{siteId} z 365-dniowym wygaśnięciem zawierający identyfikator użytkownika, _hjSession_{siteId} z 30-minutowym wygaśnięciem zawierający identyfikator sesji, _hjFirstSeen, _hjIncludedInSessionSample_{siteId}, _hjAbsoluteSessionInProgress, a także szereg plików cookie atrybucji kampanii, gdy ankiety lub widżety opinii są aktywne. Same nagrania sesji są przechowywane na serwerach Hotjar i powiązane z identyfikatorem sesji — wycofanie zgody musi zatem również wysyłać żądanie usunięcia za pośrednictwem interfejsu API Hotjar lub procesu usuwania użytkownika w produkcie.

Mapowanie Hotjar do ram zgody

Hotjar nie integruje się natywnie z IAB TCF ani IAB Global Privacy Platform. Nie jest dostawcą technologii reklamowej i nigdy nie był przeznaczony do tego celu. Jednak integruje się z Google Consent Mode v2 za pośrednictwem sygnału analytics_storage i udostępnia własne natywne API zgody, z którym może się połączyć dowolny CMP. Wzorzec, który przeżywa przegląd regulatora, traktuje każdą możliwość Hotjar jako oddzielną bramkę zgody.

Wzorzec integracji, który działa

Wdrożenie referencyjne składa się z czterech części: CMP, który udostępnia zdarzenie zmiany zgody w czasie rzeczywistym, opóźniony program ładujący skrypt, który wstrzykuje fragment Hotjar dopiero po uruchomieniu zgody na analitykę, warstwa tłumienia nagrywania sesji, która domyślnie ustawia nagrywanie na wyłączone do momentu otwarcia oddzielnej bramki, oraz konfiguracja maskowania danych wejściowych, która twardo tłumi wszelkie pola, które regulator uznałby za wrażliwe, nawet gdy zgoda została udzielona. Czwarty punkt jest często pomijany: maskowanie danych wejściowych nie jest substytutem zgody, ale jest substytutem katastrofy, gdy zgoda jest udzielana na uzasadnione badania, a użytkownik przypadkowo wkleja wrażliwe dane do pola wolnego tekstu.

Implementacja webowa

W sieci najczystszym wzorcem jest subskrybowanie zdarzenia zmiany zgody CMP, a następnie warunkowe wstrzykiwanie fragmentu Hotjar, gdy cel analityki przełącza się z wartości false na true. Użyj document.createElement('script'), aby wstrzyknąć kod śledzący z ustawionym atrybutem async, i dołącz procedurę obsługi onload, która wywołuje hj('identify', userId, properties) tylko wtedy, gdy istnieje zweryfikowany przez serwer identyfikator użytkownika. Po wycofaniu zgody wywołaj hj('consent', 'revoke'), wygaś wszystkie pliki cookie _hj za pośrednictwem document.cookie i wyślij żądanie usunięcia za pośrednictwem interfejsu API danych Hotjar dla poprzednich nagrań sesji użytkownika. Nie inicjuj Hotjar leniwie w tym samym przebiegu renderowania co baner — skrypt musi czekać na wyraźne przyznanie, a przyznanie musi zostać zarejestrowane z sygnaturą czasową i ciągiem zgody przed uruchomieniem skryptu.

Maskowanie danych wejściowych i tłumienie danych wrażliwych

Rejestrator sesji Hotjar jest dostarczany z trzema trybami maskowania: Suppress mode, który jest domyślny dla pól hasła i wszelkich elementów oznaczonych atrybutem data-hj-suppress; Whitelist mode, gdzie rejestrowane są tylko jawnie wybrane dane wejściowe; oraz Mask mode, gdzie naciśnięcia klawiszy są rejestrowane jako gwiazdki. Zgodnie z przepisami RODO dotyczącymi kategorii specjalnych i definicją wrażliwych danych osobowych CCPA, wszelkie pola, które mogą przechwycić informacje zdrowotne, szczegóły finansowe, identyfikatory rządowe, dane biometryczne, precyzyjną geolokalizację lub treści prywatnych komunikatów, muszą korzystać z Suppress mode niezależnie od stanu zgody użytkownika. Ustawienie data-hj-suppress na poziomie formularza, a nie pola, jest najbezpieczniejszym wzorcem — tłumi cały formularz, nawet jeśli programista później doda nowe pole, o oznaczeniu którego zapomni.

Aplikacje jednostronicowe i zmiany tras

W przypadku SPA (React, Vue, Angular, Svelte) fragment Hotjar domyślnie wiąże się tylko z początkowym załadowaniem strony. Aby śledzić wirtualne przejścia stron, bootstrap musi wywoływać hj('stateChange', newPath) przy każdej zmianie trasy. To wywołanie respektuje aktualny stan zgody Hotjar, więc logika bramkowania CMP nie musi być powielana — ale sama zmiana trasy nie może wywoływać nowego załadowania skryptu, jeśli zgoda została wycofana między wyświetleniami stron.

Walidacja integracji

Etap walidacji jest tym, co sprawdzają regulatorzy i co wydawcy najczęściej pomijają. Prawidłowo zintegrowane wdrożenie Hotjar musi przejść cztery testy po kolei. Po pierwsze, nowa sesja przeglądarki z wyświetlonym banerem, ale bez dokonanego wyboru, powinna generować zero żądań do static.hotjar.com, script.hotjar.com lub vars.hotjar.com i zero plików cookie _hj w document.cookie. Po drugie, odmowa analityki powinna zachować ten stan — brak załadowania skryptu, brak nagrywania, brak plików cookie. Po trzecie, akceptacja analityki powinna skutkować załadowaniem skryptu i oczekiwanymi plikami cookie _hjSessionUser i _hjSession z poprawnymi atrybutami SameSite, a nagranie mapy cieplnej powinno pojawić się w panelu Hotjar w ciągu pięciu minut. Po czwarte, wycofanie zgody po fakcie powinno natychmiast zatrzymać dalsze nagrywanie, wygasić pliki cookie i wywołać żądanie usunięcia — opóźnione czyszczenie jest naruszeniem.

Ślad audytowy jest osobno ważny. Regulatorzy oczekują, że wydawca będzie mógł udowodnić, dla dowolnego nagrania na koncie Hotjar, że użytkownik, który je wygenerował, udzielił ważnej zgody w momencie przechwycenia. Standardowym wzorcem jest osadzenie wersji zgody i sygnatury czasowej jako niestandardowego atrybutu w rekordzie użytkownika Hotjar za pośrednictwem hj('identify', userId, { consent_version: 'v3', consent_ts: ts }). To sprawia, że każde konkretne nagranie jest możliwe do prześledzenia do konkretnego wpisu w dzienniku zgody, co jest standardem ustalonym przez EDPB i standardem, który wydawcy powinni przyjąć niezależnie od miejsca prowadzenia działalności. Prawidłowo zabezpieczone wdrożenie w połączeniu z maskowaniem danych wejściowych, które domyślnie tłumi, i ścieżką usunięcia aktywowaną po wycofaniu, sprawia, że Hotjar staje się możliwą do obrony częścią stosu badawczego, a nie zobowiązaniem w zakresie zgodności.

← Blog Czytaj wszystko →