iOS SDK Integration

Integrating with the Alooma-iOS SDK (hereafter, "the SDK") is simple and straightforward using CocoaPods.

Step 1 - Install CocoaPods
  1. Open a terminal and run sudo gem install cocoapods.

  2. Run pod setup.

Step 2 - Integrate the Alooma-iOS library into your project
  1. Create a file called Podfile in the root directory of your project.

  2. Add the following line to your Podfile: pod "Alooma-iOS".

  3. Close XCode.

  4. Open a terminal and run pod install in the root directory of your project.

  5. Open the new XCode workspace (<your-project>.xcworkspace).

Step 3 - Initialize the library
  1. Log in to your Alooma account and add an "iOS/Android App" input.

  2. Give your input a label (name), and copy the generated token.

  3. Initialize the library with the Alooma endpoint URL and your token from step 2. Since this should be done only once, do so when your app finishes launching:

 #import <Alooma-iOS/Alooma.h> 
 @interface AppDelegate () 
 @implementation AppDelegate 
 - (BOOL)application:(UIApplication *)application 
  didFinishLaunchingWithOptions: (NSDictionary *)launchOptions {
  /* ... */ 
  [Alooma sharedInstanceWithToken:@"<YOUR_TOKEN>" serverURL:@""]; 
  return YES; 

Once initialized, you can use the Alooma-iOS library anywhere in your code just by calling the sharedInstance method:

Alooma *alooma = [Alooma sharedInstance];
Step 4 - Sending events to Alooma

Send an event to Alooma using their the Mixpanel convention of track:properties:, or the more free-form trackCustomEvent: to send a JSON serializable NSDictionary object.


As we mentioned, Alooma-iOS is forked from Mixpanel, therefore it supports all of the methods implemented by the Mixpanel library:

  • Track:

  • track:properties:

  • timeEvent:

  • registerSuperProperties: & registerSuperPropertiesOnce:

  • identify:

  • flush & reset

Basic event tracking can be implemented with the following code:

Alooma *alooma = [Alooma sharedInstance]; 

// Track an event just with a type
[alooma track:@"Event-type1”]; 

// Track an event with a type & properties
[alooma track:@"Event-type2" properties:@{ 
  @"prop1": @"abc", 
  @"prop2": 123 

Using these methods will send events in the following format:

  "event": "Event-type2", 
  "properties": { 
    "prop1": "abc", 
    "prop2": 123, 
      additional properties added by the library: 
      distinct_id, $os, time, sending_time, $model, 
      $manufacturer, $wifi, $screen_width, 
      $screen_height, ... 

Documentation of the rest of the Mixpanel-provided functions can be found on the Mixpanel website.


In case you haven't been using Mixpanel, and all you want to do is send custom JSON objects, you can use the following snippet:

Alooma *alooma = [Alooma sharedInstance]; 
[alooma trackCustomEvent:@{ 
  @"custom-field1": @"event-type", 
  @"custom-field2": @"abc", 
  @"custom-field3": 123 

Using this method will send events in the following format:

  "custom-field1": "event-type", 
  "custom-field2": "abc", 
  "custom-field3": 123, 
  "properties": { 
      additional properties added by the library: 
      distinct_id, $os, time, sending_time, $model,
      $manufacturer, $wifi, $screen_width, 
      $screen_height, ... 
Additional notes

The Alooma-iOS library is a modified version of the Mixpanel-iphone library, trimmed down to the bare event tracking necessities.

To integrate Alooma-iOS, you need to be using XCode 5 and a Base SDK of iOS 7.0. The library will work with deployment targets of iOS 6.0 and above.

Alooma-iOS adds additional properties to each event:

  • time - the epoch time (seconds) when the event was tracked

  • sending_time - the epoch time (seconds) when the event was actually sent (in case the device was offline)

  • distinct_id - a unique identifier, identifying the device additional fields and their values can be seen in the function collectAutomaticProperties

The Alooma-iOS library stores events in an internal queue of events, to be sent when the device is online. The queue has a fixed size of 500 events. If the device is offline and the queue fills up, the 501th event will cause the 1st (oldest) event to be popped from the queue and discarded.

Learn more about the properties set by default on these events.

Search results

    No results found