iOS SDK - Tracking Events
Simple Events
Section titled “Simple Events”FunnelMob.shared.trackEvent("level_complete")Events with Revenue
Section titled “Events with Revenue”let revenue = FunnelMobRevenue.usd(29.99)FunnelMob.shared.trackEvent("purchase", revenue: revenue)
// Other currencieslet eur = FunnelMobRevenue.eur(19.99)let gbp = FunnelMobRevenue.gbp(14.99)let jpy = FunnelMobRevenue(amount: 2000.0, currency: "JPY")
// Using Decimal for precisionlet precise = FunnelMobRevenue(amount: Decimal(string: "99.99")!, currency: "USD")Events with Parameters
Section titled “Events with Parameters”// Using mutating structvar params = FunnelMobEventParameters()params.set("item_id", value: "sku_123")params.set("quantity", value: 2)params.set("price", value: 29.99)params.set("is_gift", value: false)
FunnelMob.shared.trackEvent("add_to_cart", parameters: params)
// Using dictionary literallet params: FunnelMobEventParameters = [ "item_id": "sku_123", "quantity": 2, "price": 29.99, "is_gift": false]
FunnelMob.shared.trackEvent("add_to_cart", parameters: params)
// From a dictionarylet params = FunnelMobEventParameters([ "item_id": "sku_123", "quantity": 2])Events with Revenue and Parameters
Section titled “Events with Revenue and Parameters”let revenue = FunnelMobRevenue.usd(99.00)var params = FunnelMobEventParameters()params.set("plan", value: "annual")params.set("trial_days", value: 7)
FunnelMob.shared.trackEvent("subscribe", revenue: revenue, parameters: params)Standard Events
Section titled “Standard Events”Use predefined event names for consistent analytics:
FunnelMob.shared.trackEvent(FunnelMob.StandardEvent.registration)FunnelMob.shared.trackEvent(FunnelMob.StandardEvent.login)FunnelMob.shared.trackEvent(FunnelMob.StandardEvent.purchase)FunnelMob.shared.trackEvent(FunnelMob.StandardEvent.subscribe)FunnelMob.shared.trackEvent(FunnelMob.StandardEvent.tutorialComplete)FunnelMob.shared.trackEvent(FunnelMob.StandardEvent.levelComplete)FunnelMob.shared.trackEvent(FunnelMob.StandardEvent.addToCart)FunnelMob.shared.trackEvent(FunnelMob.StandardEvent.checkout)| Event | Constant | Value |
|---|---|---|
| Registration | FunnelMob.StandardEvent.registration | fm_registration |
| Login | FunnelMob.StandardEvent.login | fm_login |
| Purchase | FunnelMob.StandardEvent.purchase | fm_purchase |
| Subscribe | FunnelMob.StandardEvent.subscribe | fm_subscribe |
| Tutorial Complete | FunnelMob.StandardEvent.tutorialComplete | fm_tutorial_complete |
| Level Complete | FunnelMob.StandardEvent.levelComplete | fm_level_complete |
| Add to Cart | FunnelMob.StandardEvent.addToCart | fm_add_to_cart |
| Checkout | FunnelMob.StandardEvent.checkout | fm_checkout |
Validation
Section titled “Validation”Event Names
Section titled “Event Names”- Must not be empty
- Maximum 100 characters
- Must match pattern:
^[a-zA-Z][a-zA-Z0-9_]*$
// ValidFunnelMob.shared.trackEvent("purchase") // OKFunnelMob.shared.trackEvent("level_2_complete") // OKFunnelMob.shared.trackEvent("buttonClick") // OK
// Invalid (logged as errors)FunnelMob.shared.trackEvent("2nd_level") // Starts with numberFunnelMob.shared.trackEvent("my-event") // Contains hyphenFunnelMob.shared.trackEvent("") // EmptyCurrency
Section titled “Currency”- Must be a 3-letter ISO 4217 code
- Automatically converted to uppercase
// ValidFunnelMobRevenue(amount: 29.99, currency: "USD")FunnelMobRevenue(amount: 29.99, currency: "usd") // Converted to "USD"