{"id":9403,"date":"2026-08-12T20:00:00","date_gmt":"2026-08-12T18:00:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=9403"},"modified":"2026-08-12T20:00:00","modified_gmt":"2026-08-12T18:00:00","slug":"dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\/","title":{"rendered":"Dwie czerwcowe zmiany w analityce bez komunikatu o b\u0142\u0119dzie"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Dwie zmiany w stosie analitycznym Google wesz\u0142y w \u017cycie w czerwcu 2026 roku. Obie s\u0105 udokumentowane, obie obowi\u0105zuj\u0105 na dzie\u0144 10.08.2026 i \u017cadna nie daje o sobie zna\u0107 w trakcie dzia\u0142ania pipeline&#8217;u. Pierwsza zaw\u0119\u017ca to, co BigQuery Data Transfer Service pobiera podczas backfillu. Druga zaw\u0119\u017ca to, czym w rzeczywisto\u015bci steruje ustawienie Google Signals w panelu administracyjnym Analytics. \u0141\u0105czy je nie tematyka, lecz spos\u00f3b pojawienia si\u0119: brak nieudanego zadania, brak wyj\u0105tku w logu, brak wpisu w dashboardzie monitoringu. Pierwsza ujawnia si\u0119 w momencie uruchomienia backfillu. Druga wychodzi na jaw wtedy, gdy kto\u015b zauwa\u017cy, \u017ce prze\u0142\u0105cznik nie wywo\u0142uje ju\u017c efektu, kt\u00f3ry wywo\u0142ywa\u0142 wcze\u015bniej.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Dwie zmiany, kt\u00f3re wesz\u0142y w \u017cycie w czerwcu bez komunikatu o b\u0142\u0119dzie<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Wi\u0119kszo\u015b\u0107 zmian w stosie danych daje o sobie zna\u0107. Zmienia si\u0119 schemat i zapytanie ko\u0144czy si\u0119 b\u0142\u0119dem. Endpoint zostaje wycofany, a klient otrzymuje kod statusu. Limit zostaje zaostrzony i zadanie si\u0119 zatrzymuje. Takie zmiany s\u0105 g\u0142o\u015bne, a w\u0142a\u015bnie ta g\u0142o\u015bno\u015b\u0107 sprawia, \u017ce ich obs\u0142uga jest tania: wychwytuje je monitoring, kt\u00f3ry ju\u017c istnieje, i kto\u015b czyta komunikat.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dwie czerwcowe zmiany nale\u017c\u0105 do innej kategorii. W obu przypadkach system dzia\u0142a dalej. Zadania ko\u0144cz\u0105 si\u0119 powodzeniem, ustawienia nadal mo\u017cna prze\u0142\u0105cza\u0107, dashboardy nadal si\u0119 renderuj\u0105. Zmiana ujawnia si\u0119 wy\u0142\u0105cznie w tre\u015bci danych albo w znaczeniu warto\u015bci konfiguracyjnej, a \u017cadne z tych dwojga nie jest obj\u0119te typowym alertowaniem.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>BigQuery Data Transfer Service:<\/strong> od 01.06.2026 konektory dla Google Ads, Search Ads 360 i Google Analytics 4 nie zasilaj\u0105 ju\u017c przebieg\u00f3w backfill danymi starszymi ni\u017c 37 miesi\u0119cy. Dokumentacja podaje, \u017ce takie przebiegi zwracaj\u0105 niekompletne lub puste wyniki i mog\u0105 nadpisa\u0107 istniej\u0105c\u0105 kompletn\u0105 histori\u0119.<\/li>\n<li><strong>Google Signals:<\/strong> od 15.06.2026 ustawienie Google Signals w panelu administracyjnym Analytics oraz Google Signals API steruj\u0105 wy\u0142\u0105cznie powi\u0105zaniem danych Analytics z informacjami od zalogowanych u\u017cytkownik\u00f3w na potrzeby raportowania behawioralnego. Kontrola nad samymi danymi le\u017cy po stronie Consent Mode, konkretnie po stronie parametru <code>ad_storage<\/code>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Dalsza cz\u0119\u015b\u0107 artyku\u0142u traktuje je jako dwa przypadki tego samego problemu operacyjnego: udokumentowanej zmiany, kt\u00f3rej skutek staje si\u0119 widoczny dopiero po celowym sprawdzeniu. Rozdzia\u0142y 2 do 4 dotycz\u0105 limitu transferu oraz zabezpieczenia, kt\u00f3re mo\u017cna umie\u015bci\u0107 przed backfillem. Rozdzia\u0142y 5 i 6 dotycz\u0105 zmiany w Signals oraz inwentaryzacji utrwalaj\u0105cej stan bie\u017c\u0105cy, zanim oka\u017ce si\u0119 potrzebny.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Granica 37 miesi\u0119cy w BigQuery Data Transfer Service<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Wpis pojawi\u0142 si\u0119 w notatkach o wydaniu BigQuery 06.05.2026 i wszed\u0142 w \u017cycie 01.06.2026. Dotyczy trzech konektor\u00f3w BigQuery Data Transfer Service: Google Ads, Search Ads 360 oraz Google Analytics 4. Przebiegi backfill na tych konektorach nie s\u0105 ju\u017c zasilane danymi starszymi ni\u017c 37 miesi\u0119cy. Jako pow\u00f3d podano zmian\u0119 regu\u0142 retencji po stronie Google Ads.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dla utrzymania hurtowni zbudowanej na tych transferach znaczenie maj\u0105 dwie granice tej zmiany. Dane ju\u017c przeniesione pozostaj\u0105 nietkni\u0119te \u2014 dop\u00f3ki nie przejdzie po nich backfill. 37 miesi\u0119cy to okno przesuwne, a nie sta\u0142a data graniczna, wi\u0119c zakres, kt\u00f3ry w czerwcu mie\u015bci\u0142 si\u0119 jeszcze w granicy, wraz z up\u0142ywem miesi\u0119cy wychodzi poza ni\u0105. Definicja backfillu zapisana w runbooku rok temu i pozostawiona bez zmian w pewnym momencie przekroczy zatem granic\u0119, cho\u0107 w samej definicji nic si\u0119 nie zmieni.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kilku szczeg\u00f3\u0142\u00f3w dokumentacja nie obejmuje i nie nale\u017cy ich zak\u0142ada\u0107. Nie jest udokumentowane, jaki kod b\u0142\u0119du lub komunikat \u2014 o ile w og\u00f3le jaki\u015b \u2014 towarzyszy takiemu przebiegowi. Nie jest udokumentowane, czy konsola Cloud pokazuje ostrze\u017cenie przy wprowadzeniu zakresu wykraczaj\u0105cego poza granic\u0119. Nie jest udokumentowane, czy operacj\u0119 da si\u0119 p\u00f3\u017aniej cofn\u0105\u0107. Zabezpieczenia nie da si\u0119 wi\u0119c oprze\u0107 na sygnale z us\u0142ugi; musi opiera\u0107 si\u0119 na zakresie, kt\u00f3ry wchodzi, i na wierszach, kt\u00f3re wychodz\u0105.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Dlaczego backfill mo\u017ce zast\u0105pi\u0107 kompletn\u0105 histori\u0119<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Istot\u0105 tej zmiany nie jest sama granica. Limit zasi\u0119gu wstecz konektora by\u0142by niedogodno\u015bci\u0105 z oczywistym obej\u015bciem: zachowaniem archiwum, kt\u00f3re ju\u017c istnieje. Istot\u0105 jest druga po\u0142owa udokumentowanego zachowania \u2014 przebieg zwracaj\u0105cy niekompletne lub puste wyniki mo\u017ce nadpisa\u0107 histori\u0119, kt\u00f3ra by\u0142a kompletna.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Prowadz\u0105ca do tego sekwencja jest ca\u0142kiem zwyczajna. Hurtownia przechowuje cztery lata danych z transferu. P\u00f3\u017ana korekta, zmiana schematu albo podejrzenie luki sk\u0142aniaj\u0105 do ponownego uruchomienia dla starszego okna. Backfill zostaje zaplanowany z zakresem dat si\u0119gaj\u0105cym \u2014 w ca\u0142o\u015bci lub cz\u0119\u015bciowo \u2014 poza 37 miesi\u0119cy. Przebieg ko\u0144czy si\u0119 powodzeniem. Partycje w obr\u0119bie okna zostaj\u0105 nadpisane tym, co dostarczy\u0142 konektor, a to, co konektor dostarczy\u0142 dla cz\u0119\u015bci wykraczaj\u0105cej poza granic\u0119, jest niekompletne lub puste. Nic w tym \u0142a\u0144cuchu nie wymaga b\u0142\u0119du w samym \u017c\u0105daniu; to samo \u017c\u0105danie zadzia\u0142a\u0142oby jeszcze w maju.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To w\u0142a\u015bnie odr\u00f3\u017cnia ponowne uruchomienie od pierwszego \u0142adowania. Pierwsze \u0142adowanie do pustego zakresu mo\u017ce wy\u0142\u0105cznie dodawa\u0107. Ponowne uruchomienie na istniej\u0105cym zakresie zast\u0119puje, a zast\u0105pienie jest bezpieczne tylko wtedy, gdy \u017ar\u00f3d\u0142o jest co najmniej tak kompletne jak cel. Od 1 czerwca to za\u0142o\u017cenie nie obowi\u0105zuje ju\u017c dla obj\u0119tych zmian\u0105 konektor\u00f3w poza granic\u0105 37 miesi\u0119cy, co zmienia rutynow\u0105 operacj\u0119 w tak\u0105, do kt\u00f3rej trzeba dopi\u0105\u0107 warunek wst\u0119pny.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Poniewa\u017c dokumentacja nie opisuje \u015bcie\u017cki cofni\u0119cia, praktyczna konsekwencja jest taka, \u017ce sprawdzenie musi nast\u0105pi\u0107 przed przebiegiem, a kopia musi istnie\u0107 przed przebiegiem. Odzyskanie danych po fakcie zale\u017cy wy\u0142\u0105cznie od tego, co zachowa\u0142a sama hurtownia.<\/p>\n\n\n\n<figure class=\"lw-diagram\">\n<img src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/hand-backfill-pl.png\" width=\"1120\" height=\"700\" decoding=\"async\" loading=\"lazy\"\n     alt=\"Ta sama tabela docelowa BigQuery przed i po backfillu si\u0119gaj\u0105cym poza granic\u0119 37 miesi\u0119cy, gdzie starszy odcinek zmienia si\u0119 z pe\u0142nego na pusty\">\n<figcaption>Granica nie blokuje uruchomienia, lecz zmienia to, co zostaje zapisane. Wszystko na lewo od niej wraca niepe\u0142ne lub puste \u2014 i trafia do tych samych wierszy, w kt\u00f3rych wcze\u015bniej by\u0142a pe\u0142na historia.<\/figcaption>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">4. Zabezpieczenie przed przebiegiem: sprawdzenie granicy, spis wierszy, kopia<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Zabezpieczenie sk\u0142ada si\u0119 z trzech cz\u0119\u015bci, a ka\u017cda jest na tyle drobna, \u017ce mie\u015bci si\u0119 przed istniej\u0105cym krokiem backfillu. Wszystkie zapisane poni\u017cej wielkimi literami identyfikatory s\u0105 symbolami zast\u0119pczymi dla projektu, zbioru danych, tabeli i kolumny daty w hurtowni, kt\u00f3rej dotyczy przebieg; nazwy kolumn nie s\u0105 narzucone przez us\u0142ug\u0119 i odpowiadaj\u0105 temu, czego ju\u017c u\u017cywa tabela docelowa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pierwsza cz\u0119\u015b\u0107 por\u00f3wnuje \u017c\u0105dany zakres z granic\u0105 przesuwn\u0105. Odpowiada na jedno pytanie \u2014 czy jakakolwiek cz\u0119\u015b\u0107 tego okna wykracza poza 37 miesi\u0119cy \u2014 i odpowiada na nie na podstawie kalendarza, a nie odpowiedzi, kt\u00f3r\u0105 us\u0142uga mo\u017ce przes\u0142a\u0107 albo nie.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-sql\">-- PROJECT, DATASET, TARGET_TABLE i PARTITION_DATE to symbole zastepcze.\nDECLARE backfill_start DATE DEFAULT DATE '2022-01-01';\nDECLARE backfill_end   DATE DEFAULT DATE '2022-06-30';\nDECLARE earliest_supported DATE DEFAULT DATE_SUB(CURRENT_DATE(), INTERVAL 37 MONTH);\n\nSELECT\n  backfill_start,\n  backfill_end,\n  earliest_supported,\n  backfill_start &lt; earliest_supported AS starts_before_boundary,\n  backfill_end   &lt; earliest_supported AS ends_before_boundary,\n  DATE_DIFF(earliest_supported, backfill_start, DAY) AS days_outside;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">To samo por\u00f3wnanie nale\u017cy umie\u015bci\u0107 w warstwie wyzwalaj\u0105cej przebieg, tak aby okno spoza zakresu zatrzymywa\u0142o zadanie, zamiast jedynie wytwarza\u0107 wiersz w zbiorze wynik\u00f3w. Bramka w shellu utrzymuje decyzj\u0119 przy schedulerze, a nie wewn\u0105trz hurtowni.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-bash\">#!\/usr\/bin\/env bash\nset -euo pipefail\n\nSTART=\"2022-01-01\"\nEND=\"2022-06-30\"\nBOUNDARY=\"$(date -u -d '37 months ago' +%F)\"\n\nif [[ \"$START\" &lt; \"$BOUNDARY\" ]]; then\n  echo \"range starts $START, boundary is $BOUNDARY - backfill not started\" &gt;&amp;2\n  exit 1\nfi\n\n# osiagane tylko wtedy, gdy cale okno miesci sie w granicy\n# .\/run_backfill.sh \"$START\" \"$END\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Druga cz\u0119\u015b\u0107 to spis wierszy w podziale na dni, wykonany przed przebiegiem i ponownie po nim. Nie zale\u017cy od \u017cadnego komunikatu z us\u0142ugi i uwidacznia zast\u0105pienie pustymi wynikami jako liczb\u0119, a nie jako przypuszczenie. Zapisanie obu faz w tej samej tabeli audytowej ogranicza por\u00f3wnanie do jednego zapytania.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-sql\">CREATE TABLE IF NOT EXISTS `PROJECT.audit.transfer_row_census` (\n  captured_at TIMESTAMP,\n  phase STRING,\n  day DATE,\n  row_count INT64\n);\n\nINSERT INTO `PROJECT.audit.transfer_row_census`\nSELECT CURRENT_TIMESTAMP(), 'before', PARTITION_DATE, COUNT(*)\nFROM `PROJECT.DATASET.TARGET_TABLE`\nWHERE PARTITION_DATE BETWEEN DATE '2022-01-01' AND DATE '2022-06-30'\nGROUP BY PARTITION_DATE;\n\n-- po przebiegu to samo polecenie z phase = 'after', a nastepnie:\nSELECT\n  b.day,\n  b.row_count AS rows_before,\n  IFNULL(a.row_count, 0) AS rows_after,\n  IFNULL(a.row_count, 0) - b.row_count AS delta\nFROM `PROJECT.audit.transfer_row_census` b\nLEFT JOIN `PROJECT.audit.transfer_row_census` a\n  ON a.day = b.day AND a.phase = 'after'\nWHERE b.phase = 'before'\n  AND IFNULL(a.row_count, 0) &lt; b.row_count\nORDER BY delta;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Trzecia cz\u0119\u015b\u0107 to kopia. Skoro dokumentacja nic nie m\u00f3wi o cofni\u0119ciu takiego przebiegu, jedyn\u0105 pewn\u0105 drog\u0105 powrotu jest kopia obj\u0119tego zakresu wykonana wtedy, gdy by\u0142 jeszcze kompletny. Wystarczy tabela migawkowa nazwana od przebiegu i jego daty; mo\u017cna j\u0105 usun\u0105\u0107, gdy spis nie wyka\u017ce ujemnej delty.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-sql\">CREATE TABLE `PROJECT.DATASET.TARGET_TABLE__pre_backfill_20260810` AS\nSELECT *\nFROM `PROJECT.DATASET.TARGET_TABLE`\nWHERE PARTITION_DATE BETWEEN DATE '2022-01-01' AND DATE '2022-06-30';\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Trzy kroki, wszystkie po stronie hurtowni, \u017caden nie zale\u017cy od sygna\u0142u, kt\u00f3rego wysy\u0142anie przez us\u0142ug\u0119 nie jest udokumentowane. Warto\u015b\u0107 niesie kolejno\u015b\u0107: sprawdzenie granicy, spis, kopia, a potem przebieg.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. Od 15 czerwca Google Signals steruje mniejszym zakresem<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Druga zmiana jest mniejsza w kodzie, a wi\u0119ksza w interpretacji. Od 15.06.2026 ustawienie Google Signals w panelu administracyjnym Analytics oraz Google Signals API reguluj\u0105 tylko jedno: czy dane Analytics s\u0105 powi\u0105zywane z informacjami od zalogowanych u\u017cytkownik\u00f3w na potrzeby raportowania behawioralnego. Kontrola nad samymi danymi le\u017cy teraz po stronie Consent Mode, konkretnie po stronie parametru <code>ad_storage<\/code>. Opis znajduje si\u0119 na stronie pomocy Google Analytics 17016975, pobranej 10.08.2026.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Konsekwencj\u0105 operacyjn\u0105 jest przesuni\u0119cie tego, kt\u00f3ra powierzchnia odpowiada na dane pytanie. Na pytanie o powi\u0105zanie z zalogowaniem w raportowaniu behawioralnym odpowiada ustawienie Signals. Na pytanie o dane \u017ar\u00f3d\u0142owe odpowiada konfiguracja zg\u00f3d po stronie zbierania. Dokument konfiguracyjny, wewn\u0119trzna strona wiki albo opis przygotowany dla klienta przed 15 czerwca mo\u017ce nadal przedstawia\u0107 prze\u0142\u0105cznik Signals jako reguluj\u0105cy drugie z tych pyta\u0144, a nic w interfejsie nie oznacza takiego opisu jako nieaktualnego.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kilka kwestii dotycz\u0105cych tej zmiany nie jest udokumentowanych i warto nazwa\u0107 je otwartymi, zamiast je szacowa\u0107. Strona pomocy nie zawiera daty publikacji, wi\u0119c dok\u0142adnego momentu, w kt\u00f3rym opis zosta\u0142 zmieniony, nie da si\u0119 z niej odczyta\u0107. Nie wymienia efekt\u00f3w wolumenowych, wi\u0119c \u017cadne twierdzenie o tym, jak przesuwaj\u0105 si\u0119 liczby w raportach, nie znajduje oparcia w \u017ar\u00f3dle. Nie m\u00f3wi te\u017c nic o istniej\u0105cych listach odbiorc\u00f3w, wi\u0119c status list zbudowanych w czasie, gdy ustawienie mia\u0142o szerszy zakres, r\u00f3wnie\u017c nie zosta\u0142 tam poruszony. Ka\u017cda z tych kwestii jest pytaniem do konkretnych us\u0142ug, a nie pytaniem, na kt\u00f3re odpowiada dokumentacja.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. Inwentaryzacja dla ka\u017cdej us\u0142ugi i to, co pozostaje otwarte<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Bez opuszczania udokumentowanego gruntu mo\u017cna wykona\u0107 inwentaryzacj\u0119: zapisa\u0107 bie\u017c\u0105cy stan Signals dla ka\u017cdej us\u0142ugi, zachowa\u0107 ten zapis i osobno sprawdza\u0107 w raportowaniu wska\u017aniki zg\u00f3d <code>ad_storage<\/code>. Powstaje w ten spos\u00f3b opatrzona dat\u0105 linia bazowa, czyli to, czego wymaga\u0107 b\u0119dzie ka\u017cde p\u00f3\u017aniejsze pytanie o r\u00f3\u017cnic\u0119.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Google Signals API jest wymienione w dokumentacji jako jedna z dw\u00f3ch powierzchni steruj\u0105cych, ale nazwy endpoint\u00f3w, pola \u017c\u0105da\u0144 ani schematy odpowiedzi nie s\u0105 tu ustalone. Poni\u017cszy skrypt pozostawia wi\u0119c samo wywo\u0142anie API za funkcj\u0105-za\u015blepk\u0105, do uzupe\u0142nienia zgodnie z dokumentacj\u0105 API dla u\u017cywanej biblioteki klienckiej; rozpisana jest ta cz\u0119\u015b\u0107, kt\u00f3ra odpowiada za utrwalanie i por\u00f3wnanie, bo to w niej tkwi warto\u015b\u0107 inwentaryzacji.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-python\">import csv\nimport datetime\n\n# Zaslepka: implementacja w oparciu o Google Signals API i uzywana\n# biblioteke kliencka. Zwraca pole stanu udostepniane przez to API.\ndef fetch_signals_state(property_id: str):\n    raise NotImplementedError(\"fill in against the API reference\")\n\nPROPERTIES = [\"PROPERTY_ID_1\", \"PROPERTY_ID_2\"]   # symbole zastepcze\nOUT = \"signals_inventory.csv\"\n\ncaptured_at = datetime.datetime.now(datetime.timezone.utc).isoformat()\n\nwith open(OUT, \"a\", newline=\"\", encoding=\"utf-8\") as fh:\n    writer = csv.writer(fh)\n    for property_id in PROPERTIES:\n        try:\n            state = fetch_signals_state(property_id)\n            writer.writerow([captured_at, property_id, state, \"\"])\n        except Exception as exc:                  # zapisywane, nie pomijane\n            writer.writerow([captured_at, property_id, \"\", repr(exc)])\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Drug\u0105 po\u0142ow\u0119 inwentaryzacji stanowi strona zg\u00f3d. Spos\u00f3b przechowywania stanu <code>ad_storage<\/code> r\u00f3\u017cni si\u0119 w zale\u017cno\u015bci od wdro\u017cenia \u2014 mo\u017ce znajdowa\u0107 si\u0119 w tabeli eksportu, w logu po stronie zbierania albo w tabeli utrzymywanej przez platform\u0119 zg\u00f3d \u2014 wi\u0119c nazwy tabeli i kolumn poni\u017cej s\u0105 symbolami zast\u0119pczymi dla tego, co hurtownia ju\u017c zawiera. Zapytanie zwraca wska\u017anik dzienny, czyli form\u0119, w kt\u00f3rej przesuni\u0119cie na prze\u0142omie czerwca w og\u00f3le by\u0142oby czytelne.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-sql\">-- CONSENT_TABLE, DAY_COLUMN i AD_STORAGE_COLUMN to symbole zastepcze\n-- dla kolumn, w ktorych hurtownia zapisuje stan zgody.\nSELECT\n  DAY_COLUMN AS day,\n  COUNTIF(AD_STORAGE_COLUMN = 'granted') AS granted,\n  COUNT(*) AS total,\n  SAFE_DIVIDE(COUNTIF(AD_STORAGE_COLUMN = 'granted'), COUNT(*)) AS granted_rate\nFROM `PROJECT.DATASET.CONSENT_TABLE`\nWHERE DAY_COLUMN BETWEEN DATE '2026-05-01' AND CURRENT_DATE()\nGROUP BY day\nORDER BY day;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Czego inwentaryzacja nie dostarcza, to wyja\u015bnienie. Wska\u017anik, kt\u00f3ry przesuwa si\u0119 na prze\u0142omie czerwca, mo\u017ce odzwierciedla\u0107 konfiguracj\u0119 zg\u00f3d, sezonowo\u015b\u0107, struktur\u0119 ruchu albo wdro\u017cenie na stronie. Dokumentacja nie wymienia efekt\u00f3w wolumenowych, wi\u0119c przypisanie takiego ruchu zmianie w Signals wykracza\u0142oby poza \u017ar\u00f3d\u0142o. Cel zapisu jest w\u0119\u017cszy i trwalszy: utrwala opatrzony dat\u0105 stan dla ka\u017cdej us\u0142ugi i oddziela pytanie o to, czym steruje ustawienie, od pytania o to, co pokazuj\u0105 dane.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Podsumowanie<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Granica transferu:<\/strong> od 01.06.2026 konektory BigQuery Data Transfer Service dla Google Ads, Search Ads 360 i Google Analytics 4 nie zasilaj\u0105 ju\u017c przebieg\u00f3w backfill danymi starszymi ni\u017c 37 miesi\u0119cy. Jako pow\u00f3d podano zmian\u0119 regu\u0142 retencji w Google Ads.<\/li>\n<li><strong>Cz\u0119\u015b\u0107 o najwi\u0119kszych skutkach:<\/strong> dokumentacja podaje, \u017ce takie przebiegi zwracaj\u0105 niekompletne lub puste wyniki i mog\u0105 nadpisa\u0107 istniej\u0105c\u0105 kompletn\u0105 histori\u0119. Dane ju\u017c przeniesione pozostaj\u0105 nietkni\u0119te, dop\u00f3ki nie przejdzie po nich backfill.<\/li>\n<li><strong>Nieudokumentowane:<\/strong> jaki kod b\u0142\u0119du lub komunikat si\u0119 pojawia, czy interfejs ostrzega i czy operacj\u0119 da si\u0119 cofn\u0105\u0107. Zabezpieczenie opiera si\u0119 wi\u0119c na \u017c\u0105danym zakresie, spisie wierszy przed i po oraz na kopii wykonanej wcze\u015bniej.<\/li>\n<li><strong>Zakres Signals:<\/strong> od 15.06.2026 ustawienie Signals i Google Signals API steruj\u0105 wy\u0142\u0105cznie powi\u0105zaniem danych Analytics z informacjami o zalogowanych u\u017cytkownikach na potrzeby raportowania behawioralnego; kontrola nad samymi danymi le\u017cy po stronie Consent Mode i <code>ad_storage<\/code>.<\/li>\n<li><strong>Otwarte po tej stronie:<\/strong> strona pomocy nie zawiera daty publikacji, nie wymienia efekt\u00f3w wolumenowych i nie m\u00f3wi nic o istniej\u0105cych listach odbiorc\u00f3w. Opatrzona dat\u0105 inwentaryzacja dla ka\u017cdej us\u0142ugi utrwala stan; nie wyja\u015bnia ruch\u00f3w w liczbach.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Obie zmiany zosta\u0142y udokumentowane przed wej\u015bciem w \u017cycie i obie pozostaj\u0105 niewidoczne w codziennej pracy do chwili, w kt\u00f3rej konkretne dzia\u0142anie lub konkretne pytanie wydob\u0119dzie je na wierzch. Praktyczna r\u00f3\u017cnica mi\u0119dzy nimi polega na tym, kiedy sprawdzenie si\u0119 op\u0142aca: przy granicy transferu jest to moment przed rozpocz\u0119ciem backfillu, przy Google Signals \u2014 moment, w kt\u00f3rym opis konfiguracji zostaje zapisany i opatrzony dat\u0105.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Od czerwca 2026 backfill w BigQuery Data Transfer Service mo\u017ce nadpisa\u0107 kompletn\u0105 histori\u0119 pustymi wynikami, a ustawienie Google Signals obejmuje mniejszy zakres ni\u017c wcze\u015bniej.<\/p>\n","protected":false},"author":1,"featured_media":9409,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[92084,92097,92100,92103],"class_list":["post-9403","post","type-post","status-publish","format-standard","hentry","category-digital-analytics-pl","tag-bigquery-pl","tag-data-quality-pl","tag-google-analytics-4-pl","tag-google-cloud-pl"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Dwie czerwcowe zmiany w analityce bez komunikatu o b\u0142\u0119dzie - 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\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dwie czerwcowe zmiany w analityce bez komunikatu o b\u0142\u0119dzie - Lukas Wojcik - Blog\" \/>\n<meta property=\"og:description\" content=\"Od czerwca 2026 backfill w BigQuery Data Transfer Service mo\u017ce nadpisa\u0107 kompletn\u0105 histori\u0119 pustymi wynikami, a ustawienie Google Signals obejmuje mniejszy zakres ni\u017c wcze\u015bniej.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-12T18:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-9403-dwie-czerwcowe-zmiany-w-analityce-bez-komunikatu-o-b.jpg\" \/>\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\/jpeg\" \/>\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=\"13 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\\\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\\\/\"},\"author\":{\"name\":\"luky\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Dwie czerwcowe zmiany w analityce bez komunikatu o b\u0142\u0119dzie\",\"datePublished\":\"2026-08-12T18:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\\\/\"},\"wordCount\":2070,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/fi-9403-dwie-czerwcowe-zmiany-w-analityce-bez-komunikatu-o-b.jpg\",\"keywords\":[\"BigQuery\",\"Data Quality\",\"Google Analytics 4\",\"Google Cloud\"],\"articleSection\":[\"Digital Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\\\/\",\"name\":\"Dwie czerwcowe zmiany w analityce bez komunikatu o b\u0142\u0119dzie - Lukas Wojcik - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/fi-9403-dwie-czerwcowe-zmiany-w-analityce-bez-komunikatu-o-b.jpg\",\"datePublished\":\"2026-08-12T18:00:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/fi-9403-dwie-czerwcowe-zmiany-w-analityce-bez-komunikatu-o-b.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/fi-9403-dwie-czerwcowe-zmiany-w-analityce-bez-komunikatu-o-b.jpg\",\"width\":1200,\"height\":630,\"caption\":\"Dwie czerwcowe zmiany w analityce bez komunikatu o b\u0142\u0119dzie\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dwie czerwcowe zmiany w analityce bez komunikatu o b\u0142\u0119dzie\"}]},{\"@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":"Dwie czerwcowe zmiany w analityce bez komunikatu o b\u0142\u0119dzie - 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\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\/","og_locale":"en_US","og_type":"article","og_title":"Dwie czerwcowe zmiany w analityce bez komunikatu o b\u0142\u0119dzie - Lukas Wojcik - Blog","og_description":"Od czerwca 2026 backfill w BigQuery Data Transfer Service mo\u017ce nadpisa\u0107 kompletn\u0105 histori\u0119 pustymi wynikami, a ustawienie Google Signals obejmuje mniejszy zakres ni\u017c wcze\u015bniej.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-08-12T18:00:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-9403-dwie-czerwcowe-zmiany-w-analityce-bez-komunikatu-o-b.jpg","type":"image\/jpeg"}],"author":"luky","twitter_card":"summary_large_image","twitter_misc":{"Written by":"luky","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\/"},"author":{"name":"luky","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Dwie czerwcowe zmiany w analityce bez komunikatu o b\u0142\u0119dzie","datePublished":"2026-08-12T18:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\/"},"wordCount":2070,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-9403-dwie-czerwcowe-zmiany-w-analityce-bez-komunikatu-o-b.jpg","keywords":["BigQuery","Data Quality","Google Analytics 4","Google Cloud"],"articleSection":["Digital Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\/","url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\/","name":"Dwie czerwcowe zmiany w analityce bez komunikatu o b\u0142\u0119dzie - Lukas Wojcik - Blog","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-9403-dwie-czerwcowe-zmiany-w-analityce-bez-komunikatu-o-b.jpg","datePublished":"2026-08-12T18:00:00+00:00","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-9403-dwie-czerwcowe-zmiany-w-analityce-bez-komunikatu-o-b.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-9403-dwie-czerwcowe-zmiany-w-analityce-bez-komunikatu-o-b.jpg","width":1200,"height":630,"caption":"Dwie czerwcowe zmiany w analityce bez komunikatu o b\u0142\u0119dzie"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/dwie-czerwcowe-zmiany-w-analityce-bez-bledu-pl\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Dwie czerwcowe zmiany w analityce bez komunikatu o b\u0142\u0119dzie"}]},{"@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\/9403","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=9403"}],"version-history":[{"count":1,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/9403\/revisions"}],"predecessor-version":[{"id":9747,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/9403\/revisions\/9747"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/9409"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=9403"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=9403"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=9403"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}