Troubleshooting Guide

How to Connect Booking Software to Google Ads (Any Platform)

Your booking software and Google Ads don't talk to each other by default. Every appointment, every invoice, every completed booking is invisible to your campaigns. Here's how to connect them.

4 causes explainedExact fixes for eachAutomated solution included
10 min
Setup time
0
Developer needed
8+
Booking platforms supported
<60s
Upload delay

Key Takeaways

1

Booking software and Google Ads have no native connection — every paid appointment is invisible to Smart Bidding by default.

2

The fix has two parts: capture the GCLID when someone clicks your ad, then upload when they book or pay.

3

Most booking platforms support webhooks — this is the trigger that fires when a booking or payment happens.

4

ConversionLoop handles both sides: cl.js captures the GCLID, webhook listener uploads the conversion.

5

Setup takes 10 minutes regardless of which booking platform you use.

1

Why booking software can't talk to Google Ads natively

Booking platforms like Pabau, Boulevard, Mindbody, and Acuity are purpose-built for scheduling and payments. They have no awareness of Google Ads click data. When a client books an appointment, the booking record contains their name, email, and service details — but no ad click identifier. Without that identifier, there's nothing to upload to Google Ads.

Fix: The GCLID (Google Click Identifier) is the bridge. It's appended to your landing page URL when someone clicks your ad. If you capture and store it against the visitor's email on page load, you can later match it to a booking event that contains the same email.
2

Step 1: Capture the GCLID on your landing page

When someone clicks your Google ad, their landing page URL contains ?gclid=CjwKCA.... A script on your page needs to read that parameter and store it before the visitor navigates away or the URL changes. Most booking platforms use iframes or redirects that strip URL parameters, so you need to capture before any redirect.

Fix: Add cl.js to your landing page head. It reads the gclid from the URL on page load and stores it in localStorage keyed to the visitor's email. One line of HTML — deployable via Google Tag Manager in 2 minutes.
3

Step 2: Get a webhook from your booking platform

Most booking platforms support outgoing webhooks — HTTP POST requests fired when a specific event happens (appointment booked, payment received, etc.). This is the signal that tells you a conversion has occurred. Without a webhook, you're stuck polling an API or exporting manually.

Fix: In your booking platform admin settings, look for Webhooks, Integrations, or API Events. Paste your ConversionLoop webhook URL. The platform will send a JSON payload every time the event fires.
4

Step 3: Match the booking event to the stored GCLID

The webhook from your booking platform contains the client's email. The GCLID was stored against that same email on page load. The matching logic looks up the GCLID for the booking email and prepares the conversion upload. This is where manual approaches fall apart — the matching requires either spreadsheet joins or custom code.

Fix: ConversionLoop handles the match automatically. When it receives a webhook, it looks up the stored GCLID for that email and uploads the conversion to Google Ads via the UploadClickConversions API within seconds.
5

Step 4: Upload to Google Ads via API

The Google Ads UploadClickConversions API requires specific formatting: the GCLID, a conversion action name, a UTC timestamp, and an optional value. Manual CSV uploads work but delay Smart Bidding by days. Errors in the CSV format cause silent failures.

Fix: Automated tools upload directly via the API in real time. No CSV, no formatting errors, no delay. Smart Bidding gets fresh conversion data within minutes of each booking.

Manual upload vs. ConversionLoop

Why the manual process breaks at scale — and what changes with automation

Feature
Manual CSV
ConversionLoop
GCLID capture
Manual hidden field — breaks on most platforms
cl.js — automatic on page load
Booking event trigger
Manual export or API polling
Real-time webhook
GCLID-to-email match
Spreadsheet join — error-prone
Automatic server-side
Google Ads upload
Weekly CSV — delays and errors
Real-time API — under 60s
Developer required
Yes
No

The manual approach (and why it breaks)

Manual connection: add a hidden GCLID field to your booking form, export bookings with GCLIDs from your platform, format as CSV, upload weekly in Google Ads. Each step is a failure point. Most booking platforms don't support custom hidden fields, so the GCLID never makes it into the booking record in the first place.

Automated connection: ConversionLoop

ConversionLoop removes every manual step. Add cl.js to capture GCLIDs, paste a webhook URL in your booking platform, enter your Google Ads credentials. Every booking or payment fires a conversion upload automatically. No exports, no spreadsheets, no developer.

Stop diagnosing. Start tracking.

ConversionLoop handles GCLID capture, upload formatting, and delivery automatically. Set it up once.

Start free trial

Confirming the connection works

After setup, ConversionLoop sends a test event through the full pipeline and shows you the result. In Google Ads, check the Diagnostics tab on your import conversion action — it shows every upload attempt, match result, and failure reason.

Frequently asked questions

My booking platform isn't listed. Can I still connect it?

If your platform supports outgoing webhooks, yes. ConversionLoop accepts any JSON webhook payload. You map the email and value fields to the right keys, and the pipeline works the same way. If your platform doesn't support webhooks, Zapier can usually bridge the gap.

Does this work if clients book by phone instead of online?

Phone bookings can be connected if your front desk logs the client's email in the booking system. The GCLID was stored against their email when they visited your site (even if they didn't book online). When the booking is created with that email, the match works.

Never debug offline conversions again

Automated GCLID capture, real-time upload, and full error diagnostics. Every conversion, every time.

Start free — 14 days on us

No credit card required · No developer needed · Cancel anytime