Skip to main content
Google Ads × Job SystemRun this yourself

How to reconcile Google Ads against your job management system

This is the check we run first on every account, written out so you can run it without us. It takes about thirty minutes and needs two numbers: what Google Ads says it produced, and what your job management system actually shows. The gap between them is the only honest measure of whether your tracking works — and if it comes back small, you do not need us.

Free30 minutesNo obligation

Specific to Google Ads × Job System

Google Ads vs completed jobs: carry the gclid from booking to invoice

Join on the gclid, gbraid or wbraid captured on the web booking form and stored on the job record, then compare Google's by-conversion-time figures against jobs completed and invoiced in the same closed month. Expect Google to run below your job system when calls go untracked, and above it when the conversion action fires on quote requests.

The only reliable join between Google Ads and a job in ServiceTitan, Jobber or Housecall Pro is a click identifier that survives from the landing page into the job record, usually through a hidden field on the online booking or request form that writes gclid, gbraid or wbraid to a custom field. Jobs that start as a phone call carry none of these unless your call tracking passes the click ID through, so the matchable share is often far smaller than the job count.

Timing distorts this pair more than most. Google credits a conversion to the click date by default, while your export counts jobs by completion date, and a quote-schedule-complete cycle easily straddles a month boundary. Compare against the by-conversion-time columns, or upload completed jobs through offline conversion import with the invoice date as the conversion time and the invoiced amount as the value. Jobs completed more than 90 days after the click cannot be imported, which mostly affects large installs and remodels.

A moderate shortfall on Google's side is normal, because referral and repeat work never had a click. A large excess almost always means the primary conversion action is a form submit or a call count rather than a completed job, so Google is crediting quotes and price-shoppers. If you also run Local Services Ads, check whether those leads appear in the same reporting before treating them as part of the gap.

Google Ads × Job System · what breaks

Why Google Ads and your job management system disagree

  1. 01

    Quotes counted as won work

    A quote is a van, a person and an hour already spent. In trades the quote-to-job rate varies enormously by source, so counting quotes rewards the channels producing price-shoppers.

  2. 02

    Estimate value used instead of invoiced value

    Change orders, extras and variations move the final figure. The estimate is a forecast; the invoice is revenue.

  3. 03

    Repeat customers credited to the original click

    A maintenance customer booking twice a year for five years produces ten jobs against one click.

  4. 04

    Phone-first demand invisible

    Trades are overwhelmingly phone-driven. Without dynamic number insertion, most of the funnel is unmeasured.

Google Ads × Job System · the fix

What you get from this — Google Ads × Job System

  • A number instead of a suspicion

  • The likely cause, narrowed

  • A basis for deciding

Google Ads × Job System · architecture

What each side is actually counting — Google Ads × Job System

  1. 1

    What Google Ads counts

    A click identifier inside the 90-day window, a conversion action name that matches one configured in the account, a conversion timestamp for when the outcome happened, and a value. Read the match rate after uploading — a file can upload perfectly and match nothing.

  2. 2

    How Google Ads attributes it

    Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.

  3. 3

    The window it uses

    Google's offline import window is 90 days from the click. Anything older can't be matched, and rows outside it fail as unmatched without much explanation. Measure your median click-to-outcome time against that before designing anything.

  4. 4

    What your job management system counts

    Jobs completed and invoiced, at the amount actually billed, found in ServiceTitan, Jobber, Housecall Pro, Simpro or whatever holds your job records.

  5. 5

    The filter that makes them comparable

    Status is complete and invoiced — not quoted, not scheduled, not in progress.

Google Ads × Job System · events

Reading the gap — Google Ads × Job System

15%+ platform higherUsually the wrong event entirely — the platform is counting quotes, cancelled jobs, or repeat customers as new acquisitions.
20%+ platform lowerUsually structural — the platform is missing jobs it produced — almost always phone calls with no number tracking.

Google Ads × Job System · diagnose

Diagnostic order — Google Ads × Job System

  1. 01

    Confirm both numbers cover the same period and channel

  2. 02

    Quotes counted as won work

    A quote is a van, a person and an hour already spent. In trades the quote-to-job rate varies enormously by source, so counting quotes rewards the channels producing price-shoppers.

  3. 03

    Estimate value used instead of invoiced value

    Change orders, extras and variations move the final figure. The estimate is a forecast; the invoice is revenue.

  4. 04

    Repeat customers credited to the original click

    A maintenance customer booking twice a year for five years produces ten jobs against one click.

  5. 05

    Read the match rate on the upload, not the success message

    A conversion action that stops receiving hits is flagged as inactive 30 days later — by which point a month of budget has already run against a missing signal. Check the last-received date on every action monthly; it takes two minutes and it's the cheapest monitoring available.

Google Ads × Job System · prove

How to know you did it right — Google Ads × Job System

Source of truth

your job management system — completed jobs for a fully closed month

    Google Ads × Job System · free audit

    What we check in the free audit

    • Confirm both numbers cover the same period and channel
    • Quotes counted as won work
    • Estimate value used instead of invoiced value
    • Repeat customers credited to the original click
    • Read the match rate on the upload, not the success message

    Checked against

    your job management system — completed jobs for a fully closed month

    Get my free conversion tracking audit

    Free30 minutesNo obligation

    Google Ads × Job System · when not to buy

    When the answer is that you do not need us — Google Ads × Job System

    • If almost all of your completed jobs come from a channel with no click behind it, no tracking work will reach them — and knowing that is worth more than a build.
    • If you're running Performance Max exclusively and haven't separated your conversion actions, the import will work and the reporting won't tell you much. Worth sorting the account structure first.

    Google Ads × Job System · what we deliver

    The method, step by step — Google Ads × Job System

    • Pull what Google Ads reports

      The match rate on the upload, not the success message.

    • Pull what your job management system shows

      Export completed jobs by completion date for a closed month, with the invoiced amount, and separate first jobs from repeat customers.

    • Filter both to the same thing

      Status is complete and invoiced — not quoted, not scheduled, not in progress.

    • Compare per record, not on totals

    FAQ

    Google Ads × Job System questions, answered

    Import the completed, invoiced job as the primary action if your click-to-completion time fits inside 90 days, and keep bookings as a secondary action. Optimizing toward bookings rewards keywords that produce no-shows and quotes that never close.

    Free · 30 min

    Found a gap between Google Ads and your job management system?

    Free30 minutesNo obligation