# 数据上报

为了针对游戏上线或买量投放后,能够更精准的分析和评估游戏的业务数据及广告投放效果(如登录、注册、创角及充值等数据表现),SDK及游戏客户端均需进行相关数据的上报埋点。

注意事项

请相关运营或UA投放人员、SDK开发人员及游戏客户端研发人员注意三方协调,避免因沟通问题导致线上相关数据缺失,影响数据分析;如有任何疑问可在相关对接沟通群咨询,谢谢!

另,以下七个数据上报埋点方法中,“游戏启动、用户登录、广告行为、分享行为”四个数据上报埋点已由SDK内部集成,游戏客户端无需接入;“用户注册、上报角色信息、用户充值”需由游戏客户端接入!!!

# 游戏启动

在SDK初始化完成且用户尚未登录时进行数据上报(该数据上报已由SDK内部集成,游戏客户端无需接入,可忽略)

sdkInstance.analytics.loaded(callback?);

参数说明如下表所示:

选项 类型 必填 默认值 说明
callback function -- 数据上报完成时的回调函数

参考示例如下:

注:示例代码中的参数或选项均为演示数据,仅供参考,谢谢!

sdkInstance.analytics.loaded();

# 用户注册

当有新用户游戏内注册成功时进行数据上报(该数据上报需由游戏客户端接入)

注:相同用户,相对同一个OPPO开放平台账户下的不同游戏产品,UnionID是相同的,而SDK是根据UnionID生成游戏账号的,因此SDK无法准确获知某个用户于当前游戏中的注册时机,因此该数据上报需由游戏客户端进行接入,游戏客户端可在用户于当前游戏内首次创角时调用该接口进行数据上报。

sdkInstance.analytics.register(params, callback?);

参数说明如下表所示:

选项 类型 必填 默认值 说明
params object -- --
    params.accountId number -- 账号ID(账号唯一标识)
    params.extendParams object -- 自定义扩展参数,属性 key 只能为 string 类型,需要以英文字符开头,仅支持输入英文字符、数字、下划线(以 _ 开头为内置属性,不可以使用);value 支持字符串、数字、日期和布尔类型
callback function -- 数据上报完成时的回调函数

参考示例如下:

注:示例代码中的参数或选项均为演示数据,仅供参考,谢谢!

sdkInstance.analytics.register({
  accountId: sdkInstance.userInfo.accountId,
  extendParams: {
    age: 20
  }
}, function(params) {
  console.log(params);
});

# 用户登录

当有用户登录成功(调用 sdkInstance.login 成功)时进行数据上报(该数据上报已由SDK内部集成,游戏客户端无需接入,可忽略)

sdkInstance.analytics.logged(params, callback?);

参数说明如下表所示:

选项 类型 必填 默认值 说明
params object -- --
    params.accountId number -- 账号ID(账号唯一标识)
callback function -- 数据上报完成时的回调函数

参考示例如下:

注:示例代码中的参数或选项均为演示数据,仅供参考,谢谢!

sdkInstance.analytics.logged({
  accountId: sdkInstance.userInfo.accountId
}, function(params) {
  console.log(params);
});

# 上报角色信息

当有用户登录游戏服成功创角成功角色升级(如游戏无角色等级概念,可为关卡等级)时,均需调用此接口进行数据上报(该数据上报需由游戏客户端接入)

sdkInstance.analytics.uploadRoleInfo(params, callback?);

参数说明如下表所示:

选项 类型 必填 默认值 说明
params object -- --
    params.type string --

上报类型

  • LOGIN_GAME - 登录游戏服
  • CREATE_ROLE - 创角
  • LEVEL_UP - 升级
    params.accountId number -- 账号ID(账号唯一标识)
    params.areaId string / number 1 游戏大区ID,若游戏无大区概念,可不填,默认值为 1,表示初始大区编号
    params.areaName string -- 游戏大区名称
    params.roleId string / number 同 accountId 角色ID,若游戏无角色概念,可不填,默认值同 accountId 账号ID
    params.roleName string -- 角色名称
    params.roleLevel number 1 角色等级,若游戏无角色及等级概念,可填关卡等级或不填,默认值为 1
callback function -- 数据上报完成时的回调函数

参考示例如下:

注:示例代码中的参数或选项均为演示数据,仅供参考,谢谢!

sdkInstance.analytics.uploadRoleInfo({
  type: "LOGIN_GAME", // 登录游戏服时传LOGIN_GAME,创角时传CREATE_ROLE,升级时传LEVEL_UP
  accountId: sdkInstance.userInfo.accountId, // 账号ID
  areaId: 1001, // 游戏大区ID,若游戏无大区概念,可不填,默认值为 1,表示初始大区编号
  areaName: "1区", // 游戏大区名称
  roleId: "123456", // 角色ID,若游戏无角色概念,可不填,默认值同 accountId 账号ID
  roleName: "小朋友", // 角色名
  roleLevel: 1 // 角色等级,若游戏无角色及等级概念,可填关卡等级或不填,默认值为 1
}, function(params) {
  console.log(params);
});

# 用户充值

当有用户游戏内充值成功时进行数据上报(该数据上报需由游戏客户端接入;应在游戏客户端收到服务端下发支付成功的通知后调用,不应在 sdkInstance.pay 接口的 success 回调中进行上报)

sdkInstance.analytics.pay(params, callback?);

参数说明如下表所示:

选项 类型 必填 默认值 说明
params object -- --
    params.accountId number -- 账号ID(账号唯一标识)
    params.areaId string / number 1 游戏大区ID,若游戏无大区概念,可不填,默认值为 1,表示初始大区编号
    params.roleId string / number 同 accountId 角色ID,若游戏无角色概念,可不填,默认值同 accountId 账号ID
    params.roleLevel number 1 角色等级,若游戏无角色及等级概念,可填关卡等级或不填,默认值为 1
    params.roleVipLevel number -- 角色VIP等级
    params.channel number -- 充值渠道ID,默认值同 sdkInstance.channel 游戏渠道包ID
    params.orderId string -- 订单唯一编号,注意不要出现重复订单编号,只需上报成功订单
    params.orderPrice number -- 订单总金额,单位为分!!!
    params.itemId string -- 商品ID
    params.payType string weixinpay

支付方式

  • weixinpay - 微信支付
  • alipay - 支付宝
  • yeepay - 易宝支付
  • unionpay - 银联
    params.currency string CNY

货币类型

  • CNY - 人民币
  • USD - 美元
callback function -- 数据上报完成时的回调函数

参考示例如下:

注:示例代码中的参数或选项均为演示数据,仅供参考,谢谢!

sdkInstance.analytics.pay({
  accountId: sdkInstance.userInfo.accountId, // 账号ID
  areaId: 1001, // 游戏大区ID,若游戏无大区概念,可不填,默认值为 1,表示初始大区编号
  roleId: "123456", // 角色ID,若游戏无角色概念,可不填,默认值同 accountId 账号ID
  roleLevel: 1, // 角色等级,若游戏无角色及等级概念,可填关卡等级或不填,默认值为 1
  roleVipLevel: 1, // 角色VIP等级
  channel: sdkInstance.channel, // 充值渠道ID,默认值同 sdkInstance.channel 游戏渠道包ID
  orderId: "xxxxxxxxxx", // 订单唯一编号
  orderPrice: 6800, // 订单总金额,单位为分!!!
  itemId: "com.dh.test", // 商品ID
  payType: "weixinpay", // 支付方式
  currency: "CNY" // 货币类型
}, function(params) {
  console.log(params);
});

# 广告行为

当游戏内植入广告时,上报用户的相关广告行为,如播放广告、广告内点击、关闭广告或广告错误等(该数据上报已由SDK内部集成,游戏客户端无需接入,可忽略)

sdkInstance.analytics.ad(params, callback?);

参数说明如下表所示:

选项 类型 必填 默认值 说明
params object -- --
    params.accountId number -- 账号ID(账号唯一标识)
    params.adUnitId string -- 广告ID,预留参数,有就填写
    params.adType number 1

广告类型

  • 1 - 激励视频广告
    params.adPlatform string oppo 广告平台
    params.adPosition string -- 广告展示位置,预留参数,有就填写
    params.adEventName string --

事件名称

  • ad_play - 播放广告
  • ad_inclick - 广告内点击
  • ad_close - 关闭广告
  • ad_error - 广告错误
    params.adEventResult number 0

事件结果

  • 0 - 成功
  • 1 - 失败
  • 2 - 其他
    params.adEventMessage string -- 失败描述,当广告出现错误事件(result=1)时的描述信息,值需进行Base64编码
    params.adPlayDuration number -- 播放时长,仅播放结束时有值,单位为秒
callback function -- 数据上报完成时的回调函数

参考示例如下:

注:示例代码中的参数或选项均为演示数据,仅供参考,谢谢!

sdkInstance.analytics.ad({
  accountId: sdkInstance.userInfo.accountId,
  adUnitId: "xxxxxxxx",
  adType: 1,
  adPlatform: "oppo",
  adPosition: "",
  adEventName: "ad_play",
  adEventResult: 0,
  adEventMessage: "",
  adPlayDuration: 60
}, function(params) {
  console.log(params);
});

# 分享行为

当有用户游戏内触发分享时进行数据上报(该数据上报已由SDK内部集成,游戏客户端无需接入,可忽略)

sdkInstance.analytics.share(params, callback?);

参数说明如下表所示:

选项 类型 必填 默认值 说明
params object -- --
    params.shareType number --

分享类型

  • 1 - 转发给朋友
  • 2 - 分享至朋友圈
  • 3 - 其他
callback function -- 数据上报完成时的回调函数

参考示例如下:

注:示例代码中的参数或选项均为演示数据,仅供参考,谢谢!

sdkInstance.analytics.share({
  shareType:3
}, function(params) {
  console.log(params);
});
Last Updated: 2024/9/11 16:18:07