Tracking online bookings in GA4 and Google Ads
To track online bookings in Google Ads, a dental practice needs the booking tool to run its Google tag, keep the ad click connected to the visitor, and report a completed booking only after the visitor has given cookie consent. Most booking tools used by UK practices do one or two of those things, rarely all three, which is why online booking tracking is where most practices' conversion data quietly breaks.
It breaks for clear reasons, set out below with what the common booking tools support as of 1 October 2026, and why even a perfectly tracked booking isn't yet a patient. Booking tracking is one part of tracking ads to booked treatment. The full method, stage by stage, is in measuring marketing against booked revenue.
Why booking tracking breaks
Google Analytics 4 (GA4) is Google's website analytics. Google Tag Manager (GTM) is Google's tool for managing tracking code. Both work by running code on your website pages. A booking tool breaks that in one of three ways.
1. The booking happens on someone else's website. You click "Book now" and land on the vendor's domain. Your analytics sees a visitor leave. It never sees the booking. GA4 can follow a visitor across domains you own or control, using a parameter called _gl that it adds to links and forms between the configured domains.1 That only helps if your Google tag also runs on the booking site, and many booking tools won't let it.
2. The booking happens inside an iframe. An iframe is a window on your page that displays another website, commonly used for "embedded" booking widgets. It looks like part of your site. To the browser it's a separate site, and your tags can't see inside it. Setmore's own help centre says it plainly: when you embed its booking page with the widget, Google Analytics won't trigger an event, because the iframe is treated as a third-party element.2
3. The ad click is dropped. When someone clicks a Google ad, Google adds a click identifier, the GCLID, to the landing page address. If the visitor then moves to a booking tool that doesn't keep it, the booking can't be tied back to the ad even if it's recorded somewhere.
Fixes by booking tool
Here is what each common tool documents, and the practical fix. "Not documented" means I could not find it in the vendor's public material on 1 October 2026.
| Booking tool | Runs your GA4 or GTM? | Keeps the ad click? | Embedded widget tracked? | Source |
|---|---|---|---|---|
| Setmore | Yes: GA4 measurement ID and one GTM container on the Booking Page | Not documented | No: Setmore says GA will not trigger inside the widget | Setmore23 |
| Dentally Portal | No today; Google Analytics planned after a Portal upgrade | No: "not currently supported" (April 2026) | Not applicable | Dentally Community4 |
| SOE online booking (EXACT) | Yes: your GTM container, with booking-step events | Not documented | Not documented | SOE help centre5 |
| R4+ Patient Bridge | Yes: GA4, including a final purchase event sent from the server | Not documented; uses the GA4 browser ID | Not documented | Carestream handout6 |
Setmore
Setmore lets you add a GA4 measurement ID and a GTM container to your Setmore Booking Page, and says GTM is available on its Free and Pro plans. Only one GTM container can be added.3 That makes Setmore trackable when patients use the Booking Page itself, reached by a link. It doesn't make the embedded widget trackable, by Setmore's own account.2
The practical fix for Setmore: link to the Booking Page rather than embedding it, add your tag through Setmore's integration, set up GA4 cross-domain measurement between your site and the booking page, and test with a real ad click that the booking shows in GA4 as coming from Google Ads. Setmore's pages don't describe how its Booking Page handles cookie consent, so check that before switching the tags on. Once the booking arrives in GA4 as a key event (the events GA4 treats as important), it can become a Google Ads conversion by linking the two accounts.7
Dentally Portal
Dentally's online booking can't run your tags or keep the click identifier today, by Dentally staff's own statements on its community forum.4 The fix is to capture the click before the patient reaches Dentally, usually with a booking request form on your own site for ad traffic. The routes, and what each one measures, are set out in tracking Dentally bookings to your ads.
SOE online booking
Software of Excellence lets you paste a GTM container ID into its online booking setup, and pushes each booking step to GTM, ending with a completed booking that carries a booking reference. It also pushes a cookie consent event.5 That is enough to build a consent-aware booking conversion. Test whether the Google click identifier reaches your container on the booking pages before relying on it for Google Ads.
R4+ Patient Bridge
Carestream documents the most complete setup of these tools. Patient Bridge sends the booking journey to GA4 as a series of shopping-style events, then sends a final "purchased" event from its own server once the appointment is in the practice management system (PMS), linked to the visitor's browser session. It needs the Patient Portal integration, and a booking with no deposit is sent with a value of £0.00.6
Any tool: a thank-you page on your own site
If a booking tool can send patients back to a confirmation page on your own website after booking, that page can carry your conversion tag, subject to consent. It's the simplest fix when a tool offers the option. Check the tool's settings, and check that the page can't be reached without booking, or you will count visits as bookings.
A booking is not a patient
Even a perfectly tracked online booking tells Google one thing: someone asked for an appointment. It doesn't say whether they turned up, whether they were a new patient, or whether they went ahead with treatment.
| What gets tracked | What it proves | What it does not prove |
|---|---|---|
| Booking page visit | Interest | Intent to book |
| Completed online booking | A slot was requested or taken | That the person attended |
| Attended appointment, from the practice system | A real patient arrived | That treatment was accepted |
| Paid invoice, from the practice system | Revenue was taken | Lifetime value |
Online bookings are also where no-shows, duplicate bookings, existing patients rebooking and people booking the wrong appointment type show up. If Google Ads bids on completed bookings, it learns to find people who complete booking forms. Most of them will be real patients. Some won't, and the platform can't tell the difference.
That is why booking tracking is the first step, not the last. The second step reads the practice system to see which bookings became attended consultations and treatment starts, and sends those to Google Ads against the original click within its upload window (90 days for offline import8). Treatment completed later is measured in the practice's own report. How that join works, and what it needs from a practice, is on tracking ads to booked treatment.
Phone bookings are a separate gap. A patient who clicks an ad, reads the page and rings reception leaves no booking-tool trace at all. Call tracking covers that side.
If your diary runs on Dentally, the next step is tracking Dentally bookings to your ads. For any other booking tool, email [email protected] with its name; the first look is free.
Sources
-
Google Analytics Help, "Set up cross-domain measurement". https://support.google.com/analytics/answer/10071811, accessed 1 October 2026. ↩
-
Setmore Support, "Connect Setmore with Google Analytics". https://support.setmore.com/en/articles/490934-connect-setmore-with-google-analytics, accessed 1 October 2026. ↩ ↩2 ↩3
-
Setmore, "Google Tag Manager" integration page. https://www.setmore.com/integrations/google-tag-manager, accessed 1 October 2026. ↩ ↩2
-
Dentally Community, "google ads campaign tracking", replies from the Dentally Portal product manager on 28 April and 26 September 2026. https://community.dentally.com/practice-management-58/google-ads-campaign-tracking-446, accessed 1 October 2026. ↩ ↩2
-
SOE Help Centre, "Online Booking and Google Tag Manager", https://help.softwareofexcellence.com/hc/en-gb/articles/4405145445268-Online-Booking-and-Google-Tag-Manager, and "Understanding Google Tag Manager Data Layer Events", https://help.softwareofexcellence.com/hc/en-gb/articles/41022426709268-Understanding-Google-Tag-Manager-Data-Layer-Events. Both accessed 1 October 2026. ↩ ↩2
-
Carestream Dental, "Google Analytics Integration with Patient Bridge", handout EHO25.001, 2025. https://gosensei.com/wp-content/uploads/2026/01/PatientBridge_GoogleAnalytics_HO.pdf, accessed 1 October 2026. ↩ ↩2
-
Google Ads Help, "Create Google Ads conversions based on Google Analytics key events" (requires linked accounts and auto-tagging). https://support.google.com/google-ads/answer/10632359, accessed 1 October 2026. ↩
-
Google Ads Help, "Guidelines for importing offline conversions". https://support.google.com/google-ads/answer/15081888, accessed 1 October 2026. ↩