Zdarzenia widżetu rezerwacji na Państwa stronie

Widżet informuje stronę, kiedy się otwiera, na którym ekranie jest gość, co wybiera i kiedy rezerwuje. Te zdarzenia window pozwalają zbudować lejek, wyświetlić komunikat lub przekazać dane do dowolnego narzędzia analitycznego.

7 min czytania Marketing, śledzenie i integracje Zaktualizowano 12.09.2026

Gdy widżet rezerwacji jest już na Państwa stronie, informuje ją o tym, co robi w nim gość: o otwarciu i zamknięciu panelu, każdym ekranie rezerwacji, każdej odpowiedzi i samej rezerwacji. Każda z tych informacji to zdarzenie przeglądarki na obiekcie window, więc programista — lub osoba zajmująca się Państwa Menedżerem tagów Google — może zbudować lejek rezerwacji, zmienić stronę po dokonaniu rezerwacji albo przesłać kolejne kroki do dowolnego narzędzia analitycznego.

Zdarzenia

ZdarzenieKiedy jest wysyłaneCo dodaje event.detail
taptime:openOtwiera się pływający panel rezerwacji. Formularz osadzony jest zawsze otwarty, więc nigdy go nie wysyła.—
taptime:closePływający panel się zamyka, niezależnie od tego, jak gość go zamknie.—
taptime:stepWyświetla się ekran rezerwacji.step, step_index, step_count
taptime:choiceGość odpowiada na pytanie na ekranie.step, field, value, label
taptime:bookingZostaje złożona rezerwacja.confirmed, booking_id, event_id, party_size, service_name, value, currency
taptime:eventKażde z powyższych, po raz drugi.event — nazwa powtarzanego zdarzenia: open, close, step, choice lub booking

Każde zdarzenie przenosi swoje dane w event.detail. Dwa pola są zawsze obecne: company — wartość data-company z kodu do osadzenia — oraz booking_type: reservation dla stolików, appointment dla usług.

Nasłuchiwanie zdarzenia

Na tej samej stronie co widżet należy dodać skrypt z window.addEventListener i nazwą zdarzenia. Może być umieszczony przed kodem do osadzenia lub po nim. Ten skrypt ukrywa baner „Zarezerwuj teraz” po potwierdzeniu rezerwacji:

Ukrycie banera po dokonaniu rezerwacji
<script>
  window.addEventListener('taptime:booking', function (event) {
    if (event.detail.confirmed) {
      document.getElementById('book-banner').hidden = true;
    }
  });
</script>

confirmed ma wartość true, gdy rezerwacja jest potwierdzona od razu, i false, gdy jest to prośba, którą zespół musi jeszcze zaakceptować. value wraz z currency to cena usługi w przypadku wizyty lub wartość rezerwacji ustawiona do śledzenia konwersji w przypadku stolika — oraz null, gdy nie ma żadnej z nich.

Ekrany i odpowiedzi

taptime:step podaje nazwę ekranu w detail.step. To, które ekrany zobaczy gość, zależy od tego, co rezerwuje, i od Państwa ustawień:

  • location — gość wybiera jeden z Państwa lokali. Tylko gdy jest ich kilka, a widżet nie jest przypisany do jednego.
  • party — liczba gości. Tylko stoliki.
  • service i specialist — co zarezerwować i u kogo. Tylko wizyty.
  • when — dzień i godzina.
  • seating, zone i table — wewnątrz lub na zewnątrz, strefa sali, konkretny stolik. Tylko stoliki i tylko włączone przez Państwa opcje.
  • details — imię i nazwisko oraz dane kontaktowe gościa.
  • done — ekran potwierdzenia po złożeniu rezerwacji.

step_index i step_count to liczby, które gość widzi u góry formularza, np. „2 z 5”. Lista lokali i ekran potwierdzenia nie są numerowane, więc tam oba pola mają wartość null. Liczba ekranów zależy od ustawień, dlatego lepiej sprawdzać nazwę kroku niż jego numer.

taptime:choice podaje nazwę odpowiedzi w detail.field: branchId, partySize, date, time, seating, zoneId, tableId, serviceId lub specialistId. detail.value to wybrana wartość — liczba, identyfikator, data w formacie 2026-09-18 lub godzina w formacie 2026-09-18 19:30 — a detail.label to tekst, który gość widział na przycisku, np. nazwa usługi lub lokalu. Wybór opcji „dowolny” wysyła wartość null.

Przesyłanie wszystkich zdarzeń do Menedżera tagów Google

Jeden detektor na taptime:event przechwytuje je wszystkie. Poniższy skrypt przesyła każde z nich do dataLayer jako taptime_open, taptime_step, taptime_choice itd., razem z polami detail. Można go wkleić do tagu Niestandardowy kod HTML uruchamianego na wszystkich stronach albo bezpośrednio na stronę. Następnie reguły, zmienne i lejek buduje się w Menedżerze tagów, bez ponownego modyfikowania strony.

Wszystkie zdarzenia widżetu w dataLayer
<script>
  window.dataLayer = window.dataLayer || [];
  window.addEventListener('taptime:event', function (event) {
    window.dataLayer.push(Object.assign({ event: 'taptime_' + event.detail.event }, event.detail));
  });
</script>

Więcej przykładów

Przesyłanie każdego ekranu do Google Analytics 4 jako osobnego zdarzenia, aby w eksploracji ścieżki zobaczyć, gdzie goście rezygnują. Wymaga GA4 zainstalowanego na stronie przez gtag.js:

Lejek rezerwacji w Google Analytics 4
<script>
  window.addEventListener('taptime:step', function (event) {
    if (typeof gtag !== 'function') return;
    gtag('event', 'booking_step', {
      step: event.detail.step,
      step_index: event.detail.step_index,
      booking_type: event.detail.booking_type
    });
  });
</script>

Zaproponowanie innego sposobu rezerwacji, gdy gość zamknie panel bez rezerwacji — tutaj przez pokazanie ukrytego bloku „Zadzwoń do nas”:

Numer telefonu po zamknięciu panelu bez rezerwacji
<script>
  var booked = false;
  window.addEventListener('taptime:booking', function () {
    booked = true;
  });
  window.addEventListener('taptime:close', function () {
    if (!booked) {
      document.getElementById('call-us').hidden = false;
    }
  });
</script>

Sprawdzenie działania

  1. 1
    Otwórz opublikowaną stronę

    Wiele kreatorów stron nie uruchamia własnego kodu w edytorze, dlatego należy użyć strony na żywo.

  2. 2
    Otwórz konsolę przeglądarki

    Kliknij stronę prawym przyciskiem myszy, wybierz Zbadaj, a następnie otwórz kartę Konsola.

  3. 3
    Wklej poniższą linijkę i naciśnij Enter

    Wypisuje każde zdarzenie widżetu w chwili jego wystąpienia. Działa do przeładowania strony.

  4. 4
    Przeklikaj testową rezerwację

    Każdy ekran i każda odpowiedź pojawią się w konsoli, a na końcu rezerwacja. Testową rezerwację należy potem anulować na tablicy.

window.addEventListener('taptime:event', function (event) { console.log(event.detail.event, event.detail); });

Często zadawane pytania

Czy trzeba włączyć zdarzenia?

Nie. Są wysyłane zawsze, gdy widżet jest na stronie. Przełącznik „Przekazuj rezerwacje do tagów mojej strony” steruje jedynie automatycznym wysyłaniem do dataLayer oraz GA4 i Meta Pixel zainstalowanymi na Państwa stronie.

Czy ze zdarzenia można odczytać imię, telefon lub e-mail gościa?

Nie. Zdarzenia zawierają identyfikatory, godziny, liczbę gości, usługę i wartość rezerwacji — nigdy dane osoby rezerwującej. Dane gości są dostępne w panelu, przez webhook lub REST API.

Mój detektor nigdy się nie uruchamia.

Proszę sprawdzić, czy skrypt jest na tej samej stronie co widżet i czy nazwa zdarzenia jest zapisana dokładnie, razem z dwukropkiem: taptime:step. W Menedżerze tagów tag Niestandardowy kod HTML musi być opublikowany i uruchamiany na wszystkich stronach. Warto otworzyć konsolę i użyć powyższej linijki testowej, aby sprawdzić, czy zdarzenia w ogóle docierają.

Czy mój skrypt może otworzyć lub zamknąć widżet?

Tak. TapTime.open() otwiera pływający panel lub przewija do formularza osadzonego, a TapTime.close() go zamyka. Przy dwóch firmach na jednej stronie TapTime.open('your-company') otwiera widżet wskazanej firmy.

Czy ten artykuł był pomocny?
Nie znaleźli Państwo odpowiedzi?

Prosimy napisać do nas i podać stronę, na której Państwo byli. Każdą wiadomość czyta człowiek i odpowiada w języku, w którym została napisana.

Napisz do nas