Trzy systemy liczą trzy różne rzeczy
Panel sklepu odpowiada na najprostsze pytanie: ile zamówień wpadło. Liczy wszystkie, niezależnie od źródła - z reklam, z wyszukiwarki, z newslettera, z telefonu, od stałego klienta, który wpisał adres z pamięci. Pokazuje przy tym zamówienia anulowane, nieopłacone i zwrócone, dopóki ktoś ich świadomie nie odfiltruje.
Google Ads odpowiada na pytanie innego rodzaju: ile zamówień da się przypisać kliknięciom w reklamy. I zapisuje je przy dacie kliknięcia, a nie przy dacie zakupu. Ktoś kliknął w poniedziałek, kupił w czwartek - w sklepie zamówienie widnieje w czwartek, w koncie reklamowym dopisze się wstecz do poniedziałku, czyli do dnia, za który naliczono koszt. Ten sam raport za zeszły tydzień potrafi więc dziś wyglądać inaczej niż w dniu, w którym powstał.
GA4 stoi pośrodku i mierzy zachowanie w przeglądarce: zdarzenia, sesje i źródła ruchu według własnego modelu atrybucji. Nie zobaczy zamówienia złożonego przez telefon, nie zobaczy ruchu z odrzuconymi zgodami ani z zablokowanymi skryptami. Zwykle pokazuje więc mniej niż panel sklepu i samo w sobie nie jest to usterką. Bywa jednak odwrotnie: jeśli zdarzenie zakupu odpala się kilka razy, GA4 pokaże więcej niż sklep - i to już usterka jest.
Zanim zaczniesz szukać winnego, ustal, na które z tych trzech pytań akurat odpowiadasz. Zaskakująco dużo rozmów o zepsutej analityce kończy się dokładnie w tym miejscu.
Dlaczego Google Ads pokazuje inną liczbę zamówień niż sklep
Najczęstsza przyczyna nie ma nic wspólnego z technologią - to definicja kolumny. Kolumna „Konwersje” sumuje wyłącznie działania oznaczone jako cel główny. Jeśli obok zakupu masz tam dodanie do koszyka, formularz kontaktowy, kliknięcie w numer telefonu i zapis do newslettera, ta kolumna nie pokazuje zamówień, tylko ich mieszankę z resztą aktywności. Nie dziwi więc, że nie zgadza się z panelem. Ona po prostu nie liczy zamówień.
Drugi powód to okno konwersji i sposób zliczania. Konwersja przypisuje się do kliknięcia w oknie, które ustawiasz w koncie, więc przy dłuższym cyklu decyzyjnym raporty dzienne i tygodniowe rozjeżdżają się z listą zamówień: część zakupów jeszcze do konta nie dotarła, a część dopisze się do dni, które masz już za sobą. Osobno decydujesz, czy z jednego kliknięcia liczy się każda konwersja, czy tylko jedna. Przy zakupach zwykle chcesz każdą, przy formularzach już niekoniecznie.
Trzeci powód jest po stronie ludzi. Klient klika reklamę na telefonie w kolejce do kasy, a kupuje wieczorem na laptopie, wchodząc z zakładki albo wpisując nazwę marki. Dla sklepu to wejście bezpośrednie, dla reklamy - zależnie od ustawień - albo konwersja, albo nic.
Pierwszy ekran, który warto przy takiej różnicy otworzyć, to lista działań konwersji razem z kolumną statusu i sposobem zliczania. W kontach, które przejmowaliśmy po innych wykonawcach, ten jeden widok tłumaczył rozbieżność częściej niż cokolwiek innego. Jest przy tym najtańszą z możliwych napraw: kilka kliknięć, zero zmian w kodzie.
Cztery miejsca, w których psuje się pomiar
Jeśli cele masz uporządkowane, a liczby dalej się nie schodzą, zostaje warstwa pomiarowa. Psuje się w czterech powtarzalnych miejscach i akurat te naprawy realnie zmieniają raport.
Poza tą czwórką zostają drobiazgi, które potrafią rozsunąć raporty o cały dzień albo o wartość wysyłki: różne strefy czasowe w koncie reklamowym, w GA4 i w sklepie, kwoty brutto kontra netto, koszt dostawy wliczony w wartość zamówienia albo nie. Każdy z osobna wygląda niepoważnie. Razem robią różnicę, której potem nikt nie umie wytłumaczyć.
Osobno stoi ruch, którego nie zmierzysz przy żadnej konfiguracji: odrzucone zgody, blokady skryptów, ustawienia prywatności w przeglądarce. Tej luki nie da się zamknąć do zera. Uczciwiej jest ją oszacować i przyjąć jako stały narzut, niż udawać, że jej nie ma, i kupować kolejne narzędzia w nadziei, że akurat to ją domknie.
- Podwójne liczenie zdarzeń: import konwersji z GA4 i osobny tag zakupu na stronie podziękowania liczą to samo zamówienie dwa razy. Bez wspólnego identyfikatora transakcji nie ma czego deduplikować.
- Strona podziękowania uruchamiana wielokrotnie: odświeżenie, powrót z bramki płatniczej, wejście z historii przeglądarki. Zdarzenie zakupu bez numeru zamówienia policzy się tyle razy, ile razy strona się wczyta.
- Nieoznaczony ruch: newsletter, kod QR, link z profilu społecznościowego, a bywa, że ręcznie dopisane parametry w reklamach nadpisujące automatyczne tagowanie. Ruch, którego nie da się przypisać, ląduje jako bezpośredni i zaniża każdy kanał płatny.
- Duplikaty stron produktowych: ten sam produkt pod kilkoma adresami - z kategorii, z filtra, z parametrem w adresie. Rozbijają ścieżkę, psują przypisanie zamówienia do wejścia i przy okazji rozpraszają sygnały w wyszukiwarce.
Co porządkowaliśmy w sklepie z wyjazdami na mecze
W Fans on Tour, sklepie z wyjazdami kibiców na mecze i wyścigi, zaczęliśmy od konta Google Ads, które działało na trzech nakładających się kampaniach Performance Max licytujących się nawzajem o te same zapytania. Przebudowaliśmy je na kampanię Search: 74 grupy reklam, 593 słowa kluczowe i 49 wykluczeń na poziomie kampanii, a przed startem sprawdziliśmy wszystkie 74 strony docelowe. Sama struktura kampanii nie naprawia jednak raportu.
Równolegle uporządkowaliśmy cele konwersji tak, żeby zakup był jedynym celem głównym, i zweryfikowaliśmy tag zakupu. Potem prześledziliśmy całą ścieżkę pomiaru: import z GA4, deduplikację zdarzeń, konwersje rozszerzone i spójne oznaczanie ruchu parametrami UTM. Dopiero po tym liczby w koncie zaczęły znaczyć to, co miały znaczyć.
Po stronie sklepu poszły prace, które z pozoru nie mają z analityką wiele wspólnego: przekierowania na zduplikowanych stronach produktowych, psujących jednocześnie pomiar i wyniki wyszukiwania. W dedykowanym API sklepu punkt składania zamówienia zabezpieczyliśmy kluczem idempotencji, żeby podwójne kliknięcie nie stworzyło dwóch zamówień. Bo od tego momentu rozjazd przestaje być kwestią raportu, a staje się kwestią realnych danych.
Kolejność ma tu znaczenie większe, niż się wydaje. Dopóki pomiar pokazuje coś innego niż sklep, każda optymalizacja kampanii jest zgadywaniem na danych, którym nie ufasz.
Jak sprawdzić to u siebie, zanim zadzwonisz po pomoc
Do tego audytu nie potrzebujesz dostępu do kodu ani nowego narzędzia. Potrzebujesz jednego okna czasu, ustawionego tak samo w trzech systemach, i cierpliwości do porównywania pojedynczych zamówień zamiast sum. Cały przegląd mieści się w pięciu krokach.
Sumy zawsze będą się różnić i niewiele z nich wynika. Dopiero zestawienie jeden do jednego pokazuje, czy zamówień brakuje, czy raczej któreś powtarzają się dwa razy. To dwa różne problemy z dwiema różnymi naprawami: braki wskazują zwykle na nieoznaczony ruch albo zgody, nadmiar prawie zawsze na duplikat zdarzenia.
Jeśli po tym rozbieżność nadal jest duża, nie masz już pytania, tylko listę podejrzanych. To zupełnie inna rozmowa z agencją albo z deweloperem sklepu, bo idziesz do niej z konkretem, a nie z wrażeniem.
- Ustaw ten sam zakres dat i tę samą strefę czasową w Google Ads, GA4 i panelu sklepu.
- W Google Ads otwórz listę działań konwersji i sprawdź, które są celem głównym i jak są zliczane.
- Odfiltruj w panelu sklepu zamówienia anulowane, testowe i złożone poza sklepem, na przykład telefonicznie.
- Weź z GA4 zakupy z identyfikatorami transakcji i porównaj je z numerami zamówień - szukaj powtórzeń i braków.
- Sprawdź, czy zamówienia, których GA4 nie widzi, mają wspólny mianownik: kanał, urządzenie, metodę płatności, porę dnia.
Czego nie robić i na co szkoda pieniędzy
Nie dąż do zgodności co do jednego zamówienia. Systemy mierzą różne rzeczy w różnych momentach i pełna zgodność nie jest osiągalna. Celem jest różnica stabilna i wytłumaczalna, a nie zerowa: jeśli co miesiąc odstęp jest podobny i wiadomo, skąd się bierze, masz dane, na których da się pracować.
Nie wyłączaj kampanii tylko dlatego, że raport pokazał mniej zamówień niż panel. Zanim uznasz, że reklama nie sprzedaje, sprawdź, czy w ogóle mierzysz sprzedaż. Ocena kampanii po kolumnie, która sumuje zapisy do newslettera razem z zakupami, prowadzi prosto do wyłączenia czegoś, co działało.
Nie kupuj pomiaru po stronie serwera, zanim uporządkujesz cele główne i deduplikację. To dobre narzędzie, ale wdrożone na niepoukładanym fundamencie dokłada trzecie źródło liczb, którego nikt później nie umie rozliczyć. Tak samo z dashboardem spinającym wszystkie systemy: ładny wykres na zepsutych danych to wciąż zepsute dane, tylko droższe.
I nie zgadzaj się na raport, w którym ktoś co miesiąc ręcznie poprawia liczby w arkuszu. To koszt, który wraca w każdym cyklu, a przyczyna zostaje nietknięta.
Która liczba jest prawdziwa
Do rozliczania pieniędzy prawdziwy jest panel sklepu, po odjęciu anulacji i zwrotów. To jedyne miejsce, w którym zamówienie ma numer, kwotę i konsekwencje księgowe. Żaden system reklamowy nie dowie się sam z siebie, że towar wrócił po dwóch tygodniach.
Do decyzji o stawkach i budżecie prawdziwe są dane w Google Ads. Nie dlatego, że są dokładniejsze, tylko dlatego, że na nich uczy się system licytacji. Jeśli kampania ma optymalizować się pod zakupy, musi widzieć zakupy: policzone raz i przypisane do właściwego kliknięcia. Karmiona mieszanką zakupów i zapisów do newslettera nauczy się skutecznie kupować zapisy.
GA4 zostaje do porównywania kanałów między sobą i do oglądania ścieżki, a nie do rozliczeń. Trzy liczby mogą spokojnie żyć obok siebie, pod warunkiem że wiesz, czym się różnią, i że ta różnica nie skacze z miesiąca na miesiąc.
Co z tym zrobić
- Otwórz listę działań konwersji w Google Ads i zostaw zakup jako jedyny cel główny, resztę przenieś do celów dodatkowych.
- Porównaj jeden tydzień zamówień jeden do jednego: identyfikatory transakcji z GA4 kontra numery zamówień w sklepie, i wypisz te, które się powtarzają lub których brakuje.
- Sprawdź, czy zakup nie jest liczony dwa razy - import konwersji z GA4 i osobny tag na stronie podziękowania to najczęstsza para.
- Oznacz parametrami UTM wszystko, co wysyłasz poza reklamami: newsletter, linki z profili, kody QR. Automatycznego tagowania w Google Ads nie ruszaj.
- Zanim zmienisz budżet, ustal jedno źródło prawdy o przychodzie i trzymaj się go w każdym raporcie.
