Przejdź do treści
Google Ads i PPC Rozwiązanie problemu

Google Ads nie śledzi konwersji – debug przez GTM i naprawa w 2026

Opublikowano: 8 kwietnia 2026

Kampania w Google Ads chodzi od tygodni, klikają, a w kolumnie Konwersje pusto. Albo gorzej – liczby są, ale zupełnie nie zgadzają się z tym, co widzisz w CRM. To jeden z najczęstszych problemów, na który trafiam w audytach – i niemal zawsze sprowadza się do jednej z siedmiu przyczyn. Smart Bidding bez konwersji to strzelanie na ślepo: algorytm optymalizuje pod sygnał, którego nie ma. Pokażę, jak zdiagnozować problem w 30 minut za pomocą GTM Preview, Tag Assistant i zakładki Diagnostyka w Google Ads, a potem jak go naprawić – z konkretnymi przykładami kodu.

Krótka odpowiedź

Google Ads nie śledzi konwersji najczęściej z powodu: braku wdrożonego tagu (gtag.js albo GTM container), niepublikowanego workspace w GTM, braku Consent Mode v2 (od marca 2024 w UE bez tego tag się nie odpala), duplikatów tagów, złych triggerów (page_view zamiast purchase), brakującej konfiguracji Enhanced Conversions oraz zepsutego cross-domain tracking. Debug zaczynasz od zakładki Narzędzia, Konwersje, kolumna Status – szukasz Recording.

Potem GTM Preview mode i Tag Assistant weryfikują, czy tag faktycznie się odpala na thank-you page.

Usługi KC Mobile

Sprawdź naszą ofertę

Potrzebujesz pomocy specjalisty? Skorzystaj z naszych usług i rozwiń swój biznes online.

Zanim ruszysz debug – weryfikacja statusu konwersji w panelu

Pierwszy krok to nie GTM Preview, tylko sam panel Google Ads. Wejdź w Narzędzia i ustawienia, Konwersje i popatrz na kolumnę Status przy każdej akcji konwersji. Są cztery stany, które musisz znać.

Recording conversions – tag działa poprawnie, konwersje spływają. Jeśli widzisz ten status, a Smart Bidding i tak źle optymalizuje, problem nie leży w trackingu tylko w strukturze kampanii.

No recent conversions – tag kiedyś działał, ale od 7+ dni nic nie rejestruje. To alarm: ktoś zmienił kod strony, wygasł consent, GTM container został cofnięty do starszej wersji. Sprawdź datę ostatniej konwersji i porównaj ze zmianami w GTM (zakładka Versions).

Unverified – Google nigdy nie zarejestrował tej konwersji. Tag zwykle w ogóle nie został wdrożony albo jest na zupełnie innej stronie niż powinien.

Inactive – konwersja została zarchiwizowana lub wyłączona ręcznie.

Drugi szybki check to zakładka Diagnostyka (Diagnostics) w menu konwersji. Google pokazuje tam problemy w tagach: brakujące parametry, konflikty z Enhanced Conversions, ostrzeżenia o Consent Mode. To darmowy audyt cyfrowy, z którego rzadko ktoś korzysta.

Przyczyna A – tag Google Ads nie został wdrożony na stronie

Brzmi trywialnie, ale to najczęstszy powód. Ktoś zainstalował GTM kontener na stronie głównej, ale nie na checkout albo thank-you page. Albo developer wyłączył wtyczkę od tagów, bo spowalniała stronę.

Szybka weryfikacja: otwórz stronę podziękowania po testowym zamówieniu. View-source (Ctrl+U) i wyszukaj `gtag(` albo `GTM-`. Jeśli ani jedno, ani drugie się nie pojawia – tagu nie ma.

Druga metoda: zainstaluj Tag Assistant Legacy (rozszerzenie Chrome). Wchodzisz na stronę, klikasz ikonę, widzisz listę wszystkich tagów Google, które się odpaliły. Jeśli lista jest pusta – problem jest jasny.

Rozwiązanie: dla WordPressa i WooCommerce najprostszą drogą jest wtyczka Site Kit by Google albo GTM4WP. Wklejasz Container ID (GTM-XXXXXX), wtyczka wstawia snippet globalnie i na wszystkie podstrony. Dla Shopify działa to przez ustawienia Checkout i additional scripts. Dla custom solution developer musi wrzucić snippet GTM do szablonu – zaraz po tagu head i drugi do body. Przy prowadzeniu kampanii Google Ads zaczynamy zawsze od tego checka, bo bez niego Smart Bidding nie ma jak działać.

Potrzebujesz szybkiej pomocy?

Naprawimy problem za Ciebie. Bezpłatna diagnoza i wycena naprawy w ciągu 24h.

Przyczyna B – GTM container opublikowany, ale tag nadal w workspace

Typowa pułapka: wprowadzasz zmianę w GTM, testujesz przez Preview, działa idealnie. Zamykasz zakładkę i zapominasz kliknąć Submit → Publish. Tag istnieje w workspace, ale na produkcji go nie ma – bo publikowana jest tylko zatwierdzona wersja.

Jak to zweryfikować: w GTM przejdź do Versions. Porównaj numer ostatniej opublikowanej wersji (Live) z numerem ostatniej zapisanej zmiany. Jeśli się różnią – masz niewysłane zmiany.

Druga wersja tego samego problemu: dwie osoby edytują jeden kontener i nadpisują sobie wzajemnie workspaces. Rozwiązanie – pracujcie na osobnych workspace i łączcie przez Merge przed publikacją.

Warto wiedzieć: GTM zapisuje historię wersji. Jeśli coś zepsuliście, zawsze możecie wrócić do poprzedniej działającej wersji jednym kliknięciem (Actions, Set as latest version, Publish). To ratunek w sytuacjach typu coś działało rano, a teraz nic nie liczy. Więcej o typowych błędach w integracji GA4 z Google Ads w osobnym poradniku.

Przyczyna D – brak Enhanced Conversions (utrata 30-50% match rate)

Enhanced Conversions to mechanizm, który podbija dokładność pomiaru przez wysyłanie zahaszowanych danych użytkownika (e-mail, numer telefonu, imię) razem z konwersją. Google dopasowuje je do zalogowanych kont Google i uzupełnia brakujące atrybucje, których nie złapały zwykłe cookies.

Bez Enhanced Conversions: tracisz średnio 30-50% precyzji pomiaru, szczególnie na urządzeniach iOS (Safari i ITP blokują cookies trzecich stron). Dla Smart Bidding to różnica między +20% ROAS a stratą.

Jak włączyć:
1. W Google Ads: Narzędzia, Konwersje, wybierz akcję, sekcja Enhanced Conversions, Turn on.
2. Wybierz metodę: Google Tag Manager (najłatwiej) albo gtag.js (dla custom implementacji).
3. W GTM otwórz tag Google Ads Conversion Tracking, włącz Include user-provided data from your website, stwórz nową zmienną typu User-Provided Data.
4. Zmienna musi pobierać z DataLayer e-mail klienta (pole `customerEmail`) i telefon (`customerPhone`). Dla WooCommerce standard DataLayer GTM4WP już to wysyła.
5. Publish GTM, poczekaj 48h, w panelu Konwersji zobaczysz status Enhanced Conversions: Recording.

Dla WordPress/WooCommerce rekomenduję wtyczkę GTM4WP – ma gotowe eventy checkout i user data, bez pisania kodu. Kombinacja Consent Mode v2 + Enhanced Conversions to w 2026 absolutne minimum dla Smart Bidding.

Przyczyna E – duplikaty tagów (gtag.js plus GTM liczą eventy podwójnie)

Scenariusz: ktoś w przeszłości wrzucił globalny tag gtag.js bezpośrednio do szablonu (bo tak szybciej). Rok później druga agencja wdraża GTM i też stawia tag Google Ads Conversion. Rezultat – konwersje liczą się dwa razy. Panel Google Ads pokazuje 100 zamówień, a w Shopify widać tylko 50. Smart Bidding optymalizuje pod bzdury.

Jak wykryć duplikaty: Tag Assistant pokaże dwa osobne tagi Google Ads z tym samym Conversion ID odpalone na jednej stronie. Alternatywnie: w GTM Preview patrzysz na timeline i widzisz dwa niezależne `conversion` eventy dla jednego załadowania.

Rozwiązanie:
1. Zdecyduj, co zostaje – GTM (rekomendacja) albo gtag.js (jeśli masz minimalny setup bez innych tagów).
2. Usuń to drugie. Gtag.js usuwasz z szablonu (zwykle `functions.php` lub `header.php` dla WordPressa). GTM tag usuwasz w panelu GTM i publikujesz.
3. Poczekaj 24-48h i porównaj liczbę konwersji w Google Ads z rzeczywistą liczbą zamówień. Jeśli spadła dwukrotnie – miałeś duplikaty.

Ważne: historyczne dane w Google Ads pozostaną zawyżone. Warto dodać adnotację w panelu (Reports, Annotations) z datą naprawy, żeby Smart Bidding i raporty uwzględniały korektę. Ten błąd widzę w co trzecim audycie kont e-commerce.

Przyczyna F – złe triggery w GTM (page_view zamiast purchase)

Przypadek z audytu sprzed miesiąca: klient twierdził, że Google Ads wymyśla konwersje. W panelu było 800 konwersji na miesiąc, w sklepie 120 zamówień. Powód? Tag konwersji został ustawiony na trigger All Pages. Każda wizyta na stronie podziękowania liczyła się jako zakup, łącznie z botami, odświeżeniami strony i powrotami do linku w e-mailu.

Poprawny setup dla sklepów internetowych:
- Trigger: `purchase` event z DataLayer (wysyłany tylko raz, po złożeniu zamówienia)
- Warunek dodatkowy: `transaction_id` nie jest pusty (żeby pominąć odświeżenia)
- Deduplikacja: w GTM tag włącz Firing Options, Once per event

Dla generowania leadów (formularze):
- Trigger: `form_submission` z konkretnym Form ID
- Nie: Click, wszystkie kliknięcia na przycisku (bo łapie też walidacje błędów)

Debug: w GTM Preview przejdź przez cały funnel jak prawdziwy użytkownik. Zobaczysz wszystkie eventy w Summary i możesz sprawdzić, który trigger odpala którym momencie. Jeśli `purchase` odpala się na stronie produktu – to oczywisty błąd konfiguracji. Smart Bidding karmione takimi fałszywymi konwersjami optymalizuje CPC w górę, bo myśli, że masz fenomenalny ROAS.

Przyczyna G – cross-domain tracking zepsuty (checkout na subdomenie)

Jeśli Twój checkout jest na innej domenie niż strona produktowa (np. sklep.pl, checkout.sklep.pl albo sklep.pl, Stripe/PayU hosted page), musisz skonfigurować cross-domain tracking. Bez tego Google Ads widzi dwóch osobnych użytkowników zamiast jednej ścieżki zakupowej i traci atrybucję konwersji.

Objawy: konwersje są, ale wszystkie jako Direct lub none. Kampanie Google Ads pokazują 0 konwersji, choć reklamy generują ruch i sprzedaż.

Rozwiązanie w GTM:
1. W tagu Google Analytics (GA4 Configuration) przejdź do Fields to Set.
2. Dodaj pole `linker` z listą domen: `['sklep.pl', 'checkout.sklep.pl', 'stripe.com']`.
3. Dla GA4 dodatkowo w Admin, Data Streams, More settings, Configure domains dodaj wszystkie domeny.
4. Dla Google Ads tag upewnij się, że `gclid` jest przekazywany jako URL parameter między domenami.

Test: kliknij reklamę z `gclid` w URL, przejdź do checkout i sprawdź, czy parametr `gclid` nadal jest w URL. Jeśli nie – cross-domain nie działa. Alternatywnie GTM Preview pokaże dwie oddzielne sesje (zły znak) lub jedną ciągłą (dobrze).

Procedura debug krok po kroku przez GTM Preview

Masz teorię, czas na sprawdzenie. Oto checklist, który stosuję przy każdym audycie trackingu.

Krok 1: włącz Preview. Zaloguj się do GTM, wybierz kontener, kliknij Preview (prawy górny róg). Wpisz URL strony, którą testujesz. Otworzy się nowa karta z tagiem Tag Assistant u dołu.

Krok 2: przejdź cały funnel. Otwórz produkt, dodaj do koszyka, przejdź do checkout, złóż testowe zamówienie (używaj trybu testowego w Stripe/PayU albo utwórz kupon 100%).

Krok 3: na stronie podziękowania sprawdź timeline. W panelu Tag Assistant (u dołu ekranu) widzisz listę eventów: `container loaded`, `page view`, `add_to_cart`, `begin_checkout`, `purchase`. Kliknij `purchase` i po prawej stronie zobaczysz wszystkie tagi, które się odpaliły (Tags Fired) oraz te, które nie (Tags Not Fired).

Krok 4: zweryfikuj Google Ads Conversion Tag. Musi być w sekcji Tags Fired. Kliknij go – zobaczysz wartości: Conversion ID, Conversion Label, Transaction ID, Value. Wszystkie powinny być wypełnione (nie puste, nie undefined).

Krok 5: Tag Assistant w Chrome. Zainstaluj rozszerzenie, kliknij ikonę na stronie podziękowania. Powinieneś zobaczyć Google Ads Conversion z zieloną ikonką i parametrami. Jeśli żółta lub czerwona – ostrzeżenie. Kliknij i przeczytaj, co jest nie tak.

Krok 6: Google Ads Conversions Diagnostics. Wróć do Google Ads, Narzędzia, Konwersje, wybierz akcję, zakładka Diagnostics. Google sprawdza tag w czasie rzeczywistym i pokazuje wszystkie wykryte problemy (np. Tag fires but Conversion Linker missing albo Consent signals not detected).

Kiedy to już developer-level – server-side GTM i custom events

Większość problemów naprawisz samodzielnie. Ale są trzy scenariusze, w których lepiej zawołać developera albo agencję.

Server-side GTM. Klasyczny GTM (client-side) ładuje się w przeglądarce użytkownika – adblockery, ITP Safari i restrykcyjne ustawienia prywatności blokują go w rosnącej liczbie przypadków. Server-side GTM to kontener postawiony na Twoim serwerze (zwykle Google Cloud Run), który zbiera dane z przeglądarki i dopiero on wysyła je do Google Ads/GA4. Efekt – 15-30% więcej zarejestrowanych konwersji, lepsza ochrona przed ITP. Setup wymaga jednak pracy DevOps i kosztuje 50-200 PLN/mies za hosting.

Custom events dla aplikacji SPA. React, Vue, Next.js – klasyczny trigger page_view nie działa, bo strona się nie przeładowuje. Potrzebujesz DataLayer pushes przy zmianie route i custom trigger w GTM. To kod po stronie frontendu, który programista musi napisać.

Offline conversions upload. Jeśli sprzedaż zamyka się przez telefon albo CRM (B2B, leady), musisz wysyłać konwersje do Google Ads przez API – ręcznie, cronem albo integracją HubSpot/Salesforce. To najbardziej zaawansowany setup, ale pozwala optymalizować Smart Bidding pod realny przychód, nie pod leady.

Jeśli chcesz mieć pewność, że tracking działa poprawnie i Smart Bidding dostaje czyste dane, umów audyt trackingu – sprawdzam wszystkie 7 przyczyn powyżej plus dodatkowe checki pod konkretną branżę. W 90% przypadków znajdujemy minimum 2 problemy, które wcześniej przeoczyliście.

Wspomniane narzędzia

Google Tag Manager Tag Assistant Google Ads Diagnostics Cookiebot GTM4WP GA4 Complianz Usercentrics

Chcesz więcej klientów z Google Ads?

Prowadzimy kampanie Google Ads od 1500 zł/mies. Średni ROAS 400%. Certyfikowany Partner Google.

Najczęściej zadawane pytania

Dlaczego Google Ads pokazuje 0 konwersji mimo że ludzie kupują?
Najczęściej tag Google Ads w ogóle nie został wdrożony na stronie podziękowania albo GTM container pozostał niepublikowany. Sprawdź w Narzędzia, Konwersje kolumnę Status – jeśli widzisz Unverified, tag nigdy nie zadziałał. Otwórz stronę thank-you i w Tag Assistant zobacz, czy tag się odpala. Jeśli nie – wdróż globalny kontener GTM przez wtyczkę Site Kit albo GTM4WP dla WordPressa. Po publikacji poczekaj 24h i sprawdź status ponownie.
Jak sprawdzić, czy mój tag Google Ads Conversion faktycznie się odpala?
Włącz GTM Preview mode (przycisk Preview w panelu GTM), przejdź cały funnel zakupowy na swojej stronie i na thank-you page sprawdź timeline w panelu Tag Assistant. Musi pojawić się event purchase z Google Ads Conversion Tag w sekcji Tags Fired. Sprawdź też parametry – Conversion ID, Label i wartość transakcji nie mogą być puste. Dodatkowo rozszerzenie Tag Assistant Legacy w Chrome pokaże status wszystkich tagów Google odpalonych na stronie.
Czy muszę wdrażać Consent Mode v2 w Polsce?
Tak, od marca 2024 Google wymaga Consent Mode v2 dla wszystkich reklamodawców kierujących reklamy na kraje EOG, w tym Polskę. Bez tego tag Google Ads Conversion nie wyśle danych dopóki użytkownik nie zaakceptuje cookies, a Ty tracisz 30-70% konwersji i Smart Bidding ślepnie. Najprostszy setup: Cookiebot albo Complianz dla WordPressa plus template Google Consent Mode v2 z GTM Community Gallery – cała konfiguracja zajmuje około godziny.
Czym różni się Enhanced Conversions od zwykłego śledzenia?
Enhanced Conversions wysyła do Google zahaszowane dane użytkownika – e-mail, numer telefonu, imię – razem z konwersją. Google dopasowuje je do zalogowanych kont Google i uzupełnia atrybucje, których nie złapały cookies (np. na iOS Safari). Bez Enhanced Conversions tracisz średnio 30-50% precyzji pomiaru. Włączasz w panelu Google Ads, Konwersje, wybrana akcja, sekcja Enhanced Conversions, a potem w GTM dodajesz User-Provided Data do tagu konwersji.
Co zrobić, gdy Google Ads liczy konwersje dwa razy?
To klasyczny objaw duplikatu – masz równocześnie gtag.js w kodzie strony oraz tag Google Ads Conversion w GTM. Oba liczą ten sam event. W Tag Assistant zobaczysz dwa niezależne Google Ads Conversion Tagi z tym samym Conversion ID. Rozwiązanie: usuń globalny gtag.js z szablonu (zostaw tylko GTM) albo odwrotnie. Po naprawie dodaj adnotację w Google Ads Reports, żeby Smart Bidding uwzględnił korektę w historycznych danych.
Dlaczego konwersje z reklam Google Ads są zaliczane jako Direct w GA4?
Najczęstsza przyczyna to brak cross-domain tracking, gdy checkout jest na subdomenie albo zewnętrznej bramce płatności (Stripe, PayU, Przelewy24). Parametr gclid gubi się między domenami, więc Google widzi dwóch osobnych użytkowników. Rozwiązanie: w tagu GA4 Configuration w GTM dodaj linker z listą wszystkich domen oraz w GA4 Admin, Data Streams, Configure domains wpisz wszystkie powiązane domeny. Po wdrożeniu zmiany poczekaj 48h i porównaj atrybucję.
#google ads#konwersje#gtm#tracking#consent mode#enhanced conversions#debug
Zdjęcie autora: Krzysztof Czapnik
O autorze

Krzysztof Czapnik

CEO KC Mobile

20+ lat doświadczenia w digital marketingu i tworzeniu stron internetowych. Specjalizuję się w SEO, kampaniach Google Ads oraz budowaniu skutecznych strategii online dla firm z całej Polski.

Potrzebujesz pomocy?

Potrzebujesz szybkiej pomocy?

Naprawimy problem za Ciebie. Bezpłatna diagnoza i wycena naprawy w ciągu 24h.

Potrzebujesz pomocy specjalisty?

Skorzystaj z naszych usług w największych miastach Polski

Bezpłatna wycena