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.

App Store review

Ship a native change

Every copy tweak, new paywall layout, or flow change goes through review — often days to weeks before users see it.

1–2weeks typical
Paygate

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