Your TapTime page — menu and booking — can carry your own analytics and pixels, so the visits show up in the same reports as your website. Order and payment pages do not load tags.
Panel Website & Design Analytics & tracking
| Field | Where to find it | Looks like |
|---|---|---|
| Google Analytics 4 | GA4 → Admin → Data streams | G-XXXXXXXXXX |
| Google Tag Manager | Tag Manager → your container | GTM-XXXXXXX |
| Meta Pixel | Events Manager → Data sources | a 15–16 digit number |
Booking events on the page
When a guest books, the page sends booking_confirmed (or booking_requested, when you confirm bookings by hand) to the isolated Tag Manager dataLayer with the booking’s type, value and event id, and fires your Meta Pixel and GA4 tag.
Custom script
The owner can add a custom script for analytics tools that are not in the list — Plausible, Matomo, Yandex Metrica, LinkedIn or Pinterest tags, for example. Paste JavaScript or the vendor’s whole <script> snippet. It runs in its own hidden sandbox and can read only TapTime’s preset events — about fifty of them, from where the guest came from and every screen they open to categories, dishes, the cart, orders, table bookings and appointments. Read them with taptime.on(), as taptime:event window events or from dataLayer; taptime.events lists every name.
<script>
taptime.on(function (event) {
// event.event is one of taptime.events: add_to_cart, time_select, order_placed…
if (event.event === 'add_to_cart') {
console.log('Added', event.item_name, event.value, event.currency);
}
});
</script>
Events your script can read
Every event also carries page_path, page_type, branch_id, language and at_table. Money is in units, with its currency. No event carries the guest’s name, phone, email, address, note or booking link, and addresses lose their query string.
| Event | Fields |
|---|---|
| landing | page_location, page_title, utm_source, utm_medium, utm_campaign, utm_term, utm_content, referrer_host, click_id_type, source_type, returning |
| virtual_page_view | page_location, page_title, previous_page_type |
| scroll_depth | percent |
| nav_click | nav_item, nav_area |
| nav_menu_open | — |
| language_change | previous_language |
| branch_select | to_branch_id, origin, flow |
| contact_click | contact_type, link_domain |
| social_click | network |
| outbound_click | link_domain |
| photo_view | photo_index, origin |
| category_select | category_id, category_name |
| category_view | category_id, category_name, position |
| item_impression | item_id, item_type, item_name, category_id, category_name, price, currency, position, list_name |
| item_open | item_id, item_type, item_name, category_id, category_name, price, currency, origin |
| item_option_select | item_id, item_name, option_name, selected, price, currency |
| search | search_term, result_count |
| promotion_view | promotion_id, promotion_name, item_id, position |
| promotion_select | promotion_id, promotion_name, item_id |
| add_to_cart | item_id, item_type, item_name, item_variant, price, quantity, value, currency, origin, cart_count, cart_value |
| remove_from_cart | item_id, item_type, item_name, item_variant, price, quantity, value, currency, origin, cart_count, cart_value |
| view_cart | item_count, value, currency, items |
| clear_cart | item_count, value, currency |
| fulfilment_select | fulfilment |
| payment_method_select | payment_method |
| begin_checkout | item_count, value, currency, fulfilment, payment_method, items |
| order_placed | item_count, value, currency, fulfilment, payment_method, items |
| order_error | error_code, value, currency |
| booking_step | flow, step, step_index, step_count |
| party_size_select | flow, party_size |
| date_select | flow, date, days_ahead |
| time_select | flow, date, time |
| seating_select | flow, seating |
| zone_select | flow, zone_id, zone_name |
| table_select | flow, table_id, table_label |
| service_select | flow, service_id, service_name |
| specialist_select | flow, specialist_id, specialist_name |
| availability_empty | flow, date, party_size, service_id |
| booking_submit | flow, party_size, date, time, service_id, specialist_id |
| booking_error | flow, error_code |
| booking_requested | flow, event_id, booking_type, booking_id, party_size, service_name, value, currency |
| booking_confirmed | flow, event_id, booking_type, booking_id, party_size, service_name, value, currency |
| booking_cancel | flow |
| booking_attendance_confirm | flow |
| reservation_lookup_start | — |
| reservation_lookup_complete | reservation_count |
| login_start | origin |
| sign_up_start | origin |
| logout | origin |
| profile_update | field |
Frequently asked
Do I need a cookie banner?
Depending on your country and your guests’, analytics and advertising pixels may need consent. Configure consent in the supported analytics platform or on your own website; TapTime does not allow merchant scripts to change its guest page.
Can Tag Manager change my TapTime page?
No. It runs in a hidden, isolated analytics sandbox and receives only TapTime’s preset guest events with their listed fields. Custom HTML cannot access or modify the guest page.
Can a custom script change my TapTime page?
No. It runs in a hidden sandbox with no access to the page and receives only TapTime’s preset events — what the guest does, never who they are.
Thank you — that helps us make these guides better.
Write to us and quote the page you were on. A person reads every message and answers in the language you wrote in.
Write to us