云步SDK统计接口文档
1. 接口说明
统计的所有接口都通过com.zeus.analytics.api.ZeusAnalytics类调用,游戏可根据需求添加统计项。
2. 玩家信息统计
2.1 上报玩家等级信息
- 上报玩家等级信息,当玩家等级上升时调用;如果游戏没有玩家等级,可不上报。
ZeusAnalytics.getInstance().onUserLv(int lv);
参数说明:
| 参数名称 |
参数类型 |
是否必须 |
参数说明 |
| lv |
int |
必须 |
玩家等级,必须大于0 |
3. 关卡统计
3.1 上报玩家最高解锁关卡
ZeusAnalytics.getInstance().onUnlockLevel(String levelId);
| 参数名称 |
参数类型 |
是否必须 |
参数说明 |
| levelId |
String |
必须 |
关卡id(此字段只能包含英文字母大小写、数字和下划线) |
3.2 关卡情况统计
3.2.1 关卡开始
ZeusAnalytics.getInstance().onLevelStart(String levelId, String scene);
| 参数名称 |
参数类型 |
是否必须 |
参数说明 |
| levelId |
String |
必须 |
关卡id(此字段只能包含英文字母大小写、数字和下划线) |
| scene |
String |
可选 |
进入关卡的场景,如:主页、关卡页、任务页、重新挑战页等(此字段只能包含英文字母大小写、数字和下划线) |
3.2.2 关卡放弃
- 在关卡未完成前,玩家主动放弃关卡时调用,用于统计关卡主动放弃的情况;必须先调用关卡开始的事件后,才能调用关卡放弃的事件,否则此次事件无效。
ZeusAnalytics.getInstance().onLevelGiveUp(String levelId);
| 参数名称 |
参数类型 |
是否必须 |
参数说明 |
| levelId |
String |
必须 |
关卡id(此字段只能包含英文字母大小写、数字和下划线) |
3.2.3 关卡失败
- 在关卡失败时(非主动放弃)调用,用于统计关卡失败的情况;必须先调用关卡开始的事件后,才能调用失败的事件,否则此次事件无效。
ZeusAnalytics.getInstance().onLevelFailed(String levelId);
| 参数名称 |
参数类型 |
是否必须 |
参数说明 |
| levelId |
String |
必须 |
关卡id(此字段只能包含英文字母大小写、数字和下划线) |
3.2.4 关卡完成
- 在关卡完成时调用,用于统计过关情况;必须先调用关卡开始的事件后,才能调用完成的事件,否则此次事件无效。
ZeusAnalytics.getInstance().onLevelFinish(String levelId);
| 参数名称 |
参数类型 |
是否必须 |
参数说明 |
| levelId |
String |
必须 |
关卡id(此字段只能包含英文字母大小写、数字和下划线) |
4. 非关卡类游戏统计(关卡类游戏忽略)
4.1 上报玩家段位信息
ZeusAnalytics.getInstance().onUnlockStage(String stage);
| 参数名称 |
参数类型 |
是否必须 |
参数说明 |
| stage |
String |
必须 |
玩家当前段位(此字段只能包含英文字母大小写、数字和下划线) |
4.2 上报玩家对局总数
ZeusAnalytics.getInstance().onRoundNum(int num);
| 参数名称 |
参数类型 |
是否必须 |
参数说明 |
| num |
int |
必须 |
玩家对局总数 |
5. 道具统计
5.1 道具获得统计
- 在游戏中,当获得游戏道具时调用,可以只统计重要的、有意义的道具。
ZeusAnalytics.getInstance().propsGet(String scene, String reason, List<PropsInfo> propsInfoList);
| 参数名称 |
参数类型 |
是否必须 |
参数说明 |
| scene |
String |
必须 |
获得场景 |
| reason |
String |
必须 |
获得原因,如:充值、关卡、签到、活动、升级、任务、奖励 (此字段只能包含英文字母大小写、数字和下划线) |
| propsInfoList |
List<PropsInfo> |
必须 |
道具信息列表 |
PropsInfo参数说明:
| 参数名称 |
参数类型 |
是否必须 |
参数说明 |
| propsId |
String |
必须 |
道具id,用于区分每一样道具,切勿定义重复的道具id,否则导致数据不准确 (此字段只能包含英文字母大小写、数字和下划线) |
| propsNum |
int |
必须 |
获得的道具数量,必须大于0 |
| beforeNum |
int |
必须 |
获得前的数量 |
| afterNum |
int |
必须 |
获得后的数量 |
例示1:
//第一部分新手引导获得
List<PropsInfo> propsInfoList = new ArrayList<>();
PropsInfo coin = new PropsInfo();
coin.setPropsId("coin");//金币
coin.setPropsNum(100);//获得100金币
coin.setBeforeNum(0);//获得前的数量
coin.setAfterNum(100);
propsInfoList.add(coin);
PropsInfo diamond = new PropsInfo();
diamond.setPropsId("diamond");//钻石
diamond.setPropsNum(10);//获得10钻石
diamond.setBeforeNum(10);//获得前的数量
diamond.setAfterNum(20);//获得后的数量
propsInfoList.add(diamond);
ZeusAnalytics.getInstance().propsGet("guide", "guide_reward", propsInfoList);
5.2 道具消耗统计
- 在游戏中,当消耗游戏道具时调用,可以只统计重要的、有意义的道具。
ZeusAnalytics.getInstance().propsConsume(String scene, String reason, List<PropsInfo> propsInfoList);
| 参数名称 |
参数类型 |
是否必须 |
参数说明 |
| scene |
String |
必须 |
道具消耗场景 |
| reason |
String |
必须 |
道具消耗原因,如:购买东西、关卡消耗、兑换 (此字段只能包含英文字母大小写、数字和下划线) |
| propsInfoList |
List<PropsInfo> |
必须 |
道具信息列表 |
PropsInfo参数说明:
| 参数名称 |
参数类型 |
是否必须 |
参数说明 |
| propsId |
String |
必须 |
道具id,用于区分每一样道具,切勿定义重复的道具id,否则导致数据不准确 (此字段只能包含英文字母大小写、数字和下划线) |
| propsNum |
int |
必须 |
消耗的道具数量,必须大于0 |
| beforeNum |
int |
必须 |
消耗前的数量 |
| afterNum |
int |
必须 |
消耗后的数量 |
例示:
//第10关消耗钻石和金币
List<PropsInfo> propsInfoList = new ArrayList<>();
PropsInfo diamond = new PropsInfo();
diamond.setPropsId("diamond");//钻石
diamond.setPropsNum(2);//消耗2钻石
diamond.setBeforeNum(10);//消耗前的数量
diamond.setAfterNum(8);//消耗后的数量
propsInfoList.add(diamond);
PropsInfo coin = new PropsInfo();
coin.setPropsId("coin");//金币
coin.setPropsNum(100);//消耗100金币
coin.setBeforeNum(100);//消耗前的数量
coin.setAfterNum(0);//消耗后的数量
propsInfoList.add(coin);
ZeusAnalytics.getInstance().propsConsume("level", "level_10", propsInfoList);
7. 自定义事件
7.1 计数事件
7.1.1 不带参数的计数事件
ZeusAnalytics.getInstance().customEvent(String eventId);
参数说明:
| 参数名称 |
参数类型 |
是否必须 |
参数说明 |
| eventId |
String |
必须 |
事件id (此字段只能包含英文字母大小写、数字和下划线) |
7.1.2 带参数的计数事件
ZeusAnalytics.getInstance().customEvent(String eventId, Map<String, String> params);
参数说明:
| 参数名称 |
参数类型 |
是否必须 |
参数说明 |
| eventId |
String |
必须 |
事件id (此字段只能包含英文字母大小写、数字和下划线) |
| params |
Map<String, String> |
可选 |
事件参数,参数为键值对的方式,参数键字段只能包含英文字母大小写、数字和下划线,参数值不为空 |
7.1.3 支持多类型参数的计数事件
ZeusAnalytics.getInstance().customEventObject(String eventId, Map<String, Object> params);
参数说明:
| 参数名称 |
参数类型 |
是否必须 |
参数说明 |
| eventId |
String |
必须 |
事件id (此字段只能包含英文字母大小写、数字和下划线) |
| params |
Map<String, Object> |
可选 |
事件参数,参数为键值对的方式,参数键字段只能包含英文字母大小写、数字和下划线,参数值不为空,参数值支持多类型(String、Long、Integer、Float、Double、Short) |
7.2 计算事件
ZeusAnalytics.getInstance().customEventValue(String eventId, Map<String, String> params, int value);
参数说明:
| 参数名称 |
参数类型 |
是否必须 |
参数说明 |
| eventId |
String |
必须 |
事件id (此字段只能包含英文字母大小写、数字和下划线) |
| params |
Map<String, String> |
必须 |
事件参数,参数为键值对的方式,参数键字段只能包含英文字母大小写、数字和下划线,参数值不为空 |
| value |
int |
必须 |
事件值 |
例示:
int duration = 120;//关卡耗时
Map<String, String> map = new HashMap();
map.put("UserId","123456");//角色账号
map.put("Lv","60");//角色等级
map.put("LevelId","10");//关卡id
ZeusAnalytics.getInstance().customEventValue("GameLevel", map, duration);