Wszystkie posty
tools

Analityka privacy-first: statystyki strony bez ciasteczek

Jak mierzyć ruch na stronie bez zgody na ciasteczka: Plausible, Umami, Matomo i własny first-party tracking. Porównanie narzędzi, implementacja krok po kroku i zgodność z RODO.

5 min czytaniaAktualizacja: 26 lipca 2026

Od kilku lat nie instaluję Google Analytics na nowych stronach bez konkretnej potrzeby. Powód nie jest ideologiczny – jest prawny i praktyczny. Po wyroku Schrems II i decyzjach europejskich organów nadzoru (w tym polskiego UODO) klasyczna analityka Google wymaga zgody na ciasteczka, umowy o transfer danych i bannera, który i tak zabiera 30-60% danych. Tymczasem istnieje cała kategoria narzędzi, które mierzą ruch bez ciasteczek, bez IP i bez zgody – i dają dane wystarczające do podejmowania decyzji. W tym poście pokazuję, jak je wdrożyć.

Problem: Google Analytics i ciasteczka

Klasyczny GA4 opiera się na ciasteczkach i identyfikatorach, które są danymi osobowymi w rozumieniu RODO. Konsekwencje prawne w UE po 2020 roku:

  • Transfer danych do USA bez gwarancji odpowiedniego poziomu ochrony (wyrok C-311/18 – Schrems II),
  • Konieczność zgody na ciasteczka analityczne (ePrivacy) → banner,
  • Rezygnacje ze zgody → luki w danych i zafałszowane statystyki,
  • Ryzyko kar UODO (precedensy w Austrii, Francji, Włoszech – kary dla stron używających GA bez zgody).

Do tego dochodzi problem praktyczny: dane są niekompletne. Użytkownicy odmawiają zgód, blokery reklam tną skrypty, a ruch z przeglądarek z ITP/Safari jest niedoszacowany. Im więcej osób chroni prywatność, tym gorzej działa model śledzący.

Czym jest analityka privacy-first

Zasady są proste i twarde:

  1. Zero ciasteczek – żadnych identyfikatorów, żadnych fingerprintingów, żadnego localStorage.
  2. Zero danych osobowych – adres IP jest anonimizowany albo w ogóle nie zbierany; brak e-maili, numerów, ID urządzeń.
  3. Agregacja zamiast śledzenia – liczysz zdarzenia, nie osoby. “1000 odwiedzin” to suma zdarzeń, nie 1000 zidenty- fikowanych użytkowników.
  4. First-party, kontekstowe dane – skąd przyszedł ruch, jaka strona, jaka przeglądarka, jaki kraj (na poziomie regionu) – wszystko, czego potrzebujesz do decyzji, i nic więcej.

Skutek prawny: takie przetwarzanie nie wymaga zgody (art. 6 ust. 1 lit. f RODO – prawnie uzasadniony interes), nie wymaga bannera ciasteczek i nie wymaga umowy powierzenia z transferem poza UE. Skutek praktyczny: 100% danych – każda odsłona, każde wejście, bez dziur po odmowach zgód.

Porównanie narzędzi

Narzędzie Model Koszt Self-hosted Język PL Źródła
Plausible SaaS od 9 USD/m ✅ (open-source) lightweight, ~1 KB
Umami Open-source darmowe ✅ (Node + DB) własny serwer
Matomo Open-source SaaS od 19 EUR/m ✅ (PHP + MySQL) pełny GA-klon
GoatCounter Open-source od 5 EUR/m częściowo minimalistyczne
Własny endpoint DIY ~0-100 PLN/rok pełna kontrola

Moja rekomendacja: Plausible dla klientów (zero utrzymania, czytelny dashboard, polski interfejs) i Umami self-hosted dla projektów, gdzie liczy się koszt (darmowe, ale trzymasz własny serwer z bazą). Matomo wybierają ci, którzy chcą pełnej funkcji heatmap i nagrań sesji – pamiętaj wtedy, że te funkcje znów wchodzą w dane osobowe.

Implementacja: snippet Plausible

Wdrożenie to jedna linia w <head> – Plausible automatycznie pobiera z domeny “prawdziwe” dane (kraj, urządzenie, źródło) bez ciasteczek:

<script defer data-domain="twojadomena.pl"
src="https://plausible.io/js/script.js"></script>

Dla statystyk skonfigurowanych z raportowaniem wydarzeń (outbound clicks, 404, cele) – wariant z funkcjami:

<script defer data-domain="twojadomena.pl"
src="https://plausible.io/js/script.file-downloads.hash.outbound-links.pageview-props.tagged-events.js"></script>

I rejestracja zdarzenia (np. klik w przycisk darowizny):

// śledzenie celu — bez ciasteczek, bez danych osobowych
plausible('Wplacono', { props: { kwota: '50' } });

Koniec. Zero bannera, zero zgód, zero konfiguracji po stronie przeglądarki. Jeśli chcesz trzymać wszystko u siebie, Umami daje analogiczny snippet wskazujący twój serwer:

<script defer src="https://analityka.twojadomena.pl/script.js"
data-website-id="xxxx-xxxx"></script>

Własny, first-party tracking: kiedy i jak

Jeśli zależy ci na pełnej kontroli i zerowych kosztach – własny endpoint to ~50 linii kodu. Minimalna wersja: beacon na zdarzenie pageview wysyłany z przeglądarki na twój serwer:

// strona: wyślij zdarzenie bez czekania na odpowiedź
navigator.sendBeacon('/api/analytics', new URLSearchParams({
path: location.pathname,
referrer: document.referrer.slice(0, 500),
ua: navigator.userAgent.slice(0, 300),
}));
// serwer (endpoint): zapisz zdarzenie w bazie, IP tylko do
// anonimizacji na poziomie kraju, potem usunięte

Anonimizacja adresu IP w praktyce: pobierz IP tylko po to, by odczytać kraj (GeoLite2), zapisz kraj, usuń IP. Wtedy nie przetwarzasz danych osobowych w rozumieniu RODO. Pamiętaj o ograniczeniach: navigator.sendBeacon to zwykle 64 KB payloadu na zdarzenie i brak gwarancji dostarczenia – dla statystyk wystarczające, dla krytycznych danych nie.

Co z RODO: checklista zgodności

  • Brak ciasteczek i identyfikatorów – brak obowiązku zgody (art. 6 ust. 1 lit. f RODO, uzasadniony interes)
  • IP anonimizowane lub niezbierane; brak danych osobowych w zdarzeniach (nie loguj query stringów z danymi!)
  • Umowa powierzenia (DPA) tylko jeśli narzędzie jest SaaS – sprawdź, gdzie są serwery: Plausible (UE), Matomo Cloud (UE)
  • Polityka prywatności opisuje narzędzie i cel przetwarzania
  • Retention: ustal i opisz okres przechowywania (np. 12 mies.)
  • Jeśli włączasz funkcje identyfikujące (heatmapy, nagrania, e-mail tracking) – znów potrzebujesz zgody

Co mierzysz i czego nie mierzysz

Analityka privacy-first daje wszystko, co potrzebne do decyzji: odwiedziny, unikalni (przybliżeni przez agregację), źródła ruchu, kraje, urządzenia, cele i konwersje. Nie daje: ścieżek pojedynczych użytkowników między wizytami, dokładnej liczby powracających (przybliżenie), profili behawioralnych ani retargetingu. Dla 95% stron – blogów, firm, sklepów – to właściwy kompromis. Dla reszty (mocno spersonalizowany e-commerce) dołóż zgodowy GA4 obok privacy-first – ale nie zamiast.

Co dalej

Chcesz wymienić Google Analytics na analitykę bez ciasteczek i bannera? Napisz do mnie – migracja z raportami i celami zajmuje 1-2 dni, koszt od 500 PLN.

Tagi:#analityka#prywatnosc#plausible#rodo#gdpr

Najczęściej zadawane pytania

Czy mogę używać Google Analytics bez zgody użytkowników?
Po wyrokach TSUE (Schrems II, C-252/21) i decyzjach europejskich organów nadzoru przekazywanie danych do USA bez odpowiednich zabezpieczeń narusza RODO. Google Analytics wymaga zgody na ciasteczka i umowy z gwarancjami transferu – w praktyce to banner i spadek danych o 30-60%. Analityka privacy-first działa bez zgody, bo nie identyfikuje użytkowników.
Czym różni się analityka privacy-first od zwykłej?
Nie używa ciasteczek, nie zbiera adresów IP i danych osobowych, agreguje statystyki zamiast śledzić pojedynczych użytkowników. Efekt: pełne dane (bez spadku po odmowie zgody), brak bannera cookies, brak zgód RODO dla analityki i ochrona prywatności użytkowników w duchu privacy by design.
Ile kosztuje analityka bez ciasteczek?
Plausible to 9 USD miesięcznie (od 10 tys. odsłon), Umami jest darmowe i open-source (self-hosted na VPS za ~5 USD/mies.), a Matomo Cloud od 19 EUR. Dla małych stron własny endpoint first-party to koszt rzędu 0-100 PLN rocznie. To ułamek kosztów zgód i bannera przy Google Analytics.

Powiązane posty

MAHAWIR IWANOWSKI · WROCŁAW

Przyszłość organizacji — budowana tam, gdzie psychologia spotyka inżynierię, renderowana w kodzie, dostarczana z intencją.

Przyszłość Organizacji w Kodzie

AI · Fullstack · Psychology

© 2026 Mahawir Iwanowski · Wszystkie prawa zastrzeżone.