Skip to content
Open the app

Track ad conversions

If you are paying for ads, the platform needs to know when a click turned into a booking. Marketing → Tracking connects Meta and GA4 so that happens without you touching a line of code.

Meta

Field Where to find it
Pixel ID Events Manager → Data sources → your pixel
Conversions API token Pixel → Settings → Generate access token
Test event code Optional. Routes events to Test Events instead of live reporting

GA4

Field Where to find it
Measurement ID (G-XXXXXXXXXX) Admin → Data streams → your web stream
Measurement Protocol API secret Data stream → Measurement Protocol API secrets

Both tokens are write-only once saved — they are credentials, so the app will not show them back to you. Re-paste to change one.

Then turn Conversion tracking on. Off, nothing is loaded and nothing is reported.

This is the question worth answering precisely, because it is not everywhere.

The scripts are injected on your two public pages only:

  • your booking page, /book/your-business-name
  • your instant estimator, /estimate/your-business-name

They are not loaded anywhere inside the app you and your team use, and not on any other page. Your own staff clicking around the dashboard generates nothing.

Two more things about the injection:

  • With no ids configured, nothing is injected at all. A contractor who has not set up ads pays no script cost — the tags are not loaded and disabled, they are absent.
  • Nothing loads inside the mobile app. The scripts are skipped when the page is running in the native app wrapper.

Three events, and each one maps to both platforms:

What happened Meta event GA4 event Value sent
Booking page submitted Schedule booking_submitted The job estimate
Instant estimate captured Lead generate_lead The quoted price
Either page viewed PageView page_view —

The value matters more than it looks. A conversion reported with the quoted price lets the platforms optimise toward the jobs worth having rather than treating a $400 service call and a $14,000 system as the same win.

Why there are two halves, and why you are not double-counted

Section titled “Why there are two halves, and why you are not double-counted”

Every conversion is reported twice: once from the browser, once from our server.

That is on purpose. The browser pixel alone loses a large share of paid-ad conversions to ad blockers, iOS tracking prevention and third-party cookie limits — so the platforms want the same event from the server, which nothing on the customer’s device can interfere with. That is what the Conversions API token and the Measurement Protocol secret are for; without them you get browser-side reporting only, which undercounts.

Both halves carry the same event id, which is how Meta and GA4 collapse the pair into one conversion rather than counting it twice. You do not need to configure anything for that.

Conversion reporting never fails a customer’s submission. A wrong pixel id, a revoked token, a platform outage — all of it is swallowed and logged. A booking is worth more than its analytics, so the submission goes through and the conversion is what gets lost.

The practical consequence: a misconfigured pixel is silent. You will not see an error in the app; you will see nothing arriving in Events Manager. Which is why the test code exists.

  1. Set the Test event code from Meta’s Test Events tab
  2. Open your own booking page and submit a request
  3. Watch it land in Test Events rather than your live numbers
  4. Clear the test code when you are done

For GA4, the same submission should appear in Realtime within a minute or two.