Overview
Helium emits paywall and lifecycle events related to paywalls, purchasing, configuration, and experimentation. This page acts as a reference to what events are available in Helium, and when each one is fired. Visit each SDK’s quickstart page to see how to listen for and handle events.Event Types
- iOS
- Android
- React Native
- Flutter
Available Events
Paywall and Purchase Events
System Events
Experiment Events
Accessing ExperimentInfo from Events
- iOS
All paywall events (any event that implements You can also access experiment info directly by trigger:
PaywallContextEvent) provide a getExperimentInfo() method to access experiment allocation data on-demand:Fetch experiments for this user
You can also fetch all experiments for the current user with a few methods available on theHelium top level object. Make sure to call these methods after Helium.shared.initialize()
ExperimentInfo Structure
TheexperimentInfo object in the userAllocated event contains experiment allocation data. This event fires once per session when a user is assigned to an experiment variant, which happens on the first trigger the user sees.
Core Fields
Experiment Details
Targeting Details
Variant Details
Hash Details
These fields provide information about how the user was deterministically assigned to a variant.Logged Events
All Helium events (see the full list above) get logged to your analytics backend automatically with automatic event forwarding, along with the parameters listed there. Each event’s parameters will usually show up as event properties.Event names and properties might show up as underscored/camelcase/JSON, depending on the platform.
Contextual Traits
Helium automatically and securely collects device and software attributes:- Locale: country, currency, currency symbol, language, preferred languages, time zone, decimal separator, uses metric system
- Screen: brightness, bounds, native bounds, scale, native scale, dark mode enabled
- Device: device identifier, orientation, system name, system version, device model, interface idiom, storage capacity
- Application: version, build number, app name, Helium SDK version, environment
Custom Traits
Custom user traits included in theHelium.initialize() call also get sent as part of all events. If you pass custom user traits as part of a paywall presentation method call, these will override any custom traits of the same name passed in during initialize().