Прихващайте събитията от уиджета за резервации в сайта си

Уиджетът съобщава на страницата ви кога се отваря, на кой екран е гостът, какво избира и кога резервира. С тези събития на window можете да изградите фуния, да покажете съобщение или да ги изпращате към всеки инструмент за анализи.

7 мин четене Маркетинг, проследяване и интеграции Обновено на 12.09.2026

Щом уиджетът за резервации е на сайта ви, той съобщава на страницата какво прави гостът в него: отваряне и затваряне на панела, всеки екран от резервацията, всеки отговор и самата резервация. Всяко от тях е браузърно събитие на window, така че вашият разработчик — или този, който поддържа Google Tag Manager — може да изгради фуния на резервациите, да промени страницата, когато някой резервира, или да изпраща стъпките към всеки инструмент за анализи.

Събитията

СъбитиеКога се задействаКакво добавя event.detail
taptime:openПлаващият панел за резервации се отваря. Вградената форма е винаги отворена, затова никога не го изпраща.
taptime:closeПлаващият панел се затваря, по какъвто и начин да го затвори гостът.
taptime:stepПоказва се екран от резервацията.step, step_index, step_count
taptime:choiceГостът отговаря на въпрос на екрана.step, field, value, label
taptime:bookingНаправена е резервация.confirmed, booking_id, event_id, party_size, service_name, value, currency
taptime:eventВсяко от горните събития, още веднъж.event — името на събитието, което повтаря: open, close, step, choice или booking

Всяко събитие носи данните си в event.detail. Две полета присъстват винаги: company — стойността на data-company от кода за вграждане — и booking_type: reservation за маси, appointment за услуги.

Прихващане на събитие

Добавете скрипт на същата страница, където е уиджетът, с window.addEventListener и името на събитието. Може да е преди или след кода за вграждане. Този скрипт скрива банер „Резервирай сега“, щом резервацията бъде потвърдена:

Скриване на банер, след като гостът е резервирал
<script>
  window.addEventListener('taptime:booking', function (event) {
    if (event.detail.confirmed) {
      document.getElementById('book-banner').hidden = true;
    }
  });
</script>

confirmed е true, когато резервацията е потвърдена веднага, и false, когато е заявка, която екипът ви тепърва трябва да приеме. value заедно с currency е цената на услугата при час или стойността на резервация, зададена за проследяване на конверсиите, при маса — и null, когато няма нито едното, нито другото.

Екрани и отговори

taptime:step посочва екрана в detail.step. Кои екрани вижда гостът, зависи от това какво резервира и от настройките ви:

  • location — гостът избира един от обектите ви. Само когато имате няколко и уиджетът не е обвързан с един от тях.
  • party — колко гости. Само за маси.
  • service и specialist — какво се резервира и при кого. Само за часове.
  • when — денят и часът.
  • seating, zone и table — вътре или навън, част от залата, конкретна маса. Само за маси и само изборите, които сте включили.
  • details — името и данните за връзка на госта.
  • done — екранът с потвърждението, след като резервацията е направена.

step_index и step_count са номерата, които гостът вижда в горната част на формата, например „2 от 5“. Списъкът с обекти и екранът с потвърждението не са номерирани, затова там и двете са null. Тъй като броят на екраните зависи от настройките ви, проверявайте името на стъпката, а не номера ѝ.

taptime:choice посочва отговора в detail.field: branchId, partySize, date, time, seating, zoneId, tableId, serviceId или specialistId. detail.value е избраното — число, ID, дата във вида 2026-09-18 или час във вида 2026-09-18 19:30, — а detail.label е текстът, който гостът е прочел на бутона, например име на услуга или на обект. Изборът „без значение“ изпраща стойност null.

Изпращане на всички събития към Google Tag Manager

Един слушател на taptime:event прихваща всички тях. Скриптът по-долу изпраща всяко събитие към dataLayer като taptime_open, taptime_step, taptime_choice и т.н., заедно с полетата от detail. Поставете го в таг „Custom HTML“ (персонализиран HTML), който се задейства на всички страници, или направо в сайта си. След това изграждайте тригери, променливи и фуния в Tag Manager, без да докосвате сайта отново.

Всички събития на уиджета в 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>

Още примери

Изпращайте всеки екран към Google Analytics 4 като отделно събитие, за да видите във фуниево проучване (funnel exploration) къде гостите се отказват. За целта GA4 трябва да е инсталиран на страницата ви с gtag.js:

Фуния на резервациите в 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>

Предложете друг начин за резервация, когато гост затвори панела, без да резервира — тук чрез показване на скрит блок „Обадете ни се“:

Показване на телефонен номер, когато панелът се затвори без резервация
<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>

Проверете дали работи

  1. 1
    Отворете публикувания си сайт

    Много конструктори на сайтове не изпълняват собствен код в редактора си, затова използвайте живия сайт.

  2. 2
    Отворете конзолата на браузъра

    Щракнете с десния бутон върху страницата, изберете „Проверка“ (Inspect) и отворете раздела Console.

  3. 3
    Поставете реда по-долу и натиснете Enter

    Той извежда всяко събитие на уиджета в момента, в който се случи. Действа, докато не презаредите страницата.

  4. 4
    Минете през тестова резервация

    Всеки екран и отговор се появяват в конзолата, а след тях и резервацията. След това откажете тестовата резервация от борда си.

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

Често задавани въпроси

Трябва ли да включа събитията?

Не. Те се задействат винаги, когато уиджетът е на страницата. Превключвателят „Отчитай резервациите към таговете на сайта ми“ управлява само автоматичното изпращане към dataLayer и собствените GA4 и Meta Pixel на страницата ви.

Мога ли да прочета от събитие името, телефона или имейла на госта?

Не. Събитията носят ID, часове, броя гости, услугата и стойността на резервацията — никога кой резервира. За данните на госта използвайте панела, уебхук или REST API.

Слушателят ми никога не се изпълнява.

Проверете дали скриптът е на същата страница като уиджета и дали името на събитието е изписано точно, заедно с двоеточието: taptime:step. В Tag Manager се уверете, че тагът „Custom HTML“ е публикуван и се задейства на всички страници. Отворете конзолата и опитайте тестовия ред по-горе, за да видите дали изобщо пристигат събития.

Може ли собственият ми скрипт да отваря или затваря уиджета?

Да. TapTime.open() отваря плаващия панел или превърта до вградената форма, а TapTime.close() го затваря. При две фирми на една страница TapTime.open('your-company') отваря уиджета на тази фирма.

Беше ли полезна тази статия?
Това не отговори ли на въпроса ви?

Пишете ни и посочете страницата, на която сте били. Всяко съобщение се чете от човек и отговорът идва на езика, на който сте писали.

Пишете ни