---
title: "Track HaltH bookings in Google Tag Manager and Google Ads"
description: "Connect your GTM container to HaltH, see which booking events are sent, and set up Google Ads conversions."
url: https://support.halth.com/en/articles/13711537-track-halth-bookings-in-google-tag-manager-and-google-ads
collection: "Getting Started on HaltH For Businesses"
updated: 2026-11-02
language: en
---

# Track HaltH bookings in Google Tag Manager and Google Ads

Connect your GTM container to HaltH, see which booking events are sent, and set up Google Ads conversions.

This guide is for clinics, and for the marketers who run their ads. It shows how to see HaltH bookings in Google Tag Manager (GTM) and count them as Google Ads conversions.

**In short:** you paste your GTM Container ID into HaltH. HaltH then loads your container on your booking page and sends booking events to it automatically. In GTM you still need to create triggers and tags for those events, because HaltH doesn't create conversion actions in your Google Ads account.

* * *

## Before you start

You'll need:

-   A HaltH business account for the clinic, with access to **Bookings > Settings**.
    
-   A GTM container that your Google account can **edit**. Its ID looks like `GTM-XXXXXXX`.
    
-   For Google Ads, a conversion action, plus its **Conversion ID** and **Conversion Label** (Google Ads > Goals > Conversions).
    

> If you manage more than one clinic, each HaltH business has its own Analytics setting. Add the GTM ID to every business you want to track. The clinics can share one container or use separate ones.

* * *

## Step 1: Add your GTM Container ID to HaltH

1.  Log in to the HaltH business platform and open **Bookings**.
    
2.  Open **Settings** (top right), then expand **Analytics**.
    
3.  In **Google Tag Manager Container ID**, paste your ID, for example `GTM-AB12CD3`.
    
4.  Click **Save**.
    

Check these before you save:

-   Use the **GTM-** container ID only. A Google Analytics ID (`G-…`) or a Google Ads ID (`AW-…`) won't work in this field.
    
-   Make sure there are no spaces before or after the ID.
    
-   **If Save is greyed out**, there are no unsaved changes, so the ID in the box is already saved. To save a different ID, clear the field, paste the new ID and click Save.
    

From now on, your container loads on every visit to your HaltH booking page (`app.halth.com/booking/...`).

* * *

## Step 2: Learn which events HaltH sends

HaltH pushes these events to the GTM `dataLayer` as a client moves through the booking:

<table style="min-width: 50px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p>Event</p></th><th colspan="1" rowspan="1"><p>When it fires</p></th></tr><tr><td colspan="1" rowspan="1"><p><code>halth_booking_start</code></p></td><td colspan="1" rowspan="1"><p>The booking form opens</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>halth_booking_step_location</code></p></td><td colspan="1" rowspan="1"><p>Location selection</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>halth_booking_step_appointment</code></p></td><td colspan="1" rowspan="1"><p>Service selection</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>halth_booking_step_time</code></p></td><td colspan="1" rowspan="1"><p>Date and time selection</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>halth_booking_step_client</code></p></td><td colspan="1" rowspan="1"><p>Client details</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>halth_booking_step_payment</code></p></td><td colspan="1" rowspan="1"><p>Payment details</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>halth_booking_step_complete</code></p></td><td colspan="1" rowspan="1"><p>The booking confirmed screen</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong><code>purchase</code></strong></p></td><td colspan="1" rowspan="1"><p><strong>The booking is created. Use this one as your conversion.</strong></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>halth_booking_step_provider_funding_landing</code></p></td><td colspan="1" rowspan="1"><p>Provider funding landing (invite links only)</p></td></tr></tbody></table>

The `purchase` event follows the standard GA4 ecommerce format:

```js
{
  event: 'purchase',
  ecommerce: {
    transaction_id: '<HaltH booking ID>',
    value: 95.00,          // service price in AUD
    currency: 'AUD',
    items: [{ item_id, item_name, price, quantity: 1 }]
  },
  custom: { bookingId, organisationId, locationId, providerId, serviceId, serviceDate, sessionId }
}
```

HaltH never sends client names, emails, phone numbers or dates of birth to GTM.

* * *

## Step 3: Set up Google Ads conversion tracking in GTM

Do this in your GTM container.

**1\. Add a Conversion Linker tag** (skip this if you already have one)

-   Tags > New > **Conversion Linker**
    
-   Trigger: **All Pages**
    

This tag stores the Google Ads click ID (`gclid`) so the booking can be credited to the ad.

**2\. Create the data layer variables** Go to Variables > User-Defined > New > **Data Layer Variable** and create:

-   `ecommerce.value` (name it `DLV - value`)
    
-   `ecommerce.transaction_id` (name it `DLV - transaction_id`)
    
-   `ecommerce.currency` (name it `DLV - currency`)
    

**3\. Create the trigger**

-   Triggers > New > **Custom Event**
    
-   Event name: `purchase`
    
-   Fires on: All Custom Events
    

**4\. Create the Google Ads conversion tag**

-   Tags > New > **Google Ads Conversion Tracking**
    
-   Conversion ID and Conversion Label: copy these from your Google Ads conversion action
    
-   Conversion Value: `{{DLV - value}}`
    
-   Transaction ID: `{{DLV - transaction_id}}` (this stops duplicate conversions)
    
-   Currency Code: `{{DLV - currency}}`
    
-   Trigger: the `purchase` trigger from step 3
    

**5\. Click Submit, then Publish.** Changes don't go live until the container is published.

> **Using GA4 as well?** You can add a **Google Analytics: GA4 Event** tag on the same `purchase` trigger. Turn on "Send Ecommerce data" and mark `purchase` as a key event in GA4. You can also import that key event into Google Ads instead of using the conversion tag above. Pick one method, not both, or each booking will be counted twice.

* * *

## Step 4: Point your ads at the booking link (not an embedded form)

**For Google Ads conversion tracking, send ad traffic straight to your HaltH booking link**, for example `https://app.halth.com/booking/org_...` or your custom booking link.

Here's why:

-   Google Ads adds the `gclid` to the landing page URL automatically. If the ad lands on the HaltH booking page, your container picks up the click ID and the `purchase` event in the same place, and the conversion is credited correctly.
    
-   HaltH also records UTM and click-ID parameters automatically when they're in the booking page URL.
    

### What about the embedded booking form?

If the booking form is embedded on your website with the HaltH embed code, it runs inside an iFrame. In that case:

-   Your GTM container loads **inside the iFrame**, and the HaltH events go to the iFrame's `dataLayer`.
    
-   Your website's own GTM and Tag Assistant **won't see these events** on the parent page.
    
-   The ad click ID on your website's URL isn't passed into the iFrame, and browsers often block the cookies that link the two. Google Ads conversions from an embedded form are therefore unreliable.
    

**Recommendation:** run your ads to the booking link. The embedded form can stay on your site for organic visitors.

* * *

## Step 5: Test it

1.  Go to [tagassistant.google.com](https://tagassistant.google.com) and click **Add domain**.
    
2.  Enter your **HaltH booking page URL**, not your website's URL, especially if your site uses the embedded form.
    
3.  Make a test booking in the window that opens.
    
4.  In Tag Assistant, check the **left-hand event timeline**. You should see `halth_booking_start`, then the `halth_booking_step_…` events, then `purchase`. Events appear here and in the **Data Layer** tab, not in the browser console.
    
5.  Click the `purchase` event and confirm that your Google Ads conversion tag shows under **Tags Fired**.
    

Cancel the test booking afterwards in HaltH.

* * *

## Troubleshooting

**Tag Assistant says "You do not have access to this container"** The container ID saved in HaltH belongs to a GTM account your Google login can't access. Ask the account owner for access, or create a container in an account you control and save that ID in HaltH (Step 1). Then check that the Container ID shown in Tag Assistant matches the one you expect.

**Tag Assistant says "A tag on this page is installed incorrectly"** HaltH loads GTM through the official Google Tag Manager component for our web framework, so its snippet looks slightly different from the copy-and-paste version. If the container connects and your events appear in the timeline, you can ignore this warning. If events don't appear, contact us and we'll check it.

**The container connects but no events appear**

-   Check that you're testing the **booking page URL**, not a page with the embedded form (see Step 4).
    
-   Check that you've **published** your container.
    
-   Look in the **Data Layer** tab, not the console.
    

**I saved the ID but nothing changed** Refresh the Analytics settings and check that the ID shown is the one you expect. If it isn't, re-enter it and save. If it's correct but GTM still doesn't load, contact us with your business name and container ID.

**Do I have to create the events myself?** No. HaltH sends all the events listed above automatically. You only need to create the **triggers and tags** in GTM that act on them (Step 3).

**Will HaltH set up the conversion in my Google Ads account?** No. HaltH sends the booking event to your GTM container. You or your marketer create the conversion action in Google Ads and the tag in GTM.

**Does this work with Meta (Facebook) ads too?** Yes. Add your Meta Pixel ID in the same **Analytics** section. HaltH sends standard Meta events, including `Purchase` when a booking is made.

**Cross-domain tracking with GA4** If visitors go from your website to the HaltH booking page, add `app.halth.com` to your GA4 cross-domain settings so the session carries across. If your website builder wraps the page in an iFrame (common with custom HTML blocks on Wix), see the iFrame section of [our analytics docs](https://docs.halth.com/guides/booking-analytics).

* * *

Still stuck? Message us in the chat. Include your HaltH business name, your GTM container ID, and a screenshot from Tag Assistant.
