Skip to main content
Google Ads × Invoicing SystemRun this yourself

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

  1. 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.

  2. 02

    Written-off invoices never reversed

    Work that was never paid for stays in the reported figure indefinitely because nobody wired the reversal.

  3. 03

    Payment terms longer than the reporting window

    A month judged at month-end is a month that has not finished being paid.

  4. 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. 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 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. 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

15%+ platform higherUsually the wrong event entirely — invoices are being counted at issue rather than payment, or written-off invoices were never reversed.
20%+ platform lowerUsually 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

  1. 01

    Confirm both numbers cover the same period and channel

  2. 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.

  3. 03

    Written-off invoices never reversed

    Work that was never paid for stays in the reported figure indefinitely because nobody wired the reversal.

  4. 04

    Payment terms longer than the reporting window

    A month judged at month-end is a month that has not finished being paid.

  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 × 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

    Get my free conversion tracking audit

    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.

    Free · 30 min

    Found a gap between Google Ads and your invoicing system?

    Free30 minutesNo obligation