Superwall

SuperwallEvent

A sealed class representing analytical events that are automatically tracked by Superwall.

These events provide comprehensive analytics about user behavior and paywall performance. Use them to track conversion funnels, user engagement, and revenue metrics in your analytics platform.

Common events to track for conversion analysis include TriggerFire, PaywallOpen, TransactionStart, and TransactionComplete.

Purpose

Represents internal analytics events tracked by Superwall and sent to the SuperwallDelegate for forwarding to your analytics platform.

Signature

sealed class SuperwallEvent {
    // User lifecycle events
    object FirstSeen : SuperwallEvent()
    object AppOpen : SuperwallEvent()
    object AppLaunch : SuperwallEvent()
    object AppClose : SuperwallEvent()
    object SessionStart : SuperwallEvent()
    object IdentityAlias : SuperwallEvent()
    object AppInstall : SuperwallEvent()
    
    // Deep linking
    data class DeepLink(val url: String) : SuperwallEvent()
    
    // Paywall events
    data class TriggerFire(
        val placementName: String, 
        val result: TriggerResult
    ) : SuperwallEvent()
    
    data class PaywallOpen(val paywallInfo: PaywallInfo) : SuperwallEvent()
    data class PaywallClose(val paywallInfo: PaywallInfo) : SuperwallEvent()
    data class PaywallDecline(val paywallInfo: PaywallInfo) : SuperwallEvent()
    
    // Transaction events
    data class TransactionStart(
        val product: StoreProduct, 
        val paywallInfo: PaywallInfo
    ) : SuperwallEvent()
    
    data class TransactionComplete(
        val transaction: StoreTransaction?, 
        val product: StoreProduct, 
        val type: TransactionType, 
        val paywallInfo: PaywallInfo
    ) : SuperwallEvent()
    
    data class TransactionFail(
        val error: TransactionError, 
        val paywallInfo: PaywallInfo
    ) : SuperwallEvent()
    
    data class TransactionAbandon(
        val product: StoreProduct, 
        val paywallInfo: PaywallInfo
    ) : SuperwallEvent()
    
    data class TransactionRestore(
        val restoreType: RestoreType, 
        val paywallInfo: PaywallInfo
    ) : SuperwallEvent()
    
    data class TransactionTimeout(val paywallInfo: PaywallInfo) : SuperwallEvent()
    
    // Subscription events
    data class SubscriptionStart(
        val product: StoreProduct, 
        val paywallInfo: PaywallInfo
    ) : SuperwallEvent()
    
    data class FreeTrialStart(
        val product: StoreProduct, 
        val paywallInfo: PaywallInfo
    ) : SuperwallEvent()
    
    object SubscriptionStatusDidChange : SuperwallEvent()
    
    // System events
    data class DeviceAttributes(val attributes: Map<String, Any>) : SuperwallEvent()
    
    // And more...
}
// Java - SuperwallEvent is a sealed class hierarchy
// Access via pattern matching or instanceof checks

Parameters

Each event contains associated values with relevant information for that event type. Common parameters include:

  • paywallInfo: PaywallInfo - Information about the paywall
  • product: StoreProduct - The product involved in transactions
  • url: String - Deep link URLs
  • attributes: Map<String, Any> - Device or user attributes

Returns / State

This is a sealed class that represents different event types. Events are received via SuperwallDelegate.handleSuperwallEvent(eventInfo).

Usage

These events are received via SuperwallDelegate.handleSuperwallEvent(eventInfo) for forwarding to your analytics platform.

How is this guide?

On this page