LW IT Solutions
« Blog Overview /Digital Marketing / Dwa lata w żądaniu, siedem dni w...
This post in other languages:

Dwa lata w żądaniu, siedem dni w praktyce

Dwa lata w żądaniu, siedem dni w praktyce
Spis treści
  1. Trzy obcięcia
  2. Dlaczego rozstrzyga droga, a nie atrybut
  3. Co zmienia w tym CNAME
  4. Atrybuty, na których ciasteczko przepada
  5. Co z tego wynika dla pomiaru

Nagłówek ciasteczka to prośba, a nie polecenie. Max-Age=63072000 prosi o dwa lata, a to, co przeglądarka przyzna, zależy od czegoś, czego w nagłówku w ogóle nie ma: od tego, jak ciasteczko powstało. Ten sam wiersz daje raz dwa lata, a raz siedem dni, i nic w odpowiedzi nie mówi, który przypadek zachodzi.

Różnica sięga dalej niż porządek. Powracający odwiedzający powraca tylko tak długo, jak istnieje ciasteczko, które go rozpoznaje; gdy zniknie, liczy się jako nowy, a każde okno dłuższe niż życie ciasteczka liczy na danych, których już nie ma.

Oś czasu od zera do dwóch lat z żądanym czasem życia jako pełnym słupkiem i trzema obcięciami: siedem dni dla ciasteczek zapisanych z JavaScriptu w Safari, siedem dni dla ciasteczek z odpowiedzi przekierowanej przez CNAME oraz 400 dni w Chrome i Firefoksie
Ten sam nagłówek, trzy wyniki. To, który obowiązuje, rozstrzyga się, zanim nagłówek zostanie zapisany.

Trzy obcięcia

Safari skraca każde ciasteczko zapisane przez document.cookie do siedmiu dni. To reguła o największym skutku praktycznym, bo większość ciasteczek pomiarowych powstaje właśnie tak – przez tag działający w stronie.

Te same siedem dni Safari stosuje do ciasteczek przychodzących w odpowiedzi HTTP z hosta, który przez CNAME rozwiązuje się gdzie indziej. Chodzi o układ, w którym subdomena witryny wskazuje na dostawcę pomiarów; skutkiem jest to, że poprawnie ustawione ciasteczko własne traktowane jest jak obce.

Chrome i Firefox obcinają przy 400 dniach. Ta liczba rzadko boli – leży powyżej każdego rozsądnego okna pomiarowego – ale po cichu kończy dwuletnie ciasteczko, które tkwi w szablonie tagu od 2018 roku.

Dlaczego rozstrzyga droga, a nie atrybut

Dwa ciasteczka o identycznych atrybutach mogą mieć różny czas życia, a jedyną różnicą jest to, kto je zapisał. Ciasteczko ustawione przez skrypt w stronie zostaje skrócone; to samo ciasteczko w odpowiedzi własnego serwera nie.

Dlatego przeniesienie ciasteczka do odpowiedzi jest najskuteczniejszą pojedynczą zmianą: kosztuje jeden punkt końcowy na własnej domenie i stanowi różnicę między tygodniem rozpoznawania a rokiem. Tag wtedy ciasteczko czyta, zamiast je zapisywać.

Przenosiny mają drugi skutek wart wzmianki: ciasteczko zapisane w odpowiedzi może nieść HttpOnly, a ciasteczka z HttpOnly nie odczyta żaden skrypt strony – także żaden z tych, których nikt tam świadomie nie umieścił.

Co zmienia w tym CNAME

Subdomena wskazująca na dostawcę wygląda w pasku adresu na własną, a dla przeglądarki jest przezroczysta: łańcuch rozwiązywania leży otworem, a przeglądarka widzi, że host kończy się gdzie indziej. Właśnie tam zaczepia obrona.

Skutek warto zaplanować, zamiast go odkrywać: układ zbudowany po to, by uciec przed ograniczeniami dla podmiotów trzecich, dziedziczy w Safari obcięcie do siedmiu dni, a w zamian zyskuje subdomenę, której awaria zabiera ze sobą cały pomiar. Gdy punkt końcowy działa na własnej infrastrukturze, nie zachodzi ani jedno, ani drugie.

Atrybuty, na których ciasteczko przepada

Zapisane tak Co się dzieje
SameSite=None bez Secure Odrzucane wprost przez każdą bieżącą przeglądarkę – ciasteczko nigdy nie zostaje zapisane.
Zupełny brak SameSite Traktowane jak Lax, ciasteczka brakuje przy zapytaniach z obcych witryn.
__Host- z Domain Odrzucone: przedrostek zabrania Domain i wymaga Secure oraz Path=/.
Nazwa i wartość powyżej 4096 bajtów Odrzucane bez słowa – tak przestaje docierać rozrośnięty ciąg zgody.
Max-Age i Expires razem Wygrywa Max-Age. Expires jest tylko dla przeglądarek, których nikt już nie ma.

Wszystkie przepadają w ten sam sposób: odpowiedź jest w porządku, a ciasteczka po prostu potem nie ma. Jedyną wiarygodną kontrolą jest spojrzenie na to, co przeglądarka zapisała, a nie na to, co zostało wysłane.

Co z tego wynika dla pomiaru

Siedmiodniowe ciasteczko zamienia odwiedzającego wracającego po ośmiu dniach w nowego. W raporcie widać to jako udział powracających niższy w Safari niż wszędzie indziej i jako ścieżki konwersji krótsze niż cykl sprzedaży – nie dlatego, że podróż była krótka, lecz dlatego, że jej wcześniejsza część już do niej nie należy.

Tam, gdzie ciasteczka nie da się wydłużyć, uczciwą odpowiedzią jest skrócenie okna, a nie dalsze podawanie takiego, którego dane nie udźwigną. Trzydziestodniowe okno atrybucji nad siedmiodniowym ciasteczkiem opisuje okres, którego przeglądarka nie pamięta, a każda wyprowadzona z niego liczba dziedziczy tę lukę.

Lukas Wojcik

Lukas Wojcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Get in Touch

Briefly describe your project or inquiry for a tailored response. This site is protected by reCAPTCHA.

Napisanie komentarza

Adres e-mail nie jest publikowany. Pola obowiązkowe oznaczono gwiazdką.

ALL ARTICLES & CATEGORIES

CCTV

Śledź tę kategorię przez RSS

Cloud & AI

Śledź tę kategorię przez RSS

Data Privacy

Śledź tę kategorię przez RSS

Digital Analytics

Wszystkie artykuły w tej kategorii (33) Śledź tę kategorię przez RSS

Digital Marketing

Wszystkie artykuły w tej kategorii (21) Śledź tę kategorię przez RSS

IT & Networks

Wszystkie artykuły w tej kategorii (11) Śledź tę kategorię przez RSS

Raspberry Pi

Śledź tę kategorię przez RSS

Smart Home

Śledź tę kategorię przez RSS

Tworzenie stron internetowych

Śledź tę kategorię przez RSS

Wtyczki i triki WordPress

Śledź tę kategorię przez RSS