Blog / Implementation

StoreKit 2 subscription analytics: what developers should track

Good StoreKit 2 subscription analytics track both lifecycle outcomes and product behaviour. Developers should watch trials, conversions, renewals, refunds, billing retry, grace period, and the feature events that explain those states.

  • Outcome events without behaviour context leave growth questions unanswered.
  • Billing retry and grace period deserve first-class visibility.
  • The useful dashboard joins subscription state to the same customer’s events.

Definitions used in this guide

Public SDK key

A publishable key that is safe to ship in client code and scopes requests to the correct project and environment.

Server-side verification

Checking purchase, webhook, or notification data on your backend before granting access.

Environment separation

Keeping sandbox and production data apart so test transactions never contaminate live reporting or access.

What should be true before you start?

Start with a list of the subscription states you care about operationally. Most teams think about conversion, but the retention states that follow are just as important if you want the analytics to guide product decisions.

  • Define the subscription lifecycle states you want visible in the dashboard.
  • Name the behaviour events that represent activation and ongoing value.
  • Decide how subscription and telemetry identity will line up for the same customer.

How should you implement this step by step?

A solid StoreKit 2 analytics model combines rail-level subscription transitions with feature and session events. That is how you move from revenue reporting to actual product analytics for subscriptions.

  • Track trial starts, first paid conversions, renewals, expirations, refunds, billing retry, and grace period transitions from the subscription system.
  • Track activation and value events such as onboarding completion, project creation, export, invite, or whatever predicts durable usage in your product.
  • Segment the metrics by plan, platform version, acquisition source, and release to understand why states moved.
  • Keep the same user identity across purchase and behaviour events so the dashboard can explain outcomes, not just count them.
Signals that matter most
SignalWhy it mattersExample question it answers
Trial-to-paidMeasures commercial activationWhich onboarding path creates the most paying users?
Billing retry / grace periodMeasures at-risk revenueHow much MRR is recoverable right now?
Renewal-linked behaviourExplains retention qualityWhich features correlate with retained subscribers?

Where do teams make mistakes?

Subscription analytics become weak when teams only record states that appear on finance dashboards and ignore behaviour entirely.

  • Tracking only purchases and renewals, not value events.
  • Ignoring recoverable states like billing retry and grace period.
  • Failing to connect release quality or runtime issues back to paid-state changes.

How does Crossdeck operationalize the workflow?

Crossdeck keeps the purchase states and the behaviour stream together. That means the team can ask not only how many users renewed, but what they were doing before they renewed or churned.

That is what turns StoreKit 2 analytics into a product-growth asset instead of a delayed subscription report.

Frequently asked questions

Are refunds part of subscription analytics?

Yes. Refunds are commercial outcomes and often carry important product or support signals that teams should not hide in a finance-only view.

Why track grace period separately from churn?

Because grace period is a recoverable state. Treating it as churn too early can lead to poor access decisions and bad revenue forecasting.

What is the minimum event set?

At minimum: trial start, paid conversion, renewal, refund, billing retry, grace period, and one or two product-value events tied to the same customer.

Does Crossdeck work across iOS, Android, and web?

Yes. Crossdeck is designed around one customer timeline across Apple, Google Play, Stripe, and web or mobile product events, so the same entitlement and revenue model can travel across surfaces.

What should I do after reading this guide?

Use the CTA in this article to start free or go straight into read api key and authentication docs so you can turn the concept into a verified implementation.

Take this into the product

Start with the SDK docs, then layer on the event and entitlement model you need for StoreKit 2 subscription analytics.