Skip to main content

Set up Google Tag Manager in online bookings

Track bookings, measure ad performance, and understand how patients move through your splose online booking page using Google Tag Manager.

Google Tag Manager (GTM) lets you connect your splose online booking page to tools, like Google Analytics 4 (GA4) and Google Ads, without touching any code. Once set up, you can see how many people are booking online, which ads are driving bookings, and where patients drop off in the booking process.

This guide covers how to create a GTM account, connect it to splose, set up triggers for each step of the booking flow, create tags for GA4 or Google Ads, and test and publish your configuration.


Before You Begin

  • You need a Google account to set up Google Tag Manager, Google Analytics 4, and Google Ads.
    ​

  • splose booking pages are single-page apps; the URL never changes as a patient moves through the booking flow. This means standard "thank-you page" tracking won't work. splose uses hidden element labels on each step of the page instead. GTM watches for these labels appearing or being clicked, and uses them as your tracking signals.
    ​

  • The most important label is bookingConfirmed; it appears the moment a booking is successfully completed. If you only set up one trigger, make it this one.


Step 1: Create a Google Tag Manager account

If you don't already have a GTM account, follow Google's official guide to set one up.

  1. Follow the steps to create an account and container.

  2. Copy your GTM ID β€” it looks like GTM-XXXXXX. You'll need it in the next step.

πŸ“ Note

You can ignore the installation code Google shows you after setup β€” splose loads GTM automatically once you've added your GTM ID in Settings.


Step 2: Add your GTM ID to splose

Enter your GTM ID once at the workspace level β€” splose applies it to all your online booking pages automatically.

  1. Go to Settings > Workspace > Details.

  2. Find the Google Tag Manager field.

  3. Paste your GTM-XXXXXX ID into the field.

    Screenshot of Workspace Settings Details page in splose showing the Google Tag Manager ID input field
  4. Click Save.


Step 3: Set up triggers

A trigger tells GTM when to act β€” for example, when a booking is completed or when a patient clicks a time slot. splose provides 10 element labels you can track across the booking flow.

⚠️ One-time prerequisite

Before setting up click triggers, go to Variables > Configure in GTM and make sure Click Element is ticked. Without this, click triggers will not fire.

Type 1: Element Visibility triggers

These fire when a step of the booking page becomes visible to the patient. Use the same settings for all six β€” only the trigger name and element ID change.

Settings (identical for all):

  • Trigger type: Element Visibility

  • Selection method: ID

  • When to fire: Once per page

  • Minimum percent visible: 1 β€” do not leave at the default 50, and do not set to 100. Booking step containers are often taller than the viewport and may never reach 50% or 100% visibility.

  • Observe DOM changes: ticked

  • This trigger fires on: All Visibility Events

Trigger name (suggested)

Element ID

Fires when…

Booking confirmed ⭐

bookingConfirmed

A booking is completed successfully

Step – Location shown

locationSelectContainer

The location chooser appears

Step – Service shown

serviceSelectContainer

The service chooser appears

Step – Practitioner shown

practitionerSelectContainer

The practitioner chooser appears

Step – Patient details shown

patientInfoForm

The patient details form appears

Step – Payment shown

bookingPaymentForm

The payment form appears

Type 2: Click triggers

These fire when a patient clicks a specific element. Use the same settings for all four β€” only the trigger name and CSS selector change.

Settings (identical for all):

  • Trigger type: Click – All Elements

  • This trigger fires on: Some Clicks

  • Condition: Click Element β†’ matches CSS selector β†’ (selector from the table below)

Trigger name (suggested)

CSS selector

Fires when…

Click – Location

#locationSelect, #locationSelect *

A location is clicked

Click – Service

#serviceSelect, #serviceSelect *

A service is clicked

Click – Time slot

#timeSelect, #timeSelect *

A time slot is clicked

Click – Confirm button

#confirmBooking, #confirmBooking *

The Confirm booking button is clicked

πŸ“ Why the selector has two parts

The ", #id *" part catches clicks on child elements inside the button β€” such as the button label text. Without it, some clicks may be missed.


Step 4: Create a tag

A tag is the action GTM takes when a trigger fires β€” for example, recording a completed booking in Google Analytics or Google Ads. Choose the option that applies to you.

Option A: Send bookings to Google Analytics 4 (GA4)

  1. In GTM, go to Tags > New and click the pencil icon under Tag Configuration.

  2. Choose Google Analytics: GA4 Event.

  3. Enter your Measurement ID β€” it looks like G-XXXXXXX. Find it in your GA4 account under Admin > Data Streams.

  4. Set the Event Name to online_booking_completed.

  5. Under Triggering, select your Booking confirmed trigger.

  6. Name the tag GA4 – Booking confirmed and click Save.

Option B: Track bookings as a Google Ads conversion

  1. In your Google Ads account, go to Tools > Conversions > New, choose Website, and set it up manually with GTM. Google Ads will provide a Conversion ID and Conversion Label β€” copy both.

  2. In GTM, go to Tags > New and choose Google Ads Conversion Tracking.

  3. Paste your Conversion ID and Conversion Label.

  4. Under Triggering, select your Booking confirmed trigger.

  5. Name the tag Google Ads – Booking conversion and click Save.


Step 5: Test and publish

Before going live, confirm your triggers are firing correctly using GTM's Preview mode.

  1. Click Preview in the top right of GTM.

  2. Enter your booking page URL and connect.

  3. Complete a test booking from start to finish.

  4. On the confirmation screen, confirm your tag appears under Tags Fired for the Booking confirmed trigger. If it appears under Tags Not Fired, check the element ID spelling and confirm Observe DOM changes is ticked.

  5. Once working, click Submit > Publish to go live.

πŸ“ Note

Run your test outside of busy hours and cancel the test appointment in splose afterwards so it doesn't appear on your calendar.


Things to Note

  • Entering your GTM ID once under Settings > Workspace > Details applies it to all your online booking pages. You don't need to add it to each page separately.
    ​

  • The Practitioner shown trigger only fires if your booking page lets patients choose a practitioner. If that step is skipped in your booking flow, this trigger won't fire; that's expected.
    ​

  • bookingConfirmed fires after a booking is successfully saved. confirmBooking fires when the button is clicked β€” which doesn't guarantee the booking completed. Use bookingConfirmed for conversion tracking.
    ​

  • splose support can help with GTM setup in splose. For questions about configuring Google Analytics, Google Ads, or GTM itself, contact the Google support team.

Migrating from Online Bookings 1.0? See what's changed

Most existing OB1 GTM configurations will work in OB2 without changes. The following IDs have changed or been removed:

OB1 element ID

OB2 equivalent

Notes

practitionerSelect

Removed

Use practitionerSelectContainer (Element Visibility) instead

smsVerificationContainer

Removed

OB2 has no SMS verification step

bookingConfirmedContainer

bookingConfirmed

Renamed

bookingPayment

bookingPaymentForm

Renamed

bookingToPayment / bookingWithoutPayment

confirmBooking

Consolidated into one ID regardless of payment state


FAQs and Troubleshooting

Q: Do I need to add code to my website to use GTM with splose?
A: No. splose loads GTM for you once you've entered your GTM ID under Settings > Workspace > Details. You don't need to touch your website's code.
​

Q: I have several booking pages, do I need to set this up for each one?
A: No. The GTM ID you enter in Settings > Workspace > Details applies to all your online booking pages automatically.
​

Q: Why can't I just track the thank-you page?
A: splose booking pages never reload or change their URL as a patient moves through the flow. There's no separate thank-you page to track. The bookingConfirmed label does the same job; it appears the moment a booking is successfully completed.
​

Q: One of my triggers isn't firing, what should I check?
A: For click triggers, confirm Click Element is enabled under Variables > Configure in GTM, and that the CSS selector is entered exactly including the ", #id *" part. For the Practitioner step, confirm your booking page actually shows a practitioner selection. If it doesn't, that trigger won't fire. For all triggers, double-check the element ID spelling and re-run the Preview test.
​

Q: Will GTM slow down my booking page or affect patients?
A: No. Tracking runs in the background and is invisible to patients.
​

Q: This is too technical for me, can someone help?
A: Yes. You can share this article with your web person or marketing agency β€” Steps 3 onward are standard GTM work. Or contact splose support and we'll point you in the right direction.

Did this answer your question?