zgoda na cookies dla Astro

Zgoda na cookies dla Astro,
jedna integracja

@cookiecrumbs/astro wstawia tag jako pierwszy element head każdej strony, w czasie budowania dla stron prerenderowanych i przy każdym żądaniu w SSR. Middleware wypełnia serwerowy czytnik cookie.

Co zmienia się w head strony Astro, gdy runtime jest pierwszy: nic nieniezbędnego nie uruchamia się, dopóki jego kategoria nie zostanie przyznana.

zasada

Czego prawo wymaga od strony w Astro

Wyspy Astro hydratują analitykę w chwili montowania. Bez warstwy zgody już pierwsze wyrenderowanie strony z treściami niesie tracker.

Zasada jest taka sama w całej UE i w Wielkiej Brytanii: bez zgody nie wolno zapisywać na urządzeniu odwiedzającego ani odczytywać z niego niczego poza tym, co ściśle niezbędne. To artykuł 5 ust. 3 dyrektywy ePrivacy, a zgoda musi spełniać definicję z RODO: dobrowolna, konkretna, świadoma i jednoznaczna, z odmową równie łatwą jak akceptacja. Wielka Brytania utrzymuje tę samą zasadę w PECR, z wąskimi wyjątkami dla statystyk niskiego ryzyka od 5 lutego 2026 r. Kalifornia i inne prawa stanowe USA działają odwrotnie: bez opt-in, ale z linkiem opt-out i obsługą sygnału Global Privacy Control.

Dla strony wynikają z tego trzy rzeczy. Skrypty analityczne, reklamowe i społecznościowe muszą poczekać na decyzję. Decyzję trzeba zapisać tak, aby dało się ją później pokazać, bo artykuł 7 ust. 1 przerzuca ciężar dowodu na Ciebie. A wycofanie zgody musi być równie łatwe jak jej udzielenie, co oznacza element na każdej stronie, który ponownie otwiera baner. Baner, który pokazuje dwa przyciski i mimo to ładuje Google Analytics, oblewa pierwszy test, i właśnie za to organy nadzoru nakładają kary, od decyzji CNIL wobec Google i SHEIN po kontrole organów holenderskiego i belgijskiego.

jak to działa

Jak działa zgoda w aplikacji Astro

Strony Astro to głównie statyczny HTML z wyspami interaktywności, i to dobra wiadomość dla zgody: runtime można zapisać do HTML w czasie budowania, jako pierwszy w head każdej strony, bez wyścigu z czymkolwiek. Integracja robi dokładnie to dla stron prerenderowanych i powtarza przy każdym żądaniu dla renderowanych po stronie serwera, więc strona hybrydowa zachowuje się wszędzie tak samo.

Wyspy to miejsce, gdzie chowają się trackery. GTM ładowany przez Partytown, wyspa analityki tylko po stronie klienta, osadzenie YouTube w komponencie client:visible: każde z nich albo dostaje kategorię na tagu script, albo sprawdza stan zgody przed montowaniem. Integracja dostarcza wspólne komponenty, a middleware udostępnia zgodę na Astro.locals, więc strona może po stronie serwera zdecydować, czy wyrenderować osadzenie, czy jego placeholder.

Strony z treściami mają zwykle setki podstron, a skan przechodzi je w każdym stanie zgody do budżetu Twojego planu. Wynik zasila deklarację cookies, którą możesz zamontować na stronie polityki prywatności przez CookieDeclaration i która aktualizuje się sama, gdy kolejny skan znajdzie coś nowego.

konfiguracja

Konfiguracja w Astro

Pięć kroków. CLI wykonuje większość z nich, a każdy to także jedno kliknięcie w panelu.

  1. Init z repozytorium

    Wykrywa Astro, łączy stronę, zapisuje konfigurację.

    npx cookiecrumbs login
    npx cookiecrumbs init
  2. Dodaj integrację

    Jedna linia w astro.config.mjs. Z auto: false sam umieszczasz <CookieCrumbs /> w layoucie.

    npm i @cookiecrumbs/astro
    
    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import cookiecrumbs from '@cookiecrumbs/astro';
    
    export default defineConfig({
      integrations: [cookiecrumbs({ site: 'pk_live_…', env: 'production' })],
    });
  3. Zablokuj to, co wymaga zgody

    Tagi wymagające zgody dostają type="text/plain" i kategorię. Wyspy ładujące trackery mogą sprawdzić stan zgody przed montowaniem.

    <script type="text/plain" data-cc-category="analytics"
            src="https://www.googletagmanager.com/gtag/js?id=G-XXXX"></script>
  4. Odczytaj to na serwerze, jeśli chcesz

    Middleware ustawia zgodę na locals, więc strona może całkowicie pominąć osadzenie dla odwiedzających, którzy odmówili.

    // src/pages/index.astro
    const { consent } = Astro.locals;
    const showVideo = consent?.isGranted('marketing');
  5. Skanuj, przypisz, opublikuj

    Skan przechodzi zbudowaną stronę w każdym stanie zgody. Przypisz raz, opublikuj.

    npx cookiecrumbs scan --wait
    npx cookiecrumbs push --env production

uwaga

Błędy, które widzimy w aplikacjach Astro

Każdy z nich pojawia się w pierwszym skanie jako tracker uruchomiony przed zgodą.

  • Ładowanie runtime przez PartytownRuntime potrzebuje głównego wątku i musi działać jako pierwszy. Partytown jest dla trackerów, nie dla tego, co je blokuje.
  • Wyspa YouTube lub Maps bez placeholderaIframe ustawia cookies przy ładowaniu. Wstrzymaj go kategorią i pokazuj placeholder, dopóki marketing nie zostanie przyznany.
  • View transitions ponownie odpalające analitykęOdsłona przy każdym przejściu nadal wymaga zgody. Sprawdź isGranted przed wysłaniem.
  • Tagowanie tylko layoutuStrony z własnymi slotami head omijają layout. Integracja obejmuje każdą stronę; ręcznie umieszczone tagi nie.
  • Brak linku do wycofania zgodyStrony statyczne zapominają o nim najczęściej. Wystarczy ManageCookiesLink w stopce.

przed publikacją

Lista kontrolna zgodności

Osiem punktów. Dwa ostatnie panel odhacza na podstawie prawdziwych danych.

  • Tag jest pierwszym skryptem w headWszystko powyżej może ustawić cookie, którego runtime nie cofnie.
  • Każdy skrypt analityczny, reklamowy i społecznościowy czeka na swoją kategorięAlbo type="text/plain" z kategorią, albo host jest w mapie blokowania ze skanu.
  • „Odrzuć wszystko” jest na pierwszej warstwieTen sam rozmiar i ta sama waga co „Akceptuj wszystko”. Żadnego „X” liczonego jako zgoda, żadnych zaznaczonych z góry pól.
  • Domyślne wartości Consent Mode są „denied”, zanim załaduje się GoogleSprawdź siedem sygnałów w Tag Assistant przy odmowie zgody.
  • Linki do impressum i polityki prywatności są ustawionePublikacja jest odrzucana, dopóki nie ma obu; stopka banera do nich prowadzi.
  • Na każdej stronie dostępny jest element do wycofania zgodyStały element lub link „Zarządzaj cookies” w stopce.
  • Pierwszy pełny skan został wykonany i każdy dostawca jest przypisanyWerdykt na stronie głównej mówi, z datą, co uruchomiło się przed zgodą.
  • Test instalacji zaliczonyŁaduje Twoją stronę jak odwiedzający i potwierdza, że baner uruchomił się przed jakimkolwiek trackerem.

co dostajesz

Co zawiera darmowy plan

Dwie domeny, 100 skanowanych podstron miesięcznie na domenę, wszystkie regulacje, CLI, SDK i serwer MCP.

Skaner, który czyta wyrenderowaną stronę

Każda strona, w każdym stanie zgody, w prawdziwej przeglądarce. Cookies, piksele, iframe’y i klucze storage, wraz ze stroną i skryptem, które je ustawiły. Skanowane ponownie według harmonogramu.

Deklaracja cookies pisze się sama na podstawie wyniku.

Baner, który najpierw blokuje

Tagi pozostają nieaktywne, dopóki ich kategoria nie zostanie przyznana. „Odrzuć wszystko” jest tak samo widoczne jak „Akceptuj wszystko”. Siedem układów, 25 języków, Consent Mode v2 i właściwa zasada dla każdego regionu.

21 kB, jeden plik, żadnych własnych żądań do firm trzecich.

Dowód, który możesz przekazać

Każdy wybór jest zapisywany ze znacznikiem czasu, wersją banera i skrótem pokazanych tekstów, powiązany łańcuchowo z poprzednim rekordem. Eksporty są podpisane. Hostowane we Frankfurcie.

Artykuł 7 ust. 1, w darmowym planie.

darmowy test

Sprawdź, co Twoja strona ładuje w tej chwili

HTML strony głównej porównany z bazą trackerów. Bez konta, nic nie jest zapisywane. Pełny skan w panelu robi to samo dla każdej strony, w prawdziwej przeglądarce.

pytania

Proste odpowiedzi

Czy działa ze stronami prerenderowanymi i renderowanymi po stronie serwera?
Z obiema. Integracja zapisuje tag w czasie budowania dla stron statycznych i przy każdym żądaniu dla SSR, zawsze jako pierwszy element head.
Czy mogę sam umieścić tag?
Tak. Ustaw auto: false i umieść komponent CookieCrumbs z @cookiecrumbs/astro/CookieCrumbs.astro w swoim layoucie.
Czy działa z Partytown?
Tak, dla trackerów. Sam runtime zgody działa w głównym wątku, jako pierwszy, a wartości domyślne Consent Mode istnieją, zanim worker załaduje GTM.
Jak skan radzi sobie z dużą stroną z treściami?
Skanuje do miesięcznego budżetu Twojego planu, 100 podstron miesięcznie na domenę w Free i 10 000 w Pro, w każdym stanie zgody, i powtarza skan według harmonogramu.
Czy mogę pokazać listę cookies na stronie?
Zamontuj CookieDeclaration na stronie polityki prywatności. Renderuje publiczną listę z ostatniego skanu w języku odwiedzającego.
Które adaptery są obsługiwane?
Każdy adapter, który generuje HTML: Node, Vercel, Netlify, Cloudflare. Integracja podpina się do wstrzykiwania head w Astro, nie do adaptera.

następny krok

Wdróż baner z następnym deployem

Dodaj stronę, uruchom npx cookiecrumbs init w repozytorium Astro, a dziennik zgód zaczyna rejestrować w UE.