{"id":458,"date":"2026-09-10T19:10:00","date_gmt":"2026-09-10T17:10:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/?p=458"},"modified":"2026-09-10T10:51:06","modified_gmt":"2026-09-10T08:51:06","slug":"wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\/","title":{"rendered":"Wzbogacanie plik\u00f3w cookie First-Party za pomoc\u0105 Cloudflare Workers"},"content":{"rendered":"\r\n<p class=\"wp-block-paragraph\">Nowoczesne mechanizmy ochrony prywatno\u015bci w przegl\u0105darkach internetowych, w szczeg\u00f3lno\u015bci Apple Safari Intelligent Tracking Prevention (ITP) oraz Mozilla Firefox Enhanced Tracking Protection (ETP), narzucaj\u0105 rygorystyczne limity czasowe dla trwa\u0142o\u015bci danych przechowywanych po stronie klienta. Ka\u017cdy plik cookie HTTP utworzony za pomoc\u0105 kodu JavaScript z wykorzystaniem interfejsu <code>document.cookie<\/code> jest automatycznie ograniczany do maksymalnego okresu wa\u017cno\u015bci wynosz\u0105cego 7 dni \u2013 lub redukowany do zaledwie 24 godzin, je\u015bli ruch pochodzi ze znanych parametr\u00f3w reklamowych lub domen przekierowuj\u0105cych.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ograniczenie to drastycznie obni\u017ca skuteczno\u015b\u0107 modeli atrybucji wielokana\u0142owej, analityki warto\u015bci klienta w czasie (LTV) oraz rozpoznawania powracaj\u0105cych u\u017cytkownik\u00f3w w Google Analytics 4 (GA4). Wdro\u017cenie serwera po\u015brednicz\u0105cego First-Party Cookie Enrichment za pomoc\u0105 us\u0142ugi Cloudflare Workers dzia\u0142aj\u0105cej na g\u0142\u00f3wnej domenie pozwala na przekszta\u0142cenie identyfikator\u00f3w przegl\u0105darkowych w bezpieczne nag\u0142\u00f3wki HTTP ustawiane przez serwer, co wyd\u0142u\u017ca czas \u017cycia plik\u00f3w cookie a\u017c do dw\u00f3ch pe\u0142nych lat (730 dni).<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">1. Mechanika dzia\u0142ania mechanizm\u00f3w Safari ITP oraz Firefox ETP<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Omini\u0119cie restrykcji czasowych przegl\u0105darek bez naruszania zasad pierwszej strony (First-Party) wymaga wykorzystania nag\u0142\u00f3wk\u00f3w odpowiedzi HTTP emitowanych bezpo\u015brednio przez autorytatywn\u0105 domen\u0119 g\u0142\u00f3wn\u0105. System restrykcji opiera si\u0119 na trzech zasadniczych regu\u0142ach:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>Limit po stronie klienta (7 dni \/ 24 godziny):<\/strong> Pliki cookie tworzone przez skrypty JavaScript (takie jak ciasteczka <code>_ga<\/code> oraz <code>_ga_XXXXXXXXXX<\/code> w GA4) s\u0105 bezwzgl\u0119dnie skracane przez silnik WebKit.<\/li>\r\n<li><strong>Wykrywanie maskowania CNAME (CNAME Cloaking):<\/strong> Zewn\u0119trzne punkty ko\u0144cowe \u015bledzenia mapowane za pomoc\u0105 prostych rekord\u00f3w DNS CNAME na subdomeny s\u0105 identyfikowane przez heurystyk\u0119 przegl\u0105darek i obj\u0119te identycznym 7-dniowym limitem usuwania.<\/li>\r\n<li><strong>Wy\u0142\u0105czenie dla kraw\u0119dzi domeny (Same-Site Edge):<\/strong> Pliki cookie generowane za pomoc\u0105 nag\u0142\u00f3wka HTTP <code>Set-Cookie<\/code> przez serwer dzia\u0142aj\u0105cy w obr\u0119bie tej samej domeny g\u0142\u00f3wnej e-commerce (np. poprzez \u015bcie\u017cki Cloudflare Workers, takie jak <code>www.example.com\/edge-cookie<\/code>) s\u0105 klasyfikowane jako pe\u0142noprawne dane serwerowe First-Party i pozostaj\u0105 zwolnione z restrykcji czasowych ITP.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<figure class=\"lw-diagram\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/cloudflare-worker-cookie-first-party-pl.png\" width=\"1120\" height=\"640\" alt=\"Trzy warstwy od przegl\u0105darki przez brzeg Cloudflare do origin, z r\u00f3\u017cnic\u0105 mi\u0119dzy cookie ustawionym po stronie klienta a na brzegu\">\n<figcaption>Decyduje warstwa, a nie domena: to samo cookie dostaje od przegl\u0105darki siedem dni, a od brzegu pe\u0142ny czas \u017cycia, bo Worker ustawia je w odpowiedzi HTTP.<\/figcaption>\n<\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">2. Konfiguracja po\u015brednika Cloudflare Worker krok po kroku<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Wdro\u017cenie systemu enrichmentu na kraw\u0119dzi sieci wymaga uruchomienia bezserwerowego skryptu, kt\u00f3ry przechwytuje \u017c\u0105dania przegl\u0105darki, odczytuje istniej\u0105ce identyfikatory analityczne i od\u015bwie\u017ca je za pomoc\u0105 nag\u0142\u00f3wk\u00f3w HTTP:<\/p>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li><strong>Inicjalizacja projektu Wrangler i Worker:<\/strong> Utworzenie nowego skryptu Worker przy u\u017cyciu interfejsu wiersza polece\u0144 Cloudflare Wrangler lub utworzenie puste us\u0142ugi bezpo\u015brednio w panelu administracyjnym Cloudflare Workers &amp; Pages.<\/li>\r\n<li><strong>Przypisanie trasy niestandardowej (Custom Route):<\/strong> Zdefiniowanie trasy w podkatalogu domeny g\u0142\u00f3wnej, pod kt\u00f3r\u0105 wykonywany b\u0119dzie skrypt (np. <code>https:\/\/www.example.com\/fp-cookie-enrichment*<\/code>).<\/li>\r\n<li><strong>Ekstrakcja ciasteczek i wstrzykiwanie nag\u0142\u00f3wka:<\/strong> Zaprogramowanie skryptu Worker tak, aby analizowa\u0142 nag\u0142\u00f3wki przychodz\u0105cych \u017c\u0105da\u0144 HTTP pod k\u0105tem obecno\u015bci ciasteczek <code>_ga<\/code>, aktualizowa\u0142 ich dat\u0119 wyga\u015bni\u0119cia i zwraca\u0142 nag\u0142\u00f3wek <code>Set-Cookie<\/code> z atrybutami <code>Secure<\/code>, <code>SameSite=Lax<\/code> oraz instrukcj\u0105 <code>Max-Age=63072000<\/code> (dwa lata).<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Produkcyjny skrypt w j\u0119zyku TypeScript dla Cloudflare Workers<\/h3>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code class=\"language-typescript\">export default {\n  async fetch(request: Request): Promise&lt;Response&gt; {\n    const url = new URL(request.url);\n\n    \/\/ Przetwarzanie wy\u0142\u0105cznie \u017c\u0105da\u0144 skierowanych do dedykowanego punktu ko\u0144cowego\n    if (url.pathname !== '\/fp-cookie-enrichment') {\n      return fetch(request);\n    }\n\n    const cookieHeader = request.headers.get('Cookie') || '';\n    const gaCookieMatch = cookieHeader.match(\/(?:^|;\\s*)_ga=([^;]*)\/);\n    \n    \/\/ Ekstrakcja obecnego identyfikatora klienta GA4 lub wygenerowanie warto\u015bci zast\u0119pczej\n    const gaClientId = gaCookieMatch ? gaCookieMatch[1] : 'GA1.1.' + Math.floor(Math.random() * 1e9) + '.' + Math.floor(Date.now() \/ 1000);\n\n    const response = new Response(JSON.stringify({ status: 'enriched', clientId: gaClientId }), {\n      status: 200,\n      headers: {\n        'Content-Type': 'application\/json',\n        'Access-Control-Allow-Origin': 'https:\/\/' + url.hostname,\n        'Access-Control-Allow-Credentials': 'true'\n      }\n    });\n\n    \/\/ Ustawienie nag\u0142\u00f3wka First-Party HTTP z dwuletnim okresem wa\u017cno\u015bci (730 dni = 63072000 sekund)\n    response.headers.append(\n      'Set-Cookie',\n      `_ga=${gaClientId}; Max-Age=63072000; Path=\/; Domain=${url.hostname}; Secure; SameSite=Lax`\n    );\n\n    return response;\n  }\n};<\/code><\/pre>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">3. Integracja z Google Analytics 4 oraz GTM krok po kroku<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Aby zagwarantowa\u0107, \u017ce Google Tag Manager (GTM) korzysta z identyfikatora od\u015bwie\u017conego przez serwer, bez nadpisywania go przez skrypty JavaScript po stronie klienta, nale\u017cy zaktualizowa\u0107 konfiguracj\u0119 kontenera \u015bledz\u0105cego:<\/p>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li><strong>Wywo\u0142anie asynchroniczne punktu ko\u0144cowego:<\/strong> W kodzie aplikacji frontendowej lub za pomoc\u0105 tagu Custom HTML w GTM uruchamianego przy inicjalizacji, nale\u017cy wywo\u0142a\u0107 asynchroniczne zapytanie <code>fetch()<\/code> do \u015bcie\u017cki <code>\/fp-cookie-enrichment<\/code> z uwzgl\u0119dnieniem po\u015bwiadcze\u0144 (<code>credentials: 'include'<\/code>).<\/li>\r\n<li><strong>Zablokowanie nadpisywania plik\u00f3w cookie:<\/strong> W tagu konfiguracyjnym GA4 (lub w Google Tag) nale\u017cy ustawi\u0107 parametr <code>cookie_update<\/code> na warto\u015b\u0107 <code>false<\/code>. Zapobiega to zast\u0119powaniu dwuletniego nag\u0142\u00f3wka serwerowego przez 7-dniowy znacznik czasu wygenerowany w przegl\u0105darce.<\/li>\r\n<li><strong>Przekierowanie do Server-Side GTM:<\/strong> W przypadku korzystania z kontenera Server-Side GTM (ssGTM), podpi\u0119cie niestandardowej nazwy hosta pod t\u0119 sam\u0105 stref\u0119 Cloudflare sprawia, \u017ce przychodz\u0105ce zdarzenia automatycznie dziedzicz\u0105 od\u015bwie\u017cony, dwuletni plik cookie First-Party.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">4. Podsumowanie i warto\u015b\u0107 architektoniczna<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Co da si\u0119 osi\u0105gn\u0105\u0107 dzi\u0119ki temu poradnikowi:<\/strong> Wdro\u017cenie bezserwerowego punktu po\u015brednicz\u0105cego w us\u0142udze Cloudflare Workers dzia\u0142aj\u0105cego w domenie g\u0142\u00f3wnej, kt\u00f3ry przechwytuje, modyfikuje i wyd\u0142u\u017ca wa\u017cno\u015b\u0107 plik\u00f3w cookie Google Analytics 4 oraz system\u00f3w marketingowych za pomoc\u0105 serwerowych nag\u0142\u00f3wk\u00f3w HTTP.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Wynikaj\u0105ca z tego warto\u015b\u0107:<\/strong> System analityczny staje si\u0119 ca\u0142kowicie odporny na 7-dniowe oraz 24-godzinne limity usuwania ciasteczek narzucane przez mechanizmy Safari ITP oraz Firefox ETP. Ci\u0105g\u0142o\u015b\u0107 sesji oraz identyfikacja powracaj\u0105cych u\u017cytkownik\u00f3w s\u0105 utrzymywane przez okres do dw\u00f3ch lat, co radykalnie poprawia dok\u0142adno\u015b\u0107 d\u0142ugoterminowych analiz \u015bcie\u017cek zakupowych, wielokana\u0142owych modeli atrybucji i oblicze\u0144 ROAS \u2013 bez konieczno\u015bci stosowania inwazyjnego fingerprintingu.<\/p>\r\n\n\n<div class=\"lw-quellen\">\n<h2>\u0179r\u00f3d\u0142a<\/h2>\n<ul>\n<li><a href=\"https:\/\/developers.cloudflare.com\/workers\/\" target=\"_blank\" rel=\"noopener noreferrer\">Cloudflare Workers documentation<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/tag-platform\/gtagjs\/configure\" target=\"_blank\" rel=\"noopener noreferrer\">Google tag: gtag.js configuration<\/a><\/li>\n<\/ul>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Techniczny przewodnik krok po kroku po wyd\u0142u\u017caniu wa\u017cno\u015bci plik\u00f3w cookie GA4 do dw\u00f3ch lat wbrew restrykcjom Safari ITP i Firefox ETP za pomoc\u0105 Cloudflare Workers.<\/p>\n","protected":false},"author":1,"featured_media":14018,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[117],"tags":[92172,92505,92166,92041,92100,92169,92044,92238],"class_list":["post-458","post","type-post","status-publish","format-standard","hentry","category-tutorials-pl","tag-cloudflare-pl","tag-cloudflare-workers-pl","tag-cookies-pl","tag-first-party-data-pl","tag-google-analytics-4-pl","tag-safari-itp-pl","tag-tracking-pl","tag-tutorial-pl"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Wzbogacanie plik\u00f3w cookie First-Party za pomoc\u0105 Cloudflare Workers - Lukas Wojcik - Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Wzbogacanie plik\u00f3w cookie First-Party za pomoc\u0105 Cloudflare Workers - Lukas Wojcik - Blog\" \/>\n<meta property=\"og:description\" content=\"Techniczny przewodnik krok po kroku po wyd\u0142u\u017caniu wa\u017cno\u015bci plik\u00f3w cookie GA4 do dw\u00f3ch lat wbrew restrykcjom Safari ITP i Firefox ETP za pomoc\u0105 Cloudflare Workers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-10T17:10:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-458-first-party-cookie-enrichment-cloudf-g.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"luky\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"luky\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\\\/\"},\"author\":{\"name\":\"luky\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Wzbogacanie plik\u00f3w cookie First-Party za pomoc\u0105 Cloudflare Workers\",\"datePublished\":\"2026-09-10T17:10:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\\\/\"},\"wordCount\":787,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-458-first-party-cookie-enrichment-cloudf-g.png\",\"keywords\":[\"Cloudflare\",\"Cloudflare Workers\",\"Cookies\",\"First-Party Data\",\"Google Analytics 4\",\"Safari ITP\",\"Tracking\",\"Tutorial\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\\\/\",\"name\":\"Wzbogacanie plik\u00f3w cookie First-Party za pomoc\u0105 Cloudflare Workers - Lukas Wojcik - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-458-first-party-cookie-enrichment-cloudf-g.png\",\"datePublished\":\"2026-09-10T17:10:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-458-first-party-cookie-enrichment-cloudf-g.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-458-first-party-cookie-enrichment-cloudf-g.png\",\"width\":1200,\"height\":630,\"caption\":\"Wzbogacanie plik\u00f3w cookie First-Party za pomoc\u0105 Cloudflare Workers\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Wzbogacanie plik\u00f3w cookie First-Party za pomoc\u0105 Cloudflare Workers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"luky\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"luky\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"],\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/author\\\/luky\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Wzbogacanie plik\u00f3w cookie First-Party za pomoc\u0105 Cloudflare Workers - Lukas Wojcik - Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\/","og_locale":"en_US","og_type":"article","og_title":"Wzbogacanie plik\u00f3w cookie First-Party za pomoc\u0105 Cloudflare Workers - Lukas Wojcik - Blog","og_description":"Techniczny przewodnik krok po kroku po wyd\u0142u\u017caniu wa\u017cno\u015bci plik\u00f3w cookie GA4 do dw\u00f3ch lat wbrew restrykcjom Safari ITP i Firefox ETP za pomoc\u0105 Cloudflare Workers.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-09-10T17:10:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-458-first-party-cookie-enrichment-cloudf-g.png","type":"image\/png"}],"author":"luky","twitter_card":"summary_large_image","twitter_misc":{"Written by":"luky","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\/"},"author":{"name":"luky","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Wzbogacanie plik\u00f3w cookie First-Party za pomoc\u0105 Cloudflare Workers","datePublished":"2026-09-10T17:10:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\/"},"wordCount":787,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-458-first-party-cookie-enrichment-cloudf-g.png","keywords":["Cloudflare","Cloudflare Workers","Cookies","First-Party Data","Google Analytics 4","Safari ITP","Tracking","Tutorial"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\/","url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\/","name":"Wzbogacanie plik\u00f3w cookie First-Party za pomoc\u0105 Cloudflare Workers - Lukas Wojcik - Blog","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-458-first-party-cookie-enrichment-cloudf-g.png","datePublished":"2026-09-10T17:10:00+00:00","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-458-first-party-cookie-enrichment-cloudf-g.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-458-first-party-cookie-enrichment-cloudf-g.png","width":1200,"height":630,"caption":"Wzbogacanie plik\u00f3w cookie First-Party za pomoc\u0105 Cloudflare Workers"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/wzbogacanie-plikow-cookie-first-party-za-pomoca-cloudflare-workers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Wzbogacanie plik\u00f3w cookie First-Party za pomoc\u0105 Cloudflare Workers"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"luky","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"luky"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"],"url":"https:\/\/www.lukaswojcik.com\/blog\/author\/luky\/"}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/458","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=458"}],"version-history":[{"count":5,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/458\/revisions"}],"predecessor-version":[{"id":17924,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/458\/revisions\/17924"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/14018"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=458"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=458"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}