主题
Skip to content

WARNING
💡 模块名:GameHelper.GameStatistics
描述
本模块封装了业务统计的所有方法,并同时兼容小游戏 SDK 和 APP SDK,游戏业务代码无需做出针对改动。
统计模块包含了 2 部分接口:
内置统计链路
自定义统计接口
自定义统计接口
如果游戏需要上报自定义事件,并附加自定义属性,请使用 reportEvent 接口。 请注意:
- 事件名需与对接人员确认
- 上报时机需与对接人员确认
- 事件属性必须为对象,且需与对接人员确认。如果没有事件属性,还是需要传空对象
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
eventname | string | / | 是 | 事件名 |
prop | object | / | 是 | 事件参数 |
javascript
GameHelper.GameStatistics.reportEvent("name2", {}); // 不需要事件属性还是得传入空对象
GameHelper.GameStatistics.reportEvent("name1", { param1: 100, param2: "abc" });
内置统计链路
统计模块内置了一套链路,请在正确的时机调用正确的接口和传参,以确保统计正常。
对于游戏需统计的范畴,请根据对接人员提供的统计表格确定。
WARNING
💡 注意,所有统计相关接口中,number 类型的参数都需要大于等于-1 :::
广告统计
小游戏仅需要手动调用 ShowVideo 接口,其他接口均会自动处理无需关注。
如果游戏同时接入了 APP SDK 的统计,也可添加 APP 的接口调用,小游戏 SDK 预留了相关空接口。
视频点展示(从不显示到显示)的时候调用。每次展示都要调用。例如视频按钮从隐藏到展示时调用。
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
sVideoName | string | / | 是 | 视频点名称 |
javascript
// videoName未视频点名称,与调用GameHelper.AdsFunc.showVideo内的name属性一致
GameHelper.GameStatistics.ShowVideo(videoName);
支付统计
小游戏 SDK 已内置了所有支付统计,无需关注。
如果游戏同时接入了 APP SDK 的统计,也可添加 APP 的接口调用,小游戏 SDK 预留了相关空接口。
玩法统计
玩法统计从大到小分为 3 个维度:玩法
、模式
、关卡
。每种维度均提供了进入和退出的接口。
一般而言玩法统计为必备项目,游戏在正确的时机调用相关接口即可。
案例讲解
假设有一个游戏叫"开心拍一拍
",其只有一个本体主玩法(点击主页的开始游戏就会进入),与对接人员确认后其玩法名为KXPYP
。主玩法有两种模式"闯关
"和"每日挑战
",与对接人员确认后模式名分别为"cg
"和"mrtz
"。每种模式都有 100 关。

SDK 隐私初始化完成后,此时预加载页面的所有元素展示,玩家还未点击进入游戏。
玩家点击进入游戏,或游戏自动跳转游戏首页,调用
EnterHome
接口。由于游戏为单玩法,主页等同于玩法主界面,再调用EnterGame
接口,并传入玩法名KXPYP
游戏首页有两个模式选择按钮,点击任意模式后会进入关卡选择界面。假设玩家点击了闯关模式,调用
EnterMode
接口,传入模式名cg
玩家选择了第 50 关,程序即将进入游玩场景,此时调用
StartGame
接口,传入关卡编号50
,模式名cg
在 level 层级下(也就是游玩场景),针对玩家的操作调用专门的接口。
a. 游戏暂停
PauseGame
b. 游戏继续
ContinueGame
c. 游戏复活
AliveGame
d. 关卡跳过
SkipGame
e. 游戏进度变化
ProgressGame
f. 游戏通关
SuccessGame
g. 游戏失败
FailGame
h. 游戏平局
DrawGame
i. 游戏犯规
FoulGame
请注意,无论游戏以何种形式重新开始时,都需要调用 StartGame
假设玩家得分 999,并中途退出游戏,退回选关界面。调用
QuitGame
接口,传入关卡分数999
退回游戏首页
a. 先调用
ExitMode
接口b. 因为退回了游戏首页,再调用
EnterHome
接口c. 由于游戏为单玩法,主页等同于玩法主界面,最后调用
EnterGame
接口,并传入玩法名KXPYP
FAQ:
如果没有模式的概念
a. 请首先与对接人员确认,分配一个模式名。如果对接人员未分配,则使用"
wujin
"b. 相当于进入玩法时直接进入了模式。在调用
EnterGame
时,顺带调用EnterMode
。如果没有关卡的概念,关卡编号填 0
如果没有分数的概念,分数填-1
暂停原因的枚举
POPUP:默认值,弹窗暂停
ADS:广告暂停
BACKGROUND:前后台暂停
PROGRESS:关卡进度,从有进度的游戏回来
进入游戏首页时调用(一般为第一个统计事件), 回到首页也调用一次
javascript
GameHelper.GameStatistics.EnterHome();
进入游戏玩法时调用
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
sGameName | string | / | 是 | 玩法名 |
javascript
GameHelper.GameStatistics.EnterGame("KXPYP");
进入玩法下的游戏模式时调用
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
sModeName | string | / | 是 | 模式名。如果游戏没有分模式的话, 填写 wujin 即可 |
javascript
GameHelper.GameStatistics.EnterMode("cg");
进入游玩场景时调用
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
model_level | number | / | 是 | 关卡编号,如果当前模式没有关卡概念可填 0 |
sModeName | string | / | 是 | 模式名。如果游戏没有分模式的话, 填写 wujin |
javascript
GameHelper.GameStatistics.StartGame(50, "cg");
离开游玩场景时调用
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
iScores | number | / | 是 | 如果有分数概念则根据策划要求上传,没有则填-1 |
javascript
GameHelper.GameStatistics.QuitGame(999);
离开当前模式时调用
javascript
GameHelper.GameStatistics.ExitMode();
游戏暂停时调用(仅限用户主动操作时上报),常见于打开暂停页或者其他弹窗导致游戏进程暂停
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
iScores | number | -1 | 否 | 暂停时的分数。如果有分数概念则根据策划要求上传,没有则不传 |
state | PAUSE_STATE | PAUSE_STATE.POPUP | 否 | 导致暂停的原因. 不填则默认为 PAUSE_STATE.POPUP |
javascript
GameHelper.GameStatistics.PauseGame(123);
游戏继续时调用. 得调用 PauseGame 后调用 ContinueGame 才生效
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
model_level | number | / | 是 | 关卡编号,如果当前模式没有关卡概念可填 0 |
sModeName | number | / | 是 | 模式名。如果游戏没有分模式的话, 填写 wujin |
state | PAUSE_STATE | PAUSE_STATE.POPUP | 否 | 导致暂停的原因. 不填则默认为 PAUSE_STATE.POPUP |
javascript
GameHelper.GameStatistics.ContinueGame(50, "cg");
游戏复活时调用
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
iScores | number | -1 | 否 | 复活时的分数。如果有分数概念则根据策划要求上传,没有则不传 |
javascript
GameHelper.GameStatistics.AliveGame(123);
跳过关卡时调用
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
iScores | number | -1 | 否 | 跳关时的分数。如果有分数概念则根据策划要求上传,没有则不传 |
javascript
GameHelper.GameStatistics.SkipGame(123);
游戏成功时调用
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
iScores | number | -1 | 否 | 游戏成功时的分数。如果有分数概念则根据策划要求上传,没有则不传 |
javascript
GameHelper.GameStatistics.SuccessGame(123);
游戏失败时调用
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
iScores | number | -1 | 否 | 游戏失败时的分数。如果有分数概念则根据策划要求上传,没有则不传 |
javascript
GameHelper.GameStatistics.FailGame(123);
游戏平局时调用
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
iScores | number | -1 | 否 | 游戏平局时的分数。如果有分数概念则根据策划要求上传,没有则不传 |
javascript
GameHelper.GameStatistics.DrawGame(123);
游戏进度变化时调用,这个根据策划要求调用,当游戏进科程中有游戏进度相关的数据需要上报时可以使用
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
opt | param | -1 | 否 | 游戏平局时的分数。如果有分数概念则根据策划要求上传,没有则不传 |
param
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
mode_level_progress | number | / | 否 | 游戏关卡进度,该数据含义不固定,根据策划需求定义 |
mode_level_score | number | / | 否 | 游戏分数变化,该数据含义不固定,根据策划需求定义 |
javascript
GameHelper.GameStatistics.ProgressGame({
mode_level_progress: 50,
mode_level_score: 6,
});
游戏犯规时调用
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
iScores | number | -1 | 否 | 游戏犯规时的分数。如果有分数概念则根据策划要求上传,没有则不传 |
javascript
GameHelper.GameStatistics.FoulGame(123);
道具统计
仅在游戏有道具系统,且与对接同事确认后需要进行统计时,才进行调用。
每个道具需要区分清楚,它是否为一次性物品(用了就消耗了,导致其数量减少,例如货币),如果无数量限制则为永久物品。
物品类型枚举:
EItemType1_CURRENCY:货币
EItemType1_PROP:道具
EItemType1_SKIN:皮肤
获取物品时调用。
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
iItemId | number | / | 是 | 物品 id,最好游戏中有一个枚举来列举所有的物品 |
iItemType1 | EItemType1 | / | 是 | 物品枚举, 必须使用 EItemType1 枚举 |
iCount | number | / | 是 | 物品变化量,是一个>=0 的值。需要注意的是即使消耗物品导致了物品数量减少,iCountt 也应该是>-1 的。 |
iRemainCount | number | / | 是 | 物品变化后的数据,是一个>-1 的值 |
sItemGame | number | / | 是 | 获取物品的玩法名称 |
iItemType2 | number | / | 否 | 物品类型 2,根据需求提供,不需要可以传-1 |
iItemType3 | number | / | 否 | 物品类型 2,根据需求提供,不需要可以传-1 |
示例:开心拍一拍的金币,其物品 id 为 1。过去为 100,看了视频广告获得了 100 枚,现在为 200 枚。
javascript
GameHelper.GameStatistics.GetItem(1, GameHelper.GameStatistics.EItemType1.EItemType1_CURRENCY, 100, 200, "KXPYP");
玩家消耗(有次数限制的)物品时调用
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
iItemId | number | / | 是 | 物品 id,最好游戏中有一个枚举来列举所有的物品 |
iItemType1 | EItemType1 | / | 是 | 物品枚举, 必须使用 EItemType1 枚举 |
iCount | number | / | 是 | 物品变化量,是一个>=0 的值。需要注意的是即使消耗物品导致了物品数量减少,iCount 也应该是>-1 的。 |
iRemainCount | number | / | 是 | 物品变化后的数据,是一个>-1 的值 |
sItemGame | number | / | 是 | 获取物品的玩法名称 |
iItemType2 | number | / | 否 | 物品类型 2,根据需求提供,不需要可以传-1 |
iItemType3 | number | / | 否 | 物品类型 2,根据需求提供,不需要可以传-1 |
示例:开心拍一拍的金币,其物品 id 为 1。现在为 200 枚,重试道具花费 150 枚,此时还剩 50 枚。
javascript
GameHelper.GameStatistics.CostItem(1, GameHelper.GameStatistics.EItemType1.EItemType1_CURRENCY, 150, 50, "KXPYP");
玩家使用(无次数限制的)物品时调用
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
iItemId | number | / | 是 | 物品 id,最好游戏中有一个枚举来列举所有的物品 |
iItemType1 | EItemType1 | / | 是 | 物品枚举, 必须使用 EItemType1 枚举 |
sItemGame | number | / | 是 | 获取物品的玩法名称 |
iItemType2 | number | / | 否 | 物品类型 2,根据需求提供,不需要可以传-1 |
iItemType3 | number | / | 否 | 物品类型 2,根据需求提供,不需要可以传-1 |
示例:开心拍一拍解锁了一款皮肤,玩家可不限次使用,玩家换上了该皮肤
javascript
GameHelper.GameStatistics.UseItem(1, GameHelper.GameStatistics.EItemType1.EItemType1_SKIN, "KXPYP");
引导统计
仅在游戏有引导系统,且与对接同事确认后需要进行统计时,才进行调用。一般引导分为:开始、阶段步骤、结束三个阶段,请依次调用GuideStart
、GuideStep
、GuideOver
接口即可。
引导开始时调用
javascript
GameHelper.GameStatistics.GuideStart();
引导进度每次发生变化时调用。引导的进度编号,具体含义和策划确定
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
guide_id | number | \ | 是 | 引导的进度编号,具体含义和策划确定 |
javascript
GameHelper.GameStatistics.GuideStep(1);
GameHelper.GameStatistics.GuideStep(2);
引导结束时调用
javascript
GameHelper.GameStatistics.GuideOver();
活动统计
仅在游戏有活动系统,且与对接同事确认后需要进行统计时,才进行调用。
活动类型枚举:
UNLOCK
START
SUCCESS
FAIL
RESET
GIVEUP
REWARD
COMPLETE
WARMUP
ENTER
处理活动的唯一接口.根据第一个参数 type 来区分类别
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
type | EActivityType | / | 是 | 活动类型,必须使用EActivityType 枚举 |
sActivityName | string | / | 是 | 活动名 |
sActivityMode | string | / | 是 | 活动模块,注意和玩法中的 mode 没有直接关联 |
iActivityStepOld | number | / | 否 | 变化前的进度 |
iActivityStepNew | number | / | 否 | 变化后的进度 |
sActivityParam | string | / | 否 | 活动参数 |
javascript
GameHelper.GameStatistics.HandleActivity(GameHelper.GameStatistics.EActivityType.START, "actName", "actMode");
养成统计
仅在游戏有养成系统,且与对接同事确认后需要进行统计时,才进行调用。
养成类型枚举:
TRAIL:试用
UNLOCK:解锁
LEVELUP:升级
USE:使用
处理养成的唯一接口. 根据第一个参数 type 来区分类别
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
type | EDevelopType | / | 是 | 养成类型,必须使用EDevelopType 枚举 |
develop_type | string | / | 是 | 养成一级分类,可自定义命名 |
develop_lv | number | / | 是 | 养成后等级 |
develop_cost | string | / | 是 | 养成消耗类型 |
develop_type2 | string | / | 否 | 养成二级分类,可自定义命名 |
develop_type3 | string | / | 否 | 养成三级分类,可自定义命名 |
javascript
GameHelper.GameStatistics.HandleDevelop(GameHelper.GameStatistics.EDevelopType.UNLOCK, "test", 0, 0);
点我快速对接


