Test Paywalls and Flows without App Reviews
Fine-tune paywalls, onboarding flows, trial offers and more. A/B test which variant converts best and push updates live instantly. No app store approval needed.
A/B test with Gates
A Gate holds multiple flows and rotates between them. Weights control how often each flow is shown. Attach flows to a Gate, set weights to 100%, and let the SDK pick a variant each session.
Summer sale gate
Users will see these randomly, based on these percentages.
HTML flows — build anything
Your paywall and onboarding screens are HTML, not a rigid template. Use any layout, typography, motion, and multi-step logic you can express in a web view—then edit it in the dashboard without shipping a new binary.
Ship without App Store approval
Product and growth teams move faster when paywall copy isn't blocked behind review. Paygate keeps presentation logic on the server so you can iterate like a web team.
Ship a native change
Every copy tweak, new paywall layout, or flow change goes through review — often days to weeks before users see it.
Edit HTML, go live
Update flows from the dashboard. The SDK pulls fresh HTML on the next launch — no binary resubmission for paywall and onboarding experiments.
- 1Edit in the browser
- 2Publish the flow
- 3Users see it in minutes
SDKs
Paygate is built for mobile: native or cross-platform, you can add server-driven paywalls and flows to almost any app without changing how users install or run it.
import Paygate
await Paygate.initialize(apiKey: "your_api_key")
let result = try await Paygate.launchGate("your_gate_id")
switch result.status {
case .purchased, .alreadySubscribed:
// User has access
case .dismissed, .skipped:
// User declined
case .channelNotEnabled:
// Gate not shown for this build
case .planLimitReached:
// Monthly presentation quota exceeded (see Billing in dashboard)
}Pricing
Developer
Free
250 presentations/month
Pro
$50/mo
Unlimited presentations