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 aPaywallInfoobject containing info about the dismissed paywall, and there is aPaywallResultinforming you of any transaction.onPresent: Called when the paywall did present. Accepts aPaywallInfoobject containing info about the presented paywall.onError: Called when an error occurred when trying to present a paywall. Accepts anErrorindicating why the paywall could not present.onSkip: Called when a paywall is skipped. Accepts aPaywallSkippedReasonenum 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?