{"id":13112,"date":"2026-09-20T18:25:00","date_gmt":"2026-09-20T16:25:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=13112"},"modified":"2026-09-09T13:22:05","modified_gmt":"2026-09-09T11:22:05","slug":"tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/pl\/data-privacy-pl\/tutorials-pl-data-privacy-pl\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\/","title":{"rendered":"Tutorial: Znajdowanie danych osobowych w \u015bcie\u017ckach stron GA4 i ich usuwanie"},"content":{"rendered":"<p>Dane osobowe nie trafiaj\u0105 do us\u0142ugi analitycznej wskutek decyzji. Trafiaj\u0105 tam, bo formularz wysy\u0142a metod\u0105 GET zamiast POST, bo odno\u015bnik do resetu has\u0142a niesie adres albo bo pole wyszukiwania wpisuje wpisan\u0105 tre\u015b\u0107 do adresu.<\/p>\n<p>Nic w interfejsie tego nie zg\u0142asza. \u015acie\u017cka strony to zwyk\u0142y wymiar, a \u015bcie\u017cka z adresem pocztowym wygl\u0105da na li\u015bcie czterech tysi\u0119cy jak ka\u017cda inna. Znalezienie jej kosztuje jedno zapytanie i sze\u015b\u0107 wzorc\u00f3w; pozbycie si\u0119 jej kosztuje dwa osobne dzia\u0142ania, bo wyciek i zapisany zas\u00f3b to r\u00f3\u017cne zadania.<\/p>\n<figure class=\"lw-diagram\">\n<img src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/pii-im-bestand-pl.png\" width=\"1120\" height=\"580\" decoding=\"async\" loading=\"lazy\"\n     alt=\"Adres z adresem pocztowym w drodze z przegl\u0105darki przez tag i strumie\u0144 danych do us\u0142ugi i raportu, z zaznaczonymi dwoma miejscami redakcji, obok tabela znalezisk\"><figcaption>Dwie z pi\u0119ciu stacji mog\u0105 jeszcze usun\u0105\u0107 warto\u015b\u0107. Od czwartej jest ju\u017c zapisana, a zmienia to wy\u0142\u0105cznie wniosek o usuni\u0119cie.<\/figcaption><\/figure>\n<h2>Co w \u015bcie\u017cce strony jest dan\u0105 osobow\u0105<\/h2>\n<p>Przypadki oczywiste to adresy pocztowe i numery telefon\u00f3w. Mniej oczywiste sprawiaj\u0105 wi\u0119cej k\u0142opotu, bo w og\u00f3le nie zostaj\u0105 rozpoznane jako osobowe.<\/p>\n<p>Numer zam\u00f3wienia jest dan\u0105 osobow\u0105, gdy tylko da si\u0119 go rozwi\u0105za\u0107 do osoby w innym systemie &#8211; a zwykle si\u0119 da. Token do resetu has\u0142a nie jest dan\u0105 osobow\u0105, lecz tajemnic\u0105, a tajemnica w raporcie analitycznym stoi otworem dla ka\u017cdego z prawem odczytu us\u0142ugi. Wyra\u017cenie wyszukiwane jest dan\u0105 osobow\u0105, gdy tylko ludzie wpisuj\u0105 w pole w\u0142asne nazwisko albo adres &#8211; w sklepie z wyszukiwaniem zam\u00f3wie\u0144 codziennie.<\/p>\n<p>Wszystkie \u0142\u0105czy droga: przychodz\u0105 adresem URL, a adres dociera do GA4 w ca\u0142o\u015bci. Wszystko za znakiem zapytania staje si\u0119 cz\u0119\u015bci\u0105 wymiaru strony, a fragment za krzy\u017cykiem jest jedyn\u0105 cz\u0119\u015bci\u0105, kt\u00f3ra nigdy nie opuszcza przegl\u0105darki.<\/p>\n<h2>Pobranie \u015bcie\u017cek stron z us\u0142ugi<\/h2>\n<p>Data API zwraca te same wymiary co raporty, bez ich ogranicze\u0144 liczby wierszy. Jedno \u017c\u0105danie za d\u0142ugi okres przynosi wszystko, co kiedykolwiek zosta\u0142o zebrane.<\/p>\n<pre class=\"wp-block-kevinbatdorf-code-block-pro\"><code>curl -X POST \\\n  \"https:\/\/analyticsdata.googleapis.com\/v1beta\/properties\/123456789:runReport\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\/json\" \\\n  -d '{\n    \"dateRanges\":  [{ \"startDate\": \"395daysAgo\", \"endDate\": \"today\" }],\n    \"dimensions\":  [{ \"name\": \"pagePathPlusQueryString\" }],\n    \"metrics\":     [{ \"name\": \"screenPageViews\" }],\n    \"limit\": 100000,\n    \"orderBys\": [{ \"metric\": { \"metricName\": \"screenPageViews\" }, \"desc\": true }]\n  }'<\/code><\/pre>\n<p>O kompletno\u015bci wyniku rozstrzygaj\u0105 trzy szczeg\u00f3\u0142y. Wymiar musi by\u0107 tym z ci\u0105giem zapytania &#8211; sam <code>pagePath<\/code> odcina dok\u0142adnie t\u0119 cz\u0119\u015b\u0107, w kt\u00f3rej dane zwykle siedz\u0105. Okres powinien si\u0119ga\u0107 tak daleko wstecz, jak us\u0142uga przechowuje dane, bo wyciek naprawiony p\u00f3\u0142 roku temu nadal tkwi w zapisanych wierszach. A us\u0142uga z wieloma \u015bcie\u017ckami wymaga stronicowania: odpowied\u017a niesie liczb\u0119 wierszy, a wszystko poza limitem wymaga drugiego \u017c\u0105dania z przesuni\u0119ciem.<\/p>\n<p>S\u0142owo o przydziale. API rozlicza znaczniki na us\u0142ug\u0119 i dzie\u0144, a zapytanie za czterysta dni ze stoma tysi\u0105cami wierszy nie jest darmowe. Przeprowadza\u0107 je raz na kwarta\u0142 ma sens; przeprowadza\u0107 w p\u0119tli przy budowaniu zu\u017cywa dzienny przydzia\u0142 w jedno popo\u0142udnie.<\/p>\n<h2>Wzorce, kt\u00f3rych warto szuka\u0107<\/h2>\n<p>Sze\u015b\u0107 wzorc\u00f3w obejmuje niemal ka\u017cde znalezisko i nale\u017cy je stosowa\u0107 do postaci surowej oraz odkodowanej \u015bcie\u017cki &#8211; bo adres przychodzi r\u00f3wnie cz\u0119sto jako <code>%40<\/code> jak jako <code>@<\/code>.<\/p>\n<pre class=\"wp-block-kevinbatdorf-code-block-pro\"><code>import re, urllib.parse\n\nMUSTER = {\n    \"mail\":       re.compile(r\"[\\w.+-]+@[\\w-]+\\.[\\w.]{2,}\"),\n    \"mail_kod\":   re.compile(r\"[\\w.+-]+%40[\\w-]+\"),\n    \"telefon\":    re.compile(r\"(?:\\+|00)\\d{7,15}|\\b0\\d{8,13}\\b\"),\n    \"schluessel\": re.compile(r\"[?&](?:token|hash|auth|key|sig|pwd|password)=\", re.I),\n    \"namensfeld\": re.compile(r\"[?&](?:name|vorname|nachname|first|last|user)=\", re.I),\n    \"suche\":      re.compile(r\"[?&](?:q|s|search|query)=\", re.I),\n}\n\ndef pruefe(pfad):\n    formen = {pfad, urllib.parse.unquote(pfad)}\n    return {name for name, m in MUSTER.items() if any(m.search(f) for f in formen)}<\/code><\/pre>\n<p>Dwa ostatnie wymagaj\u0105 drugiego spojrzenia, zanim cokolwiek zostanie zg\u0142oszone. Parametr o nazwie <code>name<\/code> niesie cz\u0119sto nazw\u0119 produktu, a nie osob\u0119, a parametr wyszukiwania jest problemem tylko wtedy, gdy ludzie wpisuj\u0105 tam dane osobowe &#8211; rozstrzyga to przeczytanie dwudziestu prawdziwych warto\u015bci, a nie nazwa parametru.<\/p>\n<p>Wzorzec telefonu daje najwi\u0119cej fa\u0142szywych trafie\u0144 ze wszystkich: numery zam\u00f3wie\u0144, numery artyku\u0142\u00f3w i daty postaci 20260920 pasuj\u0105 do d\u0142ugiego ci\u0105gu cyfr. Ograniczenie go do parametr\u00f3w, w kt\u00f3rych wyst\u0119puje, zamiast do ca\u0142ej \u015bcie\u017cki, usuwa wi\u0119kszo\u015b\u0107 tego.<\/p>\n<h2>Redakcja na strumieniu zamiast w tagu<\/h2>\n<p>Gdy znaleziska s\u0105 znane, wyciek zamyka si\u0119 w najwcze\u015bniejszym opanowanym miejscu. GA4 oferuje to na samym strumieniu danych i obowi\u0105zuje to dla wszystkiego, co strumie\u0144 odbiera, niezale\u017cnie od tego, kt\u00f3ry tag wys\u0142a\u0142.<\/p>\n<p>Ustawienie siedzi w administracji przy strumieniu internetowym, w ustawieniach tagu, pod nazw\u0105 <strong>Redagowanie danych<\/strong>. Sk\u0142ada si\u0119 z dw\u00f3ch cz\u0119\u015bci: automatycznego usuwania wszystkiego, co wygl\u0105da jak adres pocztowy, oraz listy nazw parametr\u00f3w, kt\u00f3rych warto\u015bci zostaj\u0105 zast\u0105pione przed zapisem.<\/p>\n<pre class=\"wp-block-kevinbatdorf-code-block-pro\"><code>token, hash, auth, key, sig, pwd, password,\nemail, mail, e-mail, user, username,\nphone, tel, mobile,\nname, firstname, lastname<\/code><\/pre>\n<p>Ta lista nale\u017cy do tego samego miejsca co wyniki przebiegu i powinna by\u0107 uzupe\u0142niana, gdy tylko przebieg znajdzie nowy parametr. Redakcja dzia\u0142a dok\u0142adnie: parametr zapisany na jednej stronie inaczej &#8211; <code>e_mail<\/code> zamiast <code>email<\/code> &#8211; przechodzi nietkni\u0119ty.<\/p>\n<p>Dwie uwagi o umiejscowieniu wobec pozosta\u0142ych dr\u00f3g. Nadpisanie <code>page_location<\/code> w mened\u017cerze tag\u00f3w te\u017c dzia\u0142a i chwyta wcze\u015bniej, ale wy\u0142\u0105cznie dla trafie\u0144 tego jednego tagu; drugi tag albo wywo\u0142anie gtag wpisane na sta\u0142e w motyw je omija. Czyszczenie w kontenerze serwerowym jest drog\u0105 najmocniejsz\u0105 i jedyn\u0105 chroni\u0105c\u0105 tak\u017ce przekazanie do platform reklamowych &#8211; to osobna praca z w\u0142asnym artyku\u0142em. Ustawienie strumienia jest tym, kt\u00f3re kosztuje dziesi\u0119\u0107 minut i obejmuje wszystko.<\/p>\n<h2>Ju\u017c zapisany zas\u00f3b<\/h2>\n<p>Redakcja obowi\u0105zuje dla trafie\u0144 od tej chwili. Nie zmienia nic w wierszach le\u017c\u0105cych ju\u017c w us\u0142udze &#8211; a w\u0142a\u015bnie one licz\u0105 si\u0119 dla pytania o ochron\u0119 danych.<\/p>\n<p>Usuwa je wniosek o usuni\u0119cie danych, w administracji na poziomie us\u0142ugi. W\u0142a\u015bciwy typ kasuje wybrane parametry we wszystkich zdarzeniach, a adres strony jest jednym z tych parametr\u00f3w.<\/p>\n<p>Trzy w\u0142a\u015bciwo\u015bci tego trybu warto pozna\u0107 przed uruchomieniem. Ma okres oczekiwania liczony w dniach, w kt\u00f3rym da si\u0119 go wycofa\u0107 &#8211; to zamierzone i po\u017cyteczne. Raz uruchomiony, potrzebuje do oko\u0142o dw\u00f3ch miesi\u0119cy na pe\u0142ne zastosowanie. I jest nieodwracalny: wymiar strony z tego okresu przepada potem tak\u017ce dla \u015bcie\u017cek nieszkodliwych, je\u017celi wniosek obejmowa\u0142 ca\u0142y parametr.<\/p>\n<p>Czego wniosek nie dotyka, to eksport do BigQuery. Dane wyeksportowane przed usuni\u0119ciem le\u017c\u0105 w zbiorze, nad kt\u00f3rym us\u0142uga nie ma ju\u017c w\u0142adzy, i tam trzeba je usun\u0105\u0107 osobno &#8211; instrukcj\u0105 <code>DELETE<\/code> albo przez zbudowanie tabeli na nowo, za ten sam okres.<\/p>\n<pre class=\"wp-block-kevinbatdorf-code-block-pro\"><code>UPDATE `projekt.analytics_123456789.events_*`\nSET event_params = ARRAY(\n      SELECT AS STRUCT\n        p.key,\n        IF(p.key = 'page_location',\n           STRUCT(REGEXP_REPLACE(p.value.string_value,\n                  r'([?&](?:email|token|phone)=)[^&]*', r'\\1[entfernt]')\n                  AS string_value, p.value.int_value,\n                  p.value.float_value, p.value.double_value),\n           p.value) AS value\n      FROM UNNEST(event_params) AS p)\nWHERE _TABLE_SUFFIX BETWEEN '20260101' AND '20260920';<\/code><\/pre>\n<h2>Czego przebieg nie widzi<\/h2>\n<p>Trzy miejsca nios\u0105 ten sam rodzaj danych i w tym raporcie si\u0119 nie pojawiaj\u0105.<\/p>\n<p>Pierwszym s\u0105 parametry zdarze\u0144 poza adresem strony. Pomiar formularza wysy\u0142aj\u0105cy wpisan\u0105 warto\u015b\u0107 jako parametr odk\u0142ada j\u0105 do wymiaru niestandardowego, a powy\u017cszy przebieg nigdy tam nie zagl\u0105da. To samo zapytanie Data API z wymiarem niestandardowym zamiast \u015bcie\u017cki strony j\u0105 znajduje, i takie zapytanie warto wykona\u0107 raz dla ka\u017cdego zg\u0142oszonego wymiaru.<\/p>\n<p>Drugim jest pole identyfikatora u\u017cytkownika. Us\u0142uga maj\u0105ca odbiera\u0107 identyfikator u\u017cytkownika, a dostaj\u0105ca zamiast tego adres pocztowy, to naruszenie podr\u0119cznikowe i w raportach niewidoczne, bo w wi\u0119kszo\u015bci z nich pole to w og\u00f3le nie wyst\u0119puje. Sprawdzenie jest takie jak wsz\u0119dzie: obejrze\u0107 prawdziwe warto\u015bci, a nie nazw\u0119 pola.<\/p>\n<p>Trzecim jest wszystko, co dom ju\u017c opu\u015bci\u0142o. Je\u017celi trafienia sz\u0142y tak\u017ce do platformy reklamowej, redakcja w GA4 nie zmienia nic w kopii, kt\u00f3ra tam dotar\u0142a &#8211; a ta platforma ma w\u0142asn\u0105 drog\u0119 usuwania. List\u0119 odbiorc\u00f3w warto spisa\u0107 przed pierwszym wnioskiem o usuni\u0119cie, bo sam wniosek jej nie wytwarza.<\/p>\n<div class=\"lw-quellen\">\n<h2>\u0179r\u00f3d\u0142a<\/h2>\n<ul>\n<li><a href=\"https:\/\/developers.google.com\/analytics\/devguides\/collection\/ga4\" target=\"_blank\" rel=\"noopener noreferrer\">Google Analytics 4 developer guide<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Adres pocztowy w adresie URL dociera do us\u0142ugi, zanim ktokolwiek to zauwa\u017cy, a \u017caden raport tego nie sygnalizuje. Jedno zapytanie Data API wypisuje wszystkie \u015bcie\u017cki stron, sze\u015b\u0107 wzorc\u00f3w znajduje wycieki &#8211; a zapisany ju\u017c zas\u00f3b wymaga innego \u015brodka ni\u017c sam wyciek.<\/p>\n","protected":false},"author":1,"featured_media":13245,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[124],"tags":[92151,92247,92100,92412,92238],"class_list":["post-13112","post","type-post","status-publish","format-standard","hentry","category-tutorials-pl-data-privacy-pl","tag-prywatnosc-danych-pl-pl","tag-gdpr-pl","tag-google-analytics-4-pl","tag-pii-protection-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>Tutorial: Znajdowanie danych osobowych w \u015bcie\u017ckach stron GA4 i ich usuwanie - Lukas Wojcik - Blog<\/title>\n<meta name=\"description\" content=\"Wypisanie wszystkich \u015bcie\u017cek stron przez Data API, sprawdzenie ich pod k\u0105tem danych osobowych, redakcja na strumieniu i usuni\u0119cie zasobu.\" \/>\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\/data-privacy-pl\/tutorials-pl-data-privacy-pl\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tutorial: Znajdowanie danych osobowych w \u015bcie\u017ckach stron GA4 i ich usuwanie - Lukas Wojcik - Blog\" \/>\n<meta property=\"og:description\" content=\"Wypisanie wszystkich \u015bcie\u017cek stron przez Data API, sprawdzenie ich pod k\u0105tem danych osobowych, redakcja na strumieniu i usuni\u0119cie zasobu.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/data-privacy-pl\/tutorials-pl-data-privacy-pl\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-20T16:25:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/hero-13112-tutorial-znajdowanie-danych-osobowych-w-.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=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 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\\\/data-privacy-pl\\\/tutorials-pl-data-privacy-pl\\\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/data-privacy-pl\\\/tutorials-pl-data-privacy-pl\\\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Tutorial: Znajdowanie danych osobowych w \u015bcie\u017ckach stron GA4 i ich usuwanie\",\"datePublished\":\"2026-09-20T16:25:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/data-privacy-pl\\\/tutorials-pl-data-privacy-pl\\\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\\\/\"},\"wordCount\":1148,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/data-privacy-pl\\\/tutorials-pl-data-privacy-pl\\\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/hero-13112-tutorial-znajdowanie-danych-osobowych-w-.png\",\"keywords\":[\"Data Privacy\",\"GDPR\",\"Google Analytics 4\",\"PII Protection\",\"Tutorial\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/data-privacy-pl\\\/tutorials-pl-data-privacy-pl\\\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/data-privacy-pl\\\/tutorials-pl-data-privacy-pl\\\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/data-privacy-pl\\\/tutorials-pl-data-privacy-pl\\\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\\\/\",\"name\":\"Tutorial: Znajdowanie danych osobowych w \u015bcie\u017ckach stron GA4 i ich usuwanie - Lukas Wojcik - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/data-privacy-pl\\\/tutorials-pl-data-privacy-pl\\\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/data-privacy-pl\\\/tutorials-pl-data-privacy-pl\\\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/hero-13112-tutorial-znajdowanie-danych-osobowych-w-.png\",\"datePublished\":\"2026-09-20T16:25:00+00:00\",\"description\":\"Wypisanie wszystkich \u015bcie\u017cek stron przez Data API, sprawdzenie ich pod k\u0105tem danych osobowych, redakcja na strumieniu i usuni\u0119cie zasobu.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/data-privacy-pl\\\/tutorials-pl-data-privacy-pl\\\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/data-privacy-pl\\\/tutorials-pl-data-privacy-pl\\\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/data-privacy-pl\\\/tutorials-pl-data-privacy-pl\\\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/hero-13112-tutorial-znajdowanie-danych-osobowych-w-.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/hero-13112-tutorial-znajdowanie-danych-osobowych-w-.png\",\"width\":1200,\"height\":630,\"caption\":\"Tutorial: Znajdowanie danych osobowych w \u015bcie\u017ckach stron GA4 i ich usuwanie\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/data-privacy-pl\\\/tutorials-pl-data-privacy-pl\\\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorial: Znajdowanie danych osobowych w \u015bcie\u017ckach stron GA4 i ich usuwanie\"}]},{\"@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\":\"Lukas Wojcik\",\"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\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tutorial: Znajdowanie danych osobowych w \u015bcie\u017ckach stron GA4 i ich usuwanie - Lukas Wojcik - Blog","description":"Wypisanie wszystkich \u015bcie\u017cek stron przez Data API, sprawdzenie ich pod k\u0105tem danych osobowych, redakcja na strumieniu i usuni\u0119cie zasobu.","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\/data-privacy-pl\/tutorials-pl-data-privacy-pl\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\/","og_locale":"en_US","og_type":"article","og_title":"Tutorial: Znajdowanie danych osobowych w \u015bcie\u017ckach stron GA4 i ich usuwanie - Lukas Wojcik - Blog","og_description":"Wypisanie wszystkich \u015bcie\u017cek stron przez Data API, sprawdzenie ich pod k\u0105tem danych osobowych, redakcja na strumieniu i usuni\u0119cie zasobu.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/data-privacy-pl\/tutorials-pl-data-privacy-pl\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-09-20T16:25:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/hero-13112-tutorial-znajdowanie-danych-osobowych-w-.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/data-privacy-pl\/tutorials-pl-data-privacy-pl\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/data-privacy-pl\/tutorials-pl-data-privacy-pl\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Tutorial: Znajdowanie danych osobowych w \u015bcie\u017ckach stron GA4 i ich usuwanie","datePublished":"2026-09-20T16:25:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/data-privacy-pl\/tutorials-pl-data-privacy-pl\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\/"},"wordCount":1148,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/data-privacy-pl\/tutorials-pl-data-privacy-pl\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/hero-13112-tutorial-znajdowanie-danych-osobowych-w-.png","keywords":["Data Privacy","GDPR","Google Analytics 4","PII Protection","Tutorial"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/data-privacy-pl\/tutorials-pl-data-privacy-pl\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/data-privacy-pl\/tutorials-pl-data-privacy-pl\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\/","url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/data-privacy-pl\/tutorials-pl-data-privacy-pl\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\/","name":"Tutorial: Znajdowanie danych osobowych w \u015bcie\u017ckach stron GA4 i ich usuwanie - Lukas Wojcik - Blog","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/data-privacy-pl\/tutorials-pl-data-privacy-pl\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/data-privacy-pl\/tutorials-pl-data-privacy-pl\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/hero-13112-tutorial-znajdowanie-danych-osobowych-w-.png","datePublished":"2026-09-20T16:25:00+00:00","description":"Wypisanie wszystkich \u015bcie\u017cek stron przez Data API, sprawdzenie ich pod k\u0105tem danych osobowych, redakcja na strumieniu i usuni\u0119cie zasobu.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/data-privacy-pl\/tutorials-pl-data-privacy-pl\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/data-privacy-pl\/tutorials-pl-data-privacy-pl\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/data-privacy-pl\/tutorials-pl-data-privacy-pl\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/hero-13112-tutorial-znajdowanie-danych-osobowych-w-.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/hero-13112-tutorial-znajdowanie-danych-osobowych-w-.png","width":1200,"height":630,"caption":"Tutorial: Znajdowanie danych osobowych w \u015bcie\u017ckach stron GA4 i ich usuwanie"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/data-privacy-pl\/tutorials-pl-data-privacy-pl\/tutorial-znajdowanie-danych-osobowych-w-sciezkach-stron-ga4-i-ich-usuwanie\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Tutorial: Znajdowanie danych osobowych w \u015bcie\u017ckach stron GA4 i ich usuwanie"}]},{"@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":"Lukas Wojcik","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":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/13112","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=13112"}],"version-history":[{"count":1,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/13112\/revisions"}],"predecessor-version":[{"id":17265,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/13112\/revisions\/17265"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/13245"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=13112"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=13112"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=13112"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}