This document is valid for Version 0.7 of Cobub Razor.
The goal of this document is to explain usage rules of Cobub Razor iOS SDK for facilitating developers
This document is for iOS SDK developers, which uses the Open Source Mobile Analytics – Cobub Razor
First please set up the Web Server of Cobub Razor (instruction), then register App onweb server and fill App info after login. Once App is created successfully, you could obtain AppKey.
Download the latest release of SDK and Unzip it. Once unzipped, you could see two files, UMSAgent.h and libUMSAgent.a.
Select Add→Existing files in project directory and select the two unzipped files above, or drag two files to project directory directly. Select Copy Items into destination group’s folder(if needed).
Add #import “UMSAgent.h” into AppDelegate.h. Add following method into didFinishLaunchingWithOptions method of AppDelegate.m:
[UMSAgent startWithAppKey:@"14aaa92e098df46cb63ed5196e0c331c" ReportPolicy:BATCH ServerURL:@ "YOUR SDK SERVICE URL"]; -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *) launchOptions { [UMSAgent startWith]AppKey:@"UMSAgentKey" ReportPolicy:BATCH]; }
UMSAgentKey is the AgentKey obtained from registering App in UMS.
ServiceURL is Service interface url of Server SDK.
BATCH model means that uploading data once when system starts next time
Please modify BATCH to REALTIME if you want to use real-time model.
BATCH model is recommended. It can reduce interaction between App and network, save traffic and improve user experience
Usage Duration Analytics
UMS platform defines intervals between entering front and entering background of App every time as a lifecycle process. UMS makes lifecycle as data and submits it to UMS background. It provides corresponding data statistics reports for developers.
Custom event is used to provide more detailed user behavior analysis for app developers. Adding custom event in UMS background in advance before using it and obtaining Event_identifier of event. Thus, the system can do corresponding processing in background. Otherwise,it do not process unregistered event of client.
+(void)postEvent:(NSString *)event_id; event_id: the ID of current event, defined on the Web Server and could not have spaces.
Invoke this API will send event info to the server and generate the event data statistics report on the server which analyzes sending times and changing trends corresponding to event_id, such as AD clicks, message numbers and so on.
For example, to monitor AD clicks of App, the Event ID of which is “ ad_click“ defined on the Web Server, you need call postEvent:@“ad_click“ in App , which will notify server that an AD click event has occurred.
+(void)postEvent:(NSString *)event_id label:(NSString *)label;
This API is an overloaded method of postEvent: (NSString *) event_id which will monitor the proportion of specific label in event. The label is the devision name and event_id could not have spaces.
For example, a province has a corresponding event_id and one city of which has a corresponding label in App. Thus, we can observe the proportion of event corresponding to the city in generated data statistics reports.
+(void)postEvent:(NSString *)event_id acc:(NSInteger)acc;
For the frequent events ,you can maintain a counter for them. In this way, event that are triggered by many times will just generate one message and be sent to the server. This message includes triggered times of this event.
Here is overloaded two APIs:
+(void)postEvent:(NSString *)event_id acc:(NSInteger)acc; +(void)postEvnet:(NSString *)event_id label:(NSString *)label acc:(NSInteger)acc;
acc: triggered times of corresponding event.
[UMSAgent checkUpdate];
Invoke this API when you want the APP to check that whether Web Server has a new version of the App automatically.
If you already create a new version on the Web Server, your App will notify user to upgrade the APP. Users can choose to upgrade it or not.
Cobub Razor background provides a single Key for every channel of every App. Please change to different Key when providing update for different channels.
[IMSAgent setOnLineConfig:false];
Invoke this API in didFinishLaunchingWithOptions method of AppDelegate.m and SDK will get your online configuration on the server and store this info in local if you choose true, or will not.
+(void)startTracPage:(NSString*)page_name;
Call this API in viewWillAppear() method in App(UIViewController), this method records the time of user enters this page.
-(void) //viewWillAppear(BOOL)animated// { [UMSAgent startTracPage:@"Main"]; } +(void)endTracPage:(NSString*)page_name;
Call this API in viewWillDisappear() method in App(UIViewController), this method records the time of user leaves this page.
-(void) viewWillDisappear:(BOOL)animation { [UMSAgent endTracPage:@"Main"]; }
Note: You need to call 2 APIs above in pair.
[UMSAgetnt bindUserIdentifier:@"userid"];
You can bind user account to your app when this metheod was called.
[UMSAgetnt postTag:@"tag"];
User can bind tag information, and send it to server. Later the tags will be used to group users.