How to track subscription to renewal and churn for Google Ads
A renewal happens inside a billing system on a schedule, with no customer and no browser anywhere near it, which makes it structurally invisible to anything that fires from a page. The harder question, which most guides skip entirely, is whether renewals should reach an ad platform at all — because sending them against the original click credits a year-old ad with revenue it did not just produce. On Google Ads the specifics that matter are the click identifier (gclid, gbraid and wbraid), the import mechanism (Google's offline conversion import), and conversion actions deduplicate on their own counting setting rather than an event ID, so the setting matters more here than the payload. The chain only works end to end if the identifier is captured on landing and stored on the subscription and invoice records in your billing system — no cookie survives the gap between subscription created and cancellation.
Free30 minutesNo obligation
Specific to Google Ads × Subscription → renewal
Google Ads renewals: a secondary action, mostly outside 90 days
On Google Ads, send the first successful subscription payment from your billing webhook as a primary conversion action, matched on the stored gclid, gbraid or wbraid and valued at expected lifetime value. Send renewals, if at all, to a separate secondary action that bidding ignores. Monthly renewals after the third cycle usually fall outside the 90-day import window anyway.
The 90-day offline import window settles most of the renewal debate on Google Ads before policy does. A monthly plan bought from a click on January 5 renews in February, March and April; every renewal after that sits outside the window and fails as unmatched. An annual plan's first renewal can never be imported against the original click at all. So the realistic upload is the first successful payment, plus perhaps two early renewals if you choose to send them.
If you do send early renewals, create a separate conversion action for them and mark it secondary. Secondary actions appear in reporting columns but are not used for bidding, which is exactly the role renewal revenue should play. Set the acquisition action's counting to one per click so a customer who re-subscribes after cancelling doesn't count twice against one ad. When a subscriber cancels inside the first billing period, a conversion adjustment upload can retract or restate the value; confirm the current adjustment format in Google's documentation before wiring it.
The common break on Google is the trial. A 14-day free trial means the gclid was captured at signup, but the first charge happens two weeks later in the billing system, often on a customer record that never received the identifier. Copy it from the signup onto the subscription object, and check how many trial-converted subscriptions carry one before trusting any trial-to-paid number from Google.
Google Ads · Subscription → renewal · what breaks
Where this funnel usually breaks — Google Ads · Subscription → renewal
- 01
No browser present at renewal
Not a bug and not fixable by any pixel. The webhook is the only event source that exists.
- 02
Dunning retries counted several times
One billing period retried four times can produce four events unless the conversion is keyed on the period.
- 03
Renewals sent as acquisition conversions
Which credits old clicks with new revenue and pulls optimization toward whatever was running a year ago.
Google Ads · Subscription → renewal · the fix
What working looks like — Google Ads · Subscription → renewal
Cancellation attributed to the click
Weeks later if necessary, because the identifier lives on the subscription and invoice records in your billing system rather than in a cookie.
Google Ads bidding fed the real outcome
Via offline conversion import, so it optimizes toward recurring revenue that is actually recurring rather than toward signups.
A reconciliation that closes
Your billing system's paid invoices by payment date, net of refunds and failed payments matched per record against what Google Ads reports, over a fully closed window.
Google Ads · Subscription → renewal · architecture
The exact event sequence — Google Ads · Subscription → renewal
The break is structural rather than accidental: there is no browser at renewal, so the event source has to be the billing system's webhook. Beyond that the risk is one of policy, because a setup that sends every renewal as a purchase will inflate reported return by the entire size of the subscriber base.
- 1
Subscription created
The acquisition event, valued at expected lifetime rather than the first payment.
- 2
First payment succeeded
Where a trial converts into a business. Often the real acquisition moment.
- 3
Recurring payment succeeded
Renewal revenue. Reported always, sent only deliberately.
- 4
Payment failed and dunning
Not revenue. Retries must not each count as a renewal.
- 5
Cancellation
Reverses the lifetime value you claimed at acquisition.
Google Ads · Subscription → renewal · diagnose
What's specific to Google Ads
- 01
Click identifier: gclid, gbraid and wbraid
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.
- 02
Import mechanism: offline conversion import
Uploaded against the click identifier, either through the Google Ads API or as a file. The upload is the easy part; what limits it is how many of your records carry an identifier at all. Verify the current column format against Google's own template — it has changed before.
- 03
Deduplication
There's no shared event ID mechanism like Meta's. What matters instead is the counting setting on each conversion action — 'one' for lead-type conversions so a repeat submitter doesn't count three times, 'every' for ecommerce where a second purchase is a second sale. This is the single most common misconfiguration we find in Google Ads accounts.
- 04
Window and timing
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.
- 05
The Google Ads gotcha
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 · Subscription → renewal · prove
How to prove the chain works — Google Ads · Subscription → renewal
Source of truth
your billing system's paid invoices by payment date, net of refunds and failed payments
- The same identifier confirmed on the subscription and invoice records in your billing system after a full real journey through every step.
- Cancellation confirmed arriving at Google Ads, verified by the match rate on the upload, not the success message.
- Your billing system's paid invoices by payment date, net of refunds and failed payments reconciled against Google Ads per record over a fully closed window.
Google Ads · Subscription → renewal · free audit
What we check in the free audit
- Click identifier: gclid, gbraid and wbraid
- Import mechanism: offline conversion import
- Deduplication
- Window and timing
- The Google Ads gotcha
Checked against
your billing system's paid invoices by payment date, net of refunds and failed payments
Free30 minutesNo obligation
Google Ads · Subscription → renewal · when not to buy
When this doesn't apply to you — Google Ads · Subscription → renewal
- If your subscription is annual with a very long trial, the first payment may fall outside the import window entirely — measure that before designing anything that depends on uploading it.
- 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.
- If your cycle from click to cancellation regularly exceeds the import window, the final event can't drive bidding whatever you build. Optimize toward first successful payment, valued at expected lifetime instead and use the later data for budget decisions rather than for bidding.
- If almost none of your subscription records carry a click identifier today, that's the whole project.
Google Ads · Subscription → renewal · what we deliver
The implementation, on Google Ads
Capture gclid, gbraid and wbraid on landing
Auto-tagging appends the identifier. Confirm it's enabled in every account — it gets switched off for cleaner analytics URLs more often than you'd expect, and that single setting removes conversion attribution, Enhanced Conversions and offline import in one go.
Persist it to the subscription and invoice records in your billing system
Store the identifier on the subscription rather than the first order, because every renewal creates a new invoice and only the subscription persists across all of them.
Send cancellation from the record
The billing system's payment webhook. Acquisition goes to the ad platforms at expected lifetime value; renewals go to your own reporting, and to a separate excluded conversion action if they go to a platform at all. Dispatched to Google Ads through Google's offline conversion import.
Deduplicate and reverse
Conversion actions deduplicate on their own counting setting rather than an event id, so the setting matters more here than the payload. Cancellations and failed final payments reverse the lifetime value claimed at acquisition. Without this the reported number only ever rises, which no real subscription business does.
FAQ
Google Ads · Subscription → renewal questions, answered
Only as a secondary conversion action used for reporting, and only for renewals inside the 90-day import window. Bidding should run on the first paid conversion valued at expected lifetime.
Google offers a new customer acquisition goal on some campaign types, which needs a customer list or a new-versus-returning flag. Check which of your campaign types support it before building around it.
Because signups include everyone who wanted a free trial, and in most subscription businesses the trial-to-paid rate varies enough by campaign to reverse which campaign looks best.
It doesn't, as a cookie — the gap is too long. It has to be written onto the subscription and invoice records in your billing system at the point of subscription created, where it lives as a field rather than as browser storage.
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.
Two to four days for the implementation, plus a closed reconciliation window before we'd call it verified. Capture and persistence are the fiddly parts; the import itself is usually an afternoon.
Yes, and the reference pages on this site cover the mechanics. The part that's genuinely tedious rather than clever is keeping gclid, gbraid and wbraid alive through multi-step forms and a trial or billing period longer than any browser cookie survives, which fails silently at every stage.
More on Google Ads · Subscription → renewal
- Meta · Subscription → renewalHow to track subscription to renewal and churn for Meta Ads
- TikTok · Subscription → renewalHow to track subscription to renewal and churn for TikTok Ads
- Microsoft · Subscription → renewalHow to track subscription to renewal and churn for Microsoft Ads
RELATED GUIDES
Funnels next to subscription to renewal, and the checks that close it
- Google Ads · Self-serve → sales assistedHow to track self-serve signup to sales-assisted contract for Google Ads
- Google Ads · PQL → closed wonHow to track product-qualified lead to closed won for Google Ads
- Google Ads × SubscriptionsHow to reconcile Google Ads against your billing system
- Google Ads · NonprofitsGoogle Ads conversion tracking for nonprofits
- Google Ads · Gyms and studiosGoogle Ads conversion tracking for gyms and fitness studios
- Elavon → Google AdsConnecting Elavon to Google Ads
- Nexudus → Google AdsConnecting Nexudus to Google Ads
- Google Ads · Invite → team adoptionHow to track seat invite to team adoption for Google Ads
Free · 30 min
Get subscription to renewal and churn tracked properly on Google Ads
Free30 minutesNo obligation
