Advanced
Using the Presentation Handler
You can provide a PaywallPresentationHandler
to register
, whose functions provide status updates for a paywall:
onDismiss
: Called when the paywall is dismissed. Accepts aPaywallInfo
object containing info about the dismissed paywall, and there is aPaywallResult
informing you of any transaction.onPresent
: Called when the paywall did present. Accepts aPaywallInfo
object containing info about the presented paywall.onError
: Called when an error occurred when trying to present a paywall. Accepts anError
indicating why the paywall could not present.onSkip
: Called when a paywall is skipped. Accepts aPaywallSkippedReason
enum indicating why the paywall was skipped.
let handler = PaywallPresentationHandler()
handler.onDismiss { paywallInfo, result in
print("The paywall dismissed. PaywallInfo: \(paywallInfo). Result: \(result)")
}
handler.onPresent { paywallInfo in
print("The paywall presented. PaywallInfo:", paywallInfo)
}
handler.onError { error in
print("The paywall presentation failed with error \(error)")
}
handler.onSkip { reason in
switch reason {
case .holdout(let experiment):
print("Paywall not shown because user is in a holdout group in Experiment: \(experiment.id)")
case .noAudienceMatch:
print("Paywall not shown because user doesn't match any audiences.")
case .placementNotFound:
print("Paywall not shown because this placement isn't part of a campaign.")
}
}
Superwall.shared.register(placement: "campaign_trigger", handler: handler) {
// Feature launched
}
Wanting to see which product was just purchased from a paywall? Use onDismiss
and the result
parameter. Or, you can use the
SuperwallDelegate.
How is this guide?