Roll out a flow gradually alongside your paywall
If you have a live paywall driving revenue, you may want to test a new flow with a small share of your audience before switching everyone over.
Flows and paywalls are different content types, so each lives on its own placement type — a flow placement and a paywall placement never share traffic.
This means Adapty’s native A/B tests can’t bridge the two: a Regular A/B test only compares variants on a single placement, and a Crossplacement A/B test works across paywall placements only. Comparing a new flow against your existing paywall is a cohort comparison, not a single native test.
This guide shows how to run that comparison as a gradual rollout: split traffic between the flow and the paywall yourself, and grow the flow’s share over time.
Set up the rollout
- Build and preview the flow: Create a new flow and preview it on a device before wiring it into your app. For full migration steps, see Migrate to flows.
- Create a separate flow placement: A placement serves one content type only, so create a new placement for the flow — you can’t reuse your existing paywall placement ID. Keep the paywall placement live.
- Split traffic on your side: Use a remote-config or feature-flag tool to decide, per user, which placement ID your app passes to
getFlow— the new flow placement or the existing paywall placement.
Firebase Remote Config is one common way to do this — add a parameter (for example, flow_rollout_percentage) and read it in your app to pick the placement. This isn’t an Adapty feature; it’s a tool you configure on your own, separate from Adapty Remote Config, which configures flow and paywall content itself.
- Assign users persistently: Bucket each user once, for example by hashing their user ID, so they keep seeing the same option — flow or paywall — as you change the rollout percentage. Otherwise, a user could switch between the two on every session.
- Increase the percentage gradually: Start small, for example 10%, and raise it over time — 25%, 50%, 100% — as you confirm the flow performs as expected.
Compare results
Because you assign each user to a cohort — flow or paywall — instead of Adapty randomizing and rebalancing them the way a native A/B test does, treat the two placements as separate cohorts rather than test variants. Each placement tracks its own metrics, so filter your analytics by placement to see each cohort’s numbers.
Compare conversion rates between the two cohorts, not raw counts: as you raise the rollout percentage, the flow cohort grows and the paywall cohort shrinks, so their absolute numbers stop being comparable even while their rates still are.
Once you’ve fully switched
When all your traffic goes to the flow, retire the old paywall placement. From here, use a native Regular A/B test across flow variants on the flow placement to keep optimizing — see A/B test types for how Regular and Crossplacement tests differ.