3rd Party Analytics
3rd Party Analytics
Home
SDK
- Installation
- Configuring the SDK
- Handling Purchases
- Using RevenueCat
- User Management
- Showing Paywalls
- Using the Superwall Delegate
- 3rd Party Analytics
- Deep Links and In-App Previews
- Custom Paywall Actions
- Observer Mode
- Purchasing Products Outside of a Paywall
- Game Controller Support
- App Store Privacy Labels
- Setting up StoreKit testing
- Troubleshooting
- Pre-Launch Checklist
- Legacy Docs
Guides
Tips
SDK Reference
SDK Quickstart
Dashboard
- Overview
- Paywalls
- Templates
- Creating Paywalls
- Charts
- Campaigns
- Adding Products
- Surveys
- Users
- Managing Localization Updates
- Settings
- Creating Applications
3rd Party Analytics
3rd Party Analytics
Superwall can easily be integrated with 3rd party analytics tools.
Hooking up Superwall events to 3rd party tools
SuperwallKit automatically tracks some internal events. You can view the list of events here. We encourage you to also track them in your own analytics by implementing the Superwall delegate. Using the handleSuperwallEvent(withInfo:)
function, you can forward events to your analytics service:
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
)
}
}
You might also want to set user attribute to allow for Cohorting in 3rd Party Tools
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 .identityAlias:
break
case .appInstall:
break
case .sessionStart:
break
case .deviceAttributes(let attributes):
break
case .subscriptionStatusDidChange:
break
case .appClose:
break
case .deepLink(let url):
break
case .triggerFire(let placementName, let result):
break
case .paywallOpen(let paywallInfo):
break
case .paywallClose(let paywallInfo):
break
case .paywallDecline(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 type, let paywallInfo):
break
case .subscriptionStart(let product, let paywallInfo):
break
case .freeTrialStart(let product, let paywallInfo):
break
case .transactionRestore(let restoreType, let paywallInfo):
break
case .transactionTimeout(let paywallInfo):
break
case .userAttributes(let atts):
break
case .nonRecurringProductPurchase(let product, let paywallInfo):
break
case .paywallResponseLoadStart(let triggeredPlacementName):
break
case .paywallResponseLoadNotFound(let triggeredPlacementName):
break
case .paywallResponseLoadFail(let triggeredPlacementName):
break
case .paywallResponseLoadComplete(let triggeredPlacementName, let paywallInfo):
break
case .paywallWebviewLoadStart(let paywallInfo):
break
case .paywallWebviewLoadFail(let paywallInfo):
break
case .paywallWebviewLoadComplete(let paywallInfo):
break
case .paywallWebviewLoadTimeout(let paywallInfo):
break
case .paywallWebviewLoadFallback(let paywallInfo):
break
case .paywallProductsLoadStart(let triggeredPlacementName, let paywallInfo):
break
case .paywallProductsLoadFail(let triggeredPlacementName, let paywallInfo):
break
case .paywallProductsLoadComplete(let triggeredPlacementName):
break
case .paywallProductsLoadRetry(let triggeredPlacementName, let paywallInfo, let attempt):
break
case .surveyResponse(let survey, let selectedOption, let customResponse, let paywallInfo):
break
case .paywallPresentationRequest(let status, let reason):
break
case .touchesBegan:
break
case .surveyClose:
break
case .reset:
break
case .restoreStart:
break
case .restoreFail(let message):
break
case .restoreComplete:
break
case .configRefresh:
break
case .customPlacement(let name, let params, let paywallInfo):
break
case .configAttributes:
break
case .confirmAllAssignments:
break
case .configFail:
break
case .adServicesTokenRequestStart:
break
case .adServicesTokenRequestFail(let error):
break
case .adServicesTokenRequestComplete(let token):
break
case .shimmerViewStart:
break
case .shimmerViewComplete:
break
}
}
Wanting to use events to see which product was purchased on a paywall? Check out this doc.
On this page