Presenting a Paywall with UIKit

Call Paywall.present(onPresent:onDismiss:onFail:):

Paywall.present(
  onPresent: { info in
    // access info about the presented paywall
  },
  onDismiss: { didPurchase, productId, paywallInfo in
    // Add custom logic after paywall is dismissed
  },
  onFail: { error in
    // Log the error
    // Fallback to presenting your old paywall
  }
)

The onPresent, onDismiss, and onFail callbacks are optional. However, they provide the following information:

Parameter

Type

Functionality

onPresent

(PaywallInfo?) → Void

Called when the paywall is done presenting. PaywallInfo? contains things like the paywall's name, identifier and product_ids

onDismiss

(didPurchase: Bool, productId: String?, info: PaywallInfo?) → Void

Called when the paywall is dismissed (either by the user or because a purchase occurred).
If didPurchase is true, productId contains the id of the purchased product.

onFail

(NSError?) → Void

Called if an error occurs while showing your paywall, either because something is misconfigured, all paywalls are off, or if an unexpected response is received from our server. You should typically fallback to your previous paywall if this happens.

Occasionally you may want to specify a paywall or view controller to present the paywall on. These two parameters are also included in Paywall.present for these special occasions:

Parameter

Type

Functionality

Default Behaviour

identifier

String

The identifier of a specific paywall you would like to show. We do NOT recommend using this – best to enable / disable paywalls from the dashboard

Automatically presents whatever paywall is on in the dashboard, in a round robin fashion.

on

UIViewController

The view controller to present the paywall on

Automatically presents the paywall from a new window on top of the current window.

Presented paywalls are sticky – once a paywall is assigned to a user, they will see that paywall forever even if the paywall is turned off.

See Paywall Assignment for more information about how presented paywalls are assigned.


Did this page help you?