Zero cookies. Zero zapisu w przeglądarce.
W trybie domyślnym tracker niczego nie zapisuje i niczego nie odczytuje na urządzeniu — bez cookies, bez localStorage, bez sessionStorage, bez IndexedDB. Sealed proxy na pamięć potwierdza zero odwołań.
Prawna przewaga
Każda platforma analityczna każe wybierać między wglądem a ingerencją. Observer jest zbudowany tak, żeby ten wybór był niepotrzebny: tryb domyślny niczego nie zapisuje na urządzeniu odwiedzającego, tożsamość rotuje się co północ, a małe próbki są ukrywane na poziomie zapytania. Prywatność nie jest tu polityką — jest matematyką.
Ta strona
Zakres. Reszta tej strony opisuje produkt Observer: co robi, gdy klient uruchamia go na własnym serwerze. Ta sekcja opisuje, co robi ta strona, observer.castomo.com.
Analityka: Observer. Odwiedziny liczymy za pomocą Observera, naszej własnej analityki, prowadzonej przez Castomo na własnym serwerze we Frankfurcie. Nie ustawia ciasteczek i niczego nie zapisuje na Twoim urządzeniu. Dla każdej otwartej strony zapisuje: adres strony (z zapytania tylko znaczniki kampanii, jak utm_source) i jej tytuł, stronę, z której przyszedłeś, przeglądarkę, typ urządzenia i system, język przeglądarki, orientacyjny przedział rozmiaru ekranu, jak długo strona była aktywnie otwarta, jak szybko się wczytała, ewentualny błąd skryptu oraz — jako sumy — gdzie ludzie klikają i jak głęboko przewijają. Nie nagrywa Twojego ekranu i nie odczytuje naciśnięć klawiszy.
Twój adres IP jest przez chwilę używany razem z przeglądarką do wytworzenia kodu, który zmienia się codziennie i jest inny na każdej stronie. Samego adresu IP nigdy nie zapisujemy, a serwer, który dostarcza Observera, nie prowadzi dziennika dostępu. Kod pozwala policzyć jednego odwiedzającego raz dziennie, ale nie da się nim powiązać wizyty z wizytami w inne dni ani na innych stronach. Surowe zapisy usuwamy po 24 godzinach; zostają tylko sumy, przez 25 miesięcy. Jeśli przeglądarka wysyła sygnał Do Not Track lub Global Privacy Control, Observer nie wysyła żadnych danych o wizycie.
Robimy to w naszym prawnie uzasadnionym interesie, jakim jest wiedza o tym, jak korzysta się z naszych stron (art. 6 ust. 1 lit. f RODO). Możesz w każdej chwili wnieść sprzeciw: hello@castomo.com.
Asystent czatu. Każda strona ma przycisk czatu prowadzony przez Castomo (chat.castomapi.com, serwery w Amsterdamie). Dopóki nie otworzysz czatu, przycisk niczego nie zapisuje na Twoim urządzeniu i nie rozpoczyna rozmowy; przy wczytaniu strony pobiera tylko swoje ustawienia z naszego serwera czatu, który — jak każdy serwer WWW — zapisuje żądanie wraz z Twoim adresem IP w rotującym dzienniku, nadpisywanym w miarę zapełniania.
Gdy otworzysz czat, okno czatu zapisuje w pamięci lokalnej przeglądarki kod odwiedzającego i kilka ustawień, a nasz serwer tworzy rekord odwiedzającego: kod (przechowywany tylko jako skrót), skrót Twojego adresu IP, typ przeglądarki, język i strefę czasową, stronę, na której byłeś, i skąd przyszedłeś, oraz wszystko, co napiszesz — a imię, e-mail lub telefon tylko wtedy, gdy je podasz.
Asystent jest sztuczną inteligencją i mówi o tym wprost. Odpowiedzi piszą modele AI prowadzone przez OpenRouter (Google Gemini) i OpenAI, które otrzymują to, co napiszesz, żeby odpowiedzieć; po zakończeniu rozmowy ten sam tekst trafia do modelu jeszcze raz, by napisał krótkie podsumowanie. Osoba z naszego zespołu może przeczytać rozmowę i ją przejąć. Ci dostawcy mogą przetwarzać dane poza Europejskim Obszarem Gospodarczym.
Rekord odwiedzającego i jego rozmowy przechowujemy do 180 dni od jego ostatniej wizyty, po czym je usuwamy. Możesz poprosić o wcześniejsze usunięcie: hello@castomo.com. Prosimy, nie pisz niczego, czego nie chcesz nam przekazać.
Zapewnienia — testowane, nie życzeniowe
To nie są intencje. To niezmienniki sprawdzane w CI przy każdym buildzie — w tym 6-specyfikacyjna przeglądarkowa suita prywatności, która uruchamia tracker w prawdziwej przeglądarce z proxy na pamięci i nagrywaniem sieci.
W trybie domyślnym tracker niczego nie zapisuje i niczego nie odczytuje na urządzeniu — bez cookies, bez localStorage, bez sessionStorage, bez IndexedDB. Sealed proxy na pamięć potwierdza zero odwołań.
Tożsamość powstaje po stronie serwera z tego, co przeglądarka i tak wysyła (IP + user agent), haszowana kluczem HKDF rotowanym o północy UTC. Hash z wczoraj nie da się połączyć z dzisiejszym.
Każda witryna dostaje własną sól. Blog nie może skorelować się ze sklepem — wymuszone konstrukcją, nie polityką.
IP istnieje milisekundy w pamięci collectora — lookup geo i wejście HMAC — po czym znika. Nigdy w logach, nigdy w serializacji; niezmiennik CI sprawdza, że collector nigdy go nie zapisuje.
Każdy wiersz dashboardu, eksport i link do migawki ukrywa dane poniżej 5 sesji. Re-identyfikacja małych próbek jest blokowana na poziomie zapytania, nie konwencją.
Żadnych sond canvas, WebGL, audio ani fontów. Audyt statyczny wywala build przy każdym naruszeniu — SDK fizycznie nie może „uroić sobie" fingerprintingu.
Self-hosted na Twojej infrastrukturze. Zero endpointów zewnętrznych, zero podprocesorów, zero transferów międzynarodowych — dane nie opuszczają maszyn, które posiadasz.
Logowania, zmiany konfiguracji, tworzenie kluczy, odpalania alertów — każda akcja trafia do append-only dziennika, widocznego na stronie Privacy Posture.
Do Not Track, Global Privacy Control i observer('optOut') wyciszają SDK bez wyjątków — testy potwierdzają zero beaconów i zero zapisu.
Jak działa tożsamość
Większość narzędzi przykleja odwiedzającemu trwałe ID. Observer liczony jest po stronie serwera jako zanonimizowany pseudonim „urządzenie-dzień": HMAC-SHA256 z tego, co przeglądarka i tak wysyła, kluczowany HKDF rotowanym o północy UTC, solony per witryna. Odwiedzający to „ktoś, na tym urządzeniu, dziś" — i nic więcej.
Nic nie jest zapisywane na urządzeniu. Nie ma czego czyścić, odrzucać ani na co wyrażać zgody.
Wejściem jest to, co każdy request HTTP już niesie — IP i user agent — używane milisekundy i wyrzucane. Zero sond.
Rotacja klucza jest kryptograficzna, nie administracyjna: połączenie odwiedzającego z poniedziałku z wtorkowym wymaga starego klucza, który już nigdzie nie istnieje.
Ochrona na poziomie zapytania
Dashboardy, eksporty CSV i publiczne migawki przechodzą przez ten sam filtr: każdy wiersz opisujący mniej niż 5 sesji jest ukrywany. Rzadko odwiedzana strona nie da się zidentyfikować przez zawężanie filtrów do jednego odwiedzającego.
| Strona | Odsłony | Urządzenia | Zaangaż. | Status |
|---|---|---|---|---|
| / | 9342 | 6118 | 2:58 | exact |
| /cennik | 4187 | 3206 | 3:24 | exact |
| /blog/analityka-bez-cookies | 2905 | 2144 | 4:02 | exact |
| /internal/roadmap-2026 | n = 3 — poniżej progu k-anonimowości wynoszącego 5 | suppressed | ||
Ten sam próg obowiązuje w każdym eksporcie, każdej odpowiedzi API i każdej publicznej migawce. Szacowane liczby urządzeń niosą uczciwą plakietkę — kolizje NAT zaniżają, zmienność IPv6 fragmentuje, dlatego urządzenia to szacowane „urządzenia-dni", nigdy „unikalni użytkownicy".
Zwolnienie ze zgody, sformułowane prawnie
Zgodnie z naszą samooceną Observer spełnia kryteria ustanowione przez CNIL i może zostać wdrożony bez pytania użytkowników o zgodę, przy poprawnej konfiguracji.
Samoocena wg wzorca CNIL — szablon, który dostarczamy do Twojej polityki prywatnościSelf-hosted · bez cookies · bez wymaganej zgody przy poprawnej konfiguracji (samoocena CNIL) · sesje są pseudonimowe · statystyki zagregowane są anonimowe.
„Zgodny z RODO", „certyfikowany", „zatwierdzony przez CNIL", „anonimowi użytkownicy", „w 100% anonimowy". Pokazujemy architekturę i oddajemy testy — Ty weryfikujesz, Ty decydujesz.
Ekran Privacy Posture per witryna: dokładnie co jest zbierane, gdzie przechowywane, jak długo, w którym poziomie i na jakiej podstawie prawnej — plus żywy strumień audytu.
Per witryna, wymuszane serwerowo
Poziomy wymusza collector, nie snippet — tracker nie może sam się „podnieść". DNT i GPC wyciszają SDK bezwarunkowo na każdym poziomie.
| Poziom | Pamięć przeglądarki | Co odblokowuje | Zgoda | Model tożsamości |
|---|---|---|---|---|
| T0 — Strict (domyślny) | Nic — bez zapisu i odczytu | Wszystko: sesje, mapy ciepła, frustracja, CWV, lejki | Bez banera | Dzienny rotowany HMAC |
| T1 — Session | Tylko sessionStorage (per karta) | Stabilne sesje między odświeżeniami; pewne lejki i ścieżki | Udokumentowana podstawa prawna | Per-karta sid + HMAC |
| T2 — Consented | + localStorage visitor id (13 miesięcy, nigdy nie przedłużany) | Ciągłość między wizytami; nagrywanie sesji (samplowane, maskowane) | Jawny opt-in | Visitor vid + HMAC |
| T3 — Disabled | Nic | Nic — SDK inert, collector odrzuca | Kill-switch | Brak |
Visitor id w T2 wygasa 13 miesięcy po utworzeniu. Wizyty go nie przedłużają — bo tym samym straciłby sens; wytyczne CNIL są tu jednoznaczne.
Przed zgodą kolekcja T2 to zero beaconów, zero zapisu, zero cookies — potwierdza test bramy zgody w przeglądarkowej suicie.
Nagrywanie w T2 stosuje maskAllInputs w przeglądarce, respektuje obs-mask / obs-block / obs-ignore i wyłącza przechwytywanie canvas oraz fontów.
Strona, którą pokazujesz prawnikowi
Każda witryna w rejestrze ma żywy widok postawy: poziom, zbierane pola, stan retencji, wymóg zgody, referencję podstawy prawnej i niedawne wpisy audytu. Nie PDF od działu sprzedaży — prawdziwa konfiguracja, czytana z control plane, dla konkretnej witryny, teraz.
Skieruj na to swojego IOD. Odpowiada na jedyne trzy pytania, które się liczą: co zbieramy, dla kogo i jak długo.
Odmowy
Skreślenie tego z roadmapy jest łatwe. Observer nigdy tego nie miał na liście — te funkcje przeczą architekturze, a audyt statyczny trzyma je z dala od SDK.
Żadnego globalnego grafu odwiedzających. Przestrzenie nazw per witryna czynią korelację między Twoimi własnościami niemożliwą — nawet dla Ciebie.
Żadnych sond canvas, WebGL, audio ani fontów. Mapa ciepła ruchu myszy też jest celowo wykluczona — profilowanie ruchu to najmniej prywatny typ heatmapy.
Żadnych eksportów publiczności, pixel synców ani dopasowań kampanii. Funkcja wymagająca wysyłania danych odwiedzających na zewnątrz nie może w Observerze istnieć.
Analityka formularzy liczy zdarzenia focus i fill. Etykiety pól są haszowane; wartości nie są nigdy czytane, wysyłane ani przechowywane.
Nie w bazie zdarzeń, nie w logach, nie w eksportach. Niezmiennik CI wywala build, gdyby collector miał kiedykolwiek serializować IP w formie trwałej.
Surowe zdarzenia wygasają po 24 godzinach na poziomie schemy. Trwają 25 miesięcy k-anonimowych rollupów — zagregowane, nie ślady zachowań.
Uczciwe granice — część historii zaufania
Publikujemy to, bo każde narzędzie analityczne ma granice, a większość je ukrywa. Nasze wynikają wprost z architektury — i uważamy, że ten trade jest wart ceny.
FAQ
Nie — w trybie domyślnym (T0) Observer niczego nie zapisuje na urządzeniu odwiedzającego i niczego z niego nie odczytuje. Potwierdza to samoocena w duchu CNIL. Jeśli włączysz T1 lub T2 (pamięć sesji albo visitor id), potrzebujesz udokumentowanej podstawy prawnej albo jawnej zgody.
Observer liczy anonimową tożsamość po stronie serwera z tego, co przeglądarka i tak wysyła (IP + user agent), haszowanego kluczem rotowanym o północy UTC. Każdy dzień ma świeży klucz, więc tożsamości z wczoraj nie da się połączyć z dzisiejszą. To nie cookie, nie fingerprinting i nie jest trwałe.
Nie. Observer pokazuje zanonimizowane sesje — pseudonimy „urządzenie-dzień". Osie czasu pokazują, co zrobiono, nigdy kto. Nie ma profili użytkowników, łączenia tożsamości między witrynami ani trwałego trackingu w trybie domyślnym.
Tak. Observer działa na Twoim sprzęcie — ClickHouse, collector, API i dashboard, w Dockerze albo na gołym Node.js. Żadnego zewnętrznego endpointu, żadnego podprocesora, żadne dane nie opuszczają Twojej infrastruktury.
To liczniki ruchu. Observer dodaje całą warstwę zachowań — osie czasu sesji z rozgałęzieniami na karty, mapy ciepła, wykrywanie frustracji, drop-off formularzy, CWV RUM — plus architekturę prywatności, której nikt z nich nie ma: k-anonimowość, dziennik audytu, stronę Privacy Posture i rotowane przestrzenie nazw tożsamości.
Observer jest projektowany pod zgodność z RODO przez architekturę — minimalizacja danych, ograniczenie celu, ograniczenie retencji. W trybie domyślnym żadne dane osobowe nie są przechowywane. Dostarczamy sformułowania samooceny CNIL do Twojej polityki prywatności. Nigdy nie mówimy „certyfikowany przez RODO" — pokazujemy architekturę i pozwalamy zweryfikować.
Observer jest self-hosted. Jedynym kosztem jest serwer — mniej więcej 60–90 €/mies. przy około 60 milionach zdarzeń miesięcznie. Żadnych opłat za ruch, witryny, stanowiska czy funkcje. Konkurencja za ten sam wolumen bierze 1 200–2 950+ $/mies.
Bo poziom wymusza collector, serwerowo. Zmodyfikowany albo źle skonfigurowany snippet nie włączy zapisu, nie przedłuży retencji ani nie uruchomi nagrywania — collector odrzuca zdarzenia niedozwolone dla poziomu witryny.
Tak — oraz Global Privacy Control i jawne observer('optOut'). Wszystkie trzy wyciszają SDK bezwarunkowo: zero beaconów, zero zapisu. Potwierdzają to zautomatyzowane testy przeglądarkowe.
Przeglądarkowa suita prywatności — cookies, zapis, scrubbing PII, brama zgody, wyciszenie GPC — uruchamiamy na Twoim wdrożeniu podczas onboardingu, a raport trafia do Twojego zespołu DevOps.