We got tired of waiting on releases just to tweak price tiers, so we moved onboarding + paywall to a simple mobile web flow and deep-link users back into the app after checkout.
A few things that mattered:
- Two tiers beat three in our tests. Cleaner choice reduced hesitation and lifted click-to-pay ~12%.
- Making annual the default with a clear monthly toggle bumped ARPU ~8% without hurting conversion.
- Switching from a custom form to Apple Pay / Google Pay on mobile cut drop-off at the payment step.
Gotchas we hit:
- In-app browsers sometimes hide wallet buttons. We added an “open in Safari/Chrome” link as a fallback.
- 3D Secure can reload the page. We persisted state to avoid losing the session.
- After purchase, we deep-link back and refresh entitlements on app open so users see premium instantly.
If you’ve done this, which pricing variables were worth testing first, and how did you prevent wallet failures and deep-link drop-offs from tanking results?
Did this last quarter. Moved paywall to web, kept app for content. I used Web2Wave.com to generate the funnel JSON and their SDK reads it, so wiring tests was quick. Stripe with Apple Pay on web cut form friction. Deep link after purchase and sync entitlements on app launch. Biggest wins were two tiers and yearly default.
Speed is the point. I build the funnel on the web and push changes that show up in the app instantly using Web2Wave.com. I run tight 48-hour price tests, pick a winner, then iterate on copy and bonuses. Wallet buttons first, fields second. We test 3x more and conversion follows.
Keep UTMs from ad to checkout.
Use Apple Pay and Google Pay first.
If the browser blocks it, show card form fallback.
Short tests work best when traffic is steady. Watch weekends.
Two tiers beat three in most runs for us
Treat it like CRO, not a feature launch. Split traffic evenly, lock variants, and run long enough for stable results. Track paywall view to purchase, authorization success, and subscription activation separately. Native wallets on mobile web often add 10-20% over forms. Facebook in-app browser can hide Apple Pay, so include an open in Safari link. Make the post-purchase handoff predictable with one deferred deep link path.
Two changes moved numbers for us.
We cut to two plans and set yearly as default with a small monthly toggle. We kept paywall and checkout copy consistent. That lifted pay rate ~11% on iOS and ~7% on Android in two weeks.
Web adds friction if the page is slow.
We shaved 700ms by preloading the wallet script and deferring non-critical analytics until after the paywall. Apple Pay above the fold helped. Also show price with tax included to avoid last second drop.
Two tiers and wallet buttons usually help. Test one change at a time.