iOS Integration

Integration

To integrate the library, the system needs to call this method:

 (void)startWithTrackerURL:(NSURL *)trackerURL appId:(NSUInteger)appId;  

appId and trackerURL can be received during the registration step of your application.

To control the working logic of Maxymizely tracking system, use these fields and methods:

A. Registering a minimal number of events in the package:

(void)setMinEventsInPacketCount:(NSUInteger)minEvents;  

Note! When the closeSession call is made, a package is sent regardless of the quantity of the events being carried.

B. Opening a session:

 + (void)openSession;  

The session opens automatically after the UIApplicationWillEnterForegroundNotification event.

C. Closing a session:

 + (void)closeSession; 

Session closes automatically after the UIApplicationDidEnterBackgroundNotification event.

D. Adding “parameter-value” into the logging flow:

 + (void)logValue:(double)value forKey:(NSString *)key; 

E. Adding a typed event:

(void)addEventWithType:(BMTEventType)type
//event type

content:(NSString *)content
//section (level) where the event occurred
        
referrer:(NSString *)referrer
//previous section (level)

title:(NSString *)title
//section description

name:(NSString *)name
//an element's name

value:(double)value
//value of the element

externalId:(NSString *)externalId
//user's identifier(ex. Logins)

customAttribute1:(NSString *)customAttribute1     
customAttribute2:(NSString *)customAttribute2   
customAttribute3:(NSString *)customAttribute3
//3 custom event attributes that are filled
//at the discretion of the developer

configurationId:(NSInteger)configurationId
//configuration identifier within the application
        
windowId:(UInt32)windowId;
//identifier of the window where the event occurred    

The timestamp value and parameter siteId value will be placed automatically. Here are the
abridged versions of the call method of adding events:

(void)logEmpty;
(void)logLoadPage:(NSString *)pageName;
(void)logClick:(NSString *)clickName;
(void)logViewElement:(NSString *)elementName; 
(void)logDownload:(NSString *)item; 
(void)logUpload:(NSString *)item; 
(void)logSubmit:(NSString *)item; 
(void)logRegistration:(NSString *)info; 
(void)logPurchase:(NSString *)purchaseId price:(double)price; 
(void)logLogin:(NSString *)info; 
(void)logError:(NSError *)error; 
(void)log:(NSString *)string;       

F. Adding custom attributes:

(void)addUserAttributeWithName:(NSString *)name
//attribute name

value:(NSString *)value
//attribute value

externalId:(NSString *)externalId
//user’s identifier (ex. Email, different Login)

configurationId:(NSInteger)configurationId;
//configuration identifier within the application  

Configuration

To control the working logic of the Maxymizely tracking system, use these fields and methods:

Main configuration fields:

  • SiteId – an identifier of the resource needed tracking
  • ConfigurationId – an identifier for user tracking
  • ExternalId – a unique user identifier (for example, an internal user ID in the database, email, login, Facebook ID, or any other information that helps identify a unique user)

The additional configuration method:

(void)addUserAttributeWithName  

This method allows assigning a number of additional parameters to a user.

Application

The basis for analysis is the process of tracking events that are taking place within an application. These events can be initiated by a user, as well as by interactive content within the window, where the content is located.

For the system integrator, there are two levels of logged events:

  • System level
  • User level

Most of the event types are available at the user level. The integrator implements tracking checkpoints in the application’s functions system.

For accurate identification of the control events/checkpoints there is a set of configuration parameters:

  • Value – checkpoint identifier (an id html of the element, field name, etc.)
  • CustomAttribute1, CustomAttribute2, CustomAttribute3 – 3 additional attributes are set at the discretion of the user/developer