Commit 0ca0c59aa8adf964c863912913bbafcac4561f3f

Authored by 小川 费
1 parent c7e4d875
Exists in master

加入模块阅览

SUMMARY.md
1 1 # Summary
2 2 ## SDK入门
3   -* [SDK简介✔️](intro.md)
4   -* [SDK下载✔️](download.md)
5   -* [安装步骤️️️️✔️](install.md)
  3 +* [SDK简介](intro.md)
  4 +* [SDK下载](download.md)
  5 +* [安装步骤️️️️](install.md)
6 6  
7 7 ## SDK手册
8 8 * [模块概览](modules.md)
9 9  
10 10 * [统计模块](stat.md)
11   - * [启动注册打点️✔️](stat_active.md)
12   - * [关卡分析打点️️✔️](stat_level.md)
13   - * [自定义事件打点✔️](stat_event.md)
14   - * [交叉推广位✔️](stat_ads.md)
15   -* [分享视频模块✔️](share.md)
16   -* [配置参数模块️✔️](online.md)
17   -* [多平台接口模块](platform.md)
18   - * [支付打点](platform_pay.md)
19   - * [授权按钮](platform_common.md#userbtn)
20   - * [检测自动更新](platform_common.md#autoupdate)
21   - * [打开客服消息](platform_common.md#service)
22   - * [震动接口](platform_common.md#vibrate)
23   - * [其他接口](platform_common.md#other)
24   -* [数据模块✔️](data.md)
  11 + * [启动注册打点️](stat_active.md)
  12 + * [关卡分析打点️️](stat_level.md)
  13 + * [自定义事件打点](stat_event.md)
  14 + * [交叉推广位](stat_ads.md)
  15 +* [分享视频模块](share.md)
  16 +* [配置参数模块️](online.md)
  17 +* [多平台接口模块❎](platform.md)
  18 + * [支付打点❎](platform_pay.md)
  19 + * [授权按钮❎](platform_common.md#userbtn)
  20 + * [检测自动更新❎](platform_common.md#autoupdate)
  21 + * [打开客服消息❎](platform_common.md#service)
  22 + * [震动接口❎](platform_common.md#vibrate)
  23 + * [其他接口❎](platform_common.md#other)
  24 +* [数据模块](data.md)
25 25 * [事件模块](event.md)
26   -* [FAQ](faq.md)
27 26 \ No newline at end of file
  27 +* [FAQ❎](faq.md)
28 28 \ No newline at end of file
... ...
data.md
... ... @@ -13,18 +13,18 @@
13 13  
14 14 | **名称** | **功能说明** |
15 15 | ------------------------------- | ------------------------------------------------------------ |
16   -| PCSDK.data.GameId | 获取游戏的GameId |
17   -| PCSDK.data.ChannelId| 获取游戏渠道ID |
18   -| PCSDK.data.UserId | 获取用户ID|
19   -| PCSDK.data.RegTime | 获取用户注册时间 |
  16 +| PCSDK.data.GameId | 获取游戏的GameId,来源于config.js配置的GameId |
  17 +| PCSDK.data.ChannelId| 获取游戏渠道ID,来源于config.js配置的ChannelId |
  18 +| PCSDK.data.UserId | 获取用户ID,setLoginInfo传递的openId的值|
  19 +| PCSDK.data.RegTime | 获取用户注册时间,setLoginInfo传递的regTime的值 |
20 20 | PCSDK.data.ShareId | 获取进入游戏的分享会话ID,不是从分享会话进入ShareId为0 |
21 21 | PCSDK.data.ShareKey | 接入SDK的分享视频模块后,从分享会话进去游戏,获取到分享会话的分享key |
22 22 | PCSDK.data.Platform | 获取游戏运行平台环境,字符串形式:devtools、ios、android。devtools(开发者调试工具)、ios(苹果设备)、android(安卓设备) |
23 23 | PCSDK.data.SystemId | 获取游戏运行平台环境,整数形式:0、1。0(开发者调试工具或ios)、1(安卓设备) |
24 24 | PCSDK.data.QueryUserInviteUid | 获取此次分享会话进入游戏,分享来源者用户ID |
25   -| PCSDK.data.IsCross | 获取是否显示/隐藏交叉悬浮框推广位,true:显示,false:隐藏 |
26   -| PCSDK.data.IsDrawer | 获取是否显示/隐藏交叉抽屉推广位,true:显示,false:隐藏 |
27   -| PCSDK.data.IsGuessLike | 获取是否显示/隐藏交叉猜你喜欢推广位,true:显示,false:隐藏 |
  25 +| PCSDK.data.IsCross | 获取是否显示/隐藏悬浮框交叉推广位,true:显示,false:隐藏 |
  26 +| PCSDK.data.IsDrawer | 获取是否显示/隐藏抽屉式交叉推广位,true:显示,false:隐藏 |
  27 +| PCSDK.data.IsGuessLike | 获取是否显示/隐藏猜你喜欢交叉推广位,true:显示,false:隐藏 |
28 28  
29 29  
30 30  
... ... @@ -60,7 +60,7 @@
60 60 PCSDK.data.UserId: number | string
61 61 ```
62 62  
63   - 定义:获取用户ID,该值来源于[启动打点setLogind](stat_active.md#stat_login)设置的userId
  63 + 定义:获取用户ID,该值来源于[启动打点setLoginInfo](stat_active.md#stat_login)设置的openId
64 64  
65 65 示例:
66 66  
... ... @@ -73,7 +73,7 @@
73 73 PCSDK.data.RegTime: number
74 74 ```
75 75  
76   - 定义:获取用户第一次创角的时间戳,该值来源于[启动打点setLogind](stat_active.md#stat_login)设置的regTime
  76 + 定义:获取用户第一次创角的时间戳,该值来源于[启动打点setLoginInfo](stat_active.md#stat_login)设置的regTime
77 77  
78 78 示例:
79 79  
... ...
event.md
1 1 # 事件模块
2   -事件是一种观察者的设计模式,对象可以发布事件,然后其它对象可以观察该对象,等待这些时刻到来并通过运行代码来响应。噗嗤SDK中。
  2 +事件是一种观察者的设计模式,对象可以发布事件,然后其它对象可以观察该对象,等待这些时刻到来并通过运行代码来响应。
3 3  
  4 +事件本质是一种通信方式,是一种消息,只有存在多个对象,多个模块的情况下,才有可能需要用到事件进行通信。
  5 +
  6 +有时我们还需要自定义事件以满足特定的需求,比如小模块之间的通信,传递信息等。开发者游戏项目和PCSDK属于两个不同的模块,PCSDK会在内部处理一些业务,想要把这些处理结果告知开发者,那么自定义事件就派上用场了。
  7 +
  8 +例如:
  9 +
  10 +SDK中对微信小游戏的生命周期onShow/onHide处理后,会发送一个'app.show'/'app.hide'事件
... ...
images/sdk_000.png 0 → 100644

263 KB

images/sdk_028.png 0 → 100644

81.5 KB

modules.md
1   -# 噗嗤SDK
2   -PCSDK(噗嗤SDK)是一款封装了微信小游戏、QQ小游戏平台常用api接口和用户行为数据上报的一款产品。
3   -PCSDK上报小游戏用户所触发的各种行为数据到噗嗤管理后台,后台对数据进行统计分析后多样化的展示数据统计。
  1 +# 模块概览
  2 +下图是PCSDK的概要思维导图,SDK所提供的所有功能都在下图列出<font color="red">(点击查看大图)</font>:
4 3  
5   -**PCSDK提供的模块功能:**
  4 +![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_000.png "🔍点击查看大图")
6 5  
7   -- 统计模块
8   -- 数据模块
9   -- 分享视频模块
10   -- 在线参数模块
11   -- 跨平台功能模块
12 6  
  7 +[统计模块:stat](stat.md)
13 8  
  9 + 启动注册打点
14 10  
15   -# 噗嗤管理后台
16   -噗嗤管理后台统计sdk中上报的各项数据进行分析;管理各种sdk中所需要的配置信息:分享/视频配置、配置参数(在线参数配置)、噗嗤游戏导出广告配置、用户事件行为配置。
  11 + setLoginInfo:设置登录信息
17 12  
18   -**友情提示:**
  13 + loadingFinish:资源加载完成
19 14  
20   -- **之后文案中后台指的是噗嗤管理后台,而不是微信小程序/小游戏后台。**
21   -- **后台登录账号获取,需提供手机信息给我方运营,运营创建后台登录账号、密码后反馈;登录后台即可使用后台提供的各项服务**
  15 + active:添加注册活跃用户
22 16  
  17 + 关卡分析打点
23 18  
  19 + logLevelRelive:游戏关卡复活上报
24 20  
25   -**噗嗤后台概览:**
26   -## ![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_006.png "🔍点击查看大图")
  21 + logLevelHide:游戏关卡页onHide上报
27 22  
  23 + logLevelFail:游戏关卡失败上报
28 24  
  25 + logLevelWin:游戏关卡成功上报
29 26  
30   -**后台提供数据分析功能:**
  27 + logMerge:游戏2合1合成最高等级上报
31 28  
32   -- 注册/活跃用户,在线时长实时数据分享。
33   -- 分享数据分析
34   -- 用户事件行为分析
35   -- 渠道数据统计分析
  29 + 交叉推广位:悬浮框、抽屉式、猜你喜欢
36 30  
  31 + bannerList:获取对应类型交叉推广位列表
37 32  
  33 + bannerNavigateTo:点击跳转到对应appid的游戏
38 34  
39   -**后台提供配置相关功能:**
  35 + addExposure:交叉推广位一条或者多条广告展示,添加曝光数据
40 36  
41   -- 分享视频配置
42   -- 动态配置参数
  37 + 自定义事件
43 38  
  39 + event:自定义打点事件
44 40  
  41 +[数据模块:data](data.md)
45 42  
46   -# 更多:
47   -- 快速接入,请详读 [安装步骤](install.md)
  43 + GameId:获取游戏的GameId,来源于config.js配置的GameId
48 44  
  45 + ChannelId:获取游戏渠道ID,来源于config.js配置的ChannelId
49 46  
  47 + UserId:获取用户ID,来源于setLoginInfo传递的openId的值
50 48  
51   -- 遇到问题可以查看 [FAQ](faq.md)
52 49 \ No newline at end of file
  50 + RegTime:获取用户注册时间,来源于setLoginInfo传递的regTime的值
  51 +
  52 + ShareId:获取进入游戏的分享会话ID,不是从分享会话进入ShareId为0。需接shareVideo模块
  53 +
  54 + ShareKey:接入SDK的分享视频模块后,从分享会话进去游戏,获取到分享会话的分享key
  55 +
  56 + Platform:获取游戏运行平台环境,字符串形式:devtools、ios、android。devtools(开发者调试工具)、ios(苹果设备)、android(安卓设备)
  57 +
  58 + SystemId:获取游戏运行平台环境,整数形式:0、1。0(开发者调试工具或ios)、1(安卓设备)
  59 +
  60 + QueryUserInviteUid:获取此次分享会话进入游戏,分享来源者用户ID,来源query的参数invite_user_uid
  61 +
  62 + IsCross:获取是否显示/隐藏悬浮框交叉推广位,true:显示,false:隐藏
  63 +
  64 + IsDrawer:获取是否显示/隐藏抽屉式交叉推广位,true:显示,false:隐藏
  65 +
  66 + IsGuessLike:获取是否显示/隐藏猜你喜欢交叉推广位,true:显示,false:隐藏
  67 +
  68 +[配置参数模块:online](online.md)
  69 +
  70 + updateOnlineConfig:拉取后台配置的配置参数数据,可代码中手动调用,也可SDK自动拉取
  71 +
  72 + getParamsInt:根据在线参数key获取number类型参数值
  73 +
  74 + getParamsObj:根据在线参数key获取object类型参数值
  75 +
  76 + getParamsString:根据在线参数key获取string类型参数值
  77 +
  78 +事件模块:event
  79 +
  80 +多平台接口模块:platform
  81 +
  82 +[分享视频模块:shareVideo](share.md)
  83 +
  84 + share:普通分享,不需要处理回调的场景
  85 +
  86 + dispatch:分享视频分发入口,传入功能点英文命名的分享/视频key
  87 +
  88 + getShareVideoType:根据功能点在后台配置的分享/视频key,得到此功能点分享开关
... ...
stat.md
... ... @@ -11,11 +11,11 @@
11 11 #### **后台使用**
12 12  
13 13 完成启动注册打点后,登录后台->头部tab切换到【游戏数据】->【产品分析】->【实时数据】即可实时查看用户活跃、新增等信息:
14   -![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_008.pn "🔍点击查看大图")
  14 +![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_008.png)
15 15  
16 16 点击【注册转化】可查看列表式显示新增、注册、加载完成等详细信息:
17 17  
18   -![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_009.png "🔍点击查看大图")
  18 +![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_009.png)
19 19  
20 20  
21 21  
... ... @@ -25,31 +25,74 @@
25 25  
26 26 | **名称** | **功能说明** |
27 27 | ------------------------ | ------------------------------------------------------------ |
28   -| PCSDK.stat.loadingFinish | 加载游戏资源完成时打点,不是微信代码包白屏加载完成,游戏loading自身cdn资源加载完成调用 |
29   -| PCSDK.stat.setLogind | 设置sdk必须要使用的用户id、第一次创建角色的注册时间,游戏接入方登录游戏服务器后调用 |
30   -| PCSDK.stat.active | 用户活跃/新增注册上报,切记在setLogind设置需要的信息过后使用(不限于使用位置),不然会导致新增注册数据统计异常 |
  28 +| PCSDK.stat.setLoginInfo | 设置SDK必须要使用的openId、第一次创建角色的注册时间(时间戳转换,单位秒),游戏接入方登录游戏服务器后调用 |
  29 +| PCSDK.stat.loadingFinish | 加载游戏资源完成时打点,例如:游戏加载完成游戏ui界面图、json资源等(不是微信代码包白屏加载完成) |
  30 +| PCSDK.stat.active | 用户活跃/新增注册上报,切记在loadingFinish完成后调用,不然会导致新增注册数据统计异常 |
31 31  
32 32  
33 33  
  34 +接入流程图:
34 35  
  36 +![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_028.png)
35 37  
  38 +1. **setLoginInfo**
  39 + <div id="stat_login"></div>
  40 + ```javascript
  41 + PCSDK.stat.setLoginInfo( data: object ): void
  42 + ```
36 43  
  44 + 定义:游戏成功登录到服务器,获取到openId和用户信息:<font color="#FF0000">openId和用户第一次注册的时间(时间戳转换,单位秒),设置SDK必需的用户信息</font>
  45 +
  46 + 参数:
  47 +
  48 + ```javascript
  49 + data: object
  50 +{
  51 + openId: string 必传,openId
  52 + regTime: number 必传,用户第一次创建角色的注册时间(时间戳转换,单位秒)
  53 + }
  54 + ```
  55 + 返回值:
  56 +
  57 + ```javascript
  58 + 无
  59 + ```
  60 +
  61 + 示例:游戏登录游戏服务器后,获取到用户openId和用户第一次创建角色的注册时间。
  62 + 该示例,只是模拟使用环境。
  63 +
  64 + ```javascript
  65 + // 发起登录请求成功后,得到用户信息:user_openid、user_reg_time,调用setLoginInfo设置SDK必需的用户信息。
  66 + Api.login().then( data => {
  67 + let { user_openid, user_reg_time } = data;
  68 + PCSDK.stat.setLogind({
  69 + openId: user_openid, // openId
  70 + regTime: user_reg_time // 用户第一次注册时间,时间戳,单位秒
  71 + });
  72 + });
  73 + ```
37 74  
38   -1. **loadingFinish**
  75 +2. **loadingFinish**
39 76  
40 77 ```javascript
41   - PCSDK.stat.loadingFinish(): void
  78 + PCSDK.stat.loadingFinish(): Promise<any>
42 79 ```
43 80  
44   - 定义:加载游戏加载资源完成时打点
  81 + 定义:加载游戏资源完成时打点,例如:游戏加载完成游戏ui界面图、json资源等(不是微信代码包白屏加载完成)
45 82  
46 83 参数:
47 84  
48 85 ```
49 86
50 87 ```
  88 + 返回值:
  89 +
  90 + ```javascript
  91 + Promise<any>
  92 + Promise resolve 加载打点成功完成回调
  93 + ```
51 94  
52   - 示例:加载完成游戏主界面图片、json资源打点
  95 + 示例:
53 96  
54 97 ```javascript
55 98 private async initEnv() {
... ... @@ -65,7 +108,8 @@
65 108  
66 109 // 资源加载完成
67 110 private onLoadedMain() {
68   - PCSDK.stat.loadingFinish()
  111 + // 打点:loadingFinish
  112 + PCSDK.stat.loadingFinish();
69 113 }
70 114  
71 115 // 更新资源加载进度条
... ... @@ -74,37 +118,6 @@
74 118 this.skin.txtProgress.text = Math.floor(progress * 100) + '%';
75 119 }
76 120 ```
77   -
78   -2. **setLogind**
79   -
80   - ```javascript
81   - PCSDK.stat.setLogind( data: object ): void
82   - ```
83   -
84   - 定义:游戏登录完成,得到登录用户的用户id和用户第一次注册时间,设置SDK必需的用户信息
85   -
86   - 参数:
87   -
88   - ```javascript
89   - data: object
90   -{
91   - userId: string | number 必传, 用户唯一标识id
92   - regTime: number 必传,用户第一次创建角色的注册时间戳
93   - }
94   - ```
95   -
96   - 示例:游戏登录完成后,获取用户信息后进行打点(该示例,只是模拟使用环境)
97   -
98   - ```javascript
99   - // 发起登录请求,得到登录数据信息,调用setLogind设置SDK用户信息
100   - Api.login().then( data => {
101   - let { user_id, user_reg_time } = data;
102   - PCSDK.stat.setLogind({
103   - userId: data.user_id,
104   - regTime: data.user_reg_time
105   - });
106   - });
107   - ```
108 121  
109 122 3. **active**
110 123  
... ... @@ -112,49 +125,113 @@
112 125 PCSDK.stat.active(): void
113 126 ```
114 127  
115   - 定义:用户活跃/新增注册上报,切记在使用setLogind设置用户信息过后调用此接口,不然会导致新增注册数据统计异常
  128 + 定义:用户活跃/新增注册上报,切记在loadingFinish完成后调用,不然会导致新增注册数据统计异常。active有两种使用方式:
  129 + 1)、loadingFinish完成后,立即调用active,适用于轻度、休闲游戏。
  130 +
  131 + 2)、loadingFinish,不调用active,在其他界面开始游戏 or 创建角色完成后再调用,适用于重度游戏。
116 132  
117 133 参数:
118 134  
119 135 ```javascript
120 136
121 137 ```
  138 + 返回值:
122 139  
123   - 示例:游戏登录完成后,获取用户信息后进行打点(该示例,只是模拟该接口使用环境)
  140 + ```javascript
  141 + void
  142 + 无
  143 + ```
  144 +
  145 + 示例:
124 146  
125 147 ```javascript
126   - // 使用场景1:发起登录请求,得到用户数据信息,调用setLogind设置SDK用户信息后立即调用active
127   - Api.login().then( data => {
128   - let { user_id, user_reg_time } = data;
129   - // 设置用户信息
130   - PCSDK.stat.setLogind({
131   - userId: data.user_id,
132   - regTime: data.user_reg_time
133   - });
134   - // 用户活跃注册打点
135   - PCSDK.stat.active();
136   - });
137   -
138   - // 使用场景2:发起登录请求,得到用户数据信息,调用setLogind设置SDK用户信息。在其他界面调用active
  148 + // 使用场景1:发起登录请求,得到用户数据信息,资源加载完成后跳转到其他界面,立即调用active
139 149 // 资源加载loading界面
140 150 class LoadingScene(){
141 151 constructor(){
  152 + // 登录
142 153 this.login();
  154 + // 加载资源
  155 + this.loadResouce();
143 156 }
144 157  
  158 + /**
  159 + * 登录
  160 + */
145 161 private login(){
146   - // 登录
147 162 Api.login().then( data => {
148   - let { user_id, user_reg_time } = data;
149   - // 设置用户信息
150   - PCSDK.stat.setLogind({
151   - userId: data.user_id,
152   - regTime: data.user_reg_time
  163 + let { user_openid, user_reg_time } = data;
  164 + // 打点:设置用户信息
  165 + PCSDK.stat.setLoginInfo({
  166 + openId: user_openid, // openId
  167 + regTime: user_reg_time // 用户第一次注册时间,时间戳,单位秒
153 168 });
  169 + });
  170 + }
  171 +
  172 + /**
  173 + * 加载资源
  174 + */
  175 + private loadResouce(){
  176 + LoaderManager.I.setCallback(this.onLoadedMain, this.onProgressMain, null, this).loadMain();
  177 + }
  178 +
  179 + /**
  180 + * 加载资源完成回调监听
  181 + */
  182 + private onLoadedMain(){
  183 + // 打点:加载资源完成
  184 + PCSDK.stat.loadingFinish().then( () => {
  185 + // 打点:用户活跃注册打点
  186 + PCSDK.stat.active();
  187 +
154 188 // 进入home主页场景
155 189 SceneManager.I.switchScene(HomeScene);
  190 + });
  191 + }
  192 + }
  193 +
  194 + // 使用场景2:发起登录请求,得到用户数据信息,资源加载完成后跳转到其他界面,在其他界面"开始游戏"调用active。
  195 + // 资源加载loading界面
  196 + class LoadingScene(){
  197 + constructor(){
  198 + // 登录
  199 + this.login();
  200 + // 加载资源
  201 + this.loadResouce();
  202 + }
  203 +
  204 + /**
  205 + * 登录
  206 + */
  207 + private login(){
  208 + Api.login().then( data => {
  209 + let { user_openid, user_reg_time } = data;
  210 + // 打点:设置用户信息
  211 + PCSDK.stat.setLoginInfo({
  212 + openId: user_openid, // openId
  213 + regTime: user_reg_time // 用户第一次注册时间,时间戳,单位秒
  214 + });
156 215 });
157 216 }
  217 +
  218 + /**
  219 + * 加载资源
  220 + */
  221 + private loadResouce(){
  222 + LoaderManager.I.setCallback(this.onLoadedMain, this.onProgressMain, null, this).loadMain();
  223 + }
  224 +
  225 + /**
  226 + * 加载资源完成回调监听
  227 + */
  228 + private onLoadedMain(){
  229 + // 打点:加载资源完成
  230 + PCSDK.stat.loadingFinish().then( () => {
  231 + // 进入home主页场景
  232 + SceneManager.I.switchScene(HomeScene);
  233 + });
  234 + }
158 235 }
159 236  
160 237 // Home页面
... ... @@ -163,9 +240,13 @@
163 240 this.btnStarGame.on('click', this.onGame, this);
164 241 }
165 242  
  243 + /**
  244 + * 按钮点击开始游戏
  245 + */
166 246 private onGame(){
167   - // 用户活跃注册打点
  247 + // 打点:用户活跃注册打点
168 248 PCSDK.stat.active();
  249 +
169 250 // 进入游戏页面
170 251 SceneManager.I.switchScene(GameScene);
171 252 }
... ...
stat_active.md
... ... @@ -25,29 +25,72 @@
25 25  
26 26 | **名称** | **功能说明** |
27 27 | ------------------------ | ------------------------------------------------------------ |
28   -| PCSDK.stat.loadingFinish | 加载游戏资源完成时打点,不是微信代码包白屏加载完成。例如:游戏加载完成游戏ui界面图、json资源等 |
29   -| PCSDK.stat.setLogind | 设置SDK必须要使用的用户id、第一次创建角色的注册时间(时间戳转换,单位秒),游戏接入方登录游戏服务器后调用 |
30   -| PCSDK.stat.active | 用户活跃/新增注册上报,切记在setLogind设置需要的信息过后使用(设置setLogind后此api不限于使用位置),不然会导致新增注册数据统计异常 |
  28 +| PCSDK.stat.setLoginInfo | 设置SDK必须要使用的openId、第一次创建角色的注册时间(时间戳转换,单位秒),游戏接入方登录游戏服务器后调用 |
  29 +| PCSDK.stat.loadingFinish | 加载游戏资源完成时打点,例如:游戏加载完成游戏ui界面图、json资源等(不是微信代码包白屏加载完成) |
  30 +| PCSDK.stat.active | 用户活跃/新增注册上报,切记在loadingFinish完成后调用,不然会导致新增注册数据统计异常 |
31 31  
32 32  
33 33  
  34 +接入流程图:
34 35  
  36 +![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_028.png)
35 37  
  38 +1. **setLoginInfo**
  39 + <div id="stat_login"></div>
  40 + ```javascript
  41 + PCSDK.stat.setLoginInfo( data: object ): void
  42 + ```
36 43  
  44 + 定义:游戏成功登录到服务器,获取到openId和用户信息:<font color="#FF0000">openId和用户第一次注册的时间(时间戳转换,单位秒),设置SDK必需的用户信息</font>
  45 +
  46 + 参数:
  47 +
  48 + ```javascript
  49 + data: object
  50 +{
  51 + openId: string 必传,openId
  52 + regTime: number 必传,用户第一次创建角色的注册时间(时间戳转换,单位秒)
  53 + }
  54 + ```
  55 + 返回值:
  56 +
  57 + ```javascript
  58 + 无
  59 + ```
  60 +
  61 + 示例:游戏登录游戏服务器后,获取到用户openId和用户第一次创建角色的注册时间。
  62 + 该示例,只是模拟使用环境。
  63 +
  64 + ```javascript
  65 + // 发起登录请求成功后,得到用户信息:user_openid、user_reg_time,调用setLoginInfo设置SDK必需的用户信息。
  66 + Api.login().then( data => {
  67 + let { user_openid, user_reg_time } = data;
  68 + PCSDK.stat.setLogind({
  69 + openId: user_openid, // openId
  70 + regTime: user_reg_time // 用户第一次注册时间,时间戳,单位秒
  71 + });
  72 + });
  73 + ```
37 74  
38   -1. **loadingFinish**
  75 +2. **loadingFinish**
39 76  
40 77 ```javascript
41   - PCSDK.stat.loadingFinish(): void
  78 + PCSDK.stat.loadingFinish(): Promise<any>
42 79 ```
43 80  
44   - 定义:加载游戏资源完成时打点,不是微信代码包白屏加载完成。例如:游戏加载完成游戏ui界面图、json资源等
  81 + 定义:加载游戏资源完成时打点,例如:游戏加载完成游戏ui界面图、json资源等(不是微信代码包白屏加载完成)
45 82  
46 83 参数:
47 84  
48 85 ```
49 86
50 87 ```
  88 + 返回值:
  89 +
  90 + ```javascript
  91 + Promise<any>
  92 + Promise resolve 加载打点成功完成回调
  93 + ```
51 94  
52 95 示例:
53 96  
... ... @@ -75,37 +118,6 @@
75 118 this.skin.txtProgress.text = Math.floor(progress * 100) + '%';
76 119 }
77 120 ```
78   -
79   -2. **setLogind**
80   - <div id="stat_login"></div>
81   - ```javascript
82   - PCSDK.stat.setLogind( data: object ): void
83   - ```
84   -
85   - 定义:游戏成功登录到服务器后得到用户信息:<font color="#FF0000">用户id和用户第一次注册时间(时间戳转换,单位秒),设置SDK必需的用户信息</font>
86   -
87   - 参数:
88   -
89   - ```javascript
90   - data: object
91   -{
92   - userId: string | number 必传,用户唯一标识id
93   - regTime: number 必传,用户第一次创建角色的注册时间(时间戳转换,单位秒)
94   - }
95   - ```
96   -
97   - 示例:游戏登录游戏服务器后,获取用户信息(用户id和用户第一次注册时间)后进行打点。该示例,只是模拟使用环境。
98   -
99   - ```javascript
100   - // 发起登录请求成功后,得到用户信息:user_id、user_reg_time,调用setLogind设置SDK必需的用户信息。
101   - Api.login().then( data => {
102   - let { user_id, user_reg_time } = data;
103   - PCSDK.stat.setLogind({
104   - userId: data.user_id,
105   - regTime: data.user_reg_time // 用户第一次注册时间,时间戳,单位秒
106   - });
107   - });
108   - ```
109 121  
110 122 3. **active**
111 123  
... ... @@ -113,49 +125,113 @@
113 125 PCSDK.stat.active(): void
114 126 ```
115 127  
116   - 定义:用户活跃/新增注册上报,切记在使用setLogind设置用户信息后调用此接口,不然会导致新增注册数据统计异常
  128 + 定义:用户活跃/新增注册上报,切记在loadingFinish完成后调用,不然会导致新增注册数据统计异常。active有两种使用方式:
  129 + 1)、loadingFinish完成后,立即调用active,适用于轻度、休闲游戏。
  130 +
  131 + 2)、loadingFinish,不调用active,在其他界面开始游戏 or 创建角色完成后再调用,适用于重度游戏。
117 132  
118 133 参数:
119 134  
120 135 ```javascript
121 136
122 137 ```
  138 + 返回值:
  139 +
  140 + ```javascript
  141 + void
  142 + 无
  143 + ```
123 144  
124 145 示例:
125 146  
126 147 ```javascript
127   - // 使用场景1:发起登录请求,得到用户信息,调用setLogind设置SDK用户信息后立即调用active
128   - Api.login().then( data => {
129   - let { user_id, user_reg_time } = data;
130   - // 设置用户信息
131   - PCSDK.stat.setLogind({
132   - userId: data.user_id, // 用户id
133   - regTime: data.user_reg_time // 用户第一次注册时间,时间戳,单位秒
134   - });
135   - // 用户活跃注册打点
136   - PCSDK.stat.active();
137   - });
138   -
139   - // 使用场景2:发起登录请求,得到用户数据信息,调用setLogind设置SDK用户信息。在其他界面调用active
  148 + // 使用场景1:发起登录请求,得到用户数据信息,资源加载完成后跳转到其他界面,立即调用active
140 149 // 资源加载loading界面
141 150 class LoadingScene(){
142 151 constructor(){
  152 + // 登录
143 153 this.login();
  154 + // 加载资源
  155 + this.loadResouce();
144 156 }
145 157  
  158 + /**
  159 + * 登录
  160 + */
146 161 private login(){
147   - // 登录
148 162 Api.login().then( data => {
149   - let { user_id, user_reg_time } = data;
150   - // 设置用户信息
151   - PCSDK.stat.setLogind({
152   - userId: data.user_id, // 用户id
153   - regTime: data.user_reg_time // 用户第一次注册时间,时间戳,单位秒
  163 + let { user_openid, user_reg_time } = data;
  164 + // 打点:设置用户信息
  165 + PCSDK.stat.setLoginInfo({
  166 + openId: user_openid, // openId
  167 + regTime: user_reg_time // 用户第一次注册时间,时间戳,单位秒
154 168 });
  169 + });
  170 + }
  171 +
  172 + /**
  173 + * 加载资源
  174 + */
  175 + private loadResouce(){
  176 + LoaderManager.I.setCallback(this.onLoadedMain, this.onProgressMain, null, this).loadMain();
  177 + }
  178 +
  179 + /**
  180 + * 加载资源完成回调监听
  181 + */
  182 + private onLoadedMain(){
  183 + // 打点:加载资源完成
  184 + PCSDK.stat.loadingFinish().then( () => {
  185 + // 打点:用户活跃注册打点
  186 + PCSDK.stat.active();
  187 +
155 188 // 进入home主页场景
156 189 SceneManager.I.switchScene(HomeScene);
  190 + });
  191 + }
  192 + }
  193 +
  194 + // 使用场景2:发起登录请求,得到用户数据信息,资源加载完成后跳转到其他界面,在其他界面"开始游戏"调用active。
  195 + // 资源加载loading界面
  196 + class LoadingScene(){
  197 + constructor(){
  198 + // 登录
  199 + this.login();
  200 + // 加载资源
  201 + this.loadResouce();
  202 + }
  203 +
  204 + /**
  205 + * 登录
  206 + */
  207 + private login(){
  208 + Api.login().then( data => {
  209 + let { user_openid, user_reg_time } = data;
  210 + // 打点:设置用户信息
  211 + PCSDK.stat.setLoginInfo({
  212 + openId: user_openid, // openId
  213 + regTime: user_reg_time // 用户第一次注册时间,时间戳,单位秒
  214 + });
157 215 });
158 216 }
  217 +
  218 + /**
  219 + * 加载资源
  220 + */
  221 + private loadResouce(){
  222 + LoaderManager.I.setCallback(this.onLoadedMain, this.onProgressMain, null, this).loadMain();
  223 + }
  224 +
  225 + /**
  226 + * 加载资源完成回调监听
  227 + */
  228 + private onLoadedMain(){
  229 + // 打点:加载资源完成
  230 + PCSDK.stat.loadingFinish().then( () => {
  231 + // 进入home主页场景
  232 + SceneManager.I.switchScene(HomeScene);
  233 + });
  234 + }
159 235 }
160 236  
161 237 // Home页面
... ... @@ -164,9 +240,13 @@
164 240 this.btnStarGame.on('click', this.onGame, this);
165 241 }
166 242  
  243 + /**
  244 + * 按钮点击开始游戏
  245 + */
167 246 private onGame(){
168   - // 用户活跃注册打点
  247 + // 打点:用户活跃注册打点
169 248 PCSDK.stat.active();
  249 +
170 250 // 进入游戏页面
171 251 SceneManager.I.switchScene(GameScene);
172 252 }
... ...
stat_ads.md
... ... @@ -8,7 +8,7 @@
8 8  
9 9 噗嗤游戏提供了3种类型的交叉推广位,后台可对交叉推广位进行配置管理,对交叉推广位各项指标分析查看。
10 10  
11   -**3种广告类型:悬浮框交叉推广位、抽屉式交叉推广位、猜你喜欢交叉推广位**
  11 +**3种广告类型:悬浮框交叉推广位、抽屉式交叉推广位、猜你喜欢交叉推广位,对应类型值为:40、70、50**
12 12  
13 13 1. 悬浮框交叉推广位,推荐位置:首页、结算页
14 14  
... ... @@ -86,7 +86,7 @@
86 86  
87 87 | **名称** | **功能说明** |
88 88 | --------------------------- | ------------------------------------------------------------ |
89   -| PCSDK.stat.bannerList | 根据类型获取对应类型交叉广告列表,目前SDK支持3种类型:40(交叉悬浮广告框)、70(交叉抽屉式广告位)、50(交叉猜你喜欢广告位) |
  89 +| PCSDK.stat.bannerList | 根据类型获取对应类型交叉推广位列表,目前SDK支持3种类型:40(悬浮框交叉推广位)、70(抽屉式交叉推广位)、50(猜你喜欢交叉推广位) |
90 90 | PCSDK.stat.bannerNavigateTo | 交叉推广位点击跳转到对应appid的游戏,该接口封装了小游戏的跳转功能(navigateToMiniProgram) |
91 91 | PCSDK.stat.addExposure | 交叉推广位一条或者多条广告展示,添加曝光数据,SDK内部会在onHide时候上报数据到后台 |
92 92  
... ...