主题
Skip to content
模块名:
GameHelper.WXDataNexus
1. 描述
腾讯DN是腾讯自家的归因,仅可用于微信渠道,与引力归因互不干涉。 请根据对接同事的需求,选用正确的归因组件。对于微信带内购的产品,必须使用DN归因。
当需求包含AMS归因时,请确认提供的SDK包含TencentDN.js, 请务必将其与SDK一同进行构建。如没有该文件请反馈给对接人员。

2. 概念理解
回流用户时间:距离用户最近一次登录游戏的时间,以天为单位。
SDK默认的回流用户时间为30天。 对接同学会配置好相应的回流天数,在线参数为tencentDN_reactive。

3. 调试模式 - 重要
本模块会自动初始化,但需要根据包的类型,更改GameHelper.init传参的guiyinDebugMode属性,该属性默认为false.
3.1 自测包
进行非发布包的测试时,请将GameHelper.init传参的guiyinDebugMode设置为《true》.
仅有在设置了归因调试开关后,才能在后台进行数据验证!!!
javascript
GameHelper.init({
...
guiyinDebugMode: true, // 归因的调试开关,自测包要打开进行验收,上线包必须关闭
...
})SDK会有如下提醒
3.2 正式包
归因验证完毕后,最后的正式包必须将将GameHelper.init传参的guiyinDebugMode设置为《false》
javascript
GameHelper.init({
...
guiyinDebugMode: false, // 归因的调试开关,自测包要打开进行验收,上线包必须关闭
...
})4. SDK的自动上报
SDK会自动上报如下事件,业务层无需关注代码实现,仅需进行验证即可:
| 上报分类 | DN事件名/打印条目 | 说明 | 含义 |
|---|---|---|---|
| 通用 | REGISTER | 用户注册 | 真实新增用户 |
| RE_ACTIVE | 用户回流 | 符合回流用户时间的回流用户 | |
| ADD_TO_WISHLIST | 收藏 | 点击微信的收藏按钮 | |
| IAP游戏 (内购游戏) | PURCHASE | 付费 | 用户完成内购,仅接入内购的游戏需要验证 |
| IAA游戏 (非内购游戏) | SUBSCRIBE | 订阅 | 且游戏存在订阅功能时,调用SDK提供的订阅接口会自动触发上报 |
| AD_PLACEMENT_SHOW | 广告按钮展示 | 点击视频按钮时自动上报 | |
| AD_CLICK | 视频按钮点击 | 点击视频按钮时自动上报 | |
| AD_IMPRESSION | 广告展示 | 广告曝光时展示,需要验收事件及事件参数ad_type传值准确 1-激励视频 2-插屏 3-格子 4-banner | |
| AD_VIDEO_FINISH | 视频完整播放 | 视频完整播放被关闭时自动上报 |
5. 业务手动上报
请根据策划/发布的要求,在对应的点位,使用GameHelper.WXDataNexus.reportEvent方法,上报所有需要的事件。一般而言,只要游戏有对应点位的功能,则必须上报
如果你的游戏接入了内购支付功能,请看《5.1 IAP游戏》 部分;
如果你的游戏无内购,仅接入广告功能,请看《5.2 IAA游戏部分》;
5.1 IAP游戏
5.1.1 创建角色
当游戏有角色的概念时,在角色创建完成时上报。
如果有角色名称的概念,则需要在eventParams里传入name属性。
对应DN日志/后台的【CREATE_ROLE】打印/条目
typescript
// 有角色名的概念
GameHelper.WXDataNexus.reportEvent({
eventType: GameHelper.WXDataNexus.EVENT_TYPE.CREATE_ROLE,
eventParams: {
name: "吗喽",
},
});
// 没有角色名的概念
GameHelper.WXDataNexus.reportEvent({
eventType: GameHelper.WXDataNexus.EVENT_TYPE.CREATE_ROLE,
eventParams: {},
});5.1.2 引导结束
当游戏有引导教程的概念时,请在引导完成时确保调用新事件的GameStatistics.GuideOver接口(内部的引导结束上报接口),我们的SDK已在该接口中同步上报到引力。
- 对应DN日志/后台的【TUTORIAL_FINISH】打印/条目
typescript
// 请确保游戏内在引导结束时调用该接口
GameHelper.GameStatistics.GuideOver();5.1.3 用户升级
当游戏有 <完成游戏等级提升>的概念时进行上报.
可自行在eventParams添加需要的属性。 一般来说必传level字段, 代表用户升级后的等级。可根据需要传其他DIY字段
对应DN日志/后台的【UPDATE_LEVEL】打印/条目
typescript
GameHelper.WXDataNexus.reportEvent({
eventType: GameHelper.WXDataNexus.EVENT_TYPE.UPDATE_LEVEL,
eventParams: {
level: 6, // 当前用户等级
diy1: "someparam1", // 可选额外传写自定义的参数
diy2: 888, // 可选额外传写自定义的参数
},
});5.1.4 浏览商城/游戏活动
当用户在小游戏内浏览商城页面、或者浏览活动时上报。一般是在打开相应UI时上报。
eventParams添加item属性
商城:"Mall"
活动: "Activity"
eventParams添加其他需要的属性(可选)
对应DN日志/后台的【VIEW_CONTENT】打印/条目
typescript
GameHelper.WXDataNexus.reportEvent({
eventType: GameHelper.WXDataNexus.EVENT_TYPE.VIEW_CONTENT,
eventParams: {
item: "Mall", // 假设这里看的是商城 - !!!必须带该属性
// item: "Activity", // 假设这里看的是活动 - !!!必须带该属性
diy1: "someparam1", // 可选额外传写自定义的参数
diy2: 888, // 可选额外传写自定义的参数
},
});5.2 IAA游戏
5.2.1 新手引导开始
当游戏有引导教程的概念时,玩家首次进入游戏后,触发游戏第一关的新手引导流程时上报;
SDK已在GameStatistics.GuideStart接口内自动上报引力,请确保游戏内在引导开始时调用了新事件的GameStatistics.GuideStart接口
- 对应DN日志/后台的【TUTORIAL_START】打印/条目
javascript
// 请确保游戏内在引导开始时调用该接口
GameHelper.GameStatistics.GuideStart();5.2.2 新手引导结束
当游戏有引导教程的概念时,请在引导完成时确保调用新事件的GameStatistics.GuideOver接口(内部的引导结束上报接口),我们的SDK已在该接口中同步上报到引力。
- 对应DN日志/后台的【TUTORIAL_FINISH】打印/条目
javascript
// 请确保游戏内在引导结束时调用该接口
GameHelper.GameStatistics.GuideOver();5.2.3 关卡事件
开始接入前,请从以下参数中选择游戏中存在的内容在对应接口中传入,没有则无需传入
可选参数表
| 参数名 | 类型 | 说明 |
|---|---|---|
| enter_level_id | float | 关卡进度,游戏内显示的当前关卡的进度百分比、进度条比例, 取值范围 [0, 1] |
| enter_level_name | string | 仅《进入关卡》事件上报该属性 关卡名称, 若游戏内给关卡命名名称,比如第9关:云里雾里,则报"云里雾里" |
| chapter_id | integer | 章节id 如游戏内关卡页面显示了《普通-第1章》,则上报1 |
| coin_amount | integer | 当前拥有的金币数 |
| stamina_value | integer | 当前体力值 |
| level_value | integer | 当前等级值 |
| items | string[] | 进入关卡无需上报该参数,即调用GameStatistics.StartGame无需传入该参数 中途退出关卡、关卡失败、通过关卡时根据当前使用道具情况上报,未使用道具时可不上报 如果游戏内存在消耗类型的道具,请对当前关卡内使用的道具类型和数量计数;并在中途退出、关卡失败、通过关卡时根据使用情况传入参数; 渠道侧提供了道具类型的枚举,请根据游戏内道具内容选择对应的道具类型进行上报,如果枚举中无对应道具编号,道具类型传46:指其他类型 比如本关内游戏使用了两个磁铁、1个炸弹、4个飞毛腿、8个如来神掌 则上报 |
items的道具类型枚举表
![]() | ![]() |
|---|
5.2.3.1 进入关卡
SDK在GameStatistics.StartGame接口会自动上报该事件,请确保游戏内调用了该新事件上报接口。
如果游戏内存在《可选参数表》中的字段,请在GameStatistics.StartGame的第三个参数extra对象中的ams_pros下
代码示例
javascript
// 比如游戏内有关卡进度和金币
GameHelper.GameStatistics.StartGame(1, "easy_mode", {
ams_pros: {
enter_level_id: 0,
coin_amount: 20
}
})5.2.3.2 中途退出关卡
SDK 在GameStatistics.QuitGame接口中根据当前是否调用了GameStatistics.SuccessGame或GameStatistics.FailGame判定是否为中途退出;请确保游戏内调用了该新事件上报接口。
如果游戏内存在《可选参数表》中的字段,请在GameStatistics.QuitGame的第二个参数extra对象中的ams_pros下
如果本关内使用了道具,在《items的道具枚举表》中查找对应道具编号传给item_type,item_num传入数量。
代码示例
javascript
// 比如本关内目前进度为0.45, 金币数量为200,使用了3个撤回道具、2个冻结时间道具
GameHelper.GameStatistics.QuitGame(1500, {
ams_pros: {
enter_level_id: 0.45,
coin_amount: 200,
items: [
"{item_type:15,item_num:3}",
"{item_type:31,item_num:2}"
]
}
})5.2.3.3 关卡失败
SDK在GameStatistics.FailGame接口中自动上报该事件,请确保游戏内调用了该新事件上报接口。
如果游戏内存在《可选参数表》中的字段,请在GameStatistics.FailGame的第二个参数extra对象中的ams_pros下
如果本关内使用了道具,在《items的道具枚举表》中查找对应道具编号传给item_type,item_num传入数量。
代码示例
javascript
// 比如本关内目前进度为0.45, 金币数量为200,使用了3个撤回道具、2个冻结时间道具
GameHelper.GameStatistics.FailGame(1500, {
ams_pros: {
enter_level_id: 0.88,
coin_amount: 100,
items: [
"{item_type:15,item_num:3}",
"{item_type:31,item_num:2}"
]
}
})5.2.3.4 通过关卡
SDK在GameStatistics.SuccessGame接口中自动上报该事件,请确保游戏内调用了该新事件上报接口。
如果游戏内存在《可选参数表》中的字段,请在GameStatistics.SuccessGame的第二个参数extra对象中的ams_pros下
如果本关内使用了道具,在《items的道具枚举表》中查找对应道具编号传给item_type,item_num传入数量。
代码示例
javascript
// 比如本关内目前进度为0.45, 金币数量为200,使用了3个撤回道具、2个冻结时间道具
GameHelper.GameStatistics.SuccessGame(1500, {
ams_pros: {
enter_level_id: 1,
coin_amount: 300,
items: [
"{item_type:15,item_num:3}",
"{item_type:31,item_num:2}"
]
}
})6. 测试验证 - 研发
6.1 验证回流用户天数定义
SDK默认回流天数为30,如果发布在远程配置配了tencentDN_reactive则会使用。需验证回流天数与项目要用的一致。如果任务没特别说明就是30。可通过调用步骤3的归因初始化后的打印得知,例如下面的例子是14天:
6.2 用户注册事件
当用户是首次玩游戏,也就是咱们口中的新增用户,此时会自动上报一次【REGISTER】事件。后续启动均不会上报!!所以请使用新账号玩游戏验证该点,测试账号不能登陆过游戏,请一切准备就绪后再测。一般来说游戏验证一次即可。
判断为新用户时,模块有如下打印:[TencentDN]--newUser。然后验证事件上报
【1】验证可在控制台看到如下打印
【guiyinDebugMode需要打开】

6.3 用户回流事件
如果为老用户,模块有如下打印:[TencentDN]--existingUser
如果同时满足回流用户天数,则SDK会自动上报【RE_ACTIVE】事件。该情况比较难测试,可以让对接同学配置在线参数为0或1,测完记得把在线参数改回去。 一般来说游戏验证一次即可。
验证可在控制台看到如下打印
【guiyinDebugMode需要打开】

6.4 收藏验证
当收藏小游戏时,可以触发【ADD_TO_WISHLIST】事件上报。验证可在控制台看到如下打印
收藏会有两条事件,是正常情况
【guiyinDebugMode需要打开】
![]() | ![]() |
|---|
6.5 支付验证
当完成支付时,需要验证【PURCHASE】事件,以及其金额是否正确。例如下列例子是上报的6元。
【guiyinDebugMode需要打开】

6.6 其他归因事件上报
对于栏目 5 的事件,请在对应点位触发时,立即进行如下验证
验证可在控制台看到如下打印。 上报行为类型为对应分栏的【XXX】的部分。例如下图所示的为【UPDATE_LEVEL】
【guiyinDebugMode需要打开】

7. 测试验证 - 测试
测试需要验证栏目4和5,所有符合条件的事件
7.1 日志打印
如果研发将本模块的debugMode打开,验证数据时可以选择查看。
正式包必须为关闭状态,控制台不允许出现下列的打印

7.2 网络请求
当对应点位触发时,验证可在NETWORK看到一条新网络请求。关键字为miniprogram(请求体为密文,只能看到多一条)。网络请求的响应必须为code: 0, message: ok。
真机测试请直接看DN后台。

7.3 后台验证
登录https://datanexus.qq.com/web/monitor/logs。进入到对应的产品。
参考下图,进入到《日志查询》栏目,然后再右上角选好时间即可。

如果对应的事件有上报事件属性(例如支付的金额),点击对应条目的(JSON)。然后查看action_param里面的值即可


点我快速对接



›
‹



