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.
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.
Log in to the HaltH business platform and open Bookings.
Open Settings (top right), then expand Analytics.
In Google Tag Manager Container ID, paste your ID, for example GTM-AB12CD3.
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/...).
HaltH pushes these events to the GTM dataLayer as a client moves through the booking:
Event | When it fires |
|---|---|
| The booking form opens |
| Location selection |
| Service selection |
| Date and time selection |
| Client details |
| Payment details |
| The booking confirmed screen |
| The booking is created. Use this one as your conversion. |
| Provider funding landing (invite links only) |
The purchase event follows the standard GA4 ecommerce format:
{
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.
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
purchasetrigger. Turn on "Send Ecommerce data" and markpurchaseas 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.
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.
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.
Go to tagassistant.google.com and click Add domain.
Enter your HaltH booking page URL, not your website's URL, especially if your site uses the embedded form.
Make a test booking in the window that opens.
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.
Click the purchase event and confirm that your Google Ads conversion tag shows under Tags Fired.
Cancel the test booking afterwards in HaltH.
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.
Still stuck? Message us in the chat. Include your HaltH business name, your GTM container ID, and a screenshot from Tag Assistant.