You can also track total time spent by the user in completing specific activity/event. For example, you can track total/average time spent by app users in completing level x in your app. This can be achieved by putting an API hook at the start and end of level x in your game as shown in below snippet.
To start tracking the activity time, put the following at the start of the activity. For example, if the user has started playing level X, you can pass the name of the activity as level X in the method startActivity.
String activityName = "Level1"; JSONObject properties = new JSONObject (); properties.put ("Name", "Level1"); properties.put ("State", "Started"); properties.put ("Score", 0); properties.put ("Difficulty", "Easy"); properties.put ("IsCompletedSecretMission", false); eventService.startActivity(activityName, properties, new App42CallBack() { public void onSuccess(Object response) { App42Response app42Response = (App42Response) response; System.out.println("App42Response Is : " + app42Response); } public void onException(Exception ex) { System.out.println("Exception Message"+ex.getMessage()); } });NSString *activityName = @"Level1"; NSDictionary *properties = @{@"key": @"value"}; App42Response *response = [eventService startActivityWithName:activityName andProperties:properties]; NSLog(@"IsResponseSuccess = %d",response.isResponseSuccess);Coming SoonComing Soonvar activityName = "Level1"; var properties = "{\"Name\":\"Level1\",\"State\":\"Started\"}" eventService.startActivity(activityName, properties, { success: function (object) { var eventObj = JSON.parse(object) console.log("Success is :: " + eventObj); }, error: function (error) { console.log("Exception is: " + error); } });Coming SoonString activityName = "Level1"; Dictionary<String,object> properties = new Dictionary<string, object> (); properties.Add ("Name", "Level1"); properties.Add ("State", "Started"); properties.Add ("Score", 0); properties.Add ("Difficulty", "Easy"); properties.Add ("IsCompletedSecretMission", false); App42Log.SetDebug(true); //Prints output in your editor console eventService.StartActivity(activityName, properties, new UnityCallBack()); public class UnityCallBack : App42CallBack { public void OnSuccess(object response) { App42Response app42Response = (App42Response) response; App42Log.Console("App42Response Is : " + app42Response); } public void OnException(Exception e) { App42Log.Console("Exception : " + e); } }Coming SoonComing SoonComing SoonComing SoonNA
At the finish of the activity, use the following to mark the finish. You have to pass the same name of activity which was used to start. In this example, we are using level1 as the name of the activity.
String activityName = "Level1"; JSONObject properties = new JSONObject (); properties.put ("Name", "Level1"); properties.put ("State", "Ended"); properties.put ("Score", 40000); properties.put ("Difficulty", "Easy"); properties.put ("IsCompletedSecretMission", true); eventService.endActivity(activityName, properties, new App42CallBack() { public void onSuccess(Object response) { App42Response app42Response = (App42Response) response; System.out.println("App42Response Is : " + app42Response); } public void onException(Exception ex) { System.out.println("Exception Message"+ex.getMessage()); } });NSString *activityName = @"AppOpen"; NSDictionary *properties = @{@"key": @"value"}; App42Response *response = [eventService endActivityWithName:activityName andProperties:properties]; NSLog(@"IsResponseSuccess = %d",response.isResponseSuccess);Coming SoonComing Soonvar activityName = "Level1"; var properties = "{\"Name\":\"Level1\",\"State\":\"Ended\"}" eventService.endActivity(activityName, properties, { success: function (object) { var eventObj = JSON.parse(object) console.log("Success is :: " + eventObj); }, error: function (error) { console.log("Exception is: " + error); } });Coming SoonString activityName = "Level1"; Dictionary<String,object> properties = new Dictionary<string, object> (); properties.Add ("Name", "Level1"); properties.Add ("State", "Ended"); properties.Add ("Score", 40000); properties.Add ("Difficulty", "Easy"); properties.Add ("IsCompletedSecretMission", true); App42Log.SetDebug(true); //Prints output in your editor console eventService.EndActivity(activityName, properties, new UnityCallBack()); public class UnityCallBack : App42CallBack { public void OnSuccess(object response) { App42Response app42Response = (App42Response) response; App42Log.Console("App42Response Is : " + app42Response); } public void OnException(Exception e) { App42Log.Console("Exception : " + e); } }Coming SoonComing SoonComing SoonComing SoonNA
You can view reports of tracked activities i.e. you can measure currently started activities along with average time spent in completing those activities as shown below: