Superwall . shared. delegate = self
...
extension SuperwallService : SuperwallDelegate {
func handleSuperwallEvent ( withInfo eventInfo: SuperwallEventInfo ) {
print ( "analytics event called" , eventInfo. event. description)
MyAnalyticsService . shared. track (
event: eventInfo. event. description,
params: eventInfo. params
)
}
}
Alternatively, if you want typed versions of all these events with associated values, you can access them via eventInfo.event
:
func handleSuperwallEvent ( withInfo eventInfo: SuperwallEventInfo ) {
switch eventInfo. event {
case . firstSeen:
break
case . appOpen:
break
case . appLaunch:
break
case . appInstall:
break
case . sessionStart:
break
case . appClose:
break
case . deepLink ( let url) :
break
case . triggerFire ( let eventName, let result) :
break
case . paywallOpen ( let paywallInfo) :
break
case . paywallClose ( let paywallInfo) :
break
case . transactionStart ( let product, let paywallInfo) :
break
case . transactionFail ( let error, let paywallInfo) :
break
case . transactionAbandon ( let product, let paywallInfo) :
break
case . transactionComplete ( let transaction, let product, let paywallInfo) :
break
case . subscriptionStart ( let product, let paywallInfo) :
break
case . freeTrialStart ( let product, let paywallInfo) :
break
case . transactionRestore ( let paywallInfo) :
break
case . userAttributes ( let attributes) :
break
case . nonRecurringProductPurchase ( let product, let paywallInfo) :
break
case . paywallResponseLoadStart ( let triggeredEventName) :
break
case . paywallResponseLoadNotFound ( let triggeredEventName) :
break
case . paywallResponseLoadFail ( let triggeredEventName) :
break
case . paywallResponseLoadComplete ( let triggeredEventName, let paywallInfo) :
break
case . paywallWebviewLoadStart ( let paywallInfo) :
break
case . paywallWebviewLoadFail ( let paywallInfo) :
break
case . paywallWebviewLoadComplete ( let paywallInfo) :
break
case . paywallWebviewLoadTimeout ( let paywallInfo) :
break
case . paywallProductsLoadStart ( let triggeredEventName, let paywallInfo) :
break
case . paywallProductsLoadFail ( let triggeredEventName, let paywallInfo) :
break
case . paywallProductsLoadComplete ( let triggeredEventName) :
break
case . subscriptionStatusDidChange:
break
}
}