Skip to content

Do you integrate with Google Analytics 4?

Yes. The Checkout Widget sends booking events to Google Analytics 4 (GA4) throughout the booking journey. These instructions cover the current Checkout Widget; see Legacy Widgets if you use the older version.

Set up tracking

In your checkout widget’s settings, open Analytics and turn on Enable Google Analytics. Under Send events via, choose how the widget sends booking events. The widget uses one method at a time:

  • Google Analytics 4 — choose Use existing tag if your website already loads the Google Analytics tag, or Use custom tag and enter your GA4 Measurement ID (G-…). The widget sends events through that tag automatically.
  • Google Tag Manager — turn on Enable Google Tag Manager, then use your website’s existing container or enter a custom Container ID (GTM-…). The widget pushes events to the Data Layer. Booking events reach GA4 once GA4 Event tags with matching Custom Event triggers and ecommerce data from the Data Layer are configured and published in your container. See the Tag Manager setup guide.

Save your settings to enable tracking. Avoid forwarding the same booking events through Tag Manager or custom code while the widget also sends them via Google Analytics 4, as purchases and revenue may be counted twice.

Events sent automatically

EventWhen the Checkout Widget sends it
page_viewA widget step is displayed, including selection, checkout, success and error screens
select_itemA product, package or product voucher is selected from the product/event list
add_to_cartA booking or package is added to the basket
view_cartThe basket is displayed
begin_checkoutThe customer details step is displayed
add_payment_infoThe payment step is displayed — before payment details are submitted
purchasePayment succeeds or an order with nothing left to pay is confirmed

The steps depend on the booking journey. For example, a free booking can skip the payment screen.

What the events contain

  • Page views: page_title and page_path identify the widget step, for example tier_selection, extras_selection, basket or payment. page_location is the URL of your website page containing the widget.
  • Product selection: item_list_id, item_list_name and an items array identify the selected product or package.
  • Basket and checkout events: currency, numeric value, order_id, locale and items. Items identify ticket types, quantities, unit prices and their product/package. Selection uses product/package IDs; subsequent events use ticket-type IDs.
  • Purchase: also includes transaction_id (the order reference). coupon is included on begin_checkout, add_payment_info and purchase when available. Analytics events also carry widget_id.

Revenue coverage: value is the total of the tracked tickets in product and package bookings, including product vouchers. It excludes extras, merchandise and gift-card purchases, so GA4 revenue can differ from the full order total.

Custom tracking

For custom tracking, your website developer can listen for the same seven events on document with a th: prefix, such as th:purchase. Their data is in event.detail, and they remain available when built-in Google Analytics tracking is off.

Check your setup

Complete a test booking on the page where your widget is embedded. Check GA4 Realtime or DebugView; standard reports can take 24–48 hours to update. For Tag Manager, use Preview to verify that your GA4 tags fire, then publish your changes.

For console logging, missing events and consent or ad-blocker issues, follow How to debug Google Analytics & Tag Manager tracking.