How to reconcile Google Ads against your invoicing 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 invoicing 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 × Invoicing System
Google Ads vs paid invoices: the gclid has to reach the client record
Match Google Ads conversions to paid invoices through the gclid, gbraid or wbraid captured on the inquiry and stored on the client record your invoice is raised against. Judge by payment date, not issue date. Google's 90-day import window is often shorter than sales cycle plus payment terms, so a shortfall on long engagements is normal.
QuickBooks, Xero and FreshBooks have no field for a click identifier, so the join has to be built one step earlier. Store the gclid, gbraid or wbraid on the contact or deal when the inquiry form is submitted, and copy it onto the customer when the first invoice is raised. Without that hop, the only link is the email address, and the billing contact on an invoice is often an accounts-payable mailbox rather than the person who clicked the ad.
Google counts the 90 days from the click, not from the invoice. A prospect who clicks in January, signs in March and pays net-30 in April may already be close to the limit. Read your conversions in the Google Ads conversions report with the conversion-time column rather than the default click-date view, because the default credits the paid invoice back to the month of the click and makes recent months look weak.
For a services business, Google usually reports more than your paid invoices if the conversion action is set on the form submission, since every inquiry counts and most never become an invoice. A gap that closes when you switch to an imported paid-invoice conversion is expected. A gap that persists after the import usually means uploads keep failing because the identifier was never copied from the deal to the invoice, so check the upload's match rate before anything else.
Google Ads × Invoicing System · what breaks
Why Google Ads and your invoicing system disagree
- 01
Invoices sent counted as revenue earned
On thirty-day terms, issue date and payment date are different months. Reporting at issue books income you have not received.
- 02
Written-off invoices never reversed
Work that was never paid for stays in the reported figure indefinitely because nobody wired the reversal.
- 03
Payment terms longer than the reporting window
A month judged at month-end is a month that has not finished being paid.
- 04
Delivery cost absent
In services, revenue without the hours that produced it is half the picture. A large low-margin client can look like your best campaign result.
Google Ads × Invoicing System · the fix
What you get from this — Google Ads × Invoicing System
A number instead of a suspicion
The likely cause, narrowed
A basis for deciding
Google Ads × Invoicing System · architecture
What each side is actually counting — Google Ads × Invoicing 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 invoicing system counts
Invoices actually paid, by payment date rather than issue date, found in QuickBooks, Xero, FreshBooks, Zoho Books or whatever raises your invoices.
- 5
The filter that makes them comparable
Status is paid — not sent, not overdue, not written off.
Google Ads × Invoicing System · events
Reading the gap — Google Ads × Invoicing System
| What you see | What it usually means |
|---|---|
| 15%+ platform higher | Usually the wrong event entirely — invoices are being counted at issue rather than payment, or written-off invoices were never reversed. |
| 20%+ platform lower | Usually structural — the platform is missing work it produced — usually a sales cycle plus payment terms exceeding the attribution window. |
Google Ads × Invoicing System · diagnose
Diagnostic order — Google Ads × Invoicing System
- 01
Confirm both numbers cover the same period and channel
- 02
Invoices sent counted as revenue earned
On thirty-day terms, issue date and payment date are different months. Reporting at issue books income you have not received.
- 03
Written-off invoices never reversed
Work that was never paid for stays in the reported figure indefinitely because nobody wired the reversal.
- 04
Payment terms longer than the reporting window
A month judged at month-end is a month that has not finished being paid.
- 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 × Invoicing System · prove
How to know you did it right — Google Ads × Invoicing System
Source of truth
your invoicing system — paid invoices for a fully closed month
Google Ads × Invoicing System · free audit
What we check in the free audit
- Confirm both numbers cover the same period and channel
- Invoices sent counted as revenue earned
- Written-off invoices never reversed
- Payment terms longer than the reporting window
- Read the match rate on the upload, not the success message
Checked against
your invoicing system — paid invoices for a fully closed month
Free30 minutesNo obligation
Google Ads × Invoicing System · when not to buy
When the answer is that you do not need us — Google Ads × Invoicing System
- If almost all of your paid invoices 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 × Invoicing System · what we deliver
The method, step by step — Google Ads × Invoicing System
Pull what Google Ads reports
The match rate on the upload, not the success message.
Pull what your invoicing system shows
Export invoices by payment date for a window longer than your payment terms, at the amount received after processing fees.
Filter both to the same thing
Status is paid — not sent, not overdue, not written off.
Compare per record, not on totals
FAQ
Google Ads × Invoicing System questions, answered
Upload at payment, with the payment date as the conversion time. Uploading at issue books revenue that may be written off later, and Google then optimizes toward clients who do not pay.
Google will reject the row as unmatched. Upload an earlier stage such as the signed proposal as a separate conversion action so Google still learns from the client inside the window.
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 paid — not sent, not overdue, not written off. 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 × Invoicing System
- Google Ads × Appointment SystemHow to reconcile Google Ads against your practice or scheduling system
- Google Ads × Booking SystemHow to reconcile Google Ads against your booking or reservation system
- Meta × Invoicing SystemHow to reconcile Meta Ads against your invoicing system
RELATED GUIDES
Systems of record beside invoicing system, 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 · RFP → awardHow to track RFP submission to contract award for Google Ads
- Google Ads · Quote → closed jobHow to track quote request to closed job for Google Ads
- Google Ads · Commercial cleaningGoogle Ads conversion tracking for commercial cleaning companies
- Google Ads · RestorationGoogle Ads conversion tracking for water damage and restoration companies
- Jobber → Google AdsConnecting Jobber to Google Ads
- Xero → Google AdsConnecting Xero to Google Ads
Free · 30 min
Found a gap between Google Ads and your invoicing system?
Free30 minutesNo obligation
