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.
Najczęstsza rozmowa w projektach nastawionych na pozyskiwanie kontaktów wygląda tak: w panelu Google Ads koszt konwersji spada, a dział sprzedaży twierdzi, że jest coraz gorzej. Obie strony mają rację. Konto liczy wysłane formularze, sprzedaż liczy rozmowy, które miały sens.
Dopóki te dwa światy się nie spotkają, algorytm optymalizuje pod coś, co tylko z pozoru jest celem biznesowym. Uczy się przynosić zgłoszenia najłatwiejsze do zdobycia — bo dokładnie o to go poprosiłem. Nikt mu nie powiedział, że połowa z nich to zapytania o rzecz, której nie sprzedajemy.
Kwalifikacja offline jest odpowiedzią na ten problem: zamiast zgadywać, przekazuję do Google Ads informację z CRM-u o tym, co się z każdym zgłoszeniem stało. Poniżej opisuję, jak to wdrażam, w jakiej kolejności i gdzie takie projekty najczęściej się przewracają — bo przewracają się rzadko na technologii, a często na organizacji.
W większości kont, które przejmuję, wszystkie zgłoszenia mają tę samą wartość albo nie mają żadnej. To znaczy, że dla systemu licytacji zapytanie od firmy gotowej podpisać umowę i przypadkowe kliknięcie w formularz przez osobę z innego kraju są dokładnie tym samym zdarzeniem.
Skutki widać po kilku tygodniach działania automatycznych stawek. Ruch przesuwa się w stronę zapytań ogólnych i tanich, bo tam łatwiej o formularz. Koszt konwersji w raporcie ładnie spada. Liczba realnych szans sprzedażowych stoi w miejscu albo maleje.
To nie jest wina algorytmu. To wina celu, który dostał. Kwalifikacja offline zmienia ten cel: system przestaje maksymalizować liczbę formularzy, a zaczyna maksymalizować liczbę zgłoszeń, które sprzedaż uznała za wartościowe.
Warunek jest jeden, ale twardy: ktoś w firmie musi konsekwentnie oznaczać leady w CRM-ie. Bez tego cały projekt jest ćwiczeniem technicznym bez efektu.
Sposoby są dwa i różnią się tym, co identyfikuje kliknięcie.
Pierwsza metoda jest dokładniejsza, ale krucha: wystarczy przekierowanie gubiące parametry w adresie, formularz na zewnętrznej domenie albo lead z rozmowy telefonicznej i identyfikatora nie ma. Druga nie zależy od adresu strony i obejmuje przypadki, w których użytkownik wrócił później z innego urządzenia, ale dopasowanie nigdy nie będzie stuprocentowe.
W praktyce najczęściej wdrażam obie równolegle, z pilnowaniem jednej rzeczy: to samo zdarzenie nie może trafić do konta dwa razy pod dwiema nazwami konwersji. To najprostszy sposób, żeby zafałszować cały pomiar.
Ta część decyduje o powodzeniu i nie jest zadaniem technicznym. Siadam z osobą odpowiedzialną za sprzedaż i ustalamy możliwie krótką listę etapów.
Zwykle wychodzą trzy albo cztery: zgłoszenie przyjęte, kontakt potwierdzony i uznany za sensowny, oferta wysłana, umowa. Ważne, żeby każdy etap spełniał trzy warunki: jest jednoznaczny, ktoś konkretny jest odpowiedzialny za jego oznaczenie i pojawia się na tyle często, żeby dostarczał danych.
Etap „lead zakwalifikowany” musi mieć spisaną definicję. Nie „wygląda obiecująco”, ale konkretne kryteria — czy to właściwa branża, czy skala działalności mieści się w progu, czy zapytanie dotyczy usługi, którą faktycznie świadczymy. Bez tego dwie osoby w tym samym zespole oznaczą te same zgłoszenia różnie i sygnał wysyłany do Google Ads będzie szumem.
Osobno ustalam, co dzieje się ze zgłoszeniami odrzuconymi. Zależnie od skali albo nie wysyłam ich wcale, albo wysyłam z wartością zerową jako informację negatywną. Ta druga opcja jest sensowna tylko przy dużym wolumenie.
Do konta trafiają nie tylko zdarzenia, ale i wartości — i tu popełnia się najwięcej błędów.
Nie wpisuję potencjalnej wartości kontraktu do zgłoszenia. Wpisuję wartość oczekiwaną, czyli wartość transakcji przemnożoną przez prawdopodobieństwo jej domknięcia z tego etapu. Jeśli z dziesięciu ofert wychodzi jedna umowa o określonej wartości, to etap „oferta wysłana” jest wart jedną dziesiątą tej kwoty, a nie całość.
Skala wartości musi być spójna między wszystkimi konwersjami w koncie. Wystarczy jedna konwersja z wartością o rząd wielkości wyższą niż reszta, żeby licytacja przestała mieć związek z rzeczywistością.
Jeżeli firma nie zna swoich współczynników domykania, zaczynam prościej: jedna konwersja główna, „lead zakwalifikowany”, ze stałą wartością, wszystkie pozostałe zdarzenia obserwacyjne. Prosty model, który działa, jest wart więcej niż rozbudowany, którego nikt nie utrzyma.
Kolejność, którą stosuję, wygląda tak.
Najpierw definiuję w koncie nowe akcje konwersji dla etapów, jako import z innych źródeł, i na razie pozostawiam je jako pomocnicze. Potem sprawdzam, czy identyfikator kliknięcia trafia do formularza i przez cały łańcuch dochodzi do CRM-u — z uwzględnieniem wszystkich ścieżek, także tych przez stronę pośrednią.
Następnie ustawiam przepływ danych w drugą stronę. Przy małej skali wystarczy ręczne wgranie arkusza raz w tygodniu i to jest w pełni sensowny start, bo pozwala zobaczyć jakość dopasowania bez pisania integracji. Przy większej skali robi to integracja albo automatyzacja z CRM-u, uruchamiana przy zmianie etapu.
Potem obserwuję raporty dopasowania: ile wgranych wierszy zostało przyjętych i ile odrzuconych, z jakim powodem. Dopóki odrzuceń jest dużo, nie zmieniam niczego w kampaniach. Najczęstsze przyczyny to nieprawidłowy format daty, strefa czasowa konta, identyfikator sprzed okna czasowego i pusta wartość.
Dopiero gdy dane napływają stabilnie przez kilka tygodni, przełączam konwersję etapową na główną i zmieniam cel strategii stawek. To jest ten moment, w którym zmienia się zachowanie kampanii, i dlatego nie robię tego równocześnie z innymi zmianami.
Ograniczenia czasowe są tu realną barierą, o której trzeba wiedzieć przed startem.
Konwersję można przypisać do kliknięcia tylko w wyznaczonym oknie — dla importu z identyfikatorem kliknięcia jest to maksymalnie dziewięćdziesiąt dni. Jeśli proces sprzedaży trwa u Ciebie pół roku, umowa nie ma szans trafić do konta. Dlatego jako cel dla algorytmu wybieram etap wczesny, ale już wartościujący, a nie podpis.
Drugie następstwo dotyczy oceny wyników. Dane z ostatnich tygodni są zawsze niepełne, bo część zgłoszeń jeszcze nie została oceniona. Porównywanie ostatnich czternastu dni z poprzednimi to najprostszy sposób, żeby wyciągnąć błędny wniosek. Ustalam okno raportowe z uwzględnieniem typowego opóźnienia i trzymam się go.
Trzecia rzecz: system uczy się z opóźnieniem odpowiadającym temu procesowi. Po zmianie celu daję kampaniom wyraźnie więcej czasu niż standardowe dwa tygodnie, bo tyle wynosi tu pełna pętla informacji.
Przy metodzie opartej na danych z formularza pracuję na danych osobowych i traktuję to poważnie.
Adres e-mail przekazywany jest w postaci skróconej kryptograficznie, ale to nie zwalnia z obowiązków. Musi istnieć podstawa prawna, informacja w polityce prywatności o przekazywaniu danych w celach marketingowych oraz działający mechanizm zgód — także w warstwie technicznej, bo wymagania trybu uzyskiwania zgody obowiązują w Europie od zeszłego roku i dotyczą również tego przepływu.
Trzy zasady, których się trzymam. Nie wysyłam nic, na co użytkownik się nie zgodził. Nie mieszam danych z formularzy z bazami kupionymi albo pozyskanymi z innego źródła. I sprawdzam z osobą odpowiedzialną za ochronę danych, czy rejestr czynności przetwarzania obejmuje ten nowy przepływ.
Ten punkt bywa traktowany jako formalność, a bywa najdroższym elementem całego projektu, jeśli zostanie pominięty.
Po prawidłowym wdrożeniu zmienia się nie tyle wysokość kosztu konwersji, ile jego znaczenie. Liczba zgłoszeń w raporcie zwykle spada, bo raport przestaje pokazywać wszystko, a zaczyna pokazywać to, co ma wartość. Trzeba to zakomunikować przed zmianą, inaczej pierwszy raport po przełączeniu wygląda jak katastrofa.
Zmienia się też rozkład ruchu: kampanie zaczynają częściej wygrywać aukcje na zapytania bardziej konkretne i droższe, bo tam trafiają się zgłoszenia, które sprzedaż ocenia wysoko.
Czego to nie naprawi: złej oferty, nieodbieranego telefonu, formularza wymagającego dziesięciu pól. Kwalifikacja offline pokazuje prawdę o jakości ruchu — decyzje, co z tą prawdą zrobić, pozostają po stronie firmy.
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 |