To configure settings for your paywall, click the Settings button from the sidebar:

You have four primary properties of your paywall to configure here, all are set with default values.

Presentation Style

Toggle the presentation style of your paywall. Available options are:

  1. Fullscreen: The paywall will cover the entire device screen.
  2. Push: The paywall will push onto a hierarchy, such as a UINavigationController on iOS.
  3. Modal: The paywall presents with the platform’s default modal API.
  4. No Animation: The paywall presents modally, but without any animation.
  5. Drawer: The paywall presents from a bottom drawer.

Present Paywall

You can have a paywall present under two different conditions when a placement is matched:

  1. Check User Subscription: Present the paywall only if the user’s subscription is not active.
  2. Always: Present the paywall regardless of the user’s subscription status.

Feature Gating

Feature gating allows you to control whether or not placements should restrict access to features. Using either method, the paywall will still be presented if a user isn’t subscribed:

  1. Non Gated: Placements will always fire your feature block. Specifically, once the paywall is dismissed.
  2. Gated: Placements will only fire your feature block if the user is subscribed. Note that if they are subscribed, the paywall will not be presented.

For example:

// With non gated - `logCaffeine()` is still invoked
Superwall.shared.register(event: "caffeineLogged") {
  logCaffeine()
}

// With gated - `logCaffeine()` is invoked only if the user is subscribed
Superwall.shared.register(event: "caffeineLogged") {
  logCaffeine()
}

This is useful to dynamically change what is paywalled in production without an app update. For example, in a caffeine tracking app — perhaps you might run a weekend campaign where logging caffeine is free. You’d simply change the paywall to be Non Gated. Then, the paywall would still be presented, but users would be able to continue and log caffeine.

For information on how this behaves when offline, view this section.

Feature gating does not apply if you are manually presenting a paywall via getPaywall.

Cache on Device

If enabled, Superwall’s SDK will cache the paywall on device. This can be useful if you have a paywall that could take a few seconds to fetch and present (i.e. if there is a video as part of your design). On-device caching can lead to quicker presentation.

Device caching is currently only available on iOS.

Identifier

The identifier for the paywall. Non-editable.