{"id":28798,"date":"2026-11-09T20:11:00","date_gmt":"2026-11-09T19:11:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=28798"},"modified":"2026-11-04T22:53:37","modified_gmt":"2026-11-04T21:53:37","slug":"tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\/","title":{"rendered":"Tutorial: Znajdowanie nieu\u017cywanych tag\u00f3w, regu\u0142 i zmiennych w eksporcie kontenera GTM"},"content":{"rendered":"<p>Kontener Tag Managera \u0142atwo rozbudowa\u0107, a trudno odchudzi\u0107. Dodanie tagu zajmuje minut\u0119. Usuni\u0119cie wymaga najpierw sprawdzenia, czy co\u015b jeszcze od niego zale\u017cy, a interfejs nie ma widoku, kt\u00f3ry odpowiada na to pytanie dla ca\u0142ego kontenera.<\/p>\n<p>Eksport ma. To jeden plik JSON z ka\u017cdym tagiem, regu\u0142\u0105, zmienn\u0105, szablonem i folderem, a ka\u017cde odwo\u0142anie mi\u0119dzy nimi jest w nim zapisane. Odczytany we w\u0142a\u015bciwy spos\u00f3b zamienia si\u0119 w list\u0119 tego, co mo\u017cna usun\u0105\u0107. Zastosowana do 402 eksport\u00f3w kontener\u00f3w dost\u0119pnych publicznie na GitHubie, lista obj\u0119\u0142a 3537 z 13 677 element\u00f3w: mniej wi\u0119cej jedn\u0105 czwart\u0105, w wi\u0119kszo\u015bci zmienne wbudowane.<\/p>\n\n<figure class=\"lw-diagram\">\n<img src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/gtm-ungenutzt-pl.png\" width=\"1120\" height=\"580\" decoding=\"async\" loading=\"lazy\"\n     alt=\"Udzia\u0142 kandydat\u00f3w do usuni\u0119cia wed\u0142ug rodzaju elementu w 402 publicznych kontenerach GTM, od 3,2 procent tag\u00f3w do 74,3 procent w\u0142\u0105czonych zmiennych wbudowanych, a obok liczba kontener\u00f3w, kt\u00f3re potrzebowa\u0142y od jednego do trzech przej\u015b\u0107, gdy za ka\u017cdym razem usuwano tylko elementy bez bezpo\u015brednich odwo\u0142a\u0144\">\n<figcaption>Po lewej: co mo\u017cna usun\u0105\u0107 w ka\u017cdym rodzaju elementu. Po prawej: usuwanie tylko tego, do czego nic si\u0119 bezpo\u015brednio nie odwo\u0142uje, wymaga do trzech przej\u015b\u0107.<\/figcaption>\n<\/figure>\n\n<h2>Co w kontenerze znaczy \u201enieu\u017cywany\u201d<\/h2>\n<p>Element, kt\u00f3ry nic nie robi, powstaje w trzech sytuacjach. Warto je rozr\u00f3\u017cnia\u0107, bo ka\u017cd\u0105 znajduje si\u0119 inn\u0105 drog\u0105.<\/p>\n<p>Pierwsza to tag, kt\u00f3ry nie mo\u017ce si\u0119 uruchomi\u0107. Nie ma regu\u0142y uruchamiaj\u0105cej, jego jedyna regu\u0142a ju\u017c nie istnieje albo jest wstrzymany. Wstrzymany tag jest tak oznaczony w interfejsie. Tag bez regu\u0142y nie jest oznaczony wcale i na li\u015bcie wygl\u0105da na tak samo aktywny jak ka\u017cdy inny.<\/p>\n<p>Druga to element, do kt\u00f3rego nic si\u0119 nie odwo\u0142uje. Regu\u0142a jest w u\u017cyciu, gdy tag si\u0119 na niej uruchamia lub jest przez ni\u0105 blokowany albo gdy zawiera j\u0105 grupa regu\u0142 lub strefa. Zmienna jest w u\u017cyciu, gdy jej nazwa w podw\u00f3jnych nawiasach klamrowych, <code>{{Nazwa}}<\/code>, wyst\u0119puje w tagu, regule, innej zmiennej lub strefie. Szablon jest w u\u017cyciu, gdy powsta\u0142 z niego tag lub zmienna.<\/p>\n<p>Trzeci\u0105 \u0142atwo przeoczy\u0107: element, do kt\u00f3rego kto\u015b si\u0119 odwo\u0142uje, ale tylko co\u015b z dw\u00f3ch pierwszych grup. Regu\u0142a u\u017cywana tylko przez wstrzymany tag, zmienna odczytywana tylko przez t\u0119 regu\u0142\u0119. \u017baden z nich nie wygl\u0105da na b\u0142\u0119dny, a oba przestaj\u0105 by\u0107 potrzebne w chwili, gdy znika wstrzymany tag. Do ich znalezienia potrzebne jest inne pytanie: nie czy co\u015b odwo\u0142uje si\u0119 do elementu, lecz czy da si\u0119 do niego doj\u015b\u0107 od tagu, kt\u00f3ry naprawd\u0119 si\u0119 uruchamia.<\/p>\n\n<h2>Co eksport pokazuje, a czego nie zawiera<\/h2>\n<p>Cztery w\u0142a\u015bciwo\u015bci pliku decyduj\u0105 o tym, czy kontrola daje u\u017cyteczn\u0105 list\u0119, czy list\u0119 fa\u0142szywych alarm\u00f3w.<\/p>\n<p><strong>Wbudowanych regu\u0142 w nim nie ma.<\/strong> \u201eAll Pages\u201d, \u201eConsent Initialization \u2013 All Pages\u201d i \u201eInitialization \u2013 All Pages\u201d nie maj\u0105 wpisu na li\u015bcie regu\u0142. Tagi odwo\u0142uj\u0105 si\u0119 do nich przez sta\u0142e identyfikatory: 2147479553, 2147479572 i 2147479573 w kontenerach internetowych oraz 2147479574 w kontenerach serwerowych. W publicznym zbiorze tagi w 153 kontenerach uruchamiaj\u0105 si\u0119 na \u201eAll Pages\u201d, w 83 na \u201eInitialization\u201d, a w 14 na \u201eConsent Initialization\u201d. Kontrola, kt\u00f3ra szuka identyfikator\u00f3w tylko na li\u015bcie regu\u0142, zg\u0142asza ka\u017cdy z tych tag\u00f3w jako odwo\u0142anie do usuni\u0119tej regu\u0142y. Narz\u0119dzie zna te identyfikatory: nie pokazuje wbudowanych regu\u0142 ani jako brakuj\u0105cych, ani na li\u015bcie do usuni\u0119cia, a tagi uruchamiane przez nie traktuje jako aktywne.<\/p>\n<p><strong>Szablony z galerii maj\u0105 w\u0142asne nazwy typ\u00f3w.<\/strong> Szablon napisany w kontenerze nadaje zbudowanym z niego tagom typ <code>cvt_&lt;ID kontenera&gt;_&lt;ID szablonu&gt;<\/code>. Szablon dodany z Community Template Gallery pojawia si\u0119 jako <code>cvt_&lt;ID z galerii&gt;<\/code>, kr\u00f3tki kod pasuj\u0105cy tylko do pola <code>galleryReference.galleryTemplateId<\/code> we wpisie szablonu. 35 z 96 publicznych kontener\u00f3w z szablonami korzysta\u0142o z co najmniej jednego z galerii.<\/p>\n<p><strong>Nie ka\u017cda para nawias\u00f3w to zmienna.<\/strong> <code>{{_event}}<\/code> w regu\u0142ach zdarze\u0144 niestandardowych oznacza wbudowan\u0105 zmienn\u0105 zdarzenia i nie wymaga w\u0142asnej zmiennej. Tekst w polu notatek nie jest odwo\u0142aniem, nawet je\u015bli zawiera nazw\u0119 w nawiasach.<\/p>\n<p><strong>Eksport cz\u0119\u015bciowy jest z za\u0142o\u017cenia niepe\u0142ny.<\/strong> Tag Manager potrafi wyeksportowa\u0107 wybrane elementy. Wed\u0142ug strony pomocy Google odwo\u0142ania do brakuj\u0105cych tag\u00f3w i regu\u0142 s\u0105 wtedy usuwane, a odwo\u0142ania do zmiennych zostaj\u0105. Taki plik pokazuje tagi bez regu\u0142 i pozornie brakuj\u0105ce zmienne, cho\u0107 dla kontenera \u017cadne z nich nie jest prawd\u0105. Narz\u0119dzie oznacza plik jako prawdopodobny eksport cz\u0119\u015bciowy, gdy brakuje wielu u\u017cywanych zmiennych.<\/p>\n<p>Przypadki bezpo\u015brednie mieszcz\u0105 si\u0119 w kr\u00f3tkim skrypcie. Czyta on ka\u017cdy tag, regu\u0142\u0119, zmienn\u0105 i stref\u0119, zbiera u\u017cywane identyfikatory regu\u0142 i nazwy zmiennych, a nast\u0119pnie wypisuje regu\u0142y i zmienne, kt\u00f3re nigdzie nie wyst\u0119puj\u0105.<\/p>\n<figure style=\"--cbb-digits:2\" class=\"cbb cbb--wrap cbb--numbers wp-block-code-beautifier-block-code\" data-lang=\"python\"><figcaption class=\"cbb-head\"><span class=\"cbb-lang\">Python<\/span><span class=\"cbb-title\">Python: regu\u0142y i zmienne, do kt\u00f3rych nic si\u0119 nie odwo\u0142uje<\/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-python\" style=\"counter-reset:cbb-line 0;\"><span class=\"cbb-line\"><span class=\"cbb-keyword\">import<\/span> json, re, sys\n<\/span><span class=\"cbb-line\">\n<\/span><span class=\"cbb-line\">cv = json.<span class=\"cbb-function\">load<\/span>(<span class=\"cbb-function\">open<\/span>(sys.argv&#91;<span class=\"cbb-number\">1<\/span>&#93;, encoding=<span class=\"cbb-string\">\"utf-8\"<\/span>))&#91;<span class=\"cbb-string\">\"containerVersion\"<\/span>&#93;\n<\/span><span class=\"cbb-line\">trigger_ids, variablen = <span class=\"cbb-function\">set<\/span>(), <span class=\"cbb-function\">set<\/span>()\n<\/span><span class=\"cbb-line\">\n<\/span><span class=\"cbb-line\"><span class=\"cbb-keyword\">def<\/span> <span class=\"cbb-function\">lesen<\/span>(x):\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-keyword\">if<\/span> <span class=\"cbb-function\">isinstance<\/span>(x, str):\n<\/span><span class=\"cbb-line\">        variablen.<span class=\"cbb-function\">update<\/span>(re.<span class=\"cbb-function\">findall<\/span>(<span class=\"cbb-string\">r\"\\{\\{(&#91;^{}&#93;+)\\}\\}\"<\/span>, x))\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-keyword\">elif<\/span> <span class=\"cbb-function\">isinstance<\/span>(x, list):\n<\/span><span class=\"cbb-line\">        <span class=\"cbb-keyword\">for<\/span> y <span class=\"cbb-keyword\">in<\/span> x:\n<\/span><span class=\"cbb-line\">            <span class=\"cbb-function\">lesen<\/span>(y)\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-keyword\">elif<\/span> <span class=\"cbb-function\">isinstance<\/span>(x, dict):\n<\/span><span class=\"cbb-line\">        <span class=\"cbb-keyword\">if<\/span> x.<span class=\"cbb-function\">get<\/span>(<span class=\"cbb-string\">\"type\"<\/span>) == <span class=\"cbb-string\">\"TRIGGER_REFERENCE\"<\/span>:\n<\/span><span class=\"cbb-line\">            trigger_ids.<span class=\"cbb-function\">add<\/span>(x.<span class=\"cbb-function\">get<\/span>(<span class=\"cbb-string\">\"value\"<\/span>))\n<\/span><span class=\"cbb-line\">        <span class=\"cbb-keyword\">for<\/span> k, v <span class=\"cbb-keyword\">in<\/span> x.<span class=\"cbb-function\">items<\/span>():\n<\/span><span class=\"cbb-line\">            <span class=\"cbb-keyword\">if<\/span> k <span class=\"cbb-keyword\">in<\/span> (<span class=\"cbb-string\">\"firingTriggerId\"<\/span>, <span class=\"cbb-string\">\"blockingTriggerId\"<\/span>):\n<\/span><span class=\"cbb-line\">                trigger_ids.<span class=\"cbb-function\">update<\/span>(v)\n<\/span><span class=\"cbb-line\">            <span class=\"cbb-keyword\">elif<\/span> k <span class=\"cbb-keyword\">not<\/span> <span class=\"cbb-keyword\">in<\/span> (<span class=\"cbb-string\">\"name\"<\/span>, <span class=\"cbb-string\">\"notes\"<\/span>):\n<\/span><span class=\"cbb-line\">                <span class=\"cbb-function\">lesen<\/span>(v)\n<\/span><span class=\"cbb-line\">\n<\/span><span class=\"cbb-line\"><span class=\"cbb-keyword\">for<\/span> art <span class=\"cbb-keyword\">in<\/span> (<span class=\"cbb-string\">\"tag\"<\/span>, <span class=\"cbb-string\">\"trigger\"<\/span>, <span class=\"cbb-string\">\"variable\"<\/span>, <span class=\"cbb-string\">\"zone\"<\/span>):\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-keyword\">for<\/span> element <span class=\"cbb-keyword\">in<\/span> cv.<span class=\"cbb-function\">get<\/span>(art, &#91;&#93;):\n<\/span><span class=\"cbb-line\">        <span class=\"cbb-function\">lesen<\/span>(element)\n<\/span><span class=\"cbb-line\">\n<\/span><span class=\"cbb-line\"><span class=\"cbb-keyword\">for<\/span> t <span class=\"cbb-keyword\">in<\/span> cv.<span class=\"cbb-function\">get<\/span>(<span class=\"cbb-string\">\"trigger\"<\/span>, &#91;&#93;):\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-keyword\">if<\/span> t&#91;<span class=\"cbb-string\">\"triggerId\"<\/span>&#93; <span class=\"cbb-keyword\">not<\/span> <span class=\"cbb-keyword\">in<\/span> trigger_ids:\n<\/span><span class=\"cbb-line\">        <span class=\"cbb-function\">print<\/span>(<span class=\"cbb-string\">\"Trigger \"<\/span>, t&#91;<span class=\"cbb-string\">\"name\"<\/span>&#93;)\n<\/span><span class=\"cbb-line\"><span class=\"cbb-keyword\">for<\/span> v <span class=\"cbb-keyword\">in<\/span> cv.<span class=\"cbb-function\">get<\/span>(<span class=\"cbb-string\">\"variable\"<\/span>, &#91;&#93;):\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-keyword\">if<\/span> v&#91;<span class=\"cbb-string\">\"name\"<\/span>&#93; <span class=\"cbb-keyword\">not<\/span> <span class=\"cbb-keyword\">in<\/span> variablen:\n<\/span><span class=\"cbb-line\">        <span class=\"cbb-function\">print<\/span>(<span class=\"cbb-string\">\"Variable\"<\/span>, v&#91;<span class=\"cbb-string\">\"name\"<\/span>&#93;)<\/span><\/code><\/pre><\/figure>\n<p>Trzeciej grupy nie obejmuje, bo odwo\u0142anie z wstrzymanego tagu liczy jako u\u017cycie, a zmienne wbudowane i foldery pomija. Dla trzeciej grupy pytanie trzeba odwr\u00f3ci\u0107: zacz\u0105\u0107 od ka\u017cdego tagu, kt\u00f3ry si\u0119 uruchamia, przej\u015b\u0107 po jego regu\u0142ach i zmiennych, oznaczy\u0107 wszystko, do czego da si\u0119 doj\u015b\u0107, a reszt\u0119 traktowa\u0107 jako kandydat\u00f3w. Narz\u0119dzie <a href=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/gtm-container-orphan-checker-unused-tags-triggers-variables\/\">Porz\u0105dkowanie kontenera GTM<\/a> wykonuje oba kroki w przegl\u0105darce i zwraca list\u0119 dla ka\u017cdego rodzaju elementu, z powodem przy ka\u017cdej pozycji.<\/p>\n\n<h2>Pomiar na 402 publicznych kontenerach<\/h2>\n<p>Dane: wyszukiwanie kodu na GitHubie wed\u0142ug pola eksportu <code>exportFormatVersion<\/code> zwr\u00f3ci\u0142o 4 listopada 2026 roku 644 publiczne pliki. 637 z nich da\u0142o si\u0119 odczyta\u0107 jako kontenery. Eksporty o tym samym identyfikatorze kontenera liczy\u0142y si\u0119 raz, co da\u0142o 455. Wykluczono jeden eksport cz\u0119\u015bciowy i 52 pliki, w kt\u00f3rych tagi, regu\u0142y lub zmienne w og\u00f3le nie mia\u0142y identyfikatora, czego eksport z Tag Managera nigdy nie tworzy. Zosta\u0142y 402 kontenery wyeksportowane w latach 2015\u20132026, w tym 35 serwerowych. Rozmiar wynosi\u0142 od pustego eksportu do 252 element\u00f3w, mediana 26; 87 kontener\u00f3w mia\u0142o 50 element\u00f3w lub wi\u0119cej.<\/p>\n<table>\n<thead><tr><th>Element<\/th><th>W kontenerach<\/th><th>Kandydaci do usuni\u0119cia<\/th><th>Udzia\u0142<\/th><\/tr><\/thead>\n<tbody>\n<tr><td>Tagi<\/td><td>2915<\/td><td>92<\/td><td>3,2%<\/td><\/tr>\n<tr><td>Regu\u0142y<\/td><td>2518<\/td><td>291<\/td><td>11,6%<\/td><\/tr>\n<tr><td>Zmienne<\/td><td>5103<\/td><td>1240<\/td><td>24,3%<\/td><\/tr>\n<tr><td>Zmienne wbudowane (w\u0142\u0105czone)<\/td><td>2496<\/td><td>1854<\/td><td>74,3%<\/td><\/tr>\n<tr><td>W\u0142asne szablony<\/td><td>209<\/td><td>45<\/td><td>21,5%<\/td><\/tr>\n<tr><td>Foldery<\/td><td>373<\/td><td>15<\/td><td>4,0%<\/td><\/tr>\n<tr><td><strong>Razem<\/strong><\/td><td><strong>13 677<\/strong><\/td><td><strong>3537<\/strong><\/td><td><strong>25,9%<\/strong><\/td><\/tr>\n<\/tbody>\n<\/table>\n<p>W pojedynczym kontenerze mediana udzia\u0142u wynios\u0142a 18,4 procent; jedna czwarta kontener\u00f3w mia\u0142a 37,5 procent lub wi\u0119cej, a 81 nie mia\u0142o nic do usuni\u0119cia. W\u015br\u00f3d 87 wi\u0119kszych kontener\u00f3w mediana wynios\u0142a 20 procent.<\/p>\n<p>List\u0119 zdominowa\u0142y zmienne wbudowane: trzy czwarte w\u0142\u0105czonych nie s\u0105 nigdzie odczytywane. W czasie dzia\u0142ania nic nie kosztuj\u0105, ale wyd\u0142u\u017caj\u0105 list\u0119 zmiennych i dane w podgl\u0105dzie. Bez nich zostaje 1683 z 11 181 element\u00f3w, 15,1 procent. Dalej s\u0105 nieu\u017cywane zmienne, mniej wi\u0119cej co czwarta. Tagi rzadko s\u0105 w tym zbiorze problemem: 62 wstrzymane tagi w 18 kontenerach i 30 tag\u00f3w bez dzia\u0142aj\u0105cej regu\u0142y w 18.<\/p>\n<p>Publiczny zbi\u00f3r ma w\u0142asny charakter. Wiele z tych plik\u00f3w to szablony, wersje demonstracyjne, materia\u0142y szkoleniowe lub przepisy do jednego celu, i s\u0105 one bardziej uporz\u0105dkowane ni\u017c kontener, kt\u00f3ry zesp\u00f3\u0142 rozbudowuje latami. Proporcje pokazuj\u0105, gdzie gromadz\u0105 si\u0119 nieu\u017cywane elementy; warto\u015bci bezwzgl\u0119dne opisuj\u0105 te pliki, a nie typowy kontener produkcyjny.<\/p>\n\n<h2>Dlaczego jedno przej\u015bcie nie wystarcza<\/h2>\n<p>Usuni\u0119cie tego, do czego nic si\u0119 bezpo\u015brednio nie odwo\u0142uje, i ponowna kontrola to oczywista droga. Dzia\u0142a, ale wymaga kilku rund. W symulacji na 402 kontenerach pierwsze przej\u015bcie obj\u0119\u0142o 3337 z 3537 kandydat\u00f3w, czyli 94 procent. 63 kontenery wymaga\u0142y drugiego przej\u015bcia, a 10 trzeciego, bo ka\u017cde usuni\u0119cie zwalnia to, czego u\u017cywa\u0142 tylko usuni\u0119ty element: wstrzymany tag zwalnia przypisan\u0105 do niego regu\u0142\u0119, regu\u0142a zmienn\u0105 z warunku, ta zmienna tabel\u0119 przegl\u0105dow\u0105, kt\u00f3r\u0105 odczytuje.<\/p>\n<p>Do tej trzeciej grupy nale\u017ca\u0142o 200 element\u00f3w, przywo\u0142ywanych tylko przez co\u015b, co nigdy nie dzia\u0142a. Kontrola, kt\u00f3ra idzie po odwo\u0142aniach od aktywnych tag\u00f3w, znajduje je w jednym przebiegu. Na li\u015bcie narz\u0119dzia takie pozycje maj\u0105 pow\u00f3d \u201eu\u017cywane tylko przez \u2026\u201d i wskazuj\u0105 element, kt\u00f3ry je jeszcze trzyma, a folder, kt\u00f3ry staje si\u0119 pusty dopiero po usuni\u0119ciu zawarto\u015bci, te\u017c si\u0119 na niej pojawia.<\/p>\n\n<h2>Przepisy przynosz\u0105 w\u0142asne luki<\/h2>\n<p>Publiczne kontenery cz\u0119sto s\u0105 importowane jako punkt wyj\u015bcia i w\u0142a\u015bnie wtedy kontrola si\u0119 op\u0142aca. 55 z 402 zawiera\u0142o odwo\u0142ania donik\u0105d: w 29 u\u017cywano wbudowanej zmiennej, takiej jak <code>{{Click URL}}<\/code>, kt\u00f3ra nie by\u0142a w pliku w\u0142\u0105czona, w 24 nie istnia\u0142a nazwa zmiennej, w tym symbole zast\u0119pcze w rodzaju <code>{{YOUR_GA_TRACKING_ID}}<\/code>, w 6 brakowa\u0142o identyfikatora regu\u0142y, a w 2 w\u0142asnego szablonu. Tag Manager rozwi\u0105zuje brakuj\u0105c\u0105 zmienn\u0105 do undefined, wi\u0119c taki tag mo\u017ce si\u0119 uruchomi\u0107 i wys\u0142a\u0107 pust\u0105 warto\u015b\u0107 bez \u017cadnego b\u0142\u0119du.<\/p>\n<p>Nale\u017cy tu te\u017c 52 plik\u00f3w bez identyfikator\u00f3w. Wygl\u0105daj\u0105 jak eksporty, ale zosta\u0142y napisane r\u0119cznie lub wygenerowane, a niekt\u00f3re \u0142\u0105cz\u0105 tagi z regu\u0142ami przez nazw\u0119 zamiast identyfikatora. Zanim taki plik zostanie zaimportowany, warto go przeczyta\u0107 kontrol\u0105, kt\u00f3ra zg\u0142asza w\u0142a\u015bnie to.<\/p>\n\n<h2>Usuwanie we w\u0142a\u015bciwej kolejno\u015bci<\/h2>\n<ol>\n<li>Pracowa\u0107 w osobnej przestrzeni roboczej i wyeksportowa\u0107 j\u0105 przed pierwszym usuni\u0119ciem. Poprzednia wersja zachowuje ka\u017cdy element i mo\u017cna j\u0105 przywr\u00f3ci\u0107; eksport umo\u017cliwia por\u00f3wnanie.<\/li>\n<li>Usuwa\u0107 w kolejno\u015bci: tagi, regu\u0142y, zmienne, szablony, foldery. Ka\u017cdy element znika wtedy przed tym, czego u\u017cywa, i nic nie jest usuwane, dop\u00f3ki inny element si\u0119 do niego odwo\u0142uje.<\/li>\n<li>Nieu\u017cywane zmienne wbudowane odznaczy\u0107 w Zmienne \u2192 Konfiguruj; nie ma tam czego usuwa\u0107.<\/li>\n<li>Przetestowa\u0107 przestrze\u0144 robocz\u0105 w trybie podgl\u0105du, zw\u0142aszcza tagi z niestandardowym HTML, bo tam odwo\u0142ania s\u0105 zapisane jako tekst.<\/li>\n<li>Wyeksportowa\u0107 ponownie i por\u00f3wna\u0107 oba pliki, na przyk\u0142ad w <a href=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/text-code-diff\/\">Por\u00f3wnaniu tekstu i kodu<\/a>. Ka\u017cda r\u00f3\u017cnica powinna by\u0107 na li\u015bcie.<\/li>\n<li>Opublikowa\u0107 porz\u0105dki jako osobn\u0105 wersj\u0119 z opisem, co usuni\u0119to i dlaczego.<\/li>\n<\/ol>\n<p>Wstrzymane tagi zas\u0142uguj\u0105 przed usuni\u0119ciem na drugie spojrzenie. Niekt\u00f3re s\u0105 wstrzymane na sezon i maj\u0105 wr\u00f3ci\u0107. Zapisuje to wiersz w polu notatek, a nast\u0119pna kontrola poka\u017ce tag ponownie, dop\u00f3ki kto\u015b nie zdecyduje.<\/p>\n\n\n\n<!-- lw-flux-illu 28794-a6 -->\n<figure class=\"lw-illu\"><img src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/illustrationen\/flux-28794-a6.webp\" width=\"1120\" height=\"630\" loading=\"lazy\" decoding=\"async\" alt=\"G\u00f3rne pi\u0119tro trzypi\u0119trowego tortu jest ju\u017c zdj\u0119te, a dolne zostaje do ko\u0144ca. Tak samo elementy kontenera GTM usuwa si\u0119 od g\u00f3ry do do\u0142u, aby nic wcze\u015bniej nie straci\u0142o oparcia.\"><figcaption>G\u00f3rne pi\u0119tro trzypi\u0119trowego tortu jest ju\u017c zdj\u0119te, a dolne zostaje do ko\u0144ca. Tak samo elementy kontenera GTM usuwa si\u0119 od g\u00f3ry do do\u0142u, aby nic wcze\u015bniej nie straci\u0142o oparcia.<\/figcaption><\/figure>\n\n\n<h2>Ograniczenia<\/h2>\n<p>Kontrola eksportu widzi nazwy i identyfikatory, a nie zamiary. Nie rozpozna nazwy sk\u0142adanej w skrypcie z cz\u0119\u015bci, elementu, kt\u00f3rego za chwil\u0119 zacznie u\u017cywa\u0107 inna przestrze\u0144 robocza, ani tagu pozostawionego celowo. Kontenery serwerowe s\u0105 odczytywane tak samo, a odwo\u0142ania od klient\u00f3w i transformacji licz\u0105 si\u0119 jako aktywne. Pomiar obejmuje to, co jest publicznie dost\u0119pne na GitHubie: kontenery bardzo r\u00f3\u017cnego pochodzenia i rozmiaru, ale nie reprezentatywn\u0105 pr\u00f3b\u0119 wszystkich kontener\u00f3w Tag Managera.<\/p>\n\n<div class=\"lw-faq\">\n<h2>Pytania i odpowiedzi<\/h2>\n\n<h3>Dlaczego kontrola zg\u0142asza tagi na \u201eAll Pages\u201d jako odwo\u0142anie do brakuj\u0105cej regu\u0142y?<\/h3>\n<p>Poniewa\u017c wbudowanych regu\u0142 nie ma w eksporcie. \u201eAll Pages\u201d, \u201eConsent Initialization \u2013 All Pages\u201d i \u201eInitialization \u2013 All Pages\u201d nie maj\u0105 wpisu na li\u015bcie regu\u0142; tagi odwo\u0142uj\u0105 si\u0119 do nich przez sta\u0142e identyfikatory 2147479553, 2147479572 i 2147479573, a w kontenerach serwerowych przez 2147479574. Kontrola, kt\u00f3ra szuka identyfikator\u00f3w tylko na li\u015bcie regu\u0142, nie znajduje ich i zg\u0142asza uszkodzone odwo\u0142anie, kt\u00f3rego w kontenerze nie ma. Dlatego narz\u0119dzie w og\u00f3le nie pokazuje tych wbudowanych regu\u0142.<\/p>\n<p>Ten sam rodzaj fa\u0142szywych alarm\u00f3w wynika z dw\u00f3ch innych w\u0142a\u015bciwo\u015bci pliku. Szablony z Community Template Gallery pojawiaj\u0105 si\u0119 jako <code>cvt_<\/code> z identyfikatorem z galerii zamiast identyfikatora kontenera i szablonu, a eksport cz\u0119\u015bciowy usuwa odwo\u0142ania do regu\u0142, kt\u00f3rych nie wybrano. Zanim lista brakuj\u0105cych regu\u0142 zostanie przerobiona, warto sprawdzi\u0107, kt\u00f3ra z trzech przyczyn wyst\u0119puje.<\/p>\n\n<h3>Czy da si\u0119 usun\u0105\u0107 zmienn\u0105, kt\u00f3rej u\u017cywa tylko wstrzymany tag?<\/h3>\n<p>Po tagu, nie przed nim. Dop\u00f3ki wstrzymany tag zawiera <code>{{Nazwa}}<\/code>, odwo\u0142uje si\u0119 do zmiennej. Gdy najpierw usuwane s\u0105 tagi, potem regu\u0142y, a potem zmienne, taka zmienna zwalnia si\u0119 w tym samym przej\u015bciu.<\/p>\n\n<h3>Czy kontener z GitHuba warto sprawdzi\u0107 przed importem?<\/h3>\n<p>Tak. Spo\u015br\u00f3d 402 publicznych kontener\u00f3w zmierzonych tutaj 55 zawiera\u0142o odwo\u0142ania donik\u0105d, najcz\u0119\u015bciej do zmiennej lub zmiennej wbudowanej, kt\u00f3rej plik u\u017cywa, ale jej nie zawiera. Kolejne 52 pliki w og\u00f3le nie mia\u0142y identyfikator\u00f3w, a wi\u0119c nie by\u0142y eksportami z Tag Managera. Kontrola przed importem pokazuje jedno i drugie, dop\u00f3ki kontener jest jeszcze plikiem, a nie cz\u0119\u015bci\u0105 przestrzeni roboczej.<\/p>\n<\/div>\n\n<div class=\"lw-quellen\">\n<h2>\u0179r\u00f3d\u0142a<\/h2>\n<ul>\n<li><a href=\"https:\/\/support.google.com\/tagmanager\/answer\/6106997?hl=pl\" rel=\"noopener noreferrer\" target=\"_blank\">Google: Eksport i import kontenera<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/api\/reference\/rest\/v2\/accounts.containers.workspaces.triggers\" rel=\"noopener noreferrer\" target=\"_blank\">Google: Tag Manager API, zas\u00f3b regu\u0142y<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/api\/reference\/rest\/v2\/accounts.containers.workspaces.tags\" rel=\"noopener noreferrer\" target=\"_blank\">Google: Tag Manager API, zas\u00f3b tagu<\/a><\/li>\n<li><a href=\"https:\/\/support.google.com\/tagmanager\/answer\/7182738?hl=pl\" rel=\"noopener noreferrer\" target=\"_blank\">Google: Zmienne wbudowane w kontenerach internetowych<\/a><\/li>\n<li><a href=\"https:\/\/support.google.com\/tagmanager\/answer\/6238868?hl=pl\" rel=\"noopener noreferrer\" target=\"_blank\">Google: Sekwencjonowanie tag\u00f3w<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/templates\" rel=\"noopener noreferrer\" target=\"_blank\">Google: Szablony niestandardowe<\/a><\/li>\n<li><a href=\"https:\/\/support.google.com\/tagmanager\/answer\/6231791?hl=pl\" rel=\"noopener noreferrer\" target=\"_blank\">Google: Foldery<\/a><\/li>\n<li><a href=\"https:\/\/docs.github.com\/en\/search-github\/searching-on-github\/searching-code\" rel=\"noopener noreferrer\" target=\"_blank\">GitHub: Wyszukiwanie kodu<\/a><\/li>\n<\/ul>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>402 publiczne kontenery Tag Managera z GitHuba sprawdzone pod k\u0105tem porz\u0105dk\u00f3w: \u0107wier\u0107 wszystkich element\u00f3w nie jest niczym u\u017cywana, najcz\u0119\u015bciej zmienne wbudowane. Jak je znale\u017a\u0107 w eksporcie, czego plik nie zawiera i w jakiej kolejno\u015bci usuwa\u0107.<\/p>\n","protected":false},"author":1,"featured_media":28808,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[117],"tags":[92097,92133,92238],"class_list":["post-28798","post","type-post","status-publish","format-standard","hentry","category-tutorials-pl","tag-data-quality-pl","tag-google-tag-manager-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 nieu\u017cywanych tag\u00f3w, regu\u0142 i zmiennych w eksporcie kontenera GTM | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"Sprawdzono 402 publiczne kontenery GTM: \u0107wier\u0107 element\u00f3w nieu\u017cywana. Jak znale\u017a\u0107 nieu\u017cywane tagi, regu\u0142y i zmienne w eksporcie i je usun\u0105\u0107.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tutorial: Znajdowanie nieu\u017cywanych tag\u00f3w, regu\u0142 i zmiennych w eksporcie kontenera GTM | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Sprawdzono 402 publiczne kontenery GTM: \u0107wier\u0107 element\u00f3w nieu\u017cywana. Jak znale\u017a\u0107 nieu\u017cywane tagi, regu\u0142y i zmienne w eksporcie i je usun\u0105\u0107.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-11-09T19:11:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/flux-28798-gtm-ungenutzt.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=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Tutorial: Znajdowanie nieu\u017cywanych tag\u00f3w, regu\u0142 i zmiennych w eksporcie kontenera GTM\",\"datePublished\":\"2026-11-09T19:11:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\\\/\"},\"wordCount\":2031,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/flux-28798-gtm-ungenutzt.png\",\"keywords\":[\"Data Quality\",\"Google Tag Manager\",\"Tutorial\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\\\/\",\"name\":\"Tutorial: Znajdowanie nieu\u017cywanych tag\u00f3w, regu\u0142 i zmiennych w eksporcie kontenera GTM | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/flux-28798-gtm-ungenutzt.png\",\"datePublished\":\"2026-11-09T19:11:00+00:00\",\"description\":\"Sprawdzono 402 publiczne kontenery GTM: \u0107wier\u0107 element\u00f3w nieu\u017cywana. Jak znale\u017a\u0107 nieu\u017cywane tagi, regu\u0142y i zmienne w eksporcie i je usun\u0105\u0107.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/flux-28798-gtm-ungenutzt.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/flux-28798-gtm-ungenutzt.png\",\"width\":1200,\"height\":630,\"caption\":\"Tutorial: Znajdowanie nieu\u017cywanych tag\u00f3w, regu\u0142 i zmiennych w eksporcie kontenera GTM\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/tutorials-pl\\\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorial: Znajdowanie nieu\u017cywanych tag\u00f3w, regu\u0142 i zmiennych w eksporcie kontenera GTM\"}]},{\"@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 nieu\u017cywanych tag\u00f3w, regu\u0142 i zmiennych w eksporcie kontenera GTM | Lukas Wojcik","description":"Sprawdzono 402 publiczne kontenery GTM: \u0107wier\u0107 element\u00f3w nieu\u017cywana. Jak znale\u017a\u0107 nieu\u017cywane tagi, regu\u0142y i zmienne w eksporcie i je usun\u0105\u0107.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\/","og_locale":"en_US","og_type":"article","og_title":"Tutorial: Znajdowanie nieu\u017cywanych tag\u00f3w, regu\u0142 i zmiennych w eksporcie kontenera GTM | Lukas Wojcik","og_description":"Sprawdzono 402 publiczne kontenery GTM: \u0107wier\u0107 element\u00f3w nieu\u017cywana. Jak znale\u017a\u0107 nieu\u017cywane tagi, regu\u0142y i zmienne w eksporcie i je usun\u0105\u0107.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-11-09T19:11:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/flux-28798-gtm-ungenutzt.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Tutorial: Znajdowanie nieu\u017cywanych tag\u00f3w, regu\u0142 i zmiennych w eksporcie kontenera GTM","datePublished":"2026-11-09T19:11:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\/"},"wordCount":2031,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/flux-28798-gtm-ungenutzt.png","keywords":["Data Quality","Google Tag Manager","Tutorial"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\/","url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\/","name":"Tutorial: Znajdowanie nieu\u017cywanych tag\u00f3w, regu\u0142 i zmiennych w eksporcie kontenera GTM | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/flux-28798-gtm-ungenutzt.png","datePublished":"2026-11-09T19:11:00+00:00","description":"Sprawdzono 402 publiczne kontenery GTM: \u0107wier\u0107 element\u00f3w nieu\u017cywana. Jak znale\u017a\u0107 nieu\u017cywane tagi, regu\u0142y i zmienne w eksporcie i je usun\u0105\u0107.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/flux-28798-gtm-ungenutzt.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/flux-28798-gtm-ungenutzt.png","width":1200,"height":630,"caption":"Tutorial: Znajdowanie nieu\u017cywanych tag\u00f3w, regu\u0142 i zmiennych w eksporcie kontenera GTM"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/tutorials-pl\/tutorial-znajdowanie-nieuzywanych-tagow-regul-i-zmiennych-w-eksporcie-kontenera-gtm\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Tutorial: Znajdowanie nieu\u017cywanych tag\u00f3w, regu\u0142 i zmiennych w eksporcie kontenera GTM"}]},{"@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\/28798","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=28798"}],"version-history":[{"count":1,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/28798\/revisions"}],"predecessor-version":[{"id":30365,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/28798\/revisions\/30365"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/28808"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=28798"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=28798"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=28798"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}