Email me

Tracking online bookings in GA4 and Google Ads

On this page
  1. Why booking tracking breaks
  2. Fixes by booking tool
  3. A booking is not a patient
  4. Sources

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 toolRuns your GA4 or GTM?Keeps the ad click?Embedded widget tracked?Source
SetmoreYes: GA4 measurement ID and one GTM container on the Booking PageNot documentedNo: Setmore says GA will not trigger inside the widgetSetmore23
Dentally PortalNo today; Google Analytics planned after a Portal upgradeNo: "not currently supported" (April 2026)Not applicableDentally Community4
SOE online booking (EXACT)Yes: your GTM container, with booking-step eventsNot documentedNot documentedSOE help centre5
R4+ Patient BridgeYes: GA4, including a final purchase event sent from the serverNot documented; uses the GA4 browser IDNot documentedCarestream 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 trackedWhat it provesWhat it does not prove
Booking page visitInterestIntent to book
Completed online bookingA slot was requested or takenThat the person attended
Attended appointment, from the practice systemA real patient arrivedThat treatment was accepted
Paid invoice, from the practice systemRevenue was takenLifetime 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 Fayez@imfayez.com with its name; the first look is free.

Sources

  1. Google Analytics Help, "Set up cross-domain measurement". https://support.google.com/analytics/answer/10071811, accessed 1 October 2026. ↩

  2. 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

  3. Setmore, "Google Tag Manager" integration page. https://www.setmore.com/integrations/google-tag-manager, accessed 1 October 2026. ↩ ↩2

  4. 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

  5. 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

  6. 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

  7. 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. ↩

  8. Google Ads Help, "Guidelines for importing offline conversions". https://support.google.com/google-ads/answer/15081888, accessed 1 October 2026. ↩