Guides
Track Booking & Quote Forms in Google Ads with GTM (dataLayer Events)
July 21, 2026 · Admin · 5 min read
Tracking taxi and limo bookings in Google Ads used to mean custom JavaScript, fragile thank-you pages, or guessing when a form “really” submitted. Online Ride Booking 1.1.112+ pushes conversion events into the browser dataLayer so Google Tag Manager (GTM) and Google Ads can measure:
- Completed booking form submits
- Quote form requests
- Online payment success returns
- Quote offer accepts
This guide is for site owners and Google Ads / GTM specialists. It shares only public event names and field names—no API keys, server details, or account secrets.
Prerequisites
- Install Google Tag Manager on every page that shows the booking or quote form (and any payment-return URL if you take card payments).
- Run Online Ride Booking version 1.1.112 or newer.
- No extra setting is required inside the plugin: the booking and quote forms emit events after a successful submit.
Quick browser check
After a successful test submit, open DevTools → Console:
console.log(window.dataLayer);
You should see objects whose event is orb_booking_created or orb_quote_created.
Events the plugin fires
orb_booking_created — Customer successfully submits the booking form. Use as your primary conversion for most sites.
orb_quote_created — Customer successfully submits a quote form (or a price-on-request flow). Use as a lead / quote-request conversion.
orb_payment_success — Customer returns after online payment succeeds. Use as a purchase conversion when card checkout is required.
orb_quote_accepted — Customer accepts a priced quote on the accept page. Use as a secondary conversion (quote → booking).
Also available:
- Custom DOM event:
orb:conversionondocument(same payload inevent.detail) - If
window.gtagexists, the plugin also callsgtag('event', …)
All payloads include event_source: "online-ride-booking".
Useful dataLayer fields
Booking — orb_booking_created
transaction_id— Booking reference (use for Ads transaction ID / dedupe)booking_number— Human-readable booking numberbooking_id— Internal idvalue— Order total (number)currency— ISO code from plugin settings (e.g. USD, CAD)payment_method— e.g. cash / card gatewaypayment_status— Often unpaid at submit if they pay laterservice_slug/service_name— Selected servicevehicle_id— Selected vehicleform_id— Booking form idpassengers— Passenger countis_return_trip— Whether a return was included
Quote request — orb_quote_created
transaction_id— Quote numberquote_number/quote_id— Quote identifiersvalue— Usually empty until an admin prices the quotecurrency— Site currencyservice_slug/service_name— Selected serviceform_id— Quote form idpassengers— Passenger count
Important: Treat quote requests as leads, not revenue, unless you assign a fixed lead value in Google Ads. Do not rely on value for quotes.
Payment success — orb_payment_success
transaction_id— Booking numberbooking_id/booking_number— Identifierspayment_status— paidcurrency— Site currency
Quote accepted — orb_quote_accepted
transaction_id— New booking numberbooking_id/booking_number— Identifiersvalue— Total when availablecurrency/payment_method— When provided
Google Tag Manager setup
1. Triggers
Create a Custom Event trigger for each conversion you want:
- Trigger “ORB – Booking created” → event name
orb_booking_created - Trigger “ORB – Quote request” → event name
orb_quote_created - Trigger “ORB – Payment success” → event name
orb_payment_success - Trigger “ORB – Quote accepted” → event name
orb_quote_accepted
Use the exact event name (case-sensitive).
2. Data Layer variables
Create Data Layer Variables (v2) as needed: transaction_id, value, currency, booking_number, quote_number, payment_method, service_slug.
3. Google Ads conversion tags
- In Google Ads → Goals → create conversion actions (e.g. “Booking submitted”, “Quote request”).
- Choose Use Google Tag Manager and copy Conversion ID and Conversion Label.
- In GTM, add a Google Ads Conversion Tracking tag:
- Conversion ID / Label from Ads
- Value: data layer variable for
value - Currency: data layer variable for
currency - Transaction ID: data layer variable for
transaction_id(strongly recommended) - Trigger: the matching ORB custom event
4. Publish and test
Use GTM Preview, submit a test booking and a test quote, confirm each tag fires once, then publish the container.
Brief for your Google Ads agency
Copy and send:
Our WordPress ride-booking plugin (Online Ride Booking 1.1.112+) pushes conversion events into window.dataLayer after form success.
Booking form: event
orb_booking_createdQuote form: eventorb_quote_createdUseful keys: transaction_id, value, currency, booking_number / quote_number, service_slug, payment_method.
Configure GTM Custom Event triggers for those names and wire Google Ads conversion tags. Always send transaction_id for deduplication. For quotes, use a lead conversion—price is often set later by the operator.
Optional: orb_payment_success after card payment return; orb_quote_accepted when a customer accepts a quote offer.
Recommended conversion strategy
- Count every booking form complete →
orb_booking_created(primary for cash / pay-to-driver) - Count quote leads →
orb_quote_created(secondary lead; optional fixed value in Ads) - Count only paid online bookings →
orb_payment_success(primary if card is required at checkout) - Count quote → booking →
orb_quote_accepted(secondary)
Avoid double-counting: if you make both orb_booking_created and orb_payment_success primary conversions, one customer can fire two goals (submit then pay). Pick one primary:
- Pay to driver / cash: primary =
orb_booking_created - Must pay online: primary =
orb_payment_success
Testing checklist
- GTM container live on form pages
- Test booking submit →
orb_booking_createdin dataLayer - Test quote submit →
orb_quote_createdin dataLayer - GTM Preview shows the Ads tag once
transaction_idis present- Currency matches the conversion action currency
- Refreshing the success screen does not double-fire (plugin dedupes per submit)
Console filter:
window.dataLayer.filter(function (e) {
return e && (
e.event === 'orb_booking_created' ||
e.event === 'orb_quote_created' ||
e.event === 'orb_payment_success' ||
e.event === 'orb_quote_accepted'
);
});
Privacy
Prefer transaction_id, value, currency, and service fields for Ads tags. Do not forward personal data to third parties unless your privacy policy and consent tools allow it. Use Consent Mode if you run a cookie / consent banner.
Event name quick list
orb_booking_created
orb_quote_created
orb_payment_success
orb_quote_accepted
Related
- Pricing — plans and licensing
- Documentation — install and form setup
- Features — booking, quotes, and dispatch overview
Need help wiring this for your site? Open a ticket from your customer portal after purchase.
Run rides, not spreadsheets.
Online Ride Booking gives your taxi, limo, or shuttle business a booking form, dispatch, and payments on your own WordPress site.
See pricing