All posts

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

  1. Install Google Tag Manager on every page that shows the booking or quote form (and any payment-return URL if you take card payments).
  2. Run Online Ride Booking version 1.1.112 or newer.
  3. 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:conversion on document (same payload in event.detail)
  • If window.gtag exists, the plugin also calls gtag('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 number
  • booking_id — Internal id
  • value — Order total (number)
  • currency — ISO code from plugin settings (e.g. USD, CAD)
  • payment_method — e.g. cash / card gateway
  • payment_status — Often unpaid at submit if they pay later
  • service_slug / service_name — Selected service
  • vehicle_id — Selected vehicle
  • form_id — Booking form id
  • passengers — Passenger count
  • is_return_trip — Whether a return was included

Quote request — orb_quote_created

  • transaction_id — Quote number
  • quote_number / quote_id — Quote identifiers
  • value — Usually empty until an admin prices the quote
  • currency — Site currency
  • service_slug / service_name — Selected service
  • form_id — Quote form id
  • passengers — 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 number
  • booking_id / booking_number — Identifiers
  • payment_status — paid
  • currency — Site currency

Quote accepted — orb_quote_accepted

  • transaction_id — New booking number
  • booking_id / booking_number — Identifiers
  • value — Total when available
  • currency / 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

  1. In Google Ads → Goals → create conversion actions (e.g. “Booking submitted”, “Quote request”).
  2. Choose Use Google Tag Manager and copy Conversion ID and Conversion Label.
  3. 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_created Quote form: event orb_quote_created

Useful 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 completeorb_booking_created (primary for cash / pay-to-driver)
  • Count quote leadsorb_quote_created (secondary lead; optional fixed value in Ads)
  • Count only paid online bookingsorb_payment_success (primary if card is required at checkout)
  • Count quote → bookingorb_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_created in dataLayer
  • Test quote submit → orb_quote_created in dataLayer
  • GTM Preview shows the Ads tag once
  • transaction_id is 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

Need help wiring this for your site? Open a ticket from your customer portal after purchase.

#google ads#google tag manager#gtm#conversion tracking#booking form#quote form#datalayer

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