Skip to main content
Stripe subscriptionsEngagement pattern

Tracking subscription revenue from Stripe rather than from a checkout page

Subscription businesses measured at the checkout page report the wrong number in both directions: a trial start counted as revenue that may never arrive, and renewals that never get counted at all. Stripe's webhooks carry the real events — trial started, first invoice paid, renewal, cancellation, refund — and each one is a different signal with a different value. Sending them as distinct server events lets bidding optimize toward customers who pay rather than customers who sign up.

Free30 minutesNo obligation

Stripe subscriptions · what breaks

The situation, as it usually presents — Stripe subscriptions

  1. 01

    Trial starts counted as full revenue

    Before anyone has paid.

  2. 02

    Renewals invisible

    So lifetime value never reaches the platforms.

  3. 03

    Churn and refunds never reversed

    Reported revenue only climbs.

Stripe subscriptions · the fix

What changes — Stripe subscriptions

  • Each lifecycle stage as its own event

    With its own value.

  • Revenue counted when it's collected

    Not when a trial begins.

  • Refunds and cancellations reversed

    At every destination.

Stripe subscriptions · architecture

Why this pattern keeps recurring — Stripe subscriptions

Subscription tracking built on a checkout page is measuring the wrong moment, and the errors compound in opposite directions.

  1. 1

    A trial start is not revenue

    Counting it as such teaches bidding to buy trials, including the ones that never convert.

  2. 2

    Renewals happen with no browser present

    So nothing browser-side can ever see them. Only the webhook knows.

  3. 3

    The click ID expires long before the second payment

    Unless it's stored on the customer record at signup, renewals are unattributable.

  4. 4

    Churn never gets reported

    So reported lifetime value drifts further from reality every month.

Stripe subscriptions · diagnose

How the root cause gets found — Stripe subscriptions

In this order. Each step rules out a class of cause, so the last one usually has a single explanation standing.

  1. 01

    Compare Stripe collected revenue to platform revenue

    For a closed month.

  2. 02

    Check what event the checkout currently fires

    And what value it sends.

  3. 03

    Confirm whether click IDs reach Stripe metadata

    Determines renewal attribution.

  4. 04

    List which webhooks are subscribed

    Most setups have none.

  5. 05

    Check whether refunds do anything

    Usually not.

Stripe subscriptions · prove

How the work is proven — Stripe subscriptions

Against the client's own records, not a dashboard turning green.

Source of truth

Stripe invoice and subscription records

  • Each lifecycle event confirmed arriving from a real subscription.
  • Click ID present in Stripe metadata on a live signup.
  • Platform revenue reconciled against Stripe collected revenue.
  • A real refund tested and confirmed reversing.
  • Reconciled over a fully closed window, matched on ID rather than on totals.
  • Payload evidence captured from real transactions and handed over.
  • The same reconciliation repeated 30 days later.

Stripe subscriptions · free audit

What we check in the free audit

  • Compare Stripe collected revenue to platform revenue
  • Check what event the checkout currently fires
  • Confirm whether click IDs reach Stripe metadata
  • List which webhooks are subscribed
  • Check whether refunds do anything

Checked against

Stripe invoice and subscription records

Get my free conversion tracking audit

Free30 minutesNo obligation

Stripe subscriptions · when not to buy

Why there are no client numbers on this page — Stripe subscriptions

Most agency case studies lead with a percentage. This one doesn't, and the reason is worth stating.

  • We don't publish client results we can't substantiate. An audit of this site in August 2026 found named testimonials and before-and-after figures that had never been measured — all of it was removed, and nothing has replaced it that isn't checkable.
  • The results that do exist belong to clients under agreement. Publishing anonymised numbers without their sign-off would be the same problem in a thinner disguise.
  • What we will commit to in writing is 95%+ conversion accuracy and 8+ Meta Event Match Quality, reconciled against your own order records. That is checkable by you, which a case study percentage never is.
  • For proof from actual clients, the video testimonials on the site are real people describing their own rebuild. That is the strongest evidence we have, and it isn't a number we wrote.

Stripe subscriptions · what we deliver

What the work involves — Stripe subscriptions

  • Stripe webhooks wired to server events

    invoice.paid, customer.subscription.created and the rest.

  • Click ID carried into Stripe metadata

    At checkout, so renewals stay attributable.

  • Values assigned per stage

    Trial, first payment, renewal, expansion.

  • Refunds and cancellations sent as reversals

    Not silently ignored.

Written guarantee

95%+ tracking accuracy

Measured against Stripe invoice and subscription records. 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 the fault in your existing browser-side setup and verifies it on a live transaction. Honest about its ceiling: it fixes this instance, not the class.

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

1st-party server-side

Recommended

$800One-time fee · most popular

Removes the class of failure rather than this instance. Money events sent from your order records through a first-party container on your own subdomain, so the browser can no longer lose them.

  • First-party server container on your own subdomain
  • Money events from your order 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, for advertisers whose spend makes an attribution leak more expensive than the build.

  • Everything in 1st-party server-side
  • Pinterest, Snapchat, Reddit and LinkedIn CAPI
  • CRM and offline conversion loop
  • Refunds reversed at every destination
  • Monitoring so the next break surfaces in days
Get the full stack

FAQ

Stripe subscriptions questions, answered

As a separate event with a modelled value, yes — bidding needs volume to learn from. Just don't send the full subscription value at trial start.

Free · 30 min

Track subscription revenue from Stripe

Free30 minutesNo obligation