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
- 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.
- 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.
- 03
Repeat customers credited to the original click
A maintenance customer booking twice a year for five years produces ten jobs against one click.
- 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
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
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
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
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
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
| What you see | What it usually means |
|---|---|
| 15%+ platform higher | Usually the wrong event entirely — the platform is counting quotes, cancelled jobs, or repeat customers as new acquisitions. |
| 20%+ platform lower | Usually 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
- 01
Confirm both numbers cover the same period and channel
- 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.
- 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.
- 04
Repeat customers credited to the original click
A maintenance customer booking twice a year for five years produces ten jobs against one click.
- 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
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.
CSRs usually record the source from what the customer says, which lumps in organic search, Maps and Local Services Ads. Only jobs carrying a captured click ID can be matched to paid clicks.
Because you should know the size of the problem before anyone quotes you for it. If the gap is small, you have saved yourself a purchase. If it is large, you now know what you are buying rather than taking our word for it.
No. Both numbers come from systems you already own and neither leaves them. There is no tool to sign up for and nothing to upload.
Then compare totals for a closed period and treat the result as directional rather than exact. The match rate on the upload, not the success message is still the right place to read the platform's side.
Under five percent is working. Five to fifteen usually means reversals are missing. Above twenty is normally the wrong event being counted, not a broken tag — which is why debugging tags first wastes so much time.
Then fix the filter before drawing any conclusion. Status is complete and invoiced — not quoted, not scheduled, not in progress. A mismatch in scope produces a gap that looks like a tracking fault and is not one.
Book the free thirty-minute call and bring both numbers. We will tell you which of the causes above it is, and whether it is something you can fix yourself — which it sometimes is.
More on Google Ads × Job System
- Meta × Job SystemHow to reconcile Meta Ads against your job management system
- TikTok × Job SystemHow to reconcile TikTok Ads against your job management system
- Microsoft × Job SystemHow to reconcile Microsoft Ads against your job management system
RELATED GUIDES
Systems of record beside job management, and the funnels it settles
- Google Ads × Enrolment SystemHow to reconcile Google Ads against your application or enrolment system
- Google Ads × POS SystemHow to reconcile Google Ads against your point-of-sale system
- Google Ads · Quote → closed jobHow to track quote request to closed job for Google Ads
- Google Ads · Junk removalGoogle Ads conversion tracking for junk removal companies
- Google Ads · Home inspectionGoogle Ads conversion tracking for home inspection companies
- Housecall Pro → Google AdsConnecting Housecall Pro to Google Ads
- Workiz → Google AdsConnecting Workiz to Google Ads
- Google Ads × Invoicing SystemHow to reconcile Google Ads against your invoicing system
Free · 30 min
Found a gap between Google Ads and your job management system?
Free30 minutesNo obligation
