Punkt wyjścia: 20% od każdej rezerwacji szło do OTA
Klient: hotel butikowy na Mazurach, kilkanaście pokoi, silny sezon letni i weekendowy ruch całoroczny dzięki spa i restauracji. Większość rezerwacji trafiała przez platformy typu Booking.com i podobne — z prowizją rzędu 18–20% od każdej rezerwacji. Hotel miał własną stronę z systemem rezerwacji online, ale generowała ułamek ruchu, jaki szedł przez OTA.
Właściciel chciał zwiększyć udział rezerwacji bezpośrednich, żeby nie oddawać jednej piątej przychodu pośrednikom. Punktem wyjścia była kampania Google Ads Search uruchomiona kilka miesięcy wcześniej — z niewielkim skutkiem. Zanim zacząłem cokolwiek zmieniać w samych reklamach, sprawdziłem, co się dzieje z ruchem na stronie.
Warto zaznaczyć, że relacja z platformami OTA nie musi być czarno-biała — dla wielu obiektów to wciąż ważne źródło ruchu, szczególnie w budowaniu widoczności wśród nowych gości. Cel tego wdrożenia nie polegał na całkowitym odcięciu się od OTA, tylko na zbudowaniu realnej alternatywy dla gości, którzy i tak trafiliby na stronę hotelu wprost — a którzy bez zachęty i tak kończyli rezerwację przez pośrednika, bo strona hotelu nie dawała im wygodnej ścieżki do zrobienia tego samodzielnie.
Dlaczego sama reklama nie wystarczała
Strona hotelu nie miała skonfigurowanego DataLayer ani żadnego sensownego śledzenia zdarzeń rezerwacyjnych. GA4 był wdrożony przez wtyczkę, mierzył tylko podstawowe wyświetlenia stron. Nie było wiadomo, ile osób zaczynało proces rezerwacji i rezygnowało, na którym kroku, ani ile z tych osób i tak kończyło rezerwację przez telefon albo przez OTA po obejrzeniu strony hotelu.
Dodatkowo silnik rezerwacyjny hotelu działał jako osobna aplikacja osadzona w ramce iframe — co samo w sobie utrudnia poprawne śledzenie, bo standardowe metody pomiaru w GA4 nie zawsze widzą, co dzieje się wewnątrz takiej ramki. To dość częsta sytuacja w branży hotelarskiej, gdzie silniki rezerwacyjne dostarczane są przez zewnętrznych dostawców i rzadko są projektowane z myślą o łatwej integracji z narzędziami analitycznymi.
Kampania Google Ads była oceniana wyłącznie po liczbie kliknięć i sesji na stronie — bo nic innego nie było mierzone. Bez danych o tym, co dzieje się w silniku rezerwacyjnym, nie było możliwości powiedzieć, czy reklama przynosi rezerwacje, czy tylko ruch. Zanim zoptymalizujesz kampanię, musisz wiedzieć, co właściwie chcesz zoptymalizować.
Co zmieniłem w GTM i GA4
Pierwszy etap prac nie dotyczył wcale Google Ads — dotyczył pomiaru. Wdrożyłem Google Tag Manager z uporządkowanym DataLayer, obejmującym cały proces rezerwacji: wybór terminu, wybór pokoju, przejście do formularza danych gościa, wpisanie danych płatności, potwierdzenie rezerwacji. Każdy krok stał się osobnym zdarzeniem wysyłanym do DataLayer przez silnik rezerwacyjny, a stamtąd do GA4 jako zdarzenie konwersji lub zdarzenie lejka.
Dopiero po dwóch tygodniach zbierania danych z nowego lejka było jasne, gdzie tracimy potencjalnych gości: 38% osób rezygnowało na etapie wpisywania danych płatności — formularz płatności otwierał się w osobnym oknie, co na urządzeniach mobilnych wyglądało jak błąd strony.
Problem z osadzeniem silnika rezerwacyjnego w ramce iframe rozwiązałem, korzystając z komunikacji między ramką a stroną nadrzędną (window.postMessage) — dostawca silnika rezerwacyjnego udostępniał zdarzenia w tym formacie, wystarczyło je odebrać skryptem na stronie głównej i przekazać dalej do DataLayer. To rozwiązanie, które wcześniej nikt nie sprawdził, bo wymagało przejrzenia dokumentacji technicznej dostawcy, a nie tylko panelu administracyjnego strony.
Dlaczego telefon okazał się ważniejszy, niż zakładaliśmy
Po wdrożeniu śledzenia kliknięć w numer telefonu okazało się, że blisko jedna czwarta wszystkich zapytań o dostępność terminów kończyła się telefonem, a nie formularzem online — szczególnie wśród starszych gości i rezerwacji grupowych. Bez tego śledzenia ta część ruchu byłaby całkowicie niewidoczna w raportach, a kampanie odpowiedzialne za ten ruch wyglądałyby na nieefektywne.
Przebudowa kampanii Search
Z działającym pomiarem mogłem wreszcie ocenić, które frazy i grupy reklam faktycznie prowadzą do rezerwacji, a nie tylko do wizyt na stronie. Podzieliłem kampanię na trzy segmenty intencji:
- Frazy z nazwą hotelu — kampania brandowa, chroniąca przed przechwytywaniem ruchu przez OTA licytujące na nazwę hotelu w wynikach wyszukiwania
- Frazy lokalizacyjne i kategorii — "hotel nad jeziorem Mazury", "hotel ze spa Mazury" — główny segment wzrostowy
- Remarketing dla porzuconych rezerwacji — lista osób, które dotarły do formularza płatności i nie dokończyły procesu, z dedykowanym komunikatem
Strategię licytacji zmieniłem na docelowy ROAS liczony od realnej wartości rezerwacji, a nie od liczby kliknięć — dzięki danym o wartości konwersji zebranym po wdrożeniu GTM. Dodałem też wykluczenia dla fraz związanych z pracą i rekrutacją w hotelu, które wcześniej generowały tani, ale bezużyteczny ruch.
Osobną decyzją było ograniczenie kampanii do konkretnego obszaru geograficznego — mimo że hotel przyjmuje gości z całej Polski, największy realny potencjał konwersji miały osoby szukające noclegu w promieniu kilkugodzinnej podróży samochodem. Kampania kierowana ogólnopolsko generowała więcej kliknięć, ale relatywnie mniej rezerwacji, bo część ruchu przychodziła z regionów, z których podróż na Mazury na krótki pobyt weekendowy była mało realna.
Wyniki
Po naprawieniu formularza płatności na urządzeniach mobilnych i przebudowie kampanii Search, przy tym samym budżecie miesięcznym:
Gdybym zostawił błąd formularza płatności i po prostu zwiększył budżet na kampanię Search, część dodatkowego ruchu i tak by się nie konwertowała. Największy pojedynczy wzrost wyników przyszedł z naprawienia procesu rezerwacji — nie ze zmiany stawek czy fraz kluczowych.
Co robimy dalej
Po ustabilizowaniu wyników przenieśliśmy część uwagi na sezonowość — hotel ma wyraźnie różne wzorce zapytań latem i poza sezonem, więc budżety i komunikaty reklamowe planujemy teraz z wyprzedzeniem pod konkretne okresy, zamiast utrzymywać jeden stały schemat przez cały rok. Testujemy też dodanie kampanii Performance Max jako uzupełnienia kampanii Search — ale dopiero teraz, gdy pomiar konwersji jest wiarygodny i można ocenić jej realny wpływ, a nie tylko liczbę kliknięć.
Checklist — zanim zwiększysz budżet na reklamę dla rezerwacji bezpośrednich
- Czy masz skonfigurowany DataLayer śledzący każdy krok procesu rezerwacji, nie tylko finalną konwersję?
- Czy zdarzenie konwersji przekazuje realną wartość pieniężną rezerwacji do GA4 i Google Ads?
- Czy sprawdziłeś raport lejka, żeby zobaczyć, na którym kroku rezygnuje najwięcej użytkowników?
- Czy masz kampanię brandową chroniącą Twoją nazwę przed przechwytywaniem przez platformy OTA?
- Czy strategia licytacji optymalizuje pod wartość rezerwacji, a nie pod liczbę kliknięć?
- Czy Consent Mode v2 jest wdrożony poprawnie, żeby nie tracić danych o konwersjach?
"Zanim zwiększysz budżet na reklamę, sprawdź, czy strona w ogóle jest w stanie przyjąć rezerwację bez błędów. Reklama nie naprawi zepsutego formularza płatności."
— Wniosek z tego wdrożenia