Paywall experiment guide

How to preview, plan, launch, pause, and read a reusable paywall experiment.

Current default

calm_utility — “More detail, less typing.” — is compiled into the app and is the fail-safe default whenever no valid running experiment is assigned.

The second approved layout is clear_handoff — “Turn a messy night into a clear handoff.” RevenueCat and the stores remain the authority for products, prices, trials, checkout, and entitlements.

Run an experiment

  1. Open Paywall Experiments and enter the Conversion admin token.
  2. Select an existing experiment or choose New experiment; give every reusable app its own app_id and experiment ID.
  3. Keep it draft while editing the two approved layouts, copy, weights, placement, and enrollment percentage.
  4. Choose Preview exact plan, review the canonical plan and SHA-256 hash, then apply it.
  5. Change the state to running, preview and apply a second reviewed plan to enroll new eligible installations.
  6. Watch views, checkout intent, verified trials, and verified paid starts; pause immediately if the result is unsafe or unclear.
  7. Use a new experiment ID for new copy after exposure; an exposed experiment is deliberately immutable.
Start with a small enrollment, preserve a control, define the winning metric before launch, and never put price or trial claims into remote copy.

What the background Worker does

Reusable app checklist

Cloudflare

  • Register a distinct lowercase app_id.
  • Create app-specific experiment IDs and salts.
  • Use the shared strict assignment/event contracts.
  • Keep secrets in Cloudflare bindings, never HTML.

App build

  • Compile only reviewed layouts and icons.
  • Send the app ID, placement, installation ID, platform, and version.
  • Render only schema-valid returned copy.
  • Keep store commerce copy provider-owned.

Test before traffic