Adapty
Documentation
iOS Android React Native Flutter Unity Kotlin Multiplatform Capacitor
CLI & APIs What's new Support Forum
English 中文TürkçeРусскийEspañol日本語Tiếng Việt
Sign In Sign Up for Free
English 中文TürkçeРусскийEspañol日本語Tiếng Việt

Flows and paywalls - iOS

Display paywalls

Adapty Flow Builder & Paywall Builder

Get flows & paywalls

Fetch flows and paywalls from Adapty in your iOS app.

Display flows & paywalls

Present flows and paywalls to users in your iOS app.

Handle events

Handle flow and paywall events in your iOS app.

Respond to actions

Handle button actions and process user input from paywall and onboarding flows in your iOS app.

To get started with the Adapty Paywall Builder paywalls quickly, see our quickstart guide.

Implement paywalls manually

Quickstart guide

Integrate Adapty SDK into your custom iOS paywalls to enable in-app purchases.

Fetch paywalls and products

Fetch paywalls and products in Adapty iOS SDK to enhance user monetization.

Present remote config paywalls

Discover how to present remote config paywalls in Adapty to personalize user experience.

Make purchases

Guide on handling in-app purchases and subscriptions using Adapty.

For more guides on implementing paywalls and handling purchases manually, see the category.

Useful features

Use fallbacks

Handle cases when users are offline or Adapty servers aren't available

Localize

Manage app localizations and locale codes to reach a global audience in your iOS app.

Implement web paywalls

Set up a web paywall to get paid without the App Store fees and audits.

On this page
  • Display paywalls
  • Adapty Flow Builder & Paywall Builder
  • Implement paywalls manually
  • Useful features

Was this page helpful?

Thank you for your feedback!

Adapty

Adapty SDK Sample Apps

  • Sample apps

SDK Reference

  • iOS
  • Android
  • React Native
  • Flutter
  • Unity
  • Kotlin Multiplatform
  • Capacitor

API Reference

  • Server-side API
  • Web API
  • Analytics export API

Resources

  • Adapty Dashboard
  • Blog
  • Support

© 2026 Adapty Tech Inc.

  • Welcome to Adapty
    • Is Adapty right for me?
    • Quickstart guide
      • 1. Integrate with stores or payment platforms
      • 2. Add products
      • 3. Enable purchases
      • 4. Integrate the Adapty SDK in your app code
      • 5. Test your integration with Adapty
    • Release checklist
    • Migrate from other tools
      • Implement observer mode
      • Migrate from RevenueCat
      • Migrate from Superwall
      • Import historical data to Adapty
      • Migrate integrations to Adapty
    • What's new
    • App Store
      • Generate In-App Purchase Key in App Store Connect
      • Configure App Store integration
      • Enable App Store server notifications
      • Troubleshoot App Store integration
    • Google Play
      • Enable Developer APIs in Google Play Console
      • Create service account in the Google Cloud Console
      • Grant permissions to service account in the Google Play Console
      • Generate service account key file in the Google Play Console
      • Configure Google Play Store integration
      • Enable Real-time developer notifications (RTDN) in Google Play Console
    • Web
      • Initial integration with Stripe
      • Initial integration with Paddle
    • Other stores
    • Transfer app ownership
    • Adapty Mobile SDK
    • Sample apps
  • Flows (Beta)
    • Interface overview
    • Common flow recipes
      • Create a basic paywall screen
      • Show all plans in a bottom sheet
      • Create a paywall with tabs
      • Show different features per product
      • Build a personalized onboarding flow
    • Migrate to flows
    • Screens and Layers
    • Products and purchases
    • Elements
      • Element positioning
      • Element styling
      • Selectable elements and groups
        • Element states
      • Layout elements: containers, carousels, bottom sheets
      • Text content
        • Custom fonts
        • Backgrounds
        • Images, videos, and icons
      • Buttons
      • Tabs
      • Toggles
      • Reviews and testimonials
      • Countdown timer
      • Quizzes
      • Inputs and forms
    • Navigation and interaction
      • Navigation
      • Actions
      • Progress indicators and loaders
      • Variables
      • Conditional visibility
    • Dark mode
    • Localization
      • Add locale in Adapty Flow Builder
      • Add locale in remote config
    • Customize flow with remote config
    • Preview flows
    • Save & publish flows
    • Flow metrics
    • Fallback flows
    • Products
      • Create product
      • Edit product
      • Delete product
      • Add product to paywall
    • Offers
      • 1. Add offers in stores
        • App Store
        • Google Play
      • 2. Add offers to Adapty
    • Access levels
      • Create access level
      • Assign access level to product
      • Give access level to specific customer
      • Local access levels
  • Placements
    • Choose meaningful placements
    • Create placement
    • Edit placement
    • Export placements
    • Delete placement
    • Audiences
      • Add audience and paywall, A/B test, or onboarding to placement
      • Change audience priority in placement
    • Placement metrics
  • Paywalls
    • Create paywall
    • Design paywall with remote config
    • Paywall localization
      • Paywall Builder paywall localization
      • Localize paywalls using remote config
    • Web paywall
      • Web paywall configuration
    • Fallback paywalls
      • Download fallback paywalls
    • Paywall metrics
    • Migrate paywall
    • Duplicate paywall
    • Archive paywall
    • Return paywall from archive
    • Profiles / CRM
      • How profiles work
      • Sharing paid access between user accounts
    • Segments
    • Event feed
    • A/B test overview
    • A/B test types
    • Create, run, and stop an A/B test
    • Add variants without flows or paywalls
    • A/B test results and metrics
    • Maths behind the A/B tests
  • AI Growth Advisor
    • How it works
    • Paywall and Market Analysis
    • Manage your growth plan
    • Execute your growth plan
  • Analytics
    • How Adapty analytics works
    • Compare different metrics
    • Overview page
    • Analytics controls
    • Analytics charts
      • Revenue
      • MRR
      • ARR
      • ARPU
      • ARPPU
      • Installs
      • Active subscriptions
      • New subscriptions
      • Non-subscriptions
      • Subscriptions renewal cancelled
      • Churned (expired) subscriptions
      • Active trials
      • New trials
      • Trials renewal cancelled
      • Expired (churned) trials
      • Refund events
      • Refund money
      • Grace period
      • Grace period converted
      • Grace period converted revenue
      • Billing issue
      • Billing issue converted
      • Billing issue converted revenue
    • Lifetime Value (LTV)
    • Cohort analysis
    • Funnel analysis
    • Retention analysis
    • Conversion analysis
    • Reports
    • Discrepancies and troubleshooting
    • Get Push notifications about new events
    • Prediction in cohorts
    • Predictions in A/B tests
  • Adapty Ads Manager
    • Get started
    • Overview
    • AI Agent
    • Ads Manager
      • Analytics
        • Metrics
      • Manage campaigns
      • Manage ad groups
      • Manage keywords
      • Manage ads
      • Create segments based on Apple Ads attribution
    • Automations
      • Keyword rules
      • Search term automations
    • Market Intelligence
    • CPP A/B Tests
    • Settings
  • Adapty Attribution
    • Get started
    • Analytics
      • Metrics
      • Predictions
    • Tracking links
    • Deferred deeplinks
    • Receive attribution data
    • Integrations
      • Meta Ads
      • TikTok for Business
      • FunnelFox
      • Custom S3
      • Amazon S3
      • Google Cloud Storage
  • Adapty Mail
    • Get started
      • Collect user emails
      • Send data via the API
      • Brand
      • Set up your sending domain
      • Set up checkout
    • Email campaigns
      • Create a campaign
      • Unsubscribe and suppression
    • Flows
      • Create a flow
    • Segments
    • Profiles
    • A/B testing
    • Campaign analytics
    • Configure third-party integration
    • Events to send to third-party integrations
    • Event flows
    • Event statuses
    • Attribution integration
      • Adjust
      • Airbridge
      • Apple Ads
      • AppsFlyer
        • Switch from AppsFlyer S2S API 2 to 3
      • Asapty
      • Branch
      • Facebook Ads
      • Singular
      • Tenjin
    • Analytics integrations
      • Amplitude
      • AppMetrica
      • Firebase / Google Analytics
      • Mixpanel
      • PostHog
      • SplitMetrics Acquire
    • Messaging service integrations
      • Braze
      • OneSignal
      • Pushwoosh
      • Slack
    • Webhook and ETL integrations
      • Amazon S3
      • Google Cloud Storage
      • Webhook integration
        • Event Types and Fields
        • Set up webhook integration
        • Test webhook integration
    • Handle errors in integrations
  • Manage Adapty with coding agents/LLMs
    • Ask about your data
    • Handle subscription events
    • Check & grant subscription access
    • Test in-app purchases in App Store
      • Sandbox testing
      • StoreKit testing in Xcode
    • Test in-app purchases in Google Play Store
    • Validate test purchases
    • Troubleshooting test purchases
    • Testing devices
    • Release checklist
    • Submit your iOS app to the App Store
    • General settings
    • Apple App Store credentials
    • Google Play Store credentials
      • Google Play Store credentials
      • Google Real-time developer notifications (RTDN)
    • Apple Search Ads
    • Account details & Billing
    • Members
    • Apple Platform resources
      • Set up App Store Connect
      • Product in App Store
      • Apple app privacy
      • Apple family sharing
      • App Store Small Business Program
    • Google Platform resources
      • Product in Play Store
      • Google Play Data Safety
      • Google Reduced Service Fee
      • Request Google Play Developer API quota increase
    • Prepare your app for store review
    • Firebase apps
    • Refund saver
    • Advertise your app in Meta Ads
    • Advertise your app in TikTok for Business
    • Server-side API v2
  • Onboardings (Legacy)
    • Create onboardings
    • Design onboardings
  • Adapty Paywall Builder (Legacy)
    • What is Adapty plugin for FlutterFlow
    • Getting started
    • Step 1. Create flow to show paywall
    • Step 2. Add data to paywall
    • Step 3. Enable purchase
    • Step 4. Check access to paid content
    • Adapty resources
Platform
  • Get started
    • 1. Install & configure
    • 2. Enable purchases by using flows
    • 3. Check the subscription status
    • 4. Identify users
      • Skill-based integration
      • Step-by-step integration
  • Flows & paywalls
    • Get flows & paywalls
    • Display flows & paywalls
    • Respond to actions
    • Handle events
    • Use fallbacks
    • Localize
    • Handle errors when using the Paywall Builder
    • Present paywalls in Observer mode
    • Implement paywalls manually
      • Quickstart guide
      • Fetch paywalls and products
      • Present remote config paywalls
      • Make purchases
      • Restore purchases
      • Advanced transaction management
      • Implement Observer mode
      • Report transactions in Observer Mode
      • Handle errors
    • Implement web paywalls
  • Users & access
    • Identify users
    • Update user data
    • Check subscription status
    • Deal with App Tracking Transparency (ATT)
    • Kids Mode
  • Onboardings
    • Get onboardings
    • Display onboardings
    • Handle onboarding events
    • Process data from onboardings
  • Best practices
    • SDK call order
    • Optimize paywall fetching
    • Show an AA-targeted paywall on first launch
  • Test & release
  • Reference
    • SDK models
    • Handle errors
      • Fix for Code-1000 noProductIDsFound error
      • Fix for Code-1003 cantMakePayments error
  • SDK migration guide
    • Migrate to v4.0
    • Migrate to v3.15
    • Migrate to v3.4
    • Migrate to v3.3
    • Migrate to v3.0
  • DEVELOPER CLI
    • Quickstart guide
    • Authentication
    • Full reference
    • Introduction
    • Authorization and request format
    • Requests
    • API reference
    • Guides
      • Sync purchases between web and mobile
      • Sync transactions from custom stores
      • Grant access levels manually
    • Migration guide to server-side API v2
    • Introduction
    • Authorization and request format
    • Requests
    • API reference
    • Introduction
    • Authorization and request format
    • Requests
    • API reference
    • API reference
SDK Platforms
  • Get started
    • 1. Install & configure
    • 2. Enable purchases by using flows
    • 3. Check the subscription status
    • 4. Identify users
      • Skill-based integration
      • Step-by-step integration
  • Flows & paywalls
    • Get flows & paywalls
    • Display flows & paywalls
    • Respond to actions
    • Handle events
    • Use fallbacks
    • Localize
    • Handle errors when using the Paywall Builder
    • Present paywalls in Observer mode
    • Implement paywalls manually
      • Quickstart guide
      • Fetch paywalls and products
      • Present remote config paywalls
      • Make purchases
      • Restore purchases
      • Advanced transaction management
      • Implement Observer mode
      • Report transactions in Observer Mode
      • Handle errors
    • Implement web paywalls
  • Users & access
    • Identify users
    • Update user data
    • Check subscription status
    • Deal with App Tracking Transparency (ATT)
    • Kids Mode
  • Onboardings
    • Get onboardings
    • Display onboardings
    • Handle onboarding events
    • Process data from onboardings
  • Best practices
    • SDK call order
    • Optimize paywall fetching
    • Show an AA-targeted paywall on first launch
  • Test & release
  • Reference
    • SDK models
    • Handle errors
      • Fix for Code-1000 noProductIDsFound error
      • Fix for Code-1003 cantMakePayments error
  • SDK migration guide
    • Migrate to v4.0
    • Migrate to v3.15
    • Migrate to v3.4
    • Migrate to v3.3
    • Migrate to v3.0