# Superwall ## Docs - [Users](https://superwall.com/docs/dashboard/overview-users): Get a snapshot view of users who recently triggered a placement in your app, see their user journey, revenue events and more. - [Account Management](https://superwall.com/docs/dashboard/manage-account): Manage your Superwall account preferences, security settings, and authentication methods. - [Overview](https://superwall.com/docs/dashboard/overview-metrics): The Overview page gives you a holistic look at how your app is performing, complete with easy-to-find key metrics and top-level campaign data. - [Placements](https://superwall.com/docs/dashboard/dashboard-campaigns/campaigns-placements): undefined - [Rules](https://superwall.com/docs/dashboard/dashboard-campaigns/campaign-rules): Rules allow you to decide _which users_ see a paywall. - [Understanding Experiment Results](https://superwall.com/docs/dashboard/dashboard-campaigns/campaigns-understanding-experiment-results): undefined - [Audiences](https://superwall.com/docs/dashboard/dashboard-campaigns/campaigns-audience): undefined - [Paywalled Users](https://superwall.com/docs/dashboard/dashboard-campaigns/campaigns-paywalled-users): undefined - [Starting an Experiment](https://superwall.com/docs/dashboard/dashboard-campaigns/campaigns-starting-an-experiment): undefined - [Campaigns](https://superwall.com/docs/dashboard/dashboard-campaigns/campaigns): Campaigns are logical groupings of paywalls to show when certain _events_ are registered and _conditions_ are met. They are an incredibly powerful tool for creating experiments and managing best-in-class monetization flows. - [Campaign Structure](https://superwall.com/docs/dashboard/dashboard-campaigns/campaigns-structure): undefined - [Standard Placements](https://superwall.com/docs/dashboard/dashboard-campaigns/campaigns-standard-placements): undefined - [Billing](https://superwall.com/docs/dashboard/dashboard-settings/overview-settings-billing): undefined - [Apple Search Ads](https://superwall.com/docs/dashboard/dashboard-settings/overview-settings-apple-search-ads): Integrate Apple Search Ads with Superwall. View details on users acquired via search ads, visualize conversions from Apple Search Ads in charts, and create powerful campaign filters to target users using search ad data. Search ad integration requires 3.12.0 of the Superwall SDK or higher. - [Localization](https://superwall.com/docs/dashboard/dashboard-settings/overview-settings-localization): undefined - [Keys](https://superwall.com/docs/dashboard/dashboard-settings/overview-settings-keys): undefined - [General](https://superwall.com/docs/dashboard/dashboard-settings/overview-settings): Use the Settings area to set up API keys, metadata and more. - [Team](https://superwall.com/docs/dashboard/dashboard-settings/overview-settings-team): undefined - [Projects](https://superwall.com/docs/dashboard/dashboard-settings/overview-settings-projects): undefined - [Revenue Tracking](https://superwall.com/docs/dashboard/dashboard-settings/overview-settings-revenue-tracking): undefined - [All teams](https://superwall.com/docs/dashboard/dashboard-settings/overview-settings-all-teams): undefined - [Public Beta](https://superwall.com/docs/dashboard/dashboard-settings/overview-settings-public-beta): undefined - [Advanced](https://superwall.com/docs/dashboard/dashboard-settings/overview-settings-advanced): undefined - [Refund Protection](https://superwall.com/docs/dashboard/dashboard-settings/overview-settings-refund-protection): undefined - [Google Play Revenue Tracking](https://superwall.com/docs/dashboard/dashboard-settings/overview-settings-revenue-tracking-google-play): undefined - [Adding Products](https://superwall.com/docs/dashboard/products): undefined - [Managing Localization Updates](https://superwall.com/docs/dashboard/overview-localization): undefined - [Notifications](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-notifications): undefined - [Debugger](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-debugger): undefined - [Slides](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-slides-component): Use Superwall's slides component to create a horizontal or vertical slide UX driven by a user's gesture. - [Navigation](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-navigation-component): Use Superwall's navigation component to navigate through pages of content. - [Drawers](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-drawer-component): Use Superwall's drawer component to display content presented in response to a button tap or a variable changing. - [Styling Elements](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-styling-elements): undefined - [Publishing](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-publishing): undefined - [Paywall Localization](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-localization): undefined - [Floating Toolbar](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-floating-toolbar): undefined - [Liquid](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-liquid): undefined - [Renaming Paywalls](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-renaming-paywalls): undefined - [Surveys](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-surveys): undefined - [Layout](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-layout): undefined - [Dynamic Values](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-dynamic-values): undefined - [Variables](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-variables): undefined - [Getting Started with the Paywall Editor](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-overview): Use Superwall's best-in-class editor to bring virtually any paywall design to life, complete with advanced U.X. patterns. Or, browse our growing list of paywall templates to get started quickly. - [Stacks](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-stacks): undefined - [Theme](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-theme): undefined - [Carousel](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-carousel-component): Use Superwall's carousel component to have items automatically progress through slides. - [Duplicating Paywalls](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-duplicating-paywalls): undefined - [Products](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-products): undefined - [Autoscroll](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-autoscroll-component): Use Superwall's autoscroll component to create marquee-like content that automatically scrolls. - [Previewing](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-previewing): undefined - [Settings](https://superwall.com/docs/dashboard/dashboard-creating-paywalls/paywall-editor-settings): undefined - [Creating Projects](https://superwall.com/docs/dashboard/creating-applications): Projects are how Superwall groups the same app together across platforms. - [Presenting Paywalls from One Another](https://superwall.com/docs/dashboard/guides/presenting-paywalls-from-one-another): Learn how to present a different paywall from one that's already presented. - [Custom Actions](https://superwall.com/docs/dashboard/guides/tips-using-custom-actions): Learn how to use custom actions. - [Abandoned Transaction Paywalls](https://superwall.com/docs/dashboard/guides/tips-abandoned-transaction-paywall): Learn how to present a a paywall when a user starts to convert, but then cancels the transaction. - [Using Stripe's New Payment Sheet Checkout In-App](https://superwall.com/docs/dashboard/guides/using-stripe-bottom-sheet-checkout-in-app): undefined - [Using Superwall for Onboarding Flows](https://superwall.com/docs/dashboard/guides/using-superwall-for-onboarding-flows): Due to the flexible nature of our paywalls and SDK, you can easily use Superwall for onboarding flows. - [Showing Unique Paywalls](https://superwall.com/docs/dashboard/guides/tips-paywalls-based-on-placement): Learn how to present a unique paywall based on the audience that was matched within a campaign. - [RevenueCat Migration Guide](https://superwall.com/docs/dashboard/guides/migrating-from-revenuecat-to-superwall): A guide to migrating from RevenueCat to Superwall. - [Pre-Launch Checklist](https://superwall.com/docs/dashboard/guides/pre-launch-checklist): Ready to ship your app with Superwall? Here is a last minute checklist to give you confidence that you're ready to ship without issue. - [Feature Gating](https://superwall.com/docs/dashboard/guides/tips-paywalls-feature-gating): Learn how to toggle feature gating in a paywall. - [First Touch Paywalls](https://superwall.com/docs/dashboard/guides/tips-first-touch-paywall): Learn how to present a paywall the moment users interact with your app. - [Subscription Management](https://superwall.com/docs/dashboard/subscription-management): See how Superwall manages subscription states end-to-end, surface that data in the dashboard, and distribute updates across your stack. - [Charts](https://superwall.com/docs/dashboard/charts): View charts detailing important metrics about your app's subscription performance, paywalls and more. - [Paywalls](https://superwall.com/docs/dashboard/paywalls): Create or edit paywalls across all of your campaigns in one place. - [Surveys](https://superwall.com/docs/dashboard/surveys): Adding a paywall exit or post-purchase survey is a great way to boost conversion and get feedback on why users declined or purchased from your paywall. Once you've configured a survey, it can be attached to multiple paywalls. A user will only ever see a specific survey once unless you reset its responses. - [Templates](https://superwall.com/docs/dashboard/templates): Use our template library to jump-start your paywall design process. Either plug in your products, switch them up to fit your needs, or remix them altogether. - [Welcome](https://superwall.com/docs/dashboard): Welcome to the Superwall Dashboard documentation - [Using the Presentation Handler](https://superwall.com/docs/using-the-presentation-handler): When and how to use per-presentation handlers for paywalls, and how they differ from global delegates. - [Stripe Setup](https://superwall.com/docs/web-checkout/web-checkout-configuring-stripe-keys-and-settings): Connect Superwall to Stripe using the official Stripe app and configure your settings. - [App2Web](https://superwall.com/docs/web-checkout/web-checkout-direct-stripe-checkout): Offer Stripe products directly from your iOS paywalls and perform checkout flows. - [Web Checkout Links](https://superwall.com/docs/web-checkout/web-checkout-creating-campaigns-to-show-paywalls): Learn how to use campaigns and placements to present web paywalls using Superwall's web checkout links. - [Creating Products](https://superwall.com/docs/web-checkout/web-checkout-adding-a-stripe-product): Create products in Stripe to show on your web paywalls. - [Creating an App](https://superwall.com/docs/web-checkout/web-checkout-creating-an-app): Add a Stripe app to an existing project within Superwall. - [Web-Only Checkout](https://superwall.com/docs/web-checkout/web-checkout-web-only): Use web checkout without a mobile app for web apps, websites, or any non-App-Store product. - [Web Checkout FAQ](https://superwall.com/docs/web-checkout/web-checkout-faq): Frequently asked questions about web checkout. - [Overview](https://superwall.com/docs/web-checkout/web-checkout-overview): Let customers purchase products online via Stripe, then link them to your iOS app with one seamless flow. No authentication required. - [Restoring & Managing Purchases](https://superwall.com/docs/web-checkout/web-checkout-managing-memberships): Learn how users can manage their subscriptions from purchases made via the web. - [Sandbox Purchases](https://superwall.com/docs/web-checkout/web-checkout-testing-purchases): Test with your web paywalls by using sandbox products. - [Using New SDK Features](https://superwall.com/docs/getting-started-with-our-sdks): Superwall's recent SDK updates bring several new improvements and features. Here's how to get started quickly. - [Layout Tab](https://superwall.com/docs/layout-tab): undefined - [Capacitor](https://superwall.com/docs/community/capacitor): Superwall plugin for Capacitor by Capawesome - [Community SDKs](https://superwall.com/docs/community): Community-maintained Superwall SDKs - [Superwall](https://superwall.com/docs/react-native/sdk-reference/Superwall): The shared instance of Superwall that provides access to all SDK features. - [PurchaseController](https://superwall.com/docs/react-native/sdk-reference/PurchaseController): An abstract class that defines the contract for a purchase controller. - [PaywallOptions](https://superwall.com/docs/react-native/sdk-reference/PaywallOptions): Options for configuring the appearance and behavior of paywalls. - [register()](https://superwall.com/docs/react-native/sdk-reference/register): A function that registers a placement that can be remotely configured to show a paywall and gate feature access. - [Subscription Status](https://superwall.com/docs/react-native/sdk-reference/subscriptionStatus): Methods for getting and setting the user's subscription status. - [identify()](https://superwall.com/docs/react-native/sdk-reference/identify): Creates an account with Superwall by linking the provided userId to Superwall's automatically generated alias. - [configure()](https://superwall.com/docs/react-native/sdk-reference/configure): A static function that configures a shared instance of Superwall for use throughout your app. - [PaywallPresentationHandler](https://superwall.com/docs/react-native/sdk-reference/PaywallPresentationHandler): Handles events related to paywall presentation. - [handleDeepLink()](https://superwall.com/docs/react-native/sdk-reference/handleDeepLink): Handles a deep link. - [Types and Enums](https://superwall.com/docs/react-native/sdk-reference/types): Reference for types, enums, and result objects used in the React Native SDK. - [SuperwallDelegate](https://superwall.com/docs/react-native/sdk-reference/SuperwallDelegate): A class that handles Superwall lifecycle events and analytics. - [getUserAttributes()](https://superwall.com/docs/react-native/sdk-reference/getUserAttributes): Retrieves the user attributes, set using setUserAttributes. - [setUserAttributes()](https://superwall.com/docs/react-native/sdk-reference/setUserAttributes): Sets user attributes for use in paywalls and on the Superwall dashboard. - [SuperwallOptions](https://superwall.com/docs/react-native/sdk-reference/SuperwallOptions): Options for configuring the Superwall SDK. - [Overview](https://superwall.com/docs/react-native/sdk-reference): Reference documentation for the Superwall React Native SDK. - [Changelog](https://superwall.com/docs/react-native/changelog): Release notes for the Superwall React Native SDK - [Welcome](https://superwall.com/docs/react-native): Welcome to the Superwall React Native SDK documentation - [Using Referral or Promo Codes with Superwall](https://superwall.com/docs/using-referral-or-promo-codes-with-superwall): Learn how to use referral or promo codes with Superwall. - [Superwall](https://superwall.com/docs/android/sdk-reference/Superwall): The shared instance of Superwall that provides access to all SDK features. - [PurchaseController](https://superwall.com/docs/android/sdk-reference/PurchaseController): An interface for handling Superwall's subscription-related logic with your own purchase implementation. - [PaywallOptions](https://superwall.com/docs/android/sdk-reference/PaywallOptions): Configuration for paywall presentation and behavior in the Superwall Android SDK. - [register()](https://superwall.com/docs/android/sdk-reference/register): A function that registers a placement that can be remotely configured to show a paywall and gate feature access. - [subscriptionStatus](https://superwall.com/docs/android/sdk-reference/subscriptionStatus): A StateFlow property that indicates the subscription status of the user. - [setSubscriptionStatus()](https://superwall.com/docs/android/sdk-reference/advanced/setSubscriptionStatus): A function that manually sets the subscription status when using a custom PurchaseController. - [PaywallBuilder](https://superwall.com/docs/android/sdk-reference/advanced/PaywallBuilder): A builder class for creating custom PaywallView instances for advanced presentation. - [userId](https://superwall.com/docs/android/sdk-reference/userId): A property on Superwall.instance that returns the current user's ID. - [identify()](https://superwall.com/docs/android/sdk-reference/identify): A function that creates an account with Superwall by linking a userId to the automatically generated alias. - [SuperwallEvent](https://superwall.com/docs/android/sdk-reference/SuperwallEvent): A sealed class representing analytical events that are automatically tracked by Superwall. - [getPresentationResult()](https://superwall.com/docs/android/sdk-reference/getPresentationResult): Check the outcome of a placement without presenting a paywall. - [configure()](https://superwall.com/docs/android/sdk-reference/configure): A static function that configures a shared instance of Superwall for use throughout your app. - [handleDeepLink()](https://superwall.com/docs/android/sdk-reference/handleDeepLink): A function that handles deep links and triggers paywalls based on configured campaigns. - [SuperwallDelegate](https://superwall.com/docs/android/sdk-reference/SuperwallDelegate): An interface that handles Superwall lifecycle events and analytics. - [setUserAttributes()](https://superwall.com/docs/android/sdk-reference/setUserAttributes): A function that sets user attributes for use in paywalls and analytics on the Superwall dashboard. - [SuperwallOptions](https://superwall.com/docs/android/sdk-reference/SuperwallOptions): A configuration class for customizing paywall appearance and behavior. - [Overview](https://superwall.com/docs/android/sdk-reference): Reference documentation for the Superwall Android SDK. - [Tracking Subscription State](https://superwall.com/docs/android/quickstart/tracking-subscription-state): Here's how to view whether or not a user is on a paid plan in Android. - [Setting User Attributes](https://superwall.com/docs/android/quickstart/setting-user-properties): undefined - [Presenting Paywalls](https://superwall.com/docs/android/quickstart/feature-gating): Control access to premium features with Superwall placements. - [Configure the SDK](https://superwall.com/docs/android/quickstart/configure): undefined - [User Management](https://superwall.com/docs/android/quickstart/user-management): undefined - [Install the SDK](https://superwall.com/docs/android/quickstart/install): Install the Superwall Android SDK via Gradle. - [Handling Deep Links](https://superwall.com/docs/android/quickstart/in-app-paywall-previews): undefined - [Post-Checkout Redirecting](https://superwall.com/docs/android/guides/web-checkout/post-checkout-redirecting): Learn how to handle users redirecting back to your app after a web purchase. - [Redeeming In-App](https://superwall.com/docs/android/guides/web-checkout/linking-membership-to-iOS-app): Handle a deep link in your app and use the delegate methods. - [Using RevenueCat](https://superwall.com/docs/android/guides/web-checkout/using-revenuecat): Handle a deep link in your app and use the delegate methods to link web checkouts with RevenueCat. - [Web Checkout](https://superwall.com/docs/android/guides/web-checkout): Integrate Superwall web checkout with your iOS app for seamless cross-platform subscriptions - [Migrating from v1 to v2 - Android](https://superwall.com/docs/android/guides/migrations/migrating-to-v2): SuperwallKit 2.0 is a major release of Superwall's Android SDK. This introduces breaking changes. - [Using the Presentation Handler](https://superwall.com/docs/android/guides/advanced/using-the-presentation-handler): undefined - [Observer Mode](https://superwall.com/docs/android/guides/advanced/observer-mode): undefined - [Viewing Purchased Products](https://superwall.com/docs/android/guides/advanced/viewing-purchased-products): undefined - [Custom Paywall Actions](https://superwall.com/docs/android/guides/advanced/custom-paywall-actions): undefined - [Device Tier Targeting](https://superwall.com/docs/android/guides/advanced/using-device-tiers-on-android): Target users based on their device performance capabilities to optimize paywall experiences across different hardware tiers. - [Purchasing Products Outside of a Paywall](https://superwall.com/docs/android/guides/advanced/direct-purchasing): undefined - [Retrieving and Presenting a Paywall Yourself](https://superwall.com/docs/android/guides/advanced/presenting-paywalls): undefined - [Game Controller Support](https://superwall.com/docs/android/guides/advanced/game-controller-support): undefined - [Experimental Flags](https://superwall.com/docs/android/guides/experimental-flags): undefined - [Advanced Purchasing](https://superwall.com/docs/android/guides/advanced-configuration): If you need fine-grain control over the purchasing pipeline, use a purchase controller to manually handle purchases and subscription status. - [Cohorting in 3rd Party Tools](https://superwall.com/docs/android/guides/3rd-party-analytics/cohorting-in-3rd-party-tools): To easily view Superwall cohorts in 3rd party tools, we recommend you set user attributes based on the experiments that users are included in. You can also use custom placements for creating analytics events for actions such as interacting with an element on a paywall. - [Custom Paywall Analytics](https://superwall.com/docs/android/guides/3rd-party-analytics/custom-paywall-analytics): Learn how to log events from paywalls, such as a button tap or product change, to forward to your analytics service. - [Superwall Events](https://superwall.com/docs/android/guides/3rd-party-analytics/tracking-analytics): The SDK automatically tracks some events, which power the charts in the dashboard. - [3rd Party Analytics](https://superwall.com/docs/android/guides/3rd-party-analytics): undefined - [Advanced Configuration](https://superwall.com/docs/android/guides/configuring): When configuring the SDK you can pass in options that configure Superwall, the paywall presentation, and its appearance. - [Using the Superwall Delegate](https://superwall.com/docs/android/guides/using-superwall-delegate): undefined - [Vibe Coding](https://superwall.com/docs/android/guides/vibe-coding): How to Vibe Code using the knowledge of the Superwall Docs - [Using RevenueCat](https://superwall.com/docs/android/guides/using-revenuecat): undefined - [Changelog](https://superwall.com/docs/android/changelog): Release notes for the Superwall Android SDK - [Welcome](https://superwall.com/docs/android): Welcome to the Superwall Android SDK documentation - [External Paywall Creation](https://superwall.com/docs/advanced-paywall-creation): undefined - [Using Implicit Events](https://superwall.com/docs/using-implicit-events): The following [Superwall Events](/docs/tracking-analytics) are automatically registered by the SDK and can be added as events in campaigns to present paywalls. - [Setting User Attributes (Legacy)](https://superwall.com/docs/legacy/legacy_setting-user-properties): By setting user attributes, you can display information about the user on the paywall. You can also define [audiences](/campaigns-audience) in a campaign to determine which paywall to show to a user, based on their user attributes. - [React Native - Package.json (Legacy)](https://superwall.com/docs/legacy/legacy_installation-via-package): Install the Superwall React Native SDK via npm or yarn. To see the latest release, [check out the repository](https://github.com/superwall/react-native-superwall). - [3rd Party Analytics (Legacy)](https://superwall.com/docs/legacy/legacy_3rd-party-analytics): Superwall can easily be integrated with 3rd party analytics tools. - [Using RevenueCat (Legacy)](https://superwall.com/docs/legacy/legacy_using-revenuecat): If you want to use RevenueCat to handle your subscription-related logic with Superwall, follow this guide. - [Purchases and Subscription Status (Legacy)](https://superwall.com/docs/legacy/legacy_advanced-configuration): undefined - [Retrieving and Presenting a Paywall Yourself (Legacy)](https://superwall.com/docs/legacy/legacy_presenting): Use this technique to get an instance of a paywall manually, using either UIKit, SwiftUI, or Jetpack Compose. - [Deep Links and In-App Previews (Legacy)](https://superwall.com/docs/legacy/legacy_in-app-paywall-previews): It's important to tell Superwall when a deep link has been opened. This enables two things: - [Installation (Legacy)](https://superwall.com/docs/legacy/legacy_installation): Superwall can be installed with many different package managers. Please find your preferred package manager below. - [Flutter - pubspec.yaml (Legacy)](https://superwall.com/docs/legacy/legacy_installation-via-pubspec): Install the Superwall Flutter SDK via pub package manager. To see the latest release, [check out the repository](https://github.com/superwall/Superwall-Flutter). - [Showing Paywalls (Legacy)](https://superwall.com/docs/legacy/legacy_feature-gating): At the heart of Superwall's SDK lies `Superwall.shared.register(event:params:handler:feature:)`. - [Cohorting in 3rd Party Tools (Legacy)](https://superwall.com/docs/legacy/legacy_cohorting-in-3rd-party-tools): To easily view Superwall cohorts in 3rd party tools, we recommend you set user attributes based on the experiments that users are included in. You can also use custom placements for creating analytic events for actions such as interacting with an element on a paywall. - [Pre-Launch Checklist (Legacy)](https://superwall.com/docs/legacy/legacy_pre-launch-checklist): Ready to ship your app with Superwall? Here is a last minute checklist to give you confidence that you're ready to ship without issue. - [iOS - CocoaPods (Legacy)](https://superwall.com/docs/legacy/legacy_installation-via-cocoapods): Install the Superwall iOS SDK via CocoaPods. To see the latest release, [check out the repository](https://github.com/superwall/Superwall-iOS). - [Configuring the SDK (Legacy)](https://superwall.com/docs/legacy/legacy_configuring-the-sdk): As soon as your app launches, you need to configure the SDK with your **Public API Key**. You'll retrieve this from the Superwall settings page. - [Presenting Paywalls from One Another (Legacy)](https://superwall.com/docs/legacy/legacy_presenting-paywalls-from-one-another): Learn how to present a different paywall from one that's already presented. - [Passing in options (Legacy)](https://superwall.com/docs/legacy/legacy_using-superwalloptions): When configuring the SDK you can pass in options that configure Superwall, the paywall presentation, and its appearance. - [Android - Gradle (Legacy)](https://superwall.com/docs/legacy/legacy_installation-via-gradle): Install the Superwall Android SDK via Gradle. To see the latest release, [check out the repository](https://github.com/superwall/Superwall-Android). - [Using the Superwall Delegate (Legacy)](https://superwall.com/docs/legacy/legacy_using-superwall-delegate): Use a Superwall delegate to help interface with 3rd party analytics, see which product was purchased on a paywall, handle custom events and more. - [User Management (Legacy)](https://superwall.com/docs/legacy/legacy_identity-management): It is necessary to uniquely identify users to track their journey within Superwall. - [iOS - Swift Package Manager (Legacy)](https://superwall.com/docs/legacy/legacy_installation-via-spm): Install the Superwall iOS SDK via Swift Package Manager. To see the latest release, [check out the repository](https://github.com/superwall/Superwall-iOS). - [Superwall Events (Legacy)](https://superwall.com/docs/legacy/legacy_tracking-analytics): The SDK automatically tracks some events, which power the charts in the dashboard. - [Troubleshooting (Legacy)](https://superwall.com/docs/legacy/legacy_troubleshooting): undefined - [Custom Paywall Actions (Legacy)](https://superwall.com/docs/legacy/legacy_custom-paywall-events): You can set the click behavior of any element on a paywall to be a custom paywall action. This allows you to tie any tap in your paywall to hard-coded application logic. - [Using Superwall with Cursor](https://superwall.com/docs/using-superwall-with-cursor): Use our SDK footprint file, along with a custom Cursor User Rule, to use Superwall with AI. - [Interactive Paywall Preview](https://superwall.com/docs/interactive-paywall-preview): The interactive paywall preview shows how your paywall looks on certain iOS devices, for different configurations: - [overrideProductsByName](https://superwall.com/docs/flutter/sdk-reference/overrideProductsByName): Globally override products on any paywall by product name. - [Superwall.shared](https://superwall.com/docs/flutter/sdk-reference/Superwall): The shared Superwall instance that provides access to all SDK methods. - [PurchaseController](https://superwall.com/docs/flutter/sdk-reference/PurchaseController): An abstract class for handling custom purchase flows and subscription management. - [Entitlements](https://superwall.com/docs/flutter/sdk-reference/Entitlements): Container for all entitlements available to the user, organized by status. - [SubscriptionTransaction](https://superwall.com/docs/flutter/sdk-reference/SubscriptionTransaction): Represents a subscription transaction in the customer's purchase history. - [PaywallOptions](https://superwall.com/docs/flutter/sdk-reference/PaywallOptions): Configuration for paywall presentation and behavior in the Superwall Flutter SDK. - [registerPlacement()](https://superwall.com/docs/flutter/sdk-reference/register): A function that registers a placement that can be remotely configured to show a paywall and gate feature access. - [subscriptionStatus](https://superwall.com/docs/flutter/sdk-reference/subscriptionStatus): A Stream that emits the user's current subscription status whenever it changes. - [setSubscriptionStatus()](https://superwall.com/docs/flutter/sdk-reference/advanced/setSubscriptionStatus): Manually sets the user's subscription status when using a custom PurchaseController. - [consume()](https://superwall.com/docs/flutter/sdk-reference/consume): Consumes an in-app purchase by its purchase token. - [getEntitlements()](https://superwall.com/docs/flutter/sdk-reference/getEntitlements): Gets all entitlements available to the user, organized by status. - [NonSubscriptionTransaction](https://superwall.com/docs/flutter/sdk-reference/NonSubscriptionTransaction): Represents a non-subscription transaction (consumables and non-consumables). - [getUserId()](https://superwall.com/docs/flutter/sdk-reference/getUserId): Gets the current user ID that was set via identify(). - [identify()](https://superwall.com/docs/flutter/sdk-reference/identify): Associates a user ID with the current user for analytics and user tracking. - [setIntegrationAttribute()](https://superwall.com/docs/flutter/sdk-reference/setIntegrationAttribute): Sets a single attribute for third-party integrations. - [getCustomerInfo()](https://superwall.com/docs/flutter/sdk-reference/getCustomerInfo): Gets the latest customer information including subscriptions, transactions, and entitlements. - [getPresentationResult()](https://superwall.com/docs/flutter/sdk-reference/getPresentationResult): Check the outcome of a placement without presenting a paywall. - [setIntegrationAttributes()](https://superwall.com/docs/flutter/sdk-reference/setIntegrationAttributes): Sets multiple attributes for third-party integrations at once. - [configure()](https://superwall.com/docs/flutter/sdk-reference/configure): A static method that configures the Superwall SDK with your API key. - [PresentationResult](https://superwall.com/docs/flutter/sdk-reference/PresentationResult): The result of a paywall presentation attempt. - [PaywallPresentationHandler](https://superwall.com/docs/flutter/sdk-reference/PaywallPresentationHandler): A handler class that provides status updates for paywall presentation in registerPlacement() calls. - [handleDeepLink()](https://superwall.com/docs/flutter/sdk-reference/handleDeepLink): Processes deep links to trigger paywall previews and handle Superwall URLs. - [CustomerInfo](https://superwall.com/docs/flutter/sdk-reference/CustomerInfo): Contains the latest subscription and entitlement information about the customer. - [SuperwallDelegate](https://superwall.com/docs/flutter/sdk-reference/SuperwallDelegate): An abstract class that receives global SDK events for analytics and lifecycle management. - [setUserAttributes()](https://superwall.com/docs/flutter/sdk-reference/setUserAttributes): Sets custom attributes for the current user that can be used in campaign targeting. - [SuperwallOptions](https://superwall.com/docs/flutter/sdk-reference/SuperwallOptions): Configuration options for customizing Superwall SDK behavior. - [IntegrationAttribute](https://superwall.com/docs/flutter/sdk-reference/IntegrationAttribute): Attributes for third-party integrations with Superwall. - [Overview](https://superwall.com/docs/flutter/sdk-reference): Reference documentation for the Superwall Flutter SDK. - [Tracking Subscription State](https://superwall.com/docs/flutter/quickstart/tracking-subscription-state): Here's how to view whether or not a user is on a paid plan in Flutter. - [Setting User Attributes](https://superwall.com/docs/flutter/quickstart/setting-user-properties): undefined - [Presenting Paywalls](https://superwall.com/docs/flutter/quickstart/feature-gating): Control access to premium features with Superwall placements. - [Configure the SDK](https://superwall.com/docs/flutter/quickstart/configure): undefined - [User Management](https://superwall.com/docs/flutter/quickstart/user-management): undefined - [Install the SDK](https://superwall.com/docs/flutter/quickstart/install): Install the Superwall Flutter SDK via pub package manager. - [Handling Deep Links](https://superwall.com/docs/flutter/quickstart/in-app-paywall-previews): undefined - [Post-Checkout Redirecting](https://superwall.com/docs/flutter/guides/web-checkout/post-checkout-redirecting): Learn how to handle users redirecting back to your app after a web purchase. - [Redeeming In-App](https://superwall.com/docs/flutter/guides/web-checkout/linking-membership-to-iOS-app): Handle a deep link in your app and use the delegate methods. - [Using RevenueCat](https://superwall.com/docs/flutter/guides/web-checkout/using-revenuecat): Handle a deep link in your app and use the delegate methods to link web checkouts with RevenueCat in Flutter. - [Web Checkout](https://superwall.com/docs/flutter/guides/web-checkout): Integrate Superwall web checkout with your iOS app for seamless cross-platform subscriptions - [Migrating from v1 to v2 - Flutter](https://superwall.com/docs/flutter/guides/migrations/migrating-to-v2): SuperwallKit 2.0 is a major release of Superwall's Flutter SDK. This introduces breaking changes. - [Using the Presentation Handler](https://superwall.com/docs/flutter/guides/advanced/using-the-presentation-handler): undefined - [Observer Mode](https://superwall.com/docs/flutter/guides/advanced/observer-mode): undefined - [Viewing Purchased Products](https://superwall.com/docs/flutter/guides/advanced/viewing-purchased-products): undefined - [Custom Paywall Actions](https://superwall.com/docs/flutter/guides/advanced/custom-paywall-actions): undefined - [Retrieving and Presenting a Paywall Yourself](https://superwall.com/docs/flutter/guides/advanced/presenting-paywalls): undefined - [Game Controller Support](https://superwall.com/docs/flutter/guides/advanced/game-controller-support): undefined - [Experimental Flags](https://superwall.com/docs/flutter/guides/experimental-flags): undefined - [Advanced Purchasing](https://superwall.com/docs/flutter/guides/advanced-configuration): If you need fine-grain control over the purchasing pipeline, use a purchase controller to manually handle purchases and subscription status. - [Cohorting in 3rd Party Tools](https://superwall.com/docs/flutter/guides/3rd-party-analytics/cohorting-in-3rd-party-tools): To easily view Superwall cohorts in 3rd party tools, we recommend you set user attributes based on the experiments that users are included in. You can also use custom placements for creating analytics events for actions such as interacting with an element on a paywall. - [Custom Paywall Analytics](https://superwall.com/docs/flutter/guides/3rd-party-analytics/custom-paywall-analytics): Learn how to log events from paywalls, such as a button tap or product change, to forward to your analytics service. - [Superwall Events](https://superwall.com/docs/flutter/guides/3rd-party-analytics/tracking-analytics): The SDK automatically tracks some events, which power the charts in the dashboard. - [3rd Party Analytics](https://superwall.com/docs/flutter/guides/3rd-party-analytics): undefined - [Using Superwall Deep Links](https://superwall.com/docs/flutter/guides/superwall-deep-links): (iOS only) How to use Superwall Deep Links to trigger paywalls or custom in-app behavior. - [Advanced Configuration](https://superwall.com/docs/flutter/guides/configuring): When configuring the SDK you can pass in options that configure Superwall, the paywall presentation, and its appearance. - [StoreKit testing (iOS only)](https://superwall.com/docs/flutter/guides/testing-purchases): How to set up StoreKit testing for iOS when using the Flutter SDK. - [Using the Superwall Delegate](https://superwall.com/docs/flutter/guides/using-superwall-delegate): undefined - [Vibe Coding](https://superwall.com/docs/flutter/guides/vibe-coding): How to Vibe Code using the knowledge of the Superwall Docs - [Using RevenueCat](https://superwall.com/docs/flutter/guides/using-revenuecat): undefined - [Changelog](https://superwall.com/docs/flutter/changelog): Release notes for the Superwall Flutter SDK - [Welcome](https://superwall.com/docs/flutter): Welcome to the Superwall Flutter SDK documentation - [Video: Revenue Charts Tour](https://superwall.com/docs/support/dashboard/2563776677-revenue-charts-tour): undefined - [How is the Estimated ARPU metric calculated in Superwall?](https://superwall.com/docs/support/dashboard/4129730749-how-is-the-estimated-arpu-metric-calculated-in-superwall): undefined - [How do I change my login email address?](https://superwall.com/docs/support/dashboard/2125187334-how-do-i-change-my-login-email-address): undefined - [How do I find my Superwall Server Secret?](https://superwall.com/docs/support/dashboard/5346543318-how-do-i-find-my-superwall-server-secret): undefined - [Video: Configuring Products to use in Superwall](https://superwall.com/docs/support/dashboard/8137029255-configuring-products-to-use-in-superwall): undefined - [How do I add my VAT number to invoices?](https://superwall.com/docs/support/dashboard/9023151337-how-do-i-add-my-vat-number-to-invoices): undefined - [Why is initial conversion lower than new trials on some days?](https://superwall.com/docs/support/dashboard/9621028514-why-is-initial-conversion-lower-than-new-trials-on-some-days): undefined - [Video: Get Started with Apple Search Ads](https://superwall.com/docs/support/dashboard/8851145816-get-started-with-apple-search-ads): undefined - [A Superwall product tour](https://superwall.com/docs/support/dashboard/9588935743-a-superwall-product-tour): undefined - [How do I update my Apple Small Business Program status in Superwall?](https://superwall.com/docs/support/dashboard/2132346026-how-do-i-update-my-apple-small-business-program-status-in-superwall): undefined - [What is the difference between "Trial Cancel" and "Trial Expire" tags?](https://superwall.com/docs/support/dashboard/9274386153-what-is-the-difference-between-trial-cancel-and-trial-expire-tags): undefined - [Video: How to Show Different Paywalls to Certain Users with Audiences](https://superwall.com/docs/support/dashboard/8360602963-how-to-show-different-paywalls-to-certain-users-with-audiences): undefined - [Video: Breaking Down Revenue Charts by User Attributes](https://superwall.com/docs/support/dashboard/3633020467-breaking-down-revenue-charts-by-user-attributes): undefined - [How to Optimize Refund Protection Settings](https://superwall.com/docs/support/dashboard/5483562984-how-to-optimize-refund-protection-settings): undefined - [Why don't trial conversion and cancellation rates add up to 100%?](https://superwall.com/docs/support/dashboard/2172810792-why-don-t-trial-conversion-and-cancellation-rates-add-up-to-100): undefined - [Dashboard](https://superwall.com/docs/support/dashboard): Learn how to use the Superwall Dashboard to manage your paywalls, campaigns, and users. - [How can I recover an archived product in Superwall?](https://superwall.com/docs/support/dashboard/9149611399-can-i-recover-an-archived-product-in-superwall): undefined - [Are video and images automatically compressed when uploaded to a paywall via the editor?](https://superwall.com/docs/support/paywall-editor/1523245773-are-videos-automatically-compressed-when-uploaded-to-a-paywall-via-the-editor): undefined - [Video: Using Custom Actions to Setup Referral Systems](https://superwall.com/docs/support/paywall-editor/2079174387-using-custom-actions-to-setup-referral-systems): undefined - [Video: How to use custom actions in your paywall](https://superwall.com/docs/support/paywall-editor/2427577661-how-to-use-custom-actions-in-your-paywall): undefined - [Video: AI Image Generation in Paywalls](https://superwall.com/docs/support/paywall-editor/8950966564-ai-image-generation-in-paywalls): undefined - [Video: Adding Products to Paywalls](https://superwall.com/docs/support/paywall-editor/1502195570-adding-products-to-paywalls): undefined - [Video: How to use Dynamic Values](https://superwall.com/docs/support/paywall-editor/6485999553-how-to-use-dynamic-values): undefined - [Can I delete or update existing snippets?](https://superwall.com/docs/support/paywall-editor/7448860745-can-i-delete-or-update-existing-snippets): undefined - [Video: Feature Gating](https://superwall.com/docs/support/paywall-editor/4876966592-feature-gating): undefined - [When adding a product, is it possible to fetch the price for non subscription products?](https://superwall.com/docs/support/paywall-editor/2306253672-can-i-use-a-feature-shown-in-the-attached-screenshot): undefined - [How do I animate elements in the Superwall editor?](https://superwall.com/docs/support/paywall-editor/6426797732-how-do-i-animate-text-elements-in-the-superwall-editor): undefined - [Video: Tracking User Behavior on Paywalls](https://superwall.com/docs/support/paywall-editor/6666110181-tracking-user-behavior-on-paywalls): undefined - [Video: Showing paywalls with a discount for abandoned transactions](https://superwall.com/docs/support/paywall-editor/2455479259-showing-paywalls-with-a-discount-for-abandoned-transactions): undefined - [Video: Building a Multi-Tier Paywall using the Superwall Editor](https://superwall.com/docs/support/paywall-editor/6032457649-building-a-multi-tier-paywall-using-the-superwall-editor): undefined - [Video: Using Custom Placements for Tracking Paywall Interactions](https://superwall.com/docs/support/paywall-editor/3696237744-using-custom-placements-for-tracking-paywall-interactions): undefined - [How do I copy a paywall from one account to another?](https://superwall.com/docs/support/paywall-editor/7124788686-how-do-i-copy-a-paywall-from-one-account-to-another): undefined - [Display dynamic images in your paywalls](https://superwall.com/docs/support/paywall-editor/4109039578-display-dynamic-images-in-your-paywalls): undefined - [Video: How to create a countdown timer on a paywall](https://superwall.com/docs/support/paywall-editor/1377495156-how-to-create-a-countdown-timer-on-a-paywall): undefined - [Video: How to make paywalls adapt to device, light or dark mode, and more.](https://superwall.com/docs/support/paywall-editor/5453267914-how-to-make-paywalls-adapt-to-device-light-or-dark-mode-and-more): undefined - [Paywall Editor: Menus or Modals Closing](https://superwall.com/docs/support/paywall-editor/6770999766-paywall-editor-menus-or-modals-closing): undefined - [Video: Building your first paywall](https://superwall.com/docs/support/paywall-editor/1932646675-building-your-first-paywall): undefined - [Paywall Editor](https://superwall.com/docs/support/paywall-editor): Learn how to use the Superwall Paywall Editor to create and manage your paywalls. - [How do I disable the activation link email for web checkout?](https://superwall.com/docs/support/web-checkout/3969573187-how-do-i-disable-the-activation-link-email-for-web-checkout): undefined - [Why am I seeing "An error occurred while loading the Stripe Portal" in the manage subscription page?](https://superwall.com/docs/support/web-checkout/3771535881-why-am-i-seeing-an-error-occurred-while-loading-the-stripe-portal-in-the-manage-subscription-page): undefined - [Why is there no revenue tracking setup for web checkout?](https://superwall.com/docs/support/web-checkout/web-checkout-revenue-tracking-is-automatic): Web checkout revenue tracking is automatic when using Stripe, unlike iOS and Android which require manual configuration. - [How do I retrieve Stripe customer data after web checkout?](https://superwall.com/docs/support/web-checkout/how-to-retrieve-stripe-customer-data-after-web-checkout): Learn how to access the Stripe customer ID and email after a user completes a web checkout purchase. - [Video: Web Checkout Tour on iOS](https://superwall.com/docs/support/web-checkout/1872595046-web-checkout-tour-on-ios): undefined - [Web Checkout](https://superwall.com/docs/support/web-checkout): Learn how to use the Superwall Web Checkout to integrate Web Checkout into your app. - [How to Transfer Your App to a New Owner](https://superwall.com/docs/support/faq/1379595978-how-to-transfer-app-to-a-new-owner): undefined - [Are Paywall Events and Urgency Messaging App Store Compliant?](https://superwall.com/docs/support/faq/app-store-compliance-paywall-events): Learn about Apple App Store compliance for paywall events like Paywall Dismissed and Transaction Abandoned, as well as urgency-style messaging. - [Why is my transaction failure rate high?](https://superwall.com/docs/support/faq/why-is-my-transaction-failure-rate-high): undefined - [How do I migrate my existing purchases to RevenueCat?](https://superwall.com/docs/support/faq/how-do-i-migrate-my-existing-purchases-to-revenuecat): undefined - [Why is my Android app missing historical revenue data after setting up the Google Play integration?](https://superwall.com/docs/support/faq/why-is-my-android-app-missing-historical-revenue-data): undefined - [How do I migrate to Superwall from another provider?](https://superwall.com/docs/support/faq/how-to-migrate-from-another-provider-to-superwall): Guide for migrating from Adapty, Qonversion, Glassfy, or other subscription SDKs to Superwall - [How does Superwall's pricing work?](https://superwall.com/docs/support/faq/2801653905-how-does-superwalls-pricing-work): undefined - [Can I pre-authenticate users on the subscription management page?](https://superwall.com/docs/support/faq/can-i-pre-authenticate-users-on-subscription-management-page): undefined - [FAQ](https://superwall.com/docs/support/faq): Common questions and answers about Superwall. - [Sandbox Free Trial Isn’t Appearing](https://superwall.com/docs/support/troubleshooting/troubleshooting-sandbox-free-trial-not-showing): Why free trials sometimes don’t show up in sandbox testing and what to do about it. - [Why does my entitlement show "Missing App ID" after connecting App Store Connect API?](https://superwall.com/docs/support/troubleshooting/9207773532-why-does-my-entitlement-show-missing-app-id-after-connecting-app-store-connect-api): undefined - [TestFlight Subscriptions](https://superwall.com/docs/support/troubleshooting/troubleshooting-testflight-subscriptions): Learn why subscriptions behave differently in TestFlight, including identity resets and accelerated renewal schedules. - [How to Debug Paywall Issues in Production](https://superwall.com/docs/support/troubleshooting/troubleshooting-debug-paywalls-production): Learn how to use the dashboard’s event logs to debug paywall behavior for real users. - [Why aren't my transactions attributing to a placement/paywall?](https://superwall.com/docs/support/troubleshooting/3920414585-why-aren-t-my-revenuecat-transactions-attributing-to-a-placement-paywall): undefined - [Why are my webhook events not triggering?](https://superwall.com/docs/support/troubleshooting/5990752866-why-are-my-webhook-events-not-triggering): undefined - [Why am I seeing 520 errors from the events API endpoint?](https://superwall.com/docs/support/troubleshooting/7581794451-why-am-i-seeing-520-errors-from-the-events-api-endpoint): undefined - [Troubleshooting: iOS SDK](https://superwall.com/docs/support/troubleshooting/8881818609-troubleshooting-ios-sdk): undefined - [Why isn't my free trial showing up in my paywall?](https://superwall.com/docs/support/troubleshooting/1205343891-why-isn-t-my-free-trial-showing-up-in-my-paywall-preview): undefined - [Troubleshooting](https://superwall.com/docs/support/troubleshooting/6022066375-troubleshooting): undefined - [Troubleshooting: Flutter SDK](https://superwall.com/docs/support/troubleshooting/6999598520-troubleshooting-flutter-sdk): undefined - [Why does my subscription status remain INACTIVE after successful purchase?](https://superwall.com/docs/support/troubleshooting/8569105587-why-does-my-subscription-status-remain-inactive-after-successful-purchase): undefined - [Why is my paywall not updating after publishing?](https://superwall.com/docs/support/troubleshooting/why-is-my-paywall-not-updating-after-publishing): Troubleshoot why users may still see an outdated paywall after you've made and published updates in the Superwall dashboard - [Why are my trials still showing as pending after they should have converted?](https://superwall.com/docs/support/troubleshooting/troubleshooting-pending-trials-not-converting): undefined - [Why is my webhook's originalAppUserId different from the user ID I set?](https://superwall.com/docs/support/troubleshooting/5131096404-why-is-my-webhook-s-originalappuserid-different-from-the-user-id-i-set): undefined - [Why is my paywall not loading on Android with Billing Service Unavailable?](https://superwall.com/docs/support/troubleshooting/9619927130-why-is-my-paywall-not-loading-on-android-with-billing-service-unavailable-error): undefined - [StoreKit Transactions Not Clearing in Xcode](https://superwall.com/docs/support/troubleshooting/troubleshooting-storekit-transaction-stuck): Fix for when a test transaction seems stuck or active when it shouldn’t be. - [Paywall Memory Usage on iOS](https://superwall.com/docs/support/troubleshooting/troubleshooting-paywall-memory-usage-on-iOS): Investigate why your paywall might look like it's using more memory than you expect in Instruments. - [Products Not Loading: iOS](https://superwall.com/docs/support/troubleshooting/products-not-loading/1253018505-products-not-loading-ios): undefined - [Products Not Loading: iOS Device with StoreKit config file](https://superwall.com/docs/support/troubleshooting/products-not-loading/4845457144-products-not-loading-ios-device-with-storekit-config-file): undefined - [Products Not Loading: iOS Simulator](https://superwall.com/docs/support/troubleshooting/products-not-loading/4739776203-products-not-loading-ios-simulator): undefined - [Products Not Loading: Android](https://superwall.com/docs/support/troubleshooting/products-not-loading/3716347779-products-not-loading-android): undefined - [Products Not Loading: Browser Preview](https://superwall.com/docs/support/troubleshooting/products-not-loading/9984011656-products-not-loading-safari-preview): undefined - [Products Not Loading: Troubleshooting Guide](https://superwall.com/docs/support/troubleshooting/products-not-loading): undefined - [Why am I getting PlacementNotFound errors for active placements in Expo?](https://superwall.com/docs/support/troubleshooting/8550351416-why-am-i-getting-placementnotfound-errors-for-active-placements-in-expo): undefined - [Troubleshooting: Android SDK](https://superwall.com/docs/support/troubleshooting/3578026824-troubleshooting-android-sdk): undefined - [Why am I seeing a billing issue after my free trial ends?](https://superwall.com/docs/support/troubleshooting/4741512872-why-am-i-seeing-a-billing-issue-after-my-free-trial-ends): undefined - [Sandbox Entitlements Persist After Reset](https://superwall.com/docs/support/troubleshooting/troubleshooting-sandbox-entitlements-persist): Why Apple sandbox entitlements remain active after clearing purchase history and reinstalling, and how to work around this limitation. - [Why are my products showing "Unknown" status in Superwall?](https://superwall.com/docs/support/troubleshooting/9558513118-why-are-my-products-showing-unknown-status-in-superwall): undefined - [Paywall Not Showing](https://superwall.com/docs/support/troubleshooting/6381986971-paywall-not-showing): undefined - [Fixing Unexpected Paywall Behavior](https://superwall.com/docs/support/troubleshooting/troubleshooting-unexpected-paywall-behavior): Step-by-step checklist when a paywall shows up when it shouldn’t—or doesn’t when it should. - [Why am I seeing "Sign in to Apple Account" when testing in-app purchases?](https://superwall.com/docs/support/troubleshooting/6204964383-why-am-i-seeing-sign-in-to-apple-account-when-testing-in-app-purchases): undefined - [Why am I not receiving webhook events?](https://superwall.com/docs/support/troubleshooting/5316844925-why-am-i-not-receiving-webhook-events-when-using-revenuecat): undefined - [Troubleshooting: Expo SDK](https://superwall.com/docs/support/troubleshooting/4780985851-troubleshooting-expo-sdk): undefined - [Why does my user show active subscription but no data in the dashboard?](https://superwall.com/docs/support/troubleshooting/subscription-status-active-but-no-dashboard-data): Understanding why a user may have an active subscription on device but no entitlements, Apple events, or webhooks in the Superwall dashboard - [Troubleshooting](https://superwall.com/docs/support/troubleshooting): undefined - [Video: How to Install and Configure the Superwall SDK in Flutter (In Under 2 Minutes!)](https://superwall.com/docs/support/sdk/3422417486-how-to-install-and-configure-the-superwall-sdk-in-flutter-in-under-2-minutes): undefined - [Video: Using Xcode's Transaction Manager](https://superwall.com/docs/support/sdk/4506454639-using-xcode-s-transaction-manager): undefined - [Video: Presenting a Paywall in an iOS App Using Superwall](https://superwall.com/docs/support/sdk/4341680566-presenting-a-paywall-in-an-ios-app-using-superwall): undefined - [How do I disable Streamlined Purchasing for iOS apps?](https://superwall.com/docs/support/sdk/5896158743-how-do-i-disable-streamlined-purchasing-for-ios-apps): undefined - [Video: How to Install Superwall's SDK into your iOS App](https://superwall.com/docs/support/sdk/6889849185-how-to-install-superwall-s-sdk-into-your-ios-app): undefined - [Video: How to present a paywall from the first touch in app](https://superwall.com/docs/support/sdk/3165338058-how-to-present-a-paywall-from-the-first-touch-in-app): undefined - [Video: Making a Purchase with Superwall](https://superwall.com/docs/support/sdk/8208368408-making-a-purchase-with-superwall): undefined - [How to Setup Web Restoration Alert Options](https://superwall.com/docs/support/sdk/3677919065-how-to-setup-web-restoration-alert-options): undefined - [How to setup sandbox testing without affecting production metrics](https://superwall.com/docs/support/sdk/3107042948-how-to-setup-sandbox-testing-without-affecting-production-metrics): undefined - [SDK](https://superwall.com/docs/support/sdk): Learn how to use the Superwall SDK to integrate Superwall into your app. - [Support Center](https://superwall.com/docs/support): Need help with anything Superwall-related? We're here to help. - [SuperwallLoading](https://superwall.com/docs/expo/sdk-reference/components/SuperwallLoading): undefined - [SuperwallLoaded](https://superwall.com/docs/expo/sdk-reference/components/SuperwallLoaded): undefined - [CustomPurchaseControllerProvider](https://superwall.com/docs/expo/sdk-reference/components/CustomPurchaseControllerProvider): A modern, hooks-based approach to handling purchases and purchase restores with the Superwall SDK. - [SuperwallError](https://superwall.com/docs/expo/sdk-reference/components/SuperwallError): undefined - [SuperwallProvider](https://superwall.com/docs/expo/sdk-reference/components/SuperwallProvider): undefined - [getPresentationResult()](https://superwall.com/docs/expo/sdk-reference/getPresentationResult): Check the outcome of a placement without presenting a paywall. - [useSuperwallEvents](https://superwall.com/docs/expo/sdk-reference/hooks/useSuperwallEvents): undefined - [useUser](https://superwall.com/docs/expo/sdk-reference/hooks/useUser): undefined - [useSuperwall](https://superwall.com/docs/expo/sdk-reference/hooks/useSuperwall): undefined - [usePlacement](https://superwall.com/docs/expo/sdk-reference/hooks/usePlacement): A React hook that registers a placement so it can remotely trigger a paywall, gate feature access, and expose paywall-lifecycle state. - [Overview](https://superwall.com/docs/expo/sdk-reference): Reference documentation for the Superwall Expo SDK. - [Tracking Subscription State](https://superwall.com/docs/expo/quickstart/tracking-subscription-state): Here's how to view whether or not a user is on a paid plan in React Native. - [Present Your First Paywall](https://superwall.com/docs/expo/quickstart/present-first-paywall): Learn how to present paywalls in your app. - [Setting User Attributes](https://superwall.com/docs/expo/quickstart/setting-user-properties): undefined - [Feature Gating](https://superwall.com/docs/expo/quickstart/feature-gating): undefined - [Configure the SDK](https://superwall.com/docs/expo/quickstart/configure): undefined - [User Management](https://superwall.com/docs/expo/quickstart/user-management): undefined - [Install the SDK](https://superwall.com/docs/expo/quickstart/install): Install the Superwall React Native SDK via your favorite package manager. - [Handling Deep Links](https://superwall.com/docs/expo/quickstart/in-app-paywall-previews): undefined - [Migrating from React Native SDK](https://superwall.com/docs/expo/guides/migrating-react-native): Guide to migrating from the legacy React Native SDK - [Post-Checkout Redirecting](https://superwall.com/docs/expo/guides/web-checkout/post-checkout-redirecting): Learn how to handle users redirecting back to your app after a web purchase. - [Redeeming In-App](https://superwall.com/docs/expo/guides/web-checkout/linking-membership-to-iOS-app): Handle a deep link in your app and use the delegate methods. - [Using RevenueCat](https://superwall.com/docs/expo/guides/web-checkout/using-revenuecat): Handle a deep link in your app and use the delegate methods to link web checkouts with RevenueCat. - [Web Checkout](https://superwall.com/docs/expo/guides/web-checkout): Integrate Superwall web checkout with your iOS app for seamless cross-platform subscriptions - [Migrating from v1 to v2 - React Native](https://superwall.com/docs/expo/guides/migrations/migrating-to-v2): SuperwallKit 2.0 is a major release of Superwall's React Native SDK. This introduces breaking changes. - [Using the Presentation Handler](https://superwall.com/docs/expo/guides/advanced/using-the-presentation-handler): undefined - [Observer Mode](https://superwall.com/docs/expo/guides/advanced/observer-mode): undefined - [Viewing Purchased Products](https://superwall.com/docs/expo/guides/advanced/viewing-purchased-products): undefined - [Custom Paywall Actions](https://superwall.com/docs/expo/guides/advanced/custom-paywall-actions): undefined - [Retrieving and Presenting a Paywall Yourself](https://superwall.com/docs/expo/guides/advanced/presenting-paywalls): undefined - [Game Controller Support](https://superwall.com/docs/expo/guides/advanced/game-controller-support): undefined - [Experimental Flags](https://superwall.com/docs/expo/guides/experimental-flags): undefined - [Advanced Purchasing](https://superwall.com/docs/expo/guides/advanced-configuration): If you need fine-grain control over the purchasing pipeline, use a purchase controller to manually handle purchases and subscription status. - [Cohorting in 3rd Party Tools](https://superwall.com/docs/expo/guides/3rd-party-analytics/cohorting-in-3rd-party-tools): To easily view Superwall cohorts in 3rd party tools, we recommend you set user attributes based on the experiments that users are included in. You can also use custom placements for creating analytics events for actions such as interacting with an element on a paywall. - [Custom Paywall Analytics](https://superwall.com/docs/expo/guides/3rd-party-analytics/custom-paywall-analytics): Learn how to log events from paywalls, such as a button tap or product change, to forward to your analytics service. - [Superwall Events](https://superwall.com/docs/expo/guides/3rd-party-analytics/tracking-analytics): The SDK automatically tracks some events, which power the charts in the dashboard. - [3rd Party Analytics](https://superwall.com/docs/expo/guides/3rd-party-analytics): undefined - [Managing Users](https://superwall.com/docs/expo/guides/managing-users): Learn how to manage users in your app. - [Debugging](https://superwall.com/docs/expo/guides/debugging): Common issues and solutions when integrating the Superwall Expo SDK. - [Using Expo SDK in Bare React Native Apps](https://superwall.com/docs/expo/guides/using-expo-sdk-in-bare-react-native): Install Superwall's Expo SDK in existing React Native projects without Expo - [Configuring](https://superwall.com/docs/expo/guides/configuring): undefined - [StoreKit testing (iOS only)](https://superwall.com/docs/expo/guides/testing-purchases): How to set up StoreKit testing for iOS when using the Expo SDK. - [Using the Superwall Delegate](https://superwall.com/docs/expo/guides/using-superwall-delegate): undefined - [Vibe Coding](https://superwall.com/docs/expo/guides/vibe-coding): How to Vibe Code using the knowledge of the Superwall Docs - [Setting a Locale](https://superwall.com/docs/expo/guides/setting-locale): Override the default device locale when using the Expo SDK so you can preview localized paywalls and targeting. - [Using RevenueCat](https://superwall.com/docs/expo/guides/using-revenuecat): If you want to use RevenueCat to handle your subscription-related logic with Superwall, follow this guide. - [Changelog](https://superwall.com/docs/expo/changelog): Release notes for the Superwall Expo SDK - [Welcome](https://superwall.com/docs/expo): Welcome to the Superwall Expo SDK documentation - [Using Placement Parameters](https://superwall.com/docs/using-placement-parameters): Define and consume placement parameters in paywalls across platforms, including web checkout query parameters. - [Changelog](https://superwall.com/docs/changelog): Track recent updates and additions to the Superwall documentation. - [Paywall Settings Sidebar](https://superwall.com/docs/paywall-settings-sidebar): The settings sidebar is split into 3 sections: Products; Design; and Advanced. - [Variable Reference](https://superwall.com/docs/variable-reference): undefined - [Customer.io](https://superwall.com/docs/integrations/customer-io): The Customer.io integration sends subscription lifecycle events from Superwall to Customer.io's Data Pipelines API. This enables you to trigger targeted messaging campaigns, build user segments based on subscription behavior, and track the complete customer journey from trial to paid subscriber. - [Discord](https://superwall.com/docs/integrations/discord): The Discord integration sends real-time subscription notifications to your Discord channels via webhooks. Get instant visibility into subscription activity with beautifully formatted, color-coded embed messages that make it easy to monitor revenue, track trials, and respond to billing issues as they happen. - [Statsig](https://superwall.com/docs/integrations/statsig): The Statsig integration allows you to automatically send Superwall subscription and payment events to your Statsig project. This integration provides comprehensive event tracking with user properties for experimentation and analytics. - [Firebase](https://superwall.com/docs/integrations/firebase): The Firebase integration automatically sends Superwall subscription and payment events to Firebase Analytics (Google Analytics 4) using the Measurement Protocol. Track subscription lifecycle events, analyze revenue metrics, and leverage Firebase's powerful analytics capabilities. - [Slack](https://superwall.com/docs/integrations/slack): The Slack integration sends real-time notifications about subscription events to your Slack channels. Get instant updates about new subscribers, cancellations, renewals, and revenue changes with rich, color-coded messages and contextual emojis. - [Verify Webhook Requests](https://superwall.com/docs/integrations/webhooks-verify): Learn how to verify webhook requests using the signing secret to ensure authenticity and security. - [Amplitude](https://superwall.com/docs/integrations/amplitude): The Amplitude integration automatically sends Superwall subscription and payment events to your Amplitude project. Track subscription lifecycle events, analyze revenue metrics, and understand user behavior with automatic event mapping and revenue tracking. - [Figma Plugin](https://superwall.com/docs/integrations/figma-plugin): The Superwall Figma Plugin allows designers to convert Figma designs into fully functional paywalls with one click. - [Verify Webhook Requests](https://superwall.com/docs/integrations/webhooks/verify): Learn how to verify webhook requests using the signing secret to ensure authenticity and security. - [Webhooks](https://superwall.com/docs/integrations/webhooks): Use webhooks to get real-time notifications about your app's subscription and payment events. - [Apple Search Ads](https://superwall.com/docs/integrations/apple-search-ads): Integrate Apple Search Ads with Superwall. View details on users acquired via search ads, visualize conversions from Apple Search Ads in charts, and create powerful campaign filters to target users using search ad data. Search ad integration requires 3.12.0 of the Superwall SDK or higher. - [Mixpanel](https://superwall.com/docs/integrations/mixpanel): The Mixpanel integration allows you to automatically send Superwall subscription and payment events to your Mixpanel project. - [Facebook Pixel](https://superwall.com/docs/integrations/facebook-pixel): The Meta Conversion API integration sends subscription lifecycle events from Superwall directly to Facebook's server-side Conversion API. This enables accurate attribution for Facebook and Instagram ad campaigns, optimizes ad delivery for subscription events, and provides reliable tracking that isn't affected by browser privacy restrictions or ad blockers. - [Integrations](https://superwall.com/docs/integrations): Use webhooks to get real-time notifications about your app's subscription and payment events. Integrate Superwall with other services. - [Creating Paywalls](https://superwall.com/docs/configuring-a-paywall): Superwall maintains a growing list of paywall templates for you to choose from. These designs are used by some of the biggest apps on the App Store and are perfect to get you up and running in no time. - [Localization](https://superwall.com/docs/localization): undefined - [Recipes](https://superwall.com/docs/recipes): Learn how to use Superwall in novel ways to increase your revenue. Discover common patterns you can use today and come back often as we update this page with new tips. - [Superwall](https://superwall.com/docs/ios/sdk-reference/Superwall): The shared instance of Superwall that provides access to all SDK features. - [PurchaseController](https://superwall.com/docs/ios/sdk-reference/PurchaseController): A protocol for handling Superwall's subscription-related logic with your own purchase implementation. - [SubscriptionTransaction](https://superwall.com/docs/ios/sdk-reference/SubscriptionTransaction): Represents a subscription transaction in the customer's purchase history. - [PaywallOptions](https://superwall.com/docs/ios/sdk-reference/PaywallOptions): Configuration for paywall presentation and behavior in the Superwall iOS SDK. - [register()](https://superwall.com/docs/ios/sdk-reference/register): A function that registers a placement that can be remotely configured to show a paywall and gate feature access. - [subscriptionStatus](https://superwall.com/docs/ios/sdk-reference/subscriptionStatus): A published property that indicates the subscription status of the user. - [getPaywall()](https://superwall.com/docs/ios/sdk-reference/advanced/getPaywall): A function that retrieves a PaywallViewController for custom presentation. - [NonSubscriptionTransaction](https://superwall.com/docs/ios/sdk-reference/NonSubscriptionTransaction): Represents a non-subscription transaction (consumables and non-consumables). - [userId](https://superwall.com/docs/ios/sdk-reference/userId): A property on Superwall.shared that returns the current user's ID. - [integrationAttributes](https://superwall.com/docs/ios/sdk-reference/integrationAttributes): Gets the current integration attributes that have been set. - [confirmAllAssignments](https://superwall.com/docs/ios/sdk-reference/confirmAllAssignments): Confirms all experiment assignments and returns them in an array. - [identify()](https://superwall.com/docs/ios/sdk-reference/identify): A function that creates an account with Superwall by linking a userId to the automatically generated alias. - [SuperwallEvent](https://superwall.com/docs/ios/sdk-reference/SuperwallEvent): An enum representing analytical events that are automatically tracked by Superwall. - [getCustomerInfo](https://superwall.com/docs/ios/sdk-reference/getCustomerInfo): Gets the latest CustomerInfo asynchronously. - [getPresentationResult()](https://superwall.com/docs/ios/sdk-reference/getPresentationResult): Check the outcome of a placement without presenting a paywall. - [setIntegrationAttributes](https://superwall.com/docs/ios/sdk-reference/setIntegrationAttributes): Sets integration attributes for third-party analytics and attribution providers. - [configure()](https://superwall.com/docs/ios/sdk-reference/configure): A static function that configures a shared instance of Superwall for use throughout your app. - [getDeviceAttributes](https://superwall.com/docs/ios/sdk-reference/getDeviceAttributes): Gets properties stored about the device that are used in audience filters. - [refreshConfiguration](https://superwall.com/docs/ios/sdk-reference/refreshConfiguration): Manually refreshes the Superwall configuration. Intended for development and wrapper SDKs. - [PaywallPresentationHandler](https://superwall.com/docs/ios/sdk-reference/PaywallPresentationHandler): A handler class that provides status updates for paywall presentation in register() calls. - [handleDeepLink()](https://superwall.com/docs/ios/sdk-reference/handleDeepLink): A function that handles deep links and triggers paywalls based on configured campaigns. - [customerInfo](https://superwall.com/docs/ios/sdk-reference/customerInfo): Contains the latest information about all of the customer's purchase and subscription data. - [entitlements](https://superwall.com/docs/ios/sdk-reference/entitlements): The entitlements tied to the device, accessible via Superwall.shared.entitlements. - [SuperwallDelegate](https://superwall.com/docs/ios/sdk-reference/SuperwallDelegate): A protocol that handles Superwall lifecycle events and analytics. - [setUserAttributes()](https://superwall.com/docs/ios/sdk-reference/setUserAttributes): A function that sets user attributes for use in paywalls and analytics on the Superwall dashboard. - [SuperwallOptions](https://superwall.com/docs/ios/sdk-reference/SuperwallOptions): A configuration class for customizing paywall appearance and behavior. - [Overview](https://superwall.com/docs/ios/sdk-reference): Reference documentation for the Superwall iOS SDK. - [Tracking Subscription State](https://superwall.com/docs/ios/quickstart/tracking-subscription-state): Monitor user subscription status in your iOS app - [Setting User Attributes](https://superwall.com/docs/ios/quickstart/setting-user-properties): Customize paywalls and target users by setting user attributes - [Presenting Paywalls](https://superwall.com/docs/ios/quickstart/feature-gating): Control access to premium features with Superwall placements - [Configure the SDK](https://superwall.com/docs/ios/quickstart/configure): undefined - [User Management](https://superwall.com/docs/ios/quickstart/user-management): Identifying users and managing their identity in your iOS app - [Install the SDK](https://superwall.com/docs/ios/quickstart/install): undefined - [Handling Deep Links](https://superwall.com/docs/ios/quickstart/in-app-paywall-previews): undefined - [Post-Checkout Redirecting](https://superwall.com/docs/ios/guides/web-checkout/post-checkout-redirecting): Learn how to handle users redirecting back to your app after a web purchase. - [Redeeming In-App](https://superwall.com/docs/ios/guides/web-checkout/linking-membership-to-iOS-app): Handle a deep link in your app and use the delegate methods. - [Using RevenueCat](https://superwall.com/docs/ios/guides/web-checkout/using-revenuecat): Handle a deep link in your app and use the delegate methods to link web checkouts with RevenueCat. - [Web Checkout](https://superwall.com/docs/ios/guides/web-checkout): Integrate Superwall web checkout with your iOS app for seamless cross-platform subscriptions - [Migrating from v2 to v3 - iOS](https://superwall.com/docs/ios/guides/migrations/migrating-to-v3): SuperwallKit 3.0 is a major release of Superwall's iOS SDK, previously known as `Paywall`. This introduces breaking changes. - [Migrating from v3 to v4 - iOS](https://superwall.com/docs/ios/guides/migrations/migrating-to-v4): SuperwallKit 4.0 is a major release of Superwall's iOS SDK. This introduces breaking changes. - [Using the Presentation Handler](https://superwall.com/docs/ios/guides/advanced/using-the-presentation-handler): undefined - [Observer Mode](https://superwall.com/docs/ios/guides/advanced/observer-mode): undefined - [Viewing Purchased Products](https://superwall.com/docs/ios/guides/advanced/viewing-purchased-products): undefined - [Request permissions from paywalls](https://superwall.com/docs/ios/guides/advanced/request-permissions-from-paywalls): Trigger the iOS system permission dialog directly from a Superwall paywall action. - [Custom Paywall Actions](https://superwall.com/docs/ios/guides/advanced/custom-paywall-actions): undefined - [Purchasing Products Outside of a Paywall](https://superwall.com/docs/ios/guides/advanced/direct-purchasing): undefined - [Retrieving and Presenting a Paywall Yourself](https://superwall.com/docs/ios/guides/advanced/presenting-paywalls): undefined - [Game Controller Support](https://superwall.com/docs/ios/guides/advanced/game-controller-support): undefined - [Article-Style Paywalls: Inline with Additional Plans](https://superwall.com/docs/ios/guides/embedded-paywalls-in-scrollviews): Embed an inline paywall in a scrollable article and optionally present a second full-screen paywall for additional plans. - [Overriding Introductory Offer Eligibility](https://superwall.com/docs/ios/guides/intro-offer-eligibility-override): Control when users see free trials and intro offers on your paywalls by overriding the default eligibility logic. - [Experimental Flags](https://superwall.com/docs/ios/guides/experimental-flags): undefined - [Advanced Purchasing](https://superwall.com/docs/ios/guides/advanced-configuration): If you need fine-grain control over the purchasing pipeline, use a purchase controller to manually handle purchases and subscription status. - [Cohorting in 3rd Party Tools](https://superwall.com/docs/ios/guides/3rd-party-analytics/cohorting-in-3rd-party-tools): To easily view Superwall cohorts in 3rd party tools, we recommend you set user attributes based on the experiments that users are included in. You can also use custom placements for creating analytics events for actions such as interacting with an element on a paywall. - [Custom Paywall Analytics](https://superwall.com/docs/ios/guides/3rd-party-analytics/custom-paywall-analytics): Learn how to log events from paywalls, such as a button tap or product change, to forward to your analytics service. - [Superwall Events](https://superwall.com/docs/ios/guides/3rd-party-analytics/tracking-analytics): The SDK automatically tracks some events, which power the charts in the dashboard. - [3rd Party Analytics](https://superwall.com/docs/ios/guides/3rd-party-analytics): undefined - [Using Superwall Deep Links](https://superwall.com/docs/ios/guides/superwall-deep-links): How to use Superwall Deep Links to trigger paywalls or custom in-app behavior. - [Making Purchases](https://superwall.com/docs/ios/guides/direct-purchasing): Purchase any StoreKit product easily, with or without a paywall. - [Advanced Configuration](https://superwall.com/docs/ios/guides/configuring): When configuring the SDK you can pass in options that configure Superwall, the paywall presentation, and its appearance. - [Setting up StoreKit testing](https://superwall.com/docs/ios/guides/testing-purchases): undefined - [Using the Superwall Delegate](https://superwall.com/docs/ios/guides/using-superwall-delegate): undefined - [Vibe Coding](https://superwall.com/docs/ios/guides/vibe-coding): How to Vibe Code using the knowledge of the Superwall Docs - [App Store Privacy Labels](https://superwall.com/docs/ios/guides/app-privacy-nutrition-labels): undefined - [Using RevenueCat](https://superwall.com/docs/ios/guides/using-revenuecat): undefined - [Changelog](https://superwall.com/docs/ios/changelog): Release notes for the Superwall iOS SDK - [Welcome](https://superwall.com/docs/ios): Welcome to the Superwall iOS SDK documentation - [Using RevenueCat](https://superwall.com/docs/using-revenuecat): If you want to use RevenueCat to handle your subscription-related logic with Superwall, follow this guide. - [Home Page](https://superwall.com/docs/using-the-dashboard): undefined ## Optional - [GitHub](https://github.com/superwall) - [Twitter](https://twitter.com/superwall) - [Blog](https://superwall.com/blog)