Skip to main content
Subscription schemaReference

Subscription tracking event schema

A subscription business that sends one event at signup is telling the ad platforms almost nothing about its economics. The schema that works sends the whole lifecycle — trial start, first payment, renewal, upgrade, downgrade, cancellation, failed payment — each with its own value, so reported revenue moves in both directions over a customer's life. The single design decision everything depends on is storing the click ID on the customer record at signup, because no cookie survives to the fourth renewal.

Free30 minutesNo obligation

Subscription schema · what breaks

Where teams get this wrong — Subscription schema

  1. 01

    Only the first payment sent

    Every customer then looks identical regardless of how long they stay.

  2. 02

    Projected lifetime value at signup

    Reporting revenue you haven't earned, and rewarding channels that bring churners.

  3. 03

    Cancellations never reported

    Reported revenue only climbs while the business shrinks.

Subscription schema · the fix

What a correct implementation looks like — Subscription schema

  • Each payment sent as it clears

    At the amount actually charged.

  • Click ID on the customer record

    So renewals reference the original click.

  • Downgrades and cancellations as negative adjustments

    Value moving both ways.

  • Voluntary and involuntary churn separated

    They're different problems with different fixes.

Subscription schema · architecture

The lifecycle events — Subscription schema

Seven states. Most implementations send one. Each of the other six changes what the platforms can learn.

  1. 1

    Trial start

    Server-side, with a modelled value rather than the full plan price. Volume for bidding to learn from.

  2. 2

    First payment

    Server-side from billing, at the amount charged. The conversion that matters.

  3. 3

    Renewal

    Server-side, each cycle. Where lifetime value actually accumulates.

  4. 4

    Upgrade

    Server-side. Expansion revenue and a strong quality signal about the channel that produced the customer.

  5. 5

    Downgrade

    Server-side, as a negative adjustment.

  6. 6

    Cancellation

    Server-side reversal. Without it reported revenue only goes up.

  7. 7

    Failed payment

    Server-side. Involuntary churn is a separate and often more recoverable problem.

Subscription schema · diagnose

Common mistakes and how to validate each — Subscription schema

Ordered by how often we find them. Each one has a specific check rather than a general instruction to be careful.

  1. 01

    Renewals never sent

    Check whether anything fires on a renewal. There's no browser involved, so usually nothing does.

  2. 02

    Click ID lost after signup

    Check whether it's on the customer record. A cookie won't survive to renewal four.

  3. 03

    Full plan value at checkout

    Compare reported revenue against collected revenue for a closed month. The gap is the overstatement.

  4. 04

    Pauses treated as cancellations

    A paused subscriber is recoverable. Conflating them understates your base.

  5. 05

    Annual and monthly blended

    Different cash and retention profiles. Check whether you can separate them in reporting.

Subscription schema · prove

How to prove your implementation is right — Subscription schema

Against your own records and a live payload, not against a preview screen.

Source of truth

your billing system's invoice and subscription records

  • Each lifecycle event confirmed arriving from a real subscription.
  • Click ID present on a live customer record.
  • A real cancellation and a real refund both tested and confirmed reversing.
  • Collected revenue reconciled against billing for a closed month.
  • Checked on a live conversion, not in preview mode.
  • Reconciled over a fully closed window, matched per record.
  • Re-checked 30 days later.

Subscription schema · free audit

What we check in the free audit

  • Renewals never sent
  • Click ID lost after signup
  • Full plan value at checkout
  • Pauses treated as cancellations
  • Annual and monthly blended

Checked against

your billing system's invoice and subscription records

Get my free conversion tracking audit

Free30 minutesNo obligation

Subscription schema · when not to buy

What this reference deliberately leaves out — Subscription schema

Stated openly, because a reference that's silent about its own gaps is the dangerous kind.

  • Usage-based and hybrid billing models need additional events and aren't covered by this schema.
  • Proration handling varies by billing system and affects what value to send on mid-cycle changes.
  • Dunning and recovery flows are adjacent and have their own measurement questions.
  • Vendor documentation is the authority, not this page. Where the two disagree, the vendor is right and we'd like to know so we can correct it.
  • Parameter names and behaviour change. Anything here is accurate as we last verified it; verify against the current documentation before you rely on it for a build.

Subscription schema · what we deliver

The checklist — Subscription schema

  • Every lifecycle state has an event

    Trial, first payment, renewal, upgrade, downgrade, cancellation, failed payment.

  • Click ID stored on the customer record

    Not in a cookie.

  • Values are actual amounts charged

    Not projections.

  • Reversals implemented

    Tested with a real cancellation.

  • Trial and paid are distinct events

    With distinct values.

Pricing

Pick the package that fits your ad spend

Browser-side starter

$400One-time fee · lifetime ownership

Repairs and verifies your existing browser-side setup against this reference, on a live conversion.

  • Implementation checked against the spec
  • Verified on a live conversion
  • Reconciled against your own records
  • Written handover
Have mine checked

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, built to this specification.

  • First-party server container on your own subdomain
  • 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
Have it built properly

Full 1st-party stack

$1,800One-time fee · lifetime ownership

Every paid channel server-side plus the offline loop, documented to this standard.

  • 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 so the next break surfaces in days
Get the full stack

FAQ

Subscription schema questions, answered

No. Send each payment as it clears. A projection at signup reports revenue you haven't earned and rewards channels that bring customers who leave.

Free · 30 min

Send the whole lifecycle, not just the signup

Free30 minutesNo obligation