# 数据统计

# 1、接口说明

DANGER

数据统计在SDK中会默认上报启动、登录、支付等数据到数据OSS平台,且不分国内海外。如果游戏需要接入其他更详细的数据上报到数据统计平台,请阅读数据统计接入文档。

国内海外数据统计接口是否唯一?

数据统计接口为统一接口,国内和海外相同。根据传入参数和meta-data配置参数的不同,将会上报数据到不同平台。

国内数据统计需上报到那些平台?

目前,数据统计在国内默认只会上报到数据统计平台。

海外数据统计需上报到那些平台?

目前,数据统计在海外默认只会上报到数据统计平台。如果需要上报到Adjust和Firebase,需要运营人员在开放平台配置三合一表格,研发人员无需进行额外的接入。

# 2、接口调用

上传各种事件到后台进行统计!

import com.dh.DHSDKHelper;

/**
 * @param activity    上下文
 * @param eventName   事件名称
 * @param eventValue  事件数据
 */
DHSDKHelper.getInstance().getAnalysis().trackEvent(activity, eventName, eventValue);

# 2.1、流程统计 必接

WARNING

新版多合一接口,包括日志上报、adjust、TikTok、Firebase等平台。

流程统计及日志游戏启动就可以上报,无需调用SDK初始化,其他数据统计使用此接口需要SDK初始化。

TIP

  • eventName: 事件ID(运营提供),格式为:六位数字::字符串,如:000000::SDK_CLIENT_LAUNCH
  • eventValue: 必须包含三个必填字段(track_platform, log, log_level)和任意自定义键值对。

调用代码示例如下:

import com.dh.DHSDKHelper;

import java.util.HashMap;

// 事件名称
String eventName = "000000::XXX_XXX_XXX";

// 事件数据:每次调用trackEvent时,需创建不同的eventValue。所有参数值类型均为字符串。
HashMap<String, Object> eventValue = new HashMap<>();

// 必传参数
eventValue.put("trackPlatform", "log");       // 固定,无需修改
eventValue.put("logLevel", "d");              // 必填,d:普通日志 or 流程统计;e:异常日志;
eventValue.put("logContent", "test");         // 必填,自定义日志内容

// 可选参数
eventValue.put("customKey", "customValue");   // 可选,自定义参数,customKey、customValue均可自定义

/**
 * @param activity    上下文
 * @param eventName   事件名称
 * @param eventValue  事件数据
 */
DHSDKHelper.getInstance().getAnalysis().trackEvent(activity, eventName, eventValue);
参数名称 是否必传 参数示例 参数说明
trackPlatform log 固定值,无需修改
logLevel d 日志级别,"d" 表示普通日志或流程统计;"e" 表示异常日志
logContent test 自定义日志内容

# 2.2、新手引导 选接

import com.dh.DHSDKHelper;

import java.util.HashMap;

// 事件名称
String eventName = "guidestep";

// 事件数据:每次调用trackEvent时,需创建不同的eventValue。所有参数值类型均为字符串。
HashMap<String, Object> eventValue = new HashMap<>();

// 必传参数
data.put("trackPlatform", "dianhun");  // 固定值,无需修改
data.put("areaId", "1");               // 大区ID,若游戏无大区概念,则填1作为初始大区编号,和游戏服务器日志传值保持一致
data.put("roleId", "100002");          // 角色ID,游戏内唯一(不同区服之间也不允许重复),建议纯数字。若游戏无角色概念,则填账号ID
data.put("stepId", "10000");           // 引导步骤ID
data.put("stepState", "2");            // 引导步骤状态 1:进行中 2:已完成(不含跳过)3:跳过

// 可选参数
data.put("stepType", "pvp");          // 引导步骤分类
data.put("roleLevel", "143");         // 角色等级
data.put("roleVipLevel", "10");       // 角色VIP等级
data.put("stepParam", "H001");        // 引导步骤参数
data.put("extendParamJson", "{\"kills\":\"10\",\"deaths\":\"2\",\"assistant\":\"3\"}");  // 扩展参数,JSON格式字符串

/**
 * @param activity    上下文
 * @param eventName   事件名称
 * @param eventValue  事件数据
 */
DHSDKHelper.getInstance().getAnalysis().trackEvent(activity, eventName, eventValue);

# 2.3、按钮日志 选接

import com.dh.DHSDKHelper;

import java.util.HashMap;

// 事件名称
String eventName = "button";

// 事件数据:每次调用trackEvent时,需创建不同的eventValue。所有参数值类型均为字符串。
HashMap<String, Object> eventValue = new HashMap<>();

// 必传参数
data.put("trackPlatform", "dianhun");  // 固定值,无需修改
data.put("buttonId", "match_001");     // 按钮ID

// 可选参数
data.put("buttonType", "match");      // 按钮分类
data.put("pageId", "main_page");      // 按钮所在界面ID,用于分析用户操作路径
data.put("eventParam", "10");         // 操作参数,比如是跳转到另外一个页面,就填写结果页ID;匹配按钮则可以填匹配时间
data.put("areaId", "1");              // 大区ID,若游戏无大区概念,则填1作为初始大区编号,和游戏服务器日志传值保持一致
data.put("roleId", "100002");         // 角色ID,游戏内唯一(不同区服之间也不允许重复),建议纯数字。若游戏无角色概念,则填账号ID
data.put("extendParamJson", "{\"online_durt_tot\":\"12020\"}");  // 扩展参数,JSON格式字符串

/**
 * @param activity    上下文
 * @param eventName   事件名称
 * @param eventValue  事件数据
 */
DHSDKHelper.getInstance().getAnalysis().trackEvent(activity, eventName, eventValue);

# 2.4、自定义日志 选接

import com.dh.DHSDKHelper;

import java.util.HashMap;

// 事件名称
String eventName = "custom";

// 事件数据:每次调用trackEvent时,需创建不同的eventValue。所有参数值类型均为字符串。
HashMap<String, Object> eventValue = new HashMap<>();

// 必传参数
eventValue.put("trackPlatform", "dianhun");  // 固定值,无需修改
eventValue.put("eventName", "levelUp");      // 自定义的事件名

// 可选参数
eventValue.put("eventObj", "pay_btn");       // 操作对象,如果是按钮点击事件,则对应按钮ID
eventValue.put("eventCode", "login");        // 操作原因
eventValue.put("eventResult", "real_page");  // 操作结果
eventValue.put("areaId", "1");               // 大区ID,若游戏无大区概念,则填1作为初始大区编号,和游戏服务器日志传值保持一致
eventValue.put("roleId", "100002");          // 角色ID,游戏内唯一(不同区服之间也不允许重复),建议纯数字。若游戏无角色概念,则填账号ID
eventValue.put("extendParamJson", "{\"kills\":\"0\",\"deaths\":\"0\",\"assistant\":\"0\"}");  // 扩展参数

/**
 * @param activity    上下文
 * @param eventName   事件名称
 * @param eventValue  事件数据
 */
DHSDKHelper.getInstance().getAnalysis().trackEvent(activity, eventName, eventValue);
Last Updated: 2025/1/13 15:00:08