Skip to main content
Recharge + GooglePlatform solution

Google Ads and GA4 tracking for Recharge

Google Ads on a Recharge store comes down to one decision and one setting. The decision is what a new subscriber is worth — expected lifetime, not the first box. The setting is the conversion action's counting rule, which is wrong by default for most subscription stores. Renewals cannot be uploaded against the original click at all, because they arrive long past Google's 90-day import window.

Free30 minutesNo obligation

Recharge + Google · what breaks

What goes wrong on Recharge

  1. 01

    Renewals invisible to every ad platform

    They happen on a cron, with no customer present. Nothing that fires from a page can see them, and no amount of pixel work changes that.

  2. 02

    The first order double-counted

    Recharge creates a Shopify order, so the store's native integration and a Recharge-aware setup can both fire for the same purchase.

  3. 03

    Churn never reversed

    A subscription that cancels stops producing revenue, and almost nobody wires the cancellation back to anywhere.

  4. 04

    Acquisition valued at one box

    A subscriber worth twelve shipments optimized as though they were a single-purchase customer.

Recharge + Google · the fix

What changes — Recharge + Google

  • Acquisition and recurring revenue separated

    One is what you bid on; the other is what you report. Conflating them is the standard mistake.

  • First order sent once, at lifetime value

    Deduplicated on the Shopify order ID, valued at expected subscriber lifetime rather than one shipment.

  • Cancellations reversed

    So reported subscriber value can go down, which is the only way it stays honest.

Recharge + Google · architecture

How the Google destinations behave on Recharge

Google Ads and GA4 on a Recharge store.

  1. 1

    Send the subscription as one conversion

    At expected lifetime value, not the first shipment's price.

  2. 2

    Use the Shopify order ID for deduplication

    Stable and already unique. Do not invent one.

  3. 3

    Renewals in a separate conversion action if at all

    Excluded from bidding. Uploading a renewal against a year-old click distorts optimization toward whatever ran then.

  4. 4

    Watch the counting setting

    'Every' is right for ecommerce and wrong if you are sending subscription creation as a lead-type event.

  5. 5

    Check the import window against your churn horizon

    Nothing about renewals fits inside 90 days from the original click.

Recharge + Google · diagnose

Where Recharge tracking breaks, in diagnostic order

Each check rules out a class of cause, so by the last one there is usually a single explanation standing.

  1. 01

    Compare Recharge revenue against reported revenue for a closed month

    The gap is your renewal blind spot and it is usually the largest discrepancy in the business.

  2. 02

    Check whether a subscription carries a click identifier

    If the identifier is on the order and not the subscription, renewals can never be attributed.

  3. 03

    Look for double counting on the first order

    Recharge creates a Shopify order, and your store integration probably already fires on it.

  4. 04

    Check whether cancellation does anything at all

    Almost never wired, and it means reported subscriber value only ever rises.

  5. 05

    Ask what the renewal number is for

    Reporting and bidding need different answers, and conflating them is the real mistake under the technical one.

Recharge + Google · prove

The QA evidence — Recharge + Google

Run on Recharge specifically, on a live conversion rather than in preview mode.

Source of truth

Recharge's own subscription and order records, cross-checked against the Shopify orders they create

  • A test subscription created, with exactly one conversion firing and the identifier confirmed on the subscription rather than the order.
  • A renewal processed and confirmed to land wherever the written policy says it should — and nowhere else.
  • A cancellation confirmed to reverse at each destination that accepts one.
  • Recharge revenue reconciled against reported revenue for a fully closed month, with acquisition and recurring separated.
  • The lifetime value model shown as a calculation from your own churn data, not asserted.
  • Reconciled over a fully closed window, matched per record rather than on totals.
  • Re-checked 30 days later, and after any platform update.

Recharge + Google · free audit

What we check in the free audit

  • Compare Recharge revenue against reported revenue for a closed month
  • Check whether a subscription carries a click identifier
  • Look for double counting on the first order
  • Check whether cancellation does anything at all
  • Ask what the renewal number is for

Checked against

Recharge's own subscription and order records, cross-checked against the Shopify orders they create

Get my free conversion tracking audit

Free30 minutesNo obligation

Recharge + Google · when not to buy

When you don't need this on Recharge

Worth reading before you buy anything, from us or anyone.

  • If you sell one-off products with a small subscription tail, the store's native integration may already be adequate. Measure the recurring share first.
  • If your churn data is too young to model lifetime value, say so and use a conservative figure rather than an invented one.
  • If Recharge revenue and reported revenue already agree within a few percent, this is working and there is nothing to buy.
  • If you are not running paid media at meaningful spend, the reporting fix matters and the ad-platform work does not.

Recharge + Google · what we deliver

What gets built for Google on Recharge

  • GA4 ecommerce events in the recommended shape

    Correct names, transaction_id present, currency per order, an items array that agrees with the value.

  • Click identifiers captured and persisted

    gclid, gbraid and wbraid — not just the first, because iOS traffic arrives with the others.

  • Enhanced Conversions from the data layer

    Not from CSS selectors, which break on every redesign silently.

  • Conversion action settings reviewed

    Counting, primary status and attribution window — free to change and more consequential than most tag work.

Written guarantee

95%+ tracking accuracy

Measured against Recharge's own subscription and order records, cross-checked against the Shopify orders they create. Miss it and we keep working at no cost.

Get my free conversion tracking audit

Pricing

Pick the package that fits your ad spend

Browser-side starter

$400One-time fee · lifetime ownership

Repairs and verifies the browser-side setup you already have, on a live conversion. Honest about its ceiling on this platform.

  • Root cause fixed, not worked around
  • Verified on a live conversion
  • Reconciled against your own records
  • Written handover
Fix what I have

1st-party server-side

Recommended

$800One-time fee · most popular

Money events sent from your own records through a first-party container on your subdomain, so the browser can no longer lose them.

  • First-party server container on your own subdomain
  • Money events from your records, not the browser
  • Deduplicated on a shared event ID at every destination
  • First-party cookies beyond Safari's 7-day cap
  • 95%+ accuracy and 8+ Meta EMQ, guaranteed in writing
Rebuild it server-side

Full 1st-party stack

$1,800One-time fee · lifetime ownership

Every paid channel server-side plus the offline loop, with monitoring so the next break surfaces in days.

  • Everything in 1st-party server-side
  • Pinterest, Snapchat, Reddit and LinkedIn CAPI
  • CRM and offline conversion loop
  • Refunds and cancellations corrected wherever each platform allows it
  • Monitoring on every destination
Get the full stack

FAQ

Recharge + Google questions, answered

An ecommerce purchase action with 'every' counting, valued at expected lifetime. If you are also uploading renewals, they need their own action, and that action should be excluded from bidding.

Free · 30 min

Get Google Ads and GA4 right on Recharge

Free30 minutesNo obligation