Internet Market Today

Book an AppointmentPatient nameService typePreferred date & timeConfirm BookingCliniko Booking SystemGOOGLE TAGMANAGERGOOGLEANALYTICS 4conversions importedGoogle Ads DashboardConversionsCost per acquisitionBooking confirmationsBookings142CPA$24ROAS4.8xBooking confirmation trackedCampaigns optimising for real patientsTrack what actually matters - real patient bookingsCliniko - Google Tag Manager - GA4 - Google Ads
Google AdsClinikoConversion Tracking5 min read  ·  May 2026
Quick AnswerClinics using Cliniko can track confirmed patient bookings in Google Ads by installing Google Tag Manager on both their website and Cliniko, setting up GA4 event tracking on the booking confirmation page, and importing those conversions into Google Ads so campaigns optimise for real bookings, not just clicks.

Why Most Clinic Tracking Falls Short

Many clinics run Google Ads and see positive-looking metrics: clicks, page visits, Book Now button interactions. But here is the uncomfortable truth: none of those signal that a patient actually booked an appointment.

This gap is especially pronounced for Cliniko users, because bookings often happen on a different domain or inside an embedded iframe. Standard tracking cannot follow this out of the box. The result? Campaigns that look profitable on paper while continuing to waste budget on visitors who never convert.

This guide walks through the complete setup to fix that.

Why Tracking Real Bookings Changes Everything

  • Google’s Smart Bidding has real signal to optimise toward
  • You can see exactly which keywords and campaigns drive patient appointments
  • Cost per acquisition (CPA) becomes meaningful and actionable
  • Budget is allocated to what works, not what looks good in a report
Key InsightWhen Google Ads receives confirmed booking data, its machine learning can find more patients likely to book without necessarily spending more money. Better signal = better results.

How the Tracking Stack Works

The technical architecture connects three systems: your website, Cliniko’s booking platform, and Google Ads. Google Tag Manager (GTM) acts as the bridge, and GA4 acts as the data layer that Google Ads reads from.

Step-by-Step Setup

1 Install GTM on both your website and Cliniko

The same GTM container must be installed in two places: your main clinic website and your Cliniko booking pages. This keeps the tracking thread alive as a user moves between them.

In Cliniko, go to Settings > Integrations > Google Tag Manager and paste your GTM container ID (e.g. GTM-XXXXXXX).

2 Set up GA4 via GTM

Create a GA4 configuration tag (now called a Google Tag) inside GTM using your Measurement ID.

GTM > New Tag > Google Tag > Paste Measurement ID > Trigger: All Pages

If Cliniko is embedded via iframe, configure cross-domain tracking in your Google Tag advanced settings:

  • cookie_flags: samesite=none;secure
  • Enable Linker support
  • Add Cliniko's domain to the cross-domain list
NoteIf Cliniko is not embedded and users click through to a separate Cliniko page, you do not need cookie_flags. Just ensure GTM is installed on both domains.

3 Track the booking confirmation page

The confirmation page only loads when a booking is genuinely completed. Create a GA4 event tag that fires when it is visited.

GTM > New Tag > GA4 Event > Event name: purchase

Set the trigger to a Page View with the condition:

Page Path contains bookings/confirmation

Name the trigger GA4 Cliniko Purchase, then save and publish.

4 Handle iframe-embedded Cliniko (advanced)

If Cliniko is embedded inside an iframe, a standard page view event will not fire. You need a listener script that detects Cliniko's internal confirmation message and pushes a custom event to the GTM data layer.

Custom HTML tag in GTM

cliniko-listener.js
GTM › Custom HTML Tag Trigger: All Pages — or scope to iframe page only
1<script type="text/javascript">
2window.addEventListener("message", receiveMessage);
3function receiveMessage(e) {
4 if (typeof e.data !== 'string') return;
5 if (e.data.search('cliniko-bookings-page:confirmed') > -1) {
6 var dataLayer = window.dataLayer || (window.dataLayer = []);
7 dataLayer.push({
8 'event': 'clinikoBookingCompleted'
9 });
10 }
11}
12</script>
13<script src="script.js"></script>
JavaScript · 13 lines Step 4 — iframe listener for embedded Cliniko

After adding this tag, create a GA4 Event tag that fires on the custom trigger clinikoBookingCompleted.

5 Mark events as conversions in GA4

In your GA4 property, go to Configure > Events and toggle the following as conversions:

  • purchase (from the confirmation page)
  • clinikoBookingCompleted (from the iframe listener, if applicable)

6 Import conversions into Google Ads

Once GA4 is recording booking conversions, link it to Google Ads and import them:

Google Ads > Goals > Conversions > Import from GA4

Select your booking conversion events and set a conversion value if applicable. Your campaigns can now bid toward real patient bookings.

7 Fix attribution: stop Cliniko appearing as referral traffic

Without this step, conversions may incorrectly show as coming from cliniko.com as a referral, distorting your channel data.

In GA4, go to Admin > Data Streams > Configure tag settings > List unwanted referrals and add Cliniko's domain.

Watch outSkipping this makes your Organic and Paid traffic numbers unreliable. Cliniko will appear as a traffic source when it is actually part of the booking journey.

Common Mistakes to Avoid

Tracking button clicks instead of confirmed bookings
Ignoring iframe tracking when Cliniko is embedded
Not removing Cliniko as a referral source in GA4
Forgetting to import conversions into Google Ads
Optimising campaigns using the wrong conversion events
Installing GTM on the website but not on Cliniko

Who Should Use This Setup

This tracking approach applies to any clinic using Cliniko for patient appointments, including:

Physiotherapy clinics
Chiropractic practices
Allied health providers
NDIS providers
Psychology clinics
GP and specialist practices

Key Takeaways

  • Track confirmed bookings, not clicks, page views, or button interactions
  • Install GTM on both your website and Cliniko booking pages
  • Use the iframe listener script if Cliniko is embedded on your site
  • Mark booking events as conversions in GA4, then import into Google Ads
  • Exclude Cliniko as a referral source to preserve clean attribution

Frequently Asked Questions

How do I track Cliniko bookings in Google Ads?
Use Google Tag Manager to install GA4 on both your site and Cliniko, fire a GA4 event when the booking confirmation page loads, mark that event as a conversion in GA4, and import it into Google Ads.
Can Cliniko bookings be tracked if embedded in an iframe?
Yes, but it requires a custom JavaScript listener that detects Cliniko's internal confirmation message and pushes a custom event to GTM's data layer. The standard page view trigger will not fire inside an iframe.
Why does Cliniko show as referral traffic in GA4?
When a user moves from your site to Cliniko's domain and back, GA4 starts a new session attributed to cliniko.com. Fix this by adding Cliniko to your unwanted referrals list in GA4 Admin settings.
What is the best conversion to track for health clinics?
Confirmed bookings, events that fire only when the booking confirmation page loads, are the most accurate metric. Avoid tracking form submissions or button clicks alone.
Do I need GTM for Cliniko conversion tracking?
Yes. GTM provides the flexibility to deploy tracking across both your website and Cliniko without developer involvement, manage triggers and events precisely, and handle iframe communication.

Not sure if your tracking is set up correctly?

A tracking audit often reveals missed conversions and misattributed data quietly costing clinics budget every day. A simple fix can make a significant difference without increasing spend.

Cliniko is a registered trademark of its respective owner. Internet Market Today is not affiliated with, endorsed by, or officially connected with Cliniko. We provide independent digital marketing and tracking services for clinics using third-party booking systems.