Skip to main content
CallRailCall tracking

CallRail conversion tracking that counts booked jobs, not every ring

Your CallRail log is busy and Google Ads shows a stack of "Phone Call" conversions, yet neither tells you which campaigns put work on the schedule. Usually the pool is too small, an old source number overrides it, or every Google call posts as a win. We rebuild it so only qualified calls, with a real value, reach Google Ads and Meta, matched by click ID.

Free30 minutesNo obligation

CallRail · what breaks

What goes wrong with CallRail

  1. 01

    Google Ads counts every call as a win

    CallRail posts any website-pool call from a Google click unless a trigger filters it. Wrong numbers and vendor pitches teach Smart Bidding to buy more of the same.

  2. 02

    Calls credited to the wrong ad

    A pool too small for your peak hour gives two visitors one number, and CallRail merges them under whoever calls first. An old Google PPC source number can override the pool entirely.

  3. 03

    No idea which calls became jobs

    The booked job lives in ServiceTitan, Jobber or your shop software. Without a value sent back, Google treats a price shopper and a full replacement as equal.

  4. 04

    Meta and GA4 tell two different stories

    CallRail sends Meta every call, text and form by default, matched on phone number, so callers who found you another way can get credited to an ad they once saw. GA4 files the same calls under Unassigned.

CallRail · the fix

What changes after the fix — CallRail

  • Bidding learns from qualified callers

    Google Ads and Meta get only calls your team scored qualified, so campaigns chase people who book.

  • Every call tied to the right click

    Pool sized to peak traffic, competing source numbers retired, GCLID confirmed on the call record.

  • Job value on the conversion

    Sent inside CallRail's value delay window, so return on ad spend reflects booked work, not call volume.

CallRail · architecture

What CallRail actually lets you hook into

Everything below comes from CallRail's own help center. Where its docs are unclear, we list it as something we confirm on your account.

  1. 1

    Swap script and website pools

    A snippet, direct or through Google Tag Manager, gives each visitor a pool number. CallRail suggests peak hourly visitors divided by four, minimum four. Numbers inside iframes don't swap.

  2. 2

    Google Ads integration

    Posts website-pool calls and forms by GCLID, gbraid or wbraid. Needs auto-tagging, isn't retroactive, and stops posting if you rename its conversion actions. Supports enhanced conversions for leads, not for web.

  3. 3

    Integration triggers and call values

    Filters on call duration or tag decide what posts to Google Ads and Meta. Call values go out once, after a delay you set between 4 hours and 30 days.

  4. 4

    Meta integration (Pixel method)

    Sends calls, texts and forms, matched on phone, email or fbclid. Every interaction goes unless an integration trigger filters it out.

  5. 5

    GA4 and Microsoft Ads

    GA4 gets phone_call and similar events via the Measurement Protocol, needing custom dimensions. Microsoft Ads gets Phone Call and Text Message goals by MSCLKID.

  6. 6

    Webhooks and API v3

    Pre-call, post-call, call modified (tags, scores, notes) and form submission webhooks. No webhook fires when a form is edited later, so form qualification needs another path.

CallRail · diagnose

Where CallRail tracking breaks, in the order we check

Start with the swap. If the wrong number shows on the page, nothing downstream can be right.

  1. 01

    Does the pool number actually show?

    Hard-coded numbers, iframes and caching plugins such as WP Rocket removing the snippet.

  2. 02

    Is a source number overriding the pool?

    A Google PPC source number takes precedence over the website pool, and its calls never post by GCLID.

  3. 03

    Is the pool big enough for your peak hour?

    Too few numbers and separate visitors get merged into one caller's timeline.

  4. 04

    Is the GCLID on the record, and are triggers sane?

    Auto-tagging off, a site forcing GCLIDs to lowercase, a renamed conversion action, or a trigger minimum longer than your typical call.

  5. 05

    Are call assets counted twice?

    Call Details Forwarding uses Google's own call reporting, so we confirm calls aren't also imported.

  6. 06

    What do Meta and GA4 receive?

    Whether every caller still reaches Meta unfiltered, and how many CallRail events GA4 files under Unassigned.

CallRail · prove

The QA evidence on your CallRail account

Live calls to your real tracking numbers, not CallRail's auto-test, which can report false negatives.

Source of truth

Your CallRail call log, with source, click ID, tags, qualification score and value per call, checked against booked jobs in your scheduling software

  • A test call from an ad-tagged URL shows the correct pool number and the GCLID on its CallRail record.
  • That call appears once in Google Ads under the intended action, dated by the ad click.
  • A call under the minimum duration or tagged spam is confirmed absent from Google Ads and Meta.
  • A qualified call shows once in Meta Events Manager as a CallRail Calls event, and a spam call doesn't show at all.
  • Job values arrive after the value delay and match the job record.
  • Qualified calls reconciled one by one over a closed month, then again at 30 days.

CallRail · free audit

What we check in the free audit

  • Does the pool number actually show?
  • Is a source number overriding the pool?
  • Is the pool big enough for your peak hour?
  • Is the GCLID on the record, and are triggers sane?
  • Are call assets counted twice?
  • What do Meta and GA4 receive?

Checked against

Your CallRail call log, with source, click ID, tags, qualification score and value per call, checked against booked jobs in your scheduling software

Get my free conversion tracking audit

Free30 minutesNo obligation

CallRail · when not to buy

When you don't need this on CallRail

CallRail's native setup is plenty for a lot of shops, and we'll say so on the call.

  • If you only run Google Ads and CallRail's conversions already line up with booked jobs, leave it alone.
  • If most of your calls come from your Google Business Profile, ad matching won't help much: those callers never clicked an ad, so Google Ads has nothing to match.
  • If the only fault is a pool that's too small, adding numbers inside CallRail fixes it, and you can do that yourself.
  • If you don't run Meta or Microsoft ads and nobody decides from GA4, skip wiring them.

CallRail · what we deliver

The event map on CallRail

  • Web session with click ID

    GCLID, fbclid or MSCLKID and landing page, held against the pool number CallRail assigned that visitor.

  • First-time call, text or form

    Leading signal, kept apart from repeat callers using CallRail's first-time and repeat split.

  • Qualified call

    The primary conversion: scored qualified or tagged by your team, above the agreed minimum duration.

  • Job booked

    Sent with an estimated value once the appointment is confirmed in your scheduling or field service software.

  • Paid job value

    CallRail sends each call value only once, so when the final invoice differs we restate it with a Google Ads RESTATE adjustment.

  • Excluded: spam, existing customers, profile calls

    Kept in CallRail for reporting, never sent to ad platforms.

Written guarantee

95%+ tracking accuracy

Measured against Your CallRail call log, with source, click ID, tags, qualification score and value per call, checked against booked jobs in your scheduling software. Miss it and we keep working at no cost.

Get my free conversion tracking audit

From $400 · See packages

FAQ

CallRail questions, answered

Yes, for website-pool calls from a Google ad click with auto-tagging on. Every such call counts by default, so filter it or bidding learns from junk.

Free · 30 min

Find out which CallRail calls your ads really bought

Free30 minutesNo obligation