Pratite događaje vidžeta za rezervacije na svom sajtu

Vidžet javlja vašoj stranici kada se otvori, na kom je ekranu gost, šta bira i kada rezerviše. Pomoću ovih događaja na objektu window napravite levak rezervacija, prikažite poruku ili ih pošaljite u bilo koji alat za analitiku.

7 min čitanja Marketing, praćenje i integracije Ažurirano 12.09.2026

Kada je vidžet za rezervacije na vašem sajtu, on javlja stranici šta gost u njemu radi: otvaranje i zatvaranje panela, svaki ekran rezervacije, svaki odgovor i samu rezervaciju. Svaki od njih je događaj pregledača na objektu window, pa vaš programer — ili onaj ko održava vaš Google Tag Manager — može da napravi levak rezervacija, promeni stranicu kada neko rezerviše ili pošalje korake u bilo koji alat za analitiku.

Događaji

DogađajKada se pokrećeŠta dodaje event.detail
taptime:openOtvara se plutajući panel za rezervaciju. Ugrađeni obrazac je uvek otvoren, pa on ovaj događaj nikada ne šalje.
taptime:closePlutajući panel se zatvara, bez obzira na to kako ga gost zatvori.
taptime:stepPrikazuje se jedan ekran rezervacije.step, step_index, step_count
taptime:choiceGost odgovara na pitanje na ekranu.step, field, value, label
taptime:bookingNapravljena je rezervacija.confirmed, booking_id, event_id, party_size, service_name, value, currency
taptime:eventSvaki od gornjih događaja, još jednom.event — naziv događaja koji ponavlja: open, close, step, choice ili booking

Svaki događaj nosi svoje podatke u event.detail. Dva polja su uvek tu: company — vrednost atributa data-company iz vašeg koda za ugradnju — i booking_type: reservation za stolove, appointment za usluge.

Osluškujte događaj

Dodajte skriptu na istu stranicu na kojoj je vidžet, sa window.addEventListener i nazivom događaja. Može da stoji pre ili posle koda za ugradnju. Ova skripta sakriva baner „Rezerviši odmah“ čim se rezervacija potvrdi:

Sakrijte baner kada gost rezerviše
<script>
  window.addEventListener('taptime:booking', function (event) {
    if (event.detail.confirmed) {
      document.getElementById('book-banner').hidden = true;
    }
  });
</script>

Polje confirmed je true kada je rezervacija odmah potvrđena, a false kada je to zahtev koji vaš tim tek treba da prihvati. Polje value, uz valutu u currency, jeste cena usluge kod termina, a kod stola vrednost rezervacije koju ste postavili za praćenje konverzija — i null kada nema ni jednog ni drugog.

Ekrani i odgovori

Događaj taptime:step navodi naziv ekrana u detail.step. Koje će ekrane gost videti zavisi od toga šta rezerviše i od vaših podešavanja:

  • location — gost bira jednu od vaših lokacija. Samo kada ih imate više, a vidžet nije vezan za jednu.
  • party — koliko gostiju dolazi. Samo za stolove.
  • service i specialist — šta se rezerviše i kod koga. Samo za termine.
  • when — dan i vreme.
  • seating, zone i table — unutra ili napolju, deo sale, određeni sto. Samo za stolove, i samo izbori koje ste uključili.
  • details — ime i kontakt podaci gosta.
  • done — ekran potvrde, pošto je rezervacija napravljena.

step_index i step_count su brojevi koje gost vidi na vrhu obrasca, kao u „2 od 5“. Spisak lokacija i ekran potvrde nisu numerisani, pa su tamo oba null. Pošto broj ekrana zavisi od vaših podešavanja, proveravajte naziv koraka, a ne njegov broj.

Događaj taptime:choice navodi odgovor u detail.field: branchId, partySize, date, time, seating, zoneId, tableId, serviceId ili specialistId. detail.value je ono što je izabrano — broj, ID, datum u obliku 2026-09-18 ili vreme u obliku 2026-09-18 19:30 — a detail.label je ono što je gost pročitao na dugmetu, na primer naziv usluge ili lokacije. Izbor „bilo koji“ šalje vrednost null.

Šaljite svaki događaj u Google Tag Manager

Jedan osluškivač na taptime:event hvata sve događaje. Skripta ispod šalje svaki od njih u dataLayer kao taptime_open, taptime_step, taptime_choice i tako dalje, zajedno sa poljima iz detail. Nalepite je u oznaku tipa „Prilagođeni HTML“ (Custom HTML) koja se pokreće na svim stranicama, ili direktno na sajt. Zatim u Tag Manager-u pravite okidače, promenljive i levak, bez ponovnog diranja sajta.

Svaki događaj vidžeta u dataLayer-u
<script>
  window.dataLayer = window.dataLayer || [];
  window.addEventListener('taptime:event', function (event) {
    window.dataLayer.push(Object.assign({ event: 'taptime_' + event.detail.event }, event.detail));
  });
</script>

Još primera

Šaljite svaki ekran u Google Analytics 4 kao zaseban događaj, pa ćete u istraživanju levka videti gde gosti odustaju. Za ovo GA4 mora biti instaliran na vašoj stranici preko gtag.js:

Levak rezervacija u 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>

Ponudite drugi način rezervacije kada gost zatvori panel a da nije rezervisao — ovde tako što se prikaže skriveni blok „Pozovite nas“:

Prikažite broj telefona kada se panel zatvori bez rezervacije
<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>

Proverite da li radi

  1. 1
    Otvorite objavljeni sajt

    Mnogi alati za pravljenje sajtova ne pokreću prilagođeni kod u svom uređivaču, pa koristite objavljeni sajt.

  2. 2
    Otvorite konzolu pregledača

    Kliknite desnim tasterom na stranicu, izaberite „Pregledaj“ (Inspect), pa otvorite karticu „Konzola“ (Console).

  3. 3
    Nalepite red ispod i pritisnite Enter

    Ispisuje svaki događaj vidžeta čim se desi. Radi dok ponovo ne učitate stranicu.

  4. 4
    Prođite kroz probnu rezervaciju

    Svaki ekran i odgovor pojavljuju se u konzoli, a zatim i rezervacija. Posle toga otkažite probnu rezervaciju sa table.

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

Česta pitanja

Da li moram da uključim događaje?

Ne. Pokreću se kad god je vidžet na stranici. Prekidač „Prijavljuj rezervacije oznakama mog sajta“ upravlja samo automatskim slanjem u dataLayer i pokretanjem GA4 i Meta Pixela na vašoj stranici.

Mogu li iz događaja da pročitam ime, telefon ili mejl gosta?

Ne. Događaji nose ID-jeve, vremena, broj osoba, uslugu i vrednost rezervacije — nikada ko rezerviše. Za podatke o gostu koristite panel, webhook ili REST API.

Moj osluškivač se nikada ne pokreće.

Proverite da li je skripta na istoj stranici kao vidžet i da li je naziv događaja napisan tačno, zajedno sa dvotačkom: taptime:step. U Tag Manager-u proverite da li je oznaka „Prilagođeni HTML“ objavljena i da li se pokreće na svim stranicama. Otvorite konzolu i isprobajte probni red iznad da vidite da li događaji uopšte stižu.

Može li moja skripta da otvori ili zatvori vidžet?

Da. TapTime.open() otvara plutajući panel ili skroluje do ugrađenog obrasca, a TapTime.close() ga zatvara. Kada su na jednoj stranici dve firme, TapTime.open('your-company') otvara vidžet te firme.

Da li je ovaj članak bio koristan?
Ovo nije odgovorilo na vaše pitanje?

Pišite nam i navedite stranicu na kojoj ste bili. Svaku poruku čita čovek, a odgovor stiže na jeziku na kom ste pisali.

Pišite nam