Modelowane listy odbiorców nie zawierają konkretnych osób, tylko prawdopodobieństwa. Wyjaśniam, jak powstają, gdzie ich szukać w panelu i jak czytać ich raporty.
Pytanie „co lepiej działa w B2C — Google Ads czy Meta Ads” słyszę na prawie każdym pierwszym spotkaniu. Zwykle towarzyszy mu zrzut ekranu z dwóch paneli obok siebie i gotowa teza, że jeden kanał dowozi, a drugi przepala budżet.
Problem polega na tym, że te dwie liczby na zrzucie nie są tą samą liczbą. Google Ads i Meta liczą konwersje w różnych okresach, przypisują je do różnych momentów kontaktu z reklamą i po ostatnich dwóch latach zmian w prywatności robią to na różnym poziomie kompletności danych. Zestawione w jednej tabeli wyglądają porównywalnie i właśnie dlatego są tak mylące.
W tym tekście nie znajdziesz rozstrzygnięcia, który kanał wygrywa. Znajdziesz opis tego, co dokładnie mierzy każdy z nich, których metryk nie wolno stawiać obok siebie i jak sam podchodzę do podziału budżetu w sklepie czy usłudze sprzedawanej konsumentowi.
Google Ads w części wyszukiwarkowej odpowiada na popyt, który już istnieje. Ktoś wpisał zapytanie, więc jest w jakimś stopniu świadomy potrzeby, a moim zadaniem jest znaleźć się w tym momencie i nie przepłacić za kliknięcie. Meta działa odwrotnie: nikt nie wchodzi na Facebooka ani Instagrama z zamiarem kupienia mojego produktu, więc kreacja musi ten zamiar wywołać.
To nie są konkurenci wykonujący to samo zadanie, tylko dwa etapy tej samej ścieżki, które w panelach raportują się identycznie — jako konwersje z przypisanym kosztem. Kanał odpowiadający na istniejący popyt prawie zawsze pokaże lepszy ROAS, bo zbiera konwersje bliżej decyzji. Kanał wzbudzający popyt pokaże gorszy, bo część efektu jego pracy domknie się później i gdzieś indziej — często właśnie w wyszukiwarce, na zapytaniu o nazwę marki.
Jeśli więc porównuję je wprost i wyłączam ten „słabszy”, zwykle po kilku tygodniach widzę spadek również w tym „lepszym”. To najczęstsza pułapka w kampaniach B2C i widzę ją na większości kont, które przejmuję po optymalizacji prowadzonej wyłącznie po ROAS z panelu.
Google Ads przypisuje konwersję do dnia kliknięcia, nie do dnia zakupu. Jeśli ktoś kliknął reklamę w poniedziałek i kupił w czwartek, transakcja wskoczy do poniedziałkowego wiersza raportu, czasem kilka dni po fakcie. Dlatego świeże dane z ostatnich dni prawie zawsze wyglądają gorzej, niż wyglądać będą po tygodniu.
Domyślne okno konwersji dla działań z witryny to trzydzieści dni od kliknięcia, ale da się je skrócić lub wydłużyć w ustawieniach konwersji. Do tego dochodzi model atrybucji: przy modelu opartym na danych jedna transakcja rozkłada się na cząstki między kilka kliknięć, więc w raporcie zobaczysz wartości niecałkowite. Osobno dochodzą konwersje modelowane, którymi Google uzupełnia braki wynikające z ograniczeń plików cookie i zgód — nie ma przełącznika, który to wyłącza, i nie rozpiszesz ich na pojedyncze zamówienia.
Praktyczny wniosek: liczba konwersji w Google Ads to liczba przypisana do kliknięć z danego okresu, a nie liczba zamówień, które sklep dostał w tym okresie. Te dwie rzeczy zbiegają się tylko przy bardzo krótkiej ścieżce zakupowej.
Meta domyślnie raportuje w oknie siedmiu dni od kliknięcia i jednego dnia od wyświetlenia. Drugi element jest źródłem większości nieporozumień, bo obejmuje osoby, które reklamy nawet nie kliknęły — zobaczyły ją i weszły na stronę inną drogą. Można ten składnik wyłączyć w porównaniu okien atrybucji i przy pierwszym audycie zawsze to robię, żeby zobaczyć, ile zostaje z wyniku.
Po wprowadzeniu przez Apple wymuszonej zgody na śledzenie w iOS 14.5 Meta straciła część sygnału z urządzeń mobilnych i zastąpiła go dwoma mechanizmami. Pierwszy to agregowany pomiar zdarzeń, w którym na jedną domenę przypada osiem skonfigurowanych zdarzeń konwersji ustawionych w kolejności priorytetu — wszystko poza tą ósemką nie wraca do panelu z ruchu iOS. Drugi to modelowanie, przy którym dane dla części ruchu pojawiają się z opóźnieniem i w postaci szacunku.
Dlatego zanim cokolwiek porównam, sprawdzam, czy konto ma wdrożone Conversions API obok piksela i czy przekazuje wartość zamówienia, a nie samo zdarzenie zakupu. Bez tego panel Meta pokazuje obraz z dziurą, której rozmiaru nie znam.
Kilka par liczb wygląda na porównywalne i nie jest. To na nich najczęściej wykłada się ocena kanałów.
Jedyna liczba, która jest tą samą liczbą po obu stronach, to wydatek. Od niego zaczynam każde zestawienie.
Wybieram jedno źródło prawdy o sprzedaży i jest to zaplecze sklepu albo system klienta, nie panel reklamowy. Panele traktuję jako źródło informacji o koszcie i o ruchu, nie o przychodzie.
Potem pilnuję trzech rzeczy. Po pierwsze, oznaczenia kampanii — parametry UTM muszą być spójne po obu stronach, bo bez tego w GA4 dostanę dwie różne konwencje nazw i żadnego wspólnego mianownika. Po drugie, jednego okresu i jednej reguły przypisania dla obu kanałów, choćby najprostszego ostatniego kliknięcia. Po trzecie, rozdzielenia kampanii brandowych od pozostałych w wyszukiwarce, bo zapytania o nazwę marki są w dużej części efektem pracy innych kanałów.
Do tego prowadzę prostą tabelę na poziomie miesiąca: wydatek z każdego panelu, przychód z zaplecza sklepu, liczba zamówień i udział ruchu z każdego źródła. Nie jest to atrybucja i nie udaję, że jest. Ale pozwala zauważyć rzecz najważniejszą — czy rosnący wydatek w jednym kanale przekłada się na wzrost sprzedaży całego sklepu, czy tylko na przesunięcie konwersji między panelami.
W Google Ads dla sklepu punktem wyjścia jest Performance Max z poprawnie ułożonym plikiem produktowym w Merchant Center — od zeszłego lata to następca Smart Shopping i w praktyce główny wolumen sprzedaży z Google. Obok tego trzymam kampanię w wyszukiwarce na frazy generyczne, osobną kampanię brandową dla kontroli i, jeśli budżet pozwala, kampanię wideo na górę lejka.
Po stronie Meta w B2C bazą są kampanie z celem sprzedażowym korzystające z katalogu produktów, w tym Advantage+ Shopping, które Meta udostępniła w drugiej połowie zeszłego roku i która przenosi większość decyzji o targetowaniu i kreacji na algorytm. Do tego retargeting oparty na zdarzeniach z piksela i szerokie targetowanie z podpowiedziami po stronie systemu — po ubytku sygnału z iOS wąskie grupy odbiorców przestały być tak skuteczne, jak były wcześniej.
Oba te główne typy kampanii oddają dużą część sterowania algorytmowi. To znaczy, że jakość danych wejściowych i pliku produktowego waży dziś więcej niż ustawienia, które da się przestawić w panelu.
Nie mam gotowej proporcji budżetu i nie wierzę w uniwersalne podziały procentowe. Zależy to od tego, jak rozpoznawalna jest marka, jak długo klient się decyduje i czy produkt da się sprzedać z jednego kontaktu.
Jeśli chcę wiedzieć, ile naprawdę wnosi dany kanał, jedynym sensownym narzędziem jest test przyrostowości, a nie porównanie paneli. Najprościej robi się go geograficznie: wyłączam kanał albo mocno ograniczam go w wybranych regionach, utrzymuję resztę bez zmian i po kilku tygodniach porównuję sprzedaż całkowitą między grupami. Test musi trwać dłużej niż ścieżka zakupowa i nie może pokrywać się z promocją ani sezonowym szczytem, bo wtedy nie zmierzy niczego.
Taki test jest niewygodny — kosztuje sprzedaż w grupie kontrolnej i wymaga cierpliwości. Ale to jedyna procedura, która odpowiada na pytanie zadane na początku. Wszystko inne to porównywanie dwóch różnych systemów liczenia i wyciąganie z tego wniosku, że jeden z nich się myli.
Moje doświadczenie z kontami B2C jest takie, że po rzetelnym teście zwykle okazuje się, iż oba kanały są potrzebne, a spór dotyczy nie tego, który wyłączyć, lecz proporcji i tego, komu przypisać wspólną zasługę.
Używamy plików cookies, aby ułatwić Ci nawigację oraz wykonywanie określonych funkcji. Szczegółowe informacje o wszystkich plikach cookies znajdziesz w każdej kategorii zgody poniżej.
Pliki cookies oznaczone jako "Niezbędne" są przechowywane w Twojej przeglądarce, ponieważ są one kluczowe dla zapewnienia podstawowych funkcji strony.
Używamy również plików cookies firm trzecich, które pomagają nam analizować, w jaki sposób korzystasz z tej strony, zapamiętują Twoje preferencje oraz dostarczają treści i reklamy odpowiednie dla Ciebie. Te pliki cookies będą przechowywane w Twojej przeglądarce tylko za Twoją uprzednią zgodą.
Możesz zdecydować, czy chcesz włączyć lub wyłączyć niektóre bądź wszystkie te pliki cookies, jednak wyłączenie niektórych z nich może wpłynąć na Twoje doświadczenia podczas przeglądania strony.
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| __cf_bm | 13 minutes | Cloudflare bot management — distinguishes humans from bots. |
| rc::* | Persistent | Google reCAPTCHA — localStorage holding anti-bot challenge state. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| wpEmojiSettingsSupports | Session | WordPress — sessionStorage flag caching whether the browser can render emoji (feature detection). |
| ytidb* | Persistent | YouTube — IndexedDB storing playback/search state for embedded videos. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| _ga_* | 400 days | Google Analytics 4 — persists session state per property. |
| _ga | 400 days | Google Analytics — distinguishes unique users via a client id. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| NID | 183 days | Google — stores preferences for personalized ads. |
| fr | 90 days | Meta — encrypted Facebook id and browser id for ads. |
| _gcl_au | 90 days | Google AdSense/Ads — experiments with advertising efficiency (conversion linker). |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| __Secure-YNID | 180 days | |
| YSC | Session | |
| __Secure-ROLLOUT_TOKEN | 180 days | |
| VISITOR_INFO1_LIVE | 180 days | |
| VISITOR_PRIVACY_METADATA | 180 days | |
| datr | 400 days | |
| sb | 400 days | |
| wd | 7 days |