Count only the bookings that actually got paid.
Google Ads, GA4 and Google Tag Manager, wired to a thank-you page on your own website — so every conversion is a real, paid booking attributed to the right ad.
The idea
- →The customer books in the FareBookings form (an iframe on your site) and pays online.
- →Once the payment is confirmed, FareBookings redirects the customer to a thank-you page on your own domain:
https://www.yourdomain.com/thank-you/. - →That page loads your Google Tag Manager container, and a rule — "the URL contains /thank-you" — fires the Booking conversion in Google Ads and a
booking_completeevent in GA4.
Why on your domain, not on app.farebookings.com
The Google Ads cookie that stores the gclid — which ad the customer came from — lives on your domain. If the conversion fires on a different domain, Google Ads cannot attribute it to the ad.
Only paid bookings count
The thank-you page is only reached after the payment is confirmed. Getting as far as the payment step does not count.
Separately, the current FareBookings form also sends a purchase event to GA4 on its own. Use it as a cross-check — the Google Ads conversion itself comes from the thank-you page.
What you need
<head> snippet plus the <noscript> right after <body>).G-XXXXXXX).https://www.yourdomain.com/thank-you/.Step 1 — The thank-you page
- 01
Create a page with the slug
thank-you. - 02
On WordPress, use inline styles only (
style="..."). WordPress strips<style>blocks and the CSS ends up printed as text on the page. - 03
Content: a "booking received" message, "check your email and spam folder", the driver details, flight tracking, a WhatsApp button (a normal
wa.melink) and a button back to the home page. - 04
No tracking code on the page itself. Everything is fired by Tag Manager.
- 05
Set it to noindex so it never shows up in search results:
<meta name="robots" content="noindex,nofollow">A thank-you page left indexable can end up in Google — it has happened on a live client site, with impressions in Search Console, before noindex was added.
- 06
If you use a caching plugin or delay JavaScript (for example WP Rocket's "Delay JavaScript execution"), check that Tag Manager still fires on
/thank-you/. On the client site where this was built, nothing needed excluding — but always test.
Step 2 — Create the conversion in Google Ads
- 01
Find your Ads tag ID (AW-…): Tools → Data manager → Google tag → Manage → copy the ID
AW-XXXXXXXXXX. - 02
Goals → Conversions → + Create conversion action → Website → set it up manually:
- 03
In the setup instructions choose "Use Google Tag Manager" and copy two values:
AW-).send_to (AW-123456789/AbCdEfGh…).Don't mix them up
The Conversion ID is not the internal ID of each conversion action (the 10-digit numbers you see in the Ads interface). Those don't work in Tag Manager.
Step 3 — Google Tag Manager
Before creating the Ads tags, create and publish the Google tag for your AW ID. Without it, Google Ads keeps saying the tag "has not been installed yet".
The trigger
Page Path – thank-youPage Path contains /thank-youThe tags
Google Tag – GA4
Type: Google tag · ID G-XXXXXXX · Trigger: Initialization – All Pages
Google Tag – Ads
Type: Google tag · ID AW-XXXXXXXXXX · Trigger: Initialization – All Pages
Conversion Linker
Type: Conversion Linker (defaults) · Trigger: All Pages
Ads – Booking
Type: Google Ads Conversion Tracking · Conversion ID + Booking conversion label · Trigger: Page Path – thank-you
GA4 – Booking complete
Type: Google Analytics: GA4 Event · Measurement ID G-XXXXXXX · Event name booking_complete · Trigger: Page Path – thank-you
When you're done: Submit → Publish. Before publishing, check that "Ads – Booking" really appears in the tag list — a tag can fail to save the first time.
Bonus: phone and WhatsApp clicks (same container)
Just Links tel
Trigger type: Click – Just Links · Condition: Click URL starts with tel:
Just Links whatsapp
Trigger type: Click – Just Links · Condition: Click URL matches RegEx wa\.me|whatsapp\.com
Give each trigger one single condition: with two conditions both must be true at once and it never fires. These triggers feed two Ads tags (Phone click and WhatsApp click, category Contact) and two GA4 events (phone_click and whatsapp_click).
WhatsApp chat plugins (Social Chat and similar) don't create a click on a link, so Tag Manager can't see them. Use a floating button built with a plain <a href="https://wa.me/...">.
Step 4 — Mark the key events in GA4
Events only appear in GA4 after the first time they're received, and that can take up to 24 hours. Then: Admin → Data display → Events → switch on "Mark as key event" for booking_complete, phone_click, whatsapp_click and purchase.
Step 5 — Test it
- 01
In Tag Manager click Preview and enter your website URL. If the connection with Preview is lost when you reach
/thank-you/, open that page with?gtm_debug=xadded to the URL. - 02
Make a real booking with Stripe in test mode: card
4242 4242 4242 4242, any future date, any CVC. - 03
In Tag Assistant, when you land on
/thank-you/, bothAds – BookingandGA4 – Booking completemust show as fired. - 04
In GA4: Reports → Realtime. You should see
booking_complete(andpurchaseif the form sends it). - 05
In Google Ads the conversion may show "Misconfigured" or "No recent conversions" for days. That usually just means there haven't been real visits to
/thank-you/yet — it doesn't mean it's broken. Check it under Goals → Conversions → All conversions, filtering by date.
Which conversions should drive your bidding
Limits, and what to improve next
Direct visits to /thank-you/
The trigger counts any visit to that URL. Noindex and the "One" count setting reduce the problem. The real fix: have the return URL carry ?booking=ID&value=AMOUNT¤cy=GBP and pass those to the Ads tag as transaction ID and real value — Google Ads discards conversions that repeat a transaction ID.
Cash bookings and pay-the-driver
They don't go through the online payment, so they never reach /thank-you/ and don't count. Decide with each client whether those should be counted another way.
Enhanced conversions
Optional, and a good later step once the basics are counting correctly.
Want us to set this up on your website?
We wire the thank-you page, Tag Manager, Google Ads and GA4 for our clients, and test it with a real booking before handing it over.