Skip to content

iOS SDK - Tracking Events

FunnelMob.shared.trackEvent("level_complete")
let revenue = FunnelMobRevenue.usd(29.99)
FunnelMob.shared.trackEvent("purchase", revenue: revenue)
// Other currencies
let eur = FunnelMobRevenue.eur(19.99)
let gbp = FunnelMobRevenue.gbp(14.99)
let jpy = FunnelMobRevenue(amount: 2000.0, currency: "JPY")
// Using Decimal for precision
let precise = FunnelMobRevenue(amount: Decimal(string: "99.99")!, currency: "USD")
// Using mutating struct
var 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 literal
let params: FunnelMobEventParameters = [
"item_id": "sku_123",
"quantity": 2,
"price": 29.99,
"is_gift": false
]
FunnelMob.shared.trackEvent("add_to_cart", parameters: params)
// From a dictionary
let params = FunnelMobEventParameters([
"item_id": "sku_123",
"quantity": 2
])
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)

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)
EventConstantValue
RegistrationFunnelMob.StandardEvent.registrationfm_registration
LoginFunnelMob.StandardEvent.loginfm_login
PurchaseFunnelMob.StandardEvent.purchasefm_purchase
SubscribeFunnelMob.StandardEvent.subscribefm_subscribe
Tutorial CompleteFunnelMob.StandardEvent.tutorialCompletefm_tutorial_complete
Level CompleteFunnelMob.StandardEvent.levelCompletefm_level_complete
Add to CartFunnelMob.StandardEvent.addToCartfm_add_to_cart
CheckoutFunnelMob.StandardEvent.checkoutfm_checkout
  • Must not be empty
  • Maximum 100 characters
  • Must match pattern: ^[a-zA-Z][a-zA-Z0-9_]*$
// Valid
FunnelMob.shared.trackEvent("purchase") // OK
FunnelMob.shared.trackEvent("level_2_complete") // OK
FunnelMob.shared.trackEvent("buttonClick") // OK
// Invalid (logged as errors)
FunnelMob.shared.trackEvent("2nd_level") // Starts with number
FunnelMob.shared.trackEvent("my-event") // Contains hyphen
FunnelMob.shared.trackEvent("") // Empty
  • Must be a 3-letter ISO 4217 code
  • Automatically converted to uppercase
// Valid
FunnelMobRevenue(amount: 29.99, currency: "USD")
FunnelMobRevenue(amount: 29.99, currency: "usd") // Converted to "USD"