How to reconcile Google Ads against your billing 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 billing 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 × Subscriptions
Google Ads vs first subscription payments: join on the stored gclid
Store gclid, gbraid or wbraid on the billing customer at checkout, then match Google's conversions to first successful payments for a closed month. Read Google's conversion-time columns, not the click-date default. A small gap from consent loss is normal; Google counting more conversions than you have new subscribers usually means renewals are being uploaded.
The only per-record join here is the click identifier, and it has to survive the jump from your site to the billing system. Write gclid, gbraid or wbraid into the customer or subscription metadata when the checkout session is created. If checkout runs on a hosted payment page on another domain and nobody passes the identifier across, every subscription arrives in billing anonymous and Google's figure can only be compared as a total.
Google's default conversion columns assign each conversion to the date of the click, while your billing export is grouped by the date the subscription was created. With a trial in between, a click in late March can produce a first payment in April, so a closed month will look short on both sides at its edges. Use the columns that report by conversion time for this comparison. The 90-day import window only bites when a trial or a sales-assisted signup runs longer than that.
A gap where Google sits slightly below new paid subscriptions is the expected result of consent and lost identifiers. Google sitting above them is breakage, and the usual cause is a purchase conversion action that fires, or is uploaded, on every invoice rather than on the first one. Check that the action counts one conversion per click and that the upload filters to first payments.
Google Ads × Subscriptions · what breaks
Why Google Ads and your billing system disagree
- 01
Every renewal firing as a conversion
The single most common subscription error. A customer who stays two years produces twenty-four payment events, and counting them all inflates the conversion count by exactly your retention rate.
- 02
Trial starts counted as paid conversions
A free trial costs the user nothing. Optimising toward trials reliably finds people who start trials and never pay.
- 03
Cancellations inside the first period never reversed
Early churn on discounted offers is high, and the reversal is almost never wired.
- 04
Lifetime value assumed rather than measured
An industry figure for tenure will either starve a channel that works or overfund one that does not. Your own churn data says something different.
Google Ads × Subscriptions · the fix
What you get from this — Google Ads × Subscriptions
A number instead of a suspicion
The likely cause, narrowed
A basis for deciding
Google Ads × Subscriptions · architecture
What each side is actually counting — Google Ads × Subscriptions
- 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 billing system counts
First successful payments on new subscriptions, found in Stripe, Chargebee, Recurly, Paddle or whatever charges the card.
- 5
The filter that makes them comparable
New subscriptions only — exclude renewals, and exclude trials that have not yet converted.
Google Ads × Subscriptions · events
Reading the gap — Google Ads × Subscriptions
| What you see | What it usually means |
|---|---|
| 15%+ platform higher | Usually the wrong event entirely — the platform is counting renewals, trials, or subscriptions that cancelled before the first real charge. |
| 20%+ platform lower | Usually structural — the platform is missing subscriptions it produced — usually a signup-to-payment gap longer than the attribution window. |
Google Ads × Subscriptions · diagnose
Diagnostic order — Google Ads × Subscriptions
- 01
Confirm both numbers cover the same period and channel
- 02
Every renewal firing as a conversion
The single most common subscription error. A customer who stays two years produces twenty-four payment events, and counting them all inflates the conversion count by exactly your retention rate.
- 03
Trial starts counted as paid conversions
A free trial costs the user nothing. Optimising toward trials reliably finds people who start trials and never pay.
- 04
Cancellations inside the first period never reversed
Early churn on discounted offers is high, and the reversal is almost never wired.
- 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 × Subscriptions · prove
How to know you did it right — Google Ads × Subscriptions
Source of truth
your billing system — new subscriptions for a fully closed month
Google Ads × Subscriptions · free audit
What we check in the free audit
- Confirm both numbers cover the same period and channel
- Every renewal firing as a conversion
- Trial starts counted as paid conversions
- Cancellations inside the first period never reversed
- Read the match rate on the upload, not the success message
Checked against
your billing system — new subscriptions for a fully closed month
Free30 minutesNo obligation
Google Ads × Subscriptions · when not to buy
When the answer is that you do not need us — Google Ads × Subscriptions
- If almost all of your new subscriptions 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 × Subscriptions · what we deliver
The method, step by step — Google Ads × Subscriptions
Pull what Google Ads reports
The match rate on the upload, not the success message.
Pull what your billing system shows
Export subscriptions by creation date for a closed month, filtered to those that took a first successful payment, and record the plan value.
Filter both to the same thing
New subscriptions only — exclude renewals, and exclude trials that have not yet converted.
Compare per record, not on totals
FAQ
Google Ads × Subscriptions questions, answered
Send the first successful payment as the primary conversion and keep any trial-start action secondary. Bidding toward trials finds people who start trials, which is not the same audience as people who pay.
You can, but keep them in a separate non-primary action or they will inflate this reconciliation and steer bidding toward customers you already have. The new-subscription action should only ever see one payment per subscriber.
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. New subscriptions only — exclude renewals, and exclude trials that have not yet converted. 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 × Subscriptions
- Meta × SubscriptionsHow to reconcile Meta Ads against your billing system
- TikTok × SubscriptionsHow to reconcile TikTok Ads against your billing system
- Microsoft × SubscriptionsHow to reconcile Microsoft Ads against your billing system
RELATED GUIDES
Systems of record beside billing subscriptions, 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 · Usage → expansionHow to track usage growth to plan upgrade for Google Ads
- Google Ads · Free tool → paid planHow to track free tool to paid plan for Google Ads
- Google Ads · NonprofitsGoogle Ads conversion tracking for nonprofits
- Google Ads · Driving schoolsGoogle Ads conversion tracking for driving schools
- Optimizely → Google AdsConnecting Optimizely to Google Ads
- mParticle → Google AdsConnecting mParticle to Google Ads
Free · 30 min
Found a gap between Google Ads and your billing system?
Free30 minutesNo obligation
