{"id":10426,"date":"2026-09-17T18:10:00","date_gmt":"2026-09-17T16:10:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=10426"},"modified":"2026-10-26T11:50:53","modified_gmt":"2026-10-26T10:50:53","slug":"wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\/","title":{"rendered":"Wyszukiwanie zmian w Google Tag Managerze: por\u00f3wnywanie dw\u00f3ch eksport\u00f3w kontenera"},"content":{"rendered":"<p>Diff to zestawienie r\u00f3\u017cnic mi\u0119dzy dwoma plikami. Normalizacja oznacza tu jednakowe formatowanie obu eksport\u00f3w, aby r\u00f3\u017cnice uk\u0142adu nie przes\u0142ania\u0142y zmian ustawie\u0144. Por\u00f3wnanie eksport\u00f3w GTM odpowiada na r\u00f3\u017cne pytania: czy r\u00f3\u017cni\u0105 si\u0119 pliki, odczytane konfiguracje lub rzeczywisty pomiar? Ka\u017cde wymaga innych dowod\u00f3w. Formatowanie mo\u017ce przes\u0142oni\u0107 zmian\u0119, a zbyt szerokie usuwanie p\u00f3l mo\u017ce ukry\u0107 istotn\u0105 r\u00f3\u017cnic\u0119.<\/p>\n<p id=\"gtm-update-20261019\"><strong>Aktualizacja z 19.10.2026:<\/strong> Ograniczenia por\u00f3wnania obejmuj\u0105 teraz zmiany kodu wykonawczego dostarczanego przez Google i opcjonaln\u0105 optymalizacj\u0119 kontenera. <a href=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/polaczenie-google-tag-managera-i-gtag-js-co-zmienia-sie-w-2026-roku\/\">Pa\u017adziernikowe zmiany w Google Tag i GTM<\/a>.<\/p>\n<figure class=\"lw-diagram\"><img decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/dia-10426-gtmdiff-20261024.png\" width=\"1120\" height=\"580\" loading=\"lazy\" alt=\"Formatowanie, metadane, odwo\u0142ania i wykonanie to osobne poziomy por\u00f3wnania.\"><figcaption>Formatowanie, metadane, odwo\u0142ania i wykonanie to osobne poziomy por\u00f3wnania.<\/figcaption><\/figure>\n<h2>Okre\u015blenie zakresu por\u00f3wnania<\/h2>\n<p>Oba eksporty wymagaj\u0105 zapisania konta, kontenera, wersji lub obszaru roboczego, czasu eksportu i zakresu wyboru. Eksport cz\u0119\u015bciowy nie jest r\u00f3wnowa\u017cny pe\u0142nemu. Google dokumentuje, \u017ce kontynuowanie eksportu cz\u0119\u015bciowego bez wymaganych zale\u017cno\u015bci mo\u017ce usun\u0105\u0107 odwo\u0142ania do brakuj\u0105cych tag\u00f3w i regu\u0142, zachowuj\u0105c odwo\u0142ania do zmiennych.<\/p>\n<p>Identyfikatory obiekt\u00f3w GTM wskazuj\u0105 elementy; nie istnieje og\u00f3lna udokumentowana regu\u0142a nadawania wszystkich ID na nowo przy ka\u017cdym eksporcie. Fingerprint to warto\u015b\u0107 obliczana na podstawie elementu. Dokumentacja API opisuje ponowne obliczenie tej warto\u015bci po modyfikacji elementu. Nie oznacza to udokumentowanego znacznika czasu ani dowodu konkretnego autora, czasu edycji lub skutku wykonania. Pola te pozostaj\u0105 wa\u017cnym materia\u0142em, nawet gdy dodatkowy widok pomija wybrane metadane.<\/p>\n<h2>Najpierw formatowanie bez usuwania warto\u015bci<\/h2>\n<p><code>jq -S<\/code> sortuje klucze obiekt\u00f3w i formatuje JSON. Zachowuje kolejno\u015b\u0107 tablic i zawarto\u015b\u0107 ci\u0105g\u00f3w; spacje w warto\u015bci nadal s\u0105 danymi. Poni\u017cszy skrypt Bash wymaga jq i diff, przyjmuje dwie \u015bcie\u017cki i odrzuca puste pliki, wiele dokument\u00f3w oraz wej\u015bcia bez obiektu containerVersion. Taka kontrola struktury nie jest pe\u0142n\u0105 walidacj\u0105 schematu GTM.<\/p>\n<figure style=\"--cbb-digits:2\" class=\"cbb cbb--wrap cbb--numbers wp-block-code-beautifier-block-code\" data-lang=\"bash\"><figcaption class=\"cbb-head\"><span class=\"cbb-lang\">Shell<\/span><span class=\"cbb-actions\"><button type=\"button\" class=\"cbb-button cbb-button--wrap\" data-cbb-action=\"wrap\" aria-pressed=\"true\" title=\"Wrap long lines\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M2 4h12M2 8h9.5a2.5 2.5 0 0 1 0 5H8m0 0 1.5-1.5M8 13l1.5 1.5M2 12h3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span class=\"cbb-sr\">Wrap long lines<\/span><\/button><button type=\"button\" class=\"cbb-button cbb-button--copy\" data-cbb-action=\"copy\" data-cbb-done=\"Copied\" data-cbb-failed=\"Press Ctrl+C to copy\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><rect x=\"5.5\" y=\"5.5\" width=\"8\" height=\"8.5\" rx=\"1.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M10.5 3.5V3A1.5 1.5 0 0 0 9 1.5H4A1.5 1.5 0 0 0 2.5 3v6.5A1.5 1.5 0 0 0 4 11h.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><\/svg><span class=\"cbb-button-label\" aria-live=\"polite\">Copy<\/span><\/button><\/span><\/figcaption><pre class=\"cbb-pre\" tabindex=\"0\"><code class=\"cbb-code language-bash\" style=\"counter-reset:cbb-line 0;\"><span class=\"cbb-line\"><span class=\"cbb-comment\">#!\/usr\/bin\/env bash<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-keyword\">set<\/span> <span class=\"cbb-attr\">-euo<\/span> pipefail\n<\/span><span class=\"cbb-line\"><span class=\"cbb-keyword\">if<\/span> (( <span class=\"cbb-variable\">$#<\/span> != <span class=\"cbb-number\">2<\/span> ))<span class=\"cbb-operator\">;<\/span> <span class=\"cbb-keyword\">then<\/span>\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-function\">printf<\/span> <span class=\"cbb-string\">'Usage: bash compare-gtm.sh old.json new.json\\n'<\/span> <span class=\"cbb-operator\">&gt;<\/span>&amp;<span class=\"cbb-number\">2<\/span>\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">exit<\/span> <span class=\"cbb-number\">2<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-keyword\">fi<\/span>\n<\/span><span class=\"cbb-line\">work_dir=<span class=\"cbb-variable\">$(<\/span>mktemp <span class=\"cbb-attr\">-d<\/span>)\n<\/span><span class=\"cbb-line\"><span class=\"cbb-keyword\">trap<\/span> <span class=\"cbb-string\">'rm -rf -- \"$work_dir\"'<\/span> EXIT\n<\/span><span class=\"cbb-line\">normalise() {\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-function\">jq<\/span> <span class=\"cbb-attr\">-e<\/span> <span class=\"cbb-attr\">-S<\/span> <span class=\"cbb-attr\">-s<\/span> <span class=\"cbb-string\">'<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-string\">    if length != 1 then error(\"Expected one JSON document\")<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-string\">    elif (.&#91;0&#93; | type) != \"object\" then error(\"Expected an object\")<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-string\">    elif (.&#91;0&#93;.containerVersion | type) != \"object\"<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-string\">      then error(\"Expected a GTM container export\")<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-string\">    else .&#91;0&#93; end<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-string\">  '<\/span> <span class=\"cbb-string\">\"<\/span><span class=\"cbb-variable\">$1<\/span><span class=\"cbb-string\">\"<\/span>\n<\/span><span class=\"cbb-line\">}\n<\/span><span class=\"cbb-line\">normalise <span class=\"cbb-string\">\"<\/span><span class=\"cbb-variable\">$1<\/span><span class=\"cbb-string\">\"<\/span> <span class=\"cbb-operator\">&gt;<\/span> <span class=\"cbb-string\">\"<\/span><span class=\"cbb-variable\">$work_dir<\/span><span class=\"cbb-string\">\/old.json\"<\/span>\n<\/span><span class=\"cbb-line\">normalise <span class=\"cbb-string\">\"<\/span><span class=\"cbb-variable\">$2<\/span><span class=\"cbb-string\">\"<\/span> <span class=\"cbb-operator\">&gt;<\/span> <span class=\"cbb-string\">\"<\/span><span class=\"cbb-variable\">$work_dir<\/span><span class=\"cbb-string\">\/new.json\"<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-keyword\">if<\/span> diff <span class=\"cbb-attr\">-u<\/span> -- <span class=\"cbb-string\">\"<\/span><span class=\"cbb-variable\">$work_dir<\/span><span class=\"cbb-string\">\/old.json\"<\/span> <span class=\"cbb-string\">\"<\/span><span class=\"cbb-variable\">$work_dir<\/span><span class=\"cbb-string\">\/new.json\"<\/span><span class=\"cbb-operator\">;<\/span> <span class=\"cbb-keyword\">then<\/span>\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-function\">printf<\/span> <span class=\"cbb-string\">'No differences in this parsed, formatted view.\\n'<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-keyword\">else<\/span>\n<\/span><span class=\"cbb-line\">  diff_status=<span class=\"cbb-variable\">$?<\/span>\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">exit<\/span> <span class=\"cbb-string\">\"<\/span><span class=\"cbb-variable\">$diff_status<\/span><span class=\"cbb-string\">\"<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-keyword\">fi<\/span><\/span><\/code><\/pre><\/figure>\n<p>Po zapisaniu jako <code>compare-gtm.sh<\/code> wywo\u0142anie ma posta\u0107 <code>bash compare-gtm.sh old.json new.json<\/code>. Kod 0 oznacza brak r\u00f3\u017cnic w tym widoku, a 1 r\u00f3\u017cnice znalezione przez diff. B\u0142\u0105d odczytu lub polecenia jest b\u0142\u0119dem, nie r\u00f3wno\u015bci\u0105. Kolejno zapisywane pliki tymczasowe potwierdzaj\u0105 poprawn\u0105 normalizacj\u0119 przed por\u00f3wnaniem. Podstawienie proces\u00f3w takie jak <code>diff &lt;(norm old.json) &lt;(norm new.json)<\/code> samo nie przenosi ka\u017cdego b\u0142\u0119du polecenia przygotowuj\u0105cego dane do kodu zako\u0144czenia diff.<\/p>\n<p>Ten widok nadal zawiera daty, odciski i kontekst wersji. Dodatkowy widok zredukowany wymaga jawnej listy dozwolonych \u015bcie\u017cek p\u00f3l, opisanego celu i zachowania orygina\u0142u. Rekurencyjne usuwanie wed\u0142ug nazw takich jak <code>accountId<\/code> czy <code>fingerprint<\/code> mo\u017ce usun\u0105\u0107 istotne dane zagnie\u017cd\u017cone. R\u00f3wno\u015b\u0107 po usuni\u0119ciu oznacza tylko r\u00f3wno\u015b\u0107 zachowanej cz\u0119\u015bci.<\/p>\n<p>Znaczenie ma te\u017c parser JSON: powtarzaj\u0105ce si\u0119 klucze i bardzo du\u017ce liczby wymagaj\u0105 okre\u015blonych zasad. Zachowanie liczb w jq zale\u017cy od wersji i sposobu kompilacji. Przyk\u0142ad nie jest archiwum zachowuj\u0105cym dok\u0142adne bajty ani uniwersalnym testem r\u00f3wnowa\u017cno\u015bci znaczenia.<\/p>\n<h2>Zmienione warto\u015bci obok nowych kluczy<\/h2>\n<p>R\u00f3\u017cnica zbior\u00f3w kluczy pokazuje dodania i usuni\u0119cia, ale pomija zmian\u0119 warto\u015bci pod istniej\u0105cym kluczem. Osobne zestawienie obejmuje wszystkie trzy przypadki na najwy\u017cszym poziomie:<\/p>\n<figure style=\"--cbb-digits:2\" class=\"cbb cbb--wrap cbb--numbers wp-block-code-beautifier-block-code\" data-lang=\"bash\"><figcaption class=\"cbb-head\"><span class=\"cbb-lang\">Shell<\/span><span class=\"cbb-actions\"><button type=\"button\" class=\"cbb-button cbb-button--wrap\" data-cbb-action=\"wrap\" aria-pressed=\"true\" title=\"Wrap long lines\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M2 4h12M2 8h9.5a2.5 2.5 0 0 1 0 5H8m0 0 1.5-1.5M8 13l1.5 1.5M2 12h3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span class=\"cbb-sr\">Wrap long lines<\/span><\/button><button type=\"button\" class=\"cbb-button cbb-button--copy\" data-cbb-action=\"copy\" data-cbb-done=\"Copied\" data-cbb-failed=\"Press Ctrl+C to copy\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><rect x=\"5.5\" y=\"5.5\" width=\"8\" height=\"8.5\" rx=\"1.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M10.5 3.5V3A1.5 1.5 0 0 0 9 1.5H4A1.5 1.5 0 0 0 2.5 3v6.5A1.5 1.5 0 0 0 4 11h.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><\/svg><span class=\"cbb-button-label\" aria-live=\"polite\">Copy<\/span><\/button><\/span><\/figcaption><pre class=\"cbb-pre\" tabindex=\"0\"><code class=\"cbb-code language-bash\" style=\"counter-reset:cbb-line 0;\"><span class=\"cbb-line\"><span class=\"cbb-function\">jq<\/span> <span class=\"cbb-attr\">-n<\/span> <span class=\"cbb-attr\">--slurpfile<\/span> a old.json <span class=\"cbb-attr\">--slurpfile<\/span> b new.json <span class=\"cbb-string\">'<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-string\">  if ($a|length) != 1 or ($b|length) != 1 then<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-string\">    error(\"Expected one JSON document per file\")<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-string\">  elif ($a&#91;0&#93;|type) != \"object\" or ($b&#91;0&#93;|type) != \"object\" then<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-string\">    error(\"Expected objects\")<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-string\">  else<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-string\">    $a&#91;0&#93; as $old | $b&#91;0&#93; as $new<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-string\">    | ($old|keys) as $ka | ($new|keys) as $kb<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-string\">    | {removed: ($ka - $kb), added: ($kb - $ka),<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-string\">       changed: &#91;$ka&#91;&#93; as $key<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-string\">         | select($new|has($key))<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-string\">         | select($old&#91;$key&#93; != $new&#91;$key&#93;) | $key&#93;}<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-string\">  end'<\/span><\/span><\/code><\/pre><\/figure>\n<p>Zmiana g\u0142\u0119boko wewn\u0105trz taga mo\u017ce pojawi\u0107 si\u0119 tutaj jedynie jako <code>containerVersion<\/code>. Szczeg\u00f3\u0142y ujawnia sformatowany diff lub por\u00f3wnanie uwzgl\u0119dniaj\u0105ce schemat. Ci\u0105g <code>\"1\"<\/code> i liczba <code>1<\/code> s\u0105 r\u00f3\u017cnymi warto\u015bciami; podobny wygl\u0105d i niewielka liczba znak\u00f3w nie oznaczaj\u0105 braku znaczenia.<\/p>\n<h2>To\u017csamo\u015b\u0107 obiekt\u00f3w i kolejno\u015b\u0107 tablic<\/h2>\n<p>W jednym kontenerze ID pomagaj\u0105 powi\u0105za\u0107 elementy mi\u0119dzy wersjami, lecz usuni\u0119cie i ponowne utworzenie lub import mog\u0105 stworzy\u0107 inny element. Mi\u0119dzy kontenerami identyfikator\u00f3w i kontekstu nie mo\u017cna po prostu skasowa\u0107. Dopasowanie nazw wymaga jednoznacznej mapy oraz obs\u0142ugi przemianowa\u0144, duplikat\u00f3w i nierozwi\u0105zanych odwo\u0142a\u0144.<\/p>\n<p>Mapa musi zachowa\u0107 odwo\u0142ania do regu\u0142 uruchamiaj\u0105cych i blokuj\u0105cych, folder\u00f3w, sekwencji tag\u00f3w, szablon\u00f3w oraz innych istotnych relacji. Udokumentowane odwo\u0142ania setup i teardown u\u017cywaj\u0105 nazw tag\u00f3w. Zmienne cz\u0119sto wyst\u0119puj\u0105 jako <code>{{name}}<\/code>; nie dowodzi to kompletno\u015bci globalnej zamiany tekstu ani mapowania samych regu\u0142. Wbudowane identyfikatory regu\u0142 wymagaj\u0105 jawnej obs\u0142ugi, a nie \u015blepego wyszukiwania na li\u015bcie wyeksportowanych regu\u0142.<\/p>\n<p><code>jq -S<\/code> nie sortuje tablic. Sortowanie list element\u00f3w mo\u017ce poprawi\u0107 dodatkowy widok przegl\u0105du po ustaleniu to\u017csamo\u015bci. Sortowanie dowolnych tablic zagnie\u017cd\u017conych mo\u017ce jednak zmieni\u0107 znaczenie, tak\u017ce kolejno\u015b\u0107 wierszy tabel. Pierwszy widok pozostawia wi\u0119c wszystkie tablice bez zmian.<\/p>\n\n\n<!-- lw-flux-illu 10422-a4 -->\n<figure class=\"lw-illu\"><img src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/illustrationen\/flux-10422-a4.webp\" width=\"1120\" height=\"630\" loading=\"lazy\" decoding=\"async\" alt=\"Dwa sznury proporczyk\u00f3w nios\u0105 te same chor\u0105giewki w innej kolejno\u015bci, a cienkie nitki \u0142\u0105cz\u0105 ka\u017cd\u0105 par\u0119. Tak samo przy por\u00f3wnaniu dw\u00f3ch list dopasowuje si\u0119 te same obiekty, a nie wiersz po wierszu.\"><figcaption>Dwa sznury proporczyk\u00f3w nios\u0105 te same chor\u0105giewki w innej kolejno\u015bci, a cienkie nitki \u0142\u0105cz\u0105 ka\u017cd\u0105 par\u0119. Tak samo przy por\u00f3wnaniu dw\u00f3ch list dopasowuje si\u0119 te same obiekty, a nie wiersz po wierszu.<\/figcaption><\/figure>\n\n\n<h2>R\u00f3\u017cnice tekstu nie dowodz\u0105 skutk\u00f3w dzia\u0142ania<\/h2>\n<p>Widoki wierszy, s\u0142\u00f3w i znak\u00f3w pokazuj\u0105 r\u00f3\u017cne szczeg\u00f3\u0142y. Por\u00f3wnanie wierszami mo\u017ce ustali\u0107 r\u00f3wno\u015b\u0107 tekstu i pokaza\u0107 cudzys\u0142owy zmieniaj\u0105ce typ warto\u015bci. Niekt\u00f3re narz\u0119dzia rozpoznaj\u0105 r\u00f3wnie\u017c przeniesienia. Diff pokazuje zmian\u0119, lecz zwykle nie wyja\u015bnia jej powodu ani wp\u0142ywu na pomiar.<\/p>\n<p>Identyczny JSON nie dowodzi identycznego pomiaru. Informacje Google z 8 pa\u017adziernika 2026 opisuj\u0105 inicjalizacj\u0119 przy \u0142adowaniu kontenera i widoczne zdarzenia <code>gtag.config<\/code>, kt\u00f3re mog\u0105 pasowa\u0107 do szerokich regu\u0142 Custom Event. Opcjonalna optymalizacja og\u0142oszona 12 pa\u017adziernika obejmuje te\u017c ustawienia centralne i tagi cel\u00f3w. Podgl\u0105d sprawdza wykonanie, analiza sieci \u017c\u0105dania, a raporty docelowe przetwarzanie; samo \u017c\u0105danie przegl\u0105darki nie potwierdza poprawnej atrybucji ani ko\u0144cowych raport\u00f3w. Uprawnienia nie s\u0105 wersjonowane i wymagaj\u0105 osobnego zapisu.<\/p>\n<div class=\"lw-faq\"><h2>Pytania i odpowiedzi<\/h2>\n<h3>Czy plik znormalizowany zast\u0119puje oryginalny eksport?<\/h3><p>Nie. Niezmienione eksporty stanowi\u0105 podstaw\u0119 odtwarzania i audytu. Widok por\u00f3wnawczy nie musi nadawa\u0107 si\u0119 do importu ani by\u0107 kompletny. Eksporty mog\u0105 zawiera\u0107 konfiguracj\u0119, kod i wra\u017cliwe identyfikatory, dlatego wymagaj\u0105 odpowiedniej kontroli dost\u0119pu do repozytorium i usuwania danych wra\u017cliwych z udost\u0119pnianych kopii.<\/p>\n<h3>Czy Windows zawsze zmienia wszystkie zako\u0144czenia wierszy?<\/h3><p>Nie. Zale\u017cy to od edytora i atrybut\u00f3w Git. <code>*.json text eol=lf<\/code> wybiera LF dla pasuj\u0105cych plik\u00f3w tekstowych w katalogu roboczym Git. Ju\u017c \u015bledzona zawarto\u015b\u0107 mo\u017ce wymaga\u0107 kontrolowanej renormalizacji; ustawienie nie usuwa spacji wewn\u0105trz ci\u0105g\u00f3w JSON.<\/p>\n<h3>Czy diff wskazuje autora zmiany?<\/h3><p>Same warto\u015bci eksportu nie dowodz\u0105 autorstwa. Potrzebny kontekst zapewniaj\u0105 historia wersji, zapisy obszaru roboczego i zachowane dowody audytowe. Odcisk fingerprint nie zast\u0119puje tych zapis\u00f3w.<\/p><\/div>\n\n<div id=\"gtm-related-links-20261020\" class=\"lw-gtm-related\" style=\"margin:20px 0;color:var(--text-secondary);line-height:1.6;\"><p><strong>Powi\u0105zane instrukcje i narz\u0119dzia:<\/strong><\/p><ul><li><a href=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/wyszukiwanie-zmian-w-tagu-gtm-porownywanie-zapisanych-i-opublikowanych-wersji\/\">Znalezienie wersji ze zmian\u0105 tagu<\/a> \u2013 archiwum wersji, odciski i ograniczenia dowod\u00f3w historycznych.<\/li>\n<li><a href=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/gtm-duplicates-analyser\/\">Analizator duplikat\u00f3w GTM<\/a> \u2013 kandydaci ze zgodnymi wybranymi polami konfiguracji.<\/li><\/ul><\/div>\n<div class=\"lw-quellen\"><h2>\u0179r\u00f3d\u0142a<\/h2><ul><li><a href=\"https:\/\/support.google.com\/tagmanager\/answer\/6106997?hl=en\" target=\"_blank\" rel=\"noopener noreferrer\">Google Tag Manager: eksport i import kontener\u00f3w<\/a><\/li><li><a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/api\/reference\/rest\/v2\/accounts.containers.workspaces.tags\" target=\"_blank\" rel=\"noopener noreferrer\">Google Tag Manager API: tagi i odwo\u0142ania<\/a><\/li><li><a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/api\/reference\/rest\/v2\/accounts.containers.versions\" target=\"_blank\" rel=\"noopener noreferrer\">Google Tag Manager API: wersje kontenera<\/a><\/li><li><a href=\"https:\/\/jqlang.org\/manual\/\" target=\"_blank\" rel=\"noopener noreferrer\">jq: podr\u0119cznik<\/a><\/li><li><a href=\"https:\/\/git-scm.com\/docs\/gitattributes\" target=\"_blank\" rel=\"noopener noreferrer\">Git: atrybuty i zako\u0144czenia wierszy<\/a><\/li><li><a href=\"https:\/\/support.google.com\/tagmanager\/answer\/4620708?hl=en\" target=\"_blank\" rel=\"noopener noreferrer\">Google Tag Manager: informacje o wydaniach<\/a><\/li><li><a href=\"https:\/\/support.google.com\/tagmanager\/answer\/17079602?hl=en\" target=\"_blank\" rel=\"noopener noreferrer\">Google: zmiany w Google Tag i Tag Managerze<\/a><\/li><li><a href=\"https:\/\/support.google.com\/analytics\/answer\/16659369\" target=\"_blank\" rel=\"noopener noreferrer\">Google: optymalizacja kontenera Tag Managera<\/a><\/li><li><a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/web\" target=\"_blank\" rel=\"noopener noreferrer\">Tag Manager dla witryn<\/a><\/li><li><a href=\"https:\/\/docs.docker.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Dokumentacja Dockera<\/a><\/li><li><a href=\"https:\/\/support.google.com\/tagmanager\/answer\/17231523?hl=en\" target=\"_blank\" rel=\"noopener noreferrer\">Google Tag: obs\u0142ugiwane metody instalacji<\/a><\/li><li><a href=\"https:\/\/support.google.com\/tagmanager\/answer\/15756616?hl=en\" target=\"_blank\" rel=\"noopener noreferrer\">Google Tag w Tag Managerze: konfiguracja i inicjalizacja<\/a><\/li><\/ul><\/div>","protected":false},"excerpt":{"rendered":"<p>Wiarygodne por\u00f3wnanie eksport\u00f3w GTM zaczyna si\u0119 od sp\u00f3jnego formatowania i jasnego zakresu. ID, zale\u017cno\u015bci i kolejno\u015b\u0107 tablic wymagaj\u0105 kontroli, a zmiany dzia\u0142ania dowod\u00f3w wykraczaj\u0105cych poza diff JSON.<\/p>\n","protected":false},"author":1,"featured_media":30781,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[152],"tags":[92229],"class_list":["post-10426","post","type-post","status-publish","format-standard","hentry","category-tworzenie-stron-internetowych","tag-devops-pl"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Wyszukiwanie zmian w Google Tag Managerze: por\u00f3wnywanie dw\u00f3ch eksport\u00f3w kontenera | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"Normalizacja eksport\u00f3w GTM przed por\u00f3wnaniem wierszy. Zmiany konfiguracji a niezmieniony JSON i rzeczywiste zachowanie strony.\" \/>\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\/tworzenie-stron-internetowych\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Wyszukiwanie zmian w Google Tag Managerze: por\u00f3wnywanie dw\u00f3ch eksport\u00f3w kontenera | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Normalizacja eksport\u00f3w GTM przed por\u00f3wnaniem wierszy. Zmiany konfiguracji a niezmieniony JSON i rzeczywiste zachowanie strony.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-17T16:10:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-26T10:50:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-10426.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:description\" content=\"Normalizacja eksport\u00f3w GTM przed por\u00f3wnaniem wierszy. Zmiany konfiguracji a niezmieniony JSON i rzeczywiste zachowanie strony.\" \/>\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\\\/tworzenie-stron-internetowych\\\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Wyszukiwanie zmian w Google Tag Managerze: por\u00f3wnywanie dw\u00f3ch eksport\u00f3w kontenera\",\"datePublished\":\"2026-09-17T16:10:00+00:00\",\"dateModified\":\"2026-10-26T10:50:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\\\/\"},\"wordCount\":1142,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/klarheit-20261111-10426.png\",\"keywords\":[\"DevOps\"],\"articleSection\":[\"Tworzenie stron internetowych\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\\\/\",\"name\":\"Wyszukiwanie zmian w Google Tag Managerze: por\u00f3wnywanie dw\u00f3ch eksport\u00f3w kontenera | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/klarheit-20261111-10426.png\",\"datePublished\":\"2026-09-17T16:10:00+00:00\",\"dateModified\":\"2026-10-26T10:50:53+00:00\",\"description\":\"Normalizacja eksport\u00f3w GTM przed por\u00f3wnaniem wierszy. Zmiany konfiguracji a niezmieniony JSON i rzeczywiste zachowanie strony.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/klarheit-20261111-10426.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/klarheit-20261111-10426.png\",\"width\":1200,\"height\":630,\"caption\":\"Wyszukiwanie zmian w Google Tag Managerze: por\u00f3wnywanie dw\u00f3ch eksport\u00f3w kontenera\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Wyszukiwanie zmian w Google Tag Managerze: por\u00f3wnywanie dw\u00f3ch eksport\u00f3w kontenera\"}]},{\"@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":"Wyszukiwanie zmian w Google Tag Managerze: por\u00f3wnywanie dw\u00f3ch eksport\u00f3w kontenera | Lukas Wojcik","description":"Normalizacja eksport\u00f3w GTM przed por\u00f3wnaniem wierszy. Zmiany konfiguracji a niezmieniony JSON i rzeczywiste zachowanie strony.","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\/tworzenie-stron-internetowych\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\/","og_locale":"en_US","og_type":"article","og_title":"Wyszukiwanie zmian w Google Tag Managerze: por\u00f3wnywanie dw\u00f3ch eksport\u00f3w kontenera | Lukas Wojcik","og_description":"Normalizacja eksport\u00f3w GTM przed por\u00f3wnaniem wierszy. Zmiany konfiguracji a niezmieniony JSON i rzeczywiste zachowanie strony.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-09-17T16:10:00+00:00","article_modified_time":"2026-10-26T10:50:53+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-10426.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_description":"Normalizacja eksport\u00f3w GTM przed por\u00f3wnaniem wierszy. Zmiany konfiguracji a niezmieniony JSON i rzeczywiste zachowanie strony.","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\/tworzenie-stron-internetowych\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Wyszukiwanie zmian w Google Tag Managerze: por\u00f3wnywanie dw\u00f3ch eksport\u00f3w kontenera","datePublished":"2026-09-17T16:10:00+00:00","dateModified":"2026-10-26T10:50:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\/"},"wordCount":1142,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-10426.png","keywords":["DevOps"],"articleSection":["Tworzenie stron internetowych"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\/","url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\/","name":"Wyszukiwanie zmian w Google Tag Managerze: por\u00f3wnywanie dw\u00f3ch eksport\u00f3w kontenera | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-10426.png","datePublished":"2026-09-17T16:10:00+00:00","dateModified":"2026-10-26T10:50:53+00:00","description":"Normalizacja eksport\u00f3w GTM przed por\u00f3wnaniem wierszy. Zmiany konfiguracji a niezmieniony JSON i rzeczywiste zachowanie strony.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-10426.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-10426.png","width":1200,"height":630,"caption":"Wyszukiwanie zmian w Google Tag Managerze: por\u00f3wnywanie dw\u00f3ch eksport\u00f3w kontenera"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/wyszukiwanie-zmian-w-google-tag-managerze-porownywanie-dwoch-eksportow-kontenera\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Wyszukiwanie zmian w Google Tag Managerze: por\u00f3wnywanie dw\u00f3ch eksport\u00f3w kontenera"}]},{"@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\/10426","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=10426"}],"version-history":[{"count":10,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/10426\/revisions"}],"predecessor-version":[{"id":27582,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/10426\/revisions\/27582"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/30781"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=10426"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=10426"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=10426"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}