view_item, add_to_cart, begin_checkout, add_payment_info, and purchase). This means you can wire your GTM container up to Google Analytics 4 with no custom event mapping — Sailia’s funnel slots straight into the prebuilt Monetisation and Funnel exploration reports.
How it works
When a customer interacts with your booking page, Sailia sends events to every analytics provider you have configured. Each event includes contextual properties like the session name, ticket counts, and order value. You can use these events to build conversion funnels, retargeting audiences, and revenue attribution reports in your analytics tool.Tracking events are only sent when at least one analytics provider is configured. See supported providers below.
Booking funnel events
The following events fire automatically during the booking flow. The Sailia event name is the internal name fired into PostHog and the Sailia backend tracker. The GA4 event name is the name pushed into the GTMdataLayer so it slots directly into GA4’s prebuilt e-commerce reports.
The
purchase event fires from the payment success page using the authoritative paid total returned by the server. GA4 deduplicates on transaction_id (the basket UUID), so refreshing the success page does not double-count the conversion.Common event properties
Every event includes a relevant subset of these properties:Sailia reports order-level data only —
value, currency, transaction_id, coupon, and payment_type. Per-item product data (the GA4 items[] array) is intentionally not forwarded to your analytics tools.Supported providers
Sailia supports the following analytics providers. Events are sent to all active providers simultaneously.Google Tag Manager (GA4)
Google Tag Manager (GA4)
Connect your GTM container to receive booking events in the The original Sailia event name is preserved on every push as
dataLayer using GA4-standard event names. Each commerce event is pushed with a structured ecommerce payload, so you can connect a GA4 configuration tag with no custom event mapping.Sailia follows GA4 best practice and clears the ecommerce object before each push so values don’t bleed between events:sailia_event, so you can still trigger custom tags off Sailia-specific names if you need to.Top-level basket fields
To make it easy to fire non-GA4 tags — Meta Pixel, Google Ads, TikTok, server-side custom tags — Sailia also mirrors the key e-commerce fields at the top level of thedataLayer push under explicit, Sailia-named keys. You don’t need to dig into the structured ecommerce object to read them.Cross-domain tracking
If you provide your website URL alongside the GTM container, Sailia automatically configures cross-domain tracking between your website and your Sailia booking page. You can pass additional domains via thelinkerDomains config option to extend the linker to other hostnames.User identification
When a logged-in customer is on the booking page, Sailia pushes auser_id into the dataLayer once at GTM initialisation time. Anonymous and zero-value user ids are skipped, so you don’t pollute reports with placeholder users.PostHog
PostHog
Connect your PostHog project to capture booking events as PostHog events. Sailia automatically identifies logged-in customers, so you can build funnels and cohorts based on booking behaviour.PostHog receives the Sailia event names (
booking_completed, add_to_basket, etc.) — the GA4 mapping only applies to the GTM provider.Use cases
- GA4 prebuilt reports — events flow straight into GA4’s Monetisation and Funnel exploration reports with no remapping
- Conversion funnels — track drop-off between
begin_checkout,add_payment_info, andpurchase - Revenue attribution —
valueandtransaction_idgive you accurate ROAS in Google Ads and Meta Ads - Retargeting — build audiences of customers who reached
add_to_cartbut did notpurchase - Multi-tag firing — use the top-level
basket_value/basket_uuidkeys to trigger Meta Pixel, Google Ads, and TikTok tags without parsing the GA4ecommerceobject
Related guides
Online bookings
How the booking flow works for customers.
Meter usage tracking
Track server-side usage events with the meter API.