跳到主要内容

流程统计

1、流程统计SDK初始化

1.1、游戏是否要进行日志初始化?

游戏接入者需要确定接入的是否是Uninon SDK,如果是Union SDK接入者无需对日志进行初始化,直接使用埋点就好。判断方法如下::

DHSDKHelper.getInstance()前缀开头接入API都是Union SDK接入,或者是判断是否打包平台出包,打包平台出包也是Union SDK接入,否则不是。

1.2 、初始化调用代码

    DHLogInit.builder()
.context(activity)
.tag(DHErrorHandler.GameType.ERROR_SERVER)
.loggerType(LoggerType.RELEASE)
.errorHandle(ErrorHandle.SAVE_AUTO_SERVER)
.baseInfo(DHErrorBaseInfo.class)
.register(new DHErrorHandler())
.url("https://ups-sdk-error.17m3.com/")
.put("session_id", DHDeviceUtils.getStringRandom(32))
//32位字母大小写和数字组合 保证单次启动之后唯一
.put("dev_uuid", DHDeviceUtils.getDeviceMD5(activity))
// 设备唯一标识 unionsdk中提供此接口 如果没有接入unionsdk 请自行传入32位md5值 并保证唯一 建议用google广告id生成
.config(CacheManager.getString("log"))
// union sdk一起使用时会使用此配置 游戏单独接入可以去掉此字段 但保证有url配置
.fileDirectory(DHUtils.getExternalCacheDir(activity).toString())
// 上传失败放置的缓存目录
.build();

1.3、统计方法说明

DHLogger.e(String eventId, String loggerModel, String log);
字段说明
e日志级别 d(普通流程日志) e(异常流程日志)
eventIdeventId 事件id
loggerModel日志模式 固定字段示例中不变
log日志内容 格式json

代码示例

DHLogger.e("430000::SDK_CLIENT_LOGIN", DHErrorHandler.GameType.ERROR_SERVER, 
DHLogJson.Json()
.log("login fail " + resultData)
.toJson());

1.4、事件ID说明

事件ID组成如下:
数字编号 ::接入方标识(大写)_事件名称(大写)

数字编号说明:日志接入者上报日志会有个操作流程,日志统计前端展示的时候会根据这边编号,来排序游戏上报的流程事件点,借此来分析那个流程节点存在问题需要调整优化。
数字编号分排序和不排序两种,不排序请使用000000,如需要把事件加入到排序流程当中,请使用非000000数字编号。

接入方标识说明:
SDK_CLIENT SDK客户端标志 固定前缀
SDK_SERVER SDK服务端标志 固定前缀
GAME_CLIENT 游戏客户端标志 固定前缀
GAME_SERVER 游戏服务端标志 固定前缀

事件名称说明:事件名称允许使用者根据使用位置或者打点意义自定名称,但必须全部要是大写字母,尽量不要包含数字或者汉字

正确事件ID举例:
000000::SDK_CLIENT_CRASH SDK客户端记录游戏崩溃事件ID

错误事件ID举例一:
pay: 事件ID错误,事件名称小写且没有数字标识、::和接入方标识,正确ID应该为 510000::GAME_CLIENT_PAY

错误事件ID举例二:
000000::CRASH 事件ID错误,没有接入方标识,正确事件ID为000000::SDK_CLIENT_CRASH

固定事件id:

110000::GAME_CLIENT_LAUNCH
100100::SDK_CLIENT_LAUNCH
210000::GAME_CLIENT_INIT
220000::SDK_CLIENT_INIT
310000::GAME_CLIENT_UPDATE
410000::GAME_CLIENT_LOGIN
420000::GAME_SERVER_LOGIN
430000::SDK_CLIENT_LOGIN
440000::SDK_SERVER_LOGIN
510000::GAME_CLIENT_PAY
520000::GAME_SERVER_PAY
530000::SDK_CLIENT_PAY
540000::SDK_SERVER_PAY

1.5、游戏接入事件流程示例

// 游戏启动客户端
DHLogger.d("110000::GAME_CLIENT_LAUNCH", DHErrorHandler.GameType.ERROR_SERVER,
DHLogJson.Json()
.log("launch game" )
.toJson());
// 游戏客户端初始化
DHLogger.d("210000::GAME_CLIENT_INIT", DHErrorHandler.GameType.ERROR_SERVER,
DHLogJson.Json()
.log("init game" )
.toJson());

// 游戏客户端登录
DHLogger.d("410000::GAME_CLIENT_LOGIN", DHErrorHandler.GameType.ERROR_SERVER,
DHLogJson.Json()
.log("login game" )
.toJson());

1.6、DHLogJson工具说明

DHLogJson.Json()
.base("account_id", "") //unionsdk 会在登录时使用此工具添加此字段 游戏接入者可以不填写 单独接入日志sdk请根据需求添加
.base("role_id", "") //unionsdk 会在游戏传入角色信息时使用此工具添加此字段 游戏接入者可以不填写 单独接入日志sdk请根据需求添加
// 基础数据字段 之后再使用此工具生成json 会默认包含字段
.base(map)
// 基础数据字段 之后再使用此工具生成json 会默认包含字段
.data("key", "value")
// 数据字段 只有此次生成json包含此字段
.data(map)
// 数据字段 只有此次生成json包含此字段
.log(resultData)
// 具体log内容 工具默认转成base64 如果不使用此工具 请自行将内容base64
.toJson()

2、查询日志说明

查询地址 http://lms.op.dianhun.cn/admin/sdk/data
日志接入者或者测试人员在查询日志的时候,会需要游戏账号角色或设备一下基础 数据信息,设备信息日志sdk会内部上报,账号角色信息,请查询者自行收集,请游戏接入者重点关注日志接入json格式还有内容,建议优先使用提供DHLogJson工具

3、乐变热更新打点说明

信息

安卓乐变SDK热更支持开始、更新中和更新结束事件打点,项目如需要进行打点请在项目asserts目录下添加ibuil.jar包(包含乐变自定义更新UI),ibuil.jar包请联系SDK开发同学获取。

4、OSS数据统计接口调用日志上报代码

// 流程统计及日志游戏启动就可以上报,无需调用SDK初始化,其他数据统计使用此接口需要SDK初始化
Map<String, Object> data = new HashMap<String, Object>();
// 必传参数
data.put("track_platform","log"); // 默认 无需修改
data.put("log","dianun test"); // 日志内容 必填
data.put("log_level","d"); // d 普通日志或流程统计事件 e异常日志 事件ID数据编号必须为000000开头 必填
data.put("key","value");
DHSDKHelper.getInstance().getAnalysis().trackEvent(getCurrentActivity(),"000000:SDK_CLIENT_TEST",data);