Commit 0ca0c59aa8adf964c863912913bbafcac4561f3f

Authored by 小川 费
1 parent c7e4d875
Exists in master

加入模块阅览

1 # Summary 1 # Summary
2 ## SDK入门 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 ## SDK手册 7 ## SDK手册
8 * [模块概览](modules.md) 8 * [模块概览](modules.md)
9 9
10 * [统计模块](stat.md) 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 * [事件模块](event.md) 25 * [事件模块](event.md)
26 -* [FAQ](faq.md)  
27 \ No newline at end of file 26 \ No newline at end of file
  27 +* [FAQ❎](faq.md)
28 \ No newline at end of file 28 \ No newline at end of file
@@ -13,18 +13,18 @@ @@ -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 | PCSDK.data.ShareId | 获取进入游戏的分享会话ID,不是从分享会话进入ShareId为0 | 20 | PCSDK.data.ShareId | 获取进入游戏的分享会话ID,不是从分享会话进入ShareId为0 |
21 | PCSDK.data.ShareKey | 接入SDK的分享视频模块后,从分享会话进去游戏,获取到分享会话的分享key | 21 | PCSDK.data.ShareKey | 接入SDK的分享视频模块后,从分享会话进去游戏,获取到分享会话的分享key |
22 | PCSDK.data.Platform | 获取游戏运行平台环境,字符串形式:devtools、ios、android。devtools(开发者调试工具)、ios(苹果设备)、android(安卓设备) | 22 | PCSDK.data.Platform | 获取游戏运行平台环境,字符串形式:devtools、ios、android。devtools(开发者调试工具)、ios(苹果设备)、android(安卓设备) |
23 | PCSDK.data.SystemId | 获取游戏运行平台环境,整数形式:0、1。0(开发者调试工具或ios)、1(安卓设备) | 23 | PCSDK.data.SystemId | 获取游戏运行平台环境,整数形式:0、1。0(开发者调试工具或ios)、1(安卓设备) |
24 | PCSDK.data.QueryUserInviteUid | 获取此次分享会话进入游戏,分享来源者用户ID | 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,7 +60,7 @@
60 PCSDK.data.UserId: number | string 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,7 +73,7 @@
73 PCSDK.data.RegTime: number 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
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

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 \ No newline at end of file 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,得到此功能点分享开关
@@ -11,11 +11,11 @@ @@ -11,11 +11,11 @@
11 #### **后台使用** 11 #### **后台使用**
12 12
13 完成启动注册打点后,登录后台->头部tab切换到【游戏数据】->【产品分析】->【实时数据】即可实时查看用户活跃、新增等信息: 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,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 ```javascript 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 ```javascript 97 ```javascript
55 private async initEnv() { 98 private async initEnv() {
@@ -65,7 +108,8 @@ @@ -65,7 +108,8 @@
65 108
66 // 资源加载完成 109 // 资源加载完成
67 private onLoadedMain() { 110 private onLoadedMain() {
68 - PCSDK.stat.loadingFinish() 111 + // 打点:loadingFinish
  112 + PCSDK.stat.loadingFinish();
69 } 113 }
70 114
71 // 更新资源加载进度条 115 // 更新资源加载进度条
@@ -74,37 +118,6 @@ @@ -74,37 +118,6 @@
74 this.skin.txtProgress.text = Math.floor(progress * 100) + '%'; 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 3. **active** 122 3. **active**
110 123
@@ -112,49 +125,113 @@ @@ -112,49 +125,113 @@
112 PCSDK.stat.active(): void 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 ```javascript 135 ```javascript
120 136
121 ``` 137 ```
  138 + 返回值:
122 139
123 - 示例:游戏登录完成后,获取用户信息后进行打点(该示例,只是模拟该接口使用环境) 140 + ```javascript
  141 + void
  142 + 无
  143 + ```
  144 +
  145 + 示例:
124 146
125 ```javascript 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 // 资源加载loading界面 149 // 资源加载loading界面
140 class LoadingScene(){ 150 class LoadingScene(){
141 constructor(){ 151 constructor(){
  152 + // 登录
142 this.login(); 153 this.login();
  154 + // 加载资源
  155 + this.loadResouce();
143 } 156 }
144 157
  158 + /**
  159 + * 登录
  160 + */
145 private login(){ 161 private login(){
146 - // 登录  
147 Api.login().then( data => { 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 // 进入home主页场景 188 // 进入home主页场景
155 SceneManager.I.switchScene(HomeScene); 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 // Home页面 237 // Home页面
@@ -163,9 +240,13 @@ @@ -163,9 +240,13 @@
163 this.btnStarGame.on('click', this.onGame, this); 240 this.btnStarGame.on('click', this.onGame, this);
164 } 241 }
165 242
  243 + /**
  244 + * 按钮点击开始游戏
  245 + */
166 private onGame(){ 246 private onGame(){
167 - // 用户活跃注册打点 247 + // 打点:用户活跃注册打点
168 PCSDK.stat.active(); 248 PCSDK.stat.active();
  249 +
169 // 进入游戏页面 250 // 进入游戏页面
170 SceneManager.I.switchScene(GameScene); 251 SceneManager.I.switchScene(GameScene);
171 } 252 }
stat_active.md
@@ -25,29 +25,72 @@ @@ -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 ```javascript 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,37 +118,6 @@
75 this.skin.txtProgress.text = Math.floor(progress * 100) + '%'; 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 3. **active** 122 3. **active**
111 123
@@ -113,49 +125,113 @@ @@ -113,49 +125,113 @@
113 PCSDK.stat.active(): void 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 ```javascript 135 ```javascript
121 136
122 ``` 137 ```
  138 + 返回值:
  139 +
  140 + ```javascript
  141 + void
  142 + 无
  143 + ```
123 144
124 示例: 145 示例:
125 146
126 ```javascript 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 // 资源加载loading界面 149 // 资源加载loading界面
141 class LoadingScene(){ 150 class LoadingScene(){
142 constructor(){ 151 constructor(){
  152 + // 登录
143 this.login(); 153 this.login();
  154 + // 加载资源
  155 + this.loadResouce();
144 } 156 }
145 157
  158 + /**
  159 + * 登录
  160 + */
146 private login(){ 161 private login(){
147 - // 登录  
148 Api.login().then( data => { 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 // 进入home主页场景 188 // 进入home主页场景
156 SceneManager.I.switchScene(HomeScene); 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 // Home页面 237 // Home页面
@@ -164,9 +240,13 @@ @@ -164,9 +240,13 @@
164 this.btnStarGame.on('click', this.onGame, this); 240 this.btnStarGame.on('click', this.onGame, this);
165 } 241 }
166 242
  243 + /**
  244 + * 按钮点击开始游戏
  245 + */
167 private onGame(){ 246 private onGame(){
168 - // 用户活跃注册打点 247 + // 打点:用户活跃注册打点
169 PCSDK.stat.active(); 248 PCSDK.stat.active();
  249 +
170 // 进入游戏页面 250 // 进入游戏页面
171 SceneManager.I.switchScene(GameScene); 251 SceneManager.I.switchScene(GameScene);
172 } 252 }
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
8 8
9 噗嗤游戏提供了3种类型的交叉推广位,后台可对交叉推广位进行配置管理,对交叉推广位各项指标分析查看。 9 噗嗤游戏提供了3种类型的交叉推广位,后台可对交叉推广位进行配置管理,对交叉推广位各项指标分析查看。
10 10
11 -**3种广告类型:悬浮框交叉推广位、抽屉式交叉推广位、猜你喜欢交叉推广位** 11 +**3种广告类型:悬浮框交叉推广位、抽屉式交叉推广位、猜你喜欢交叉推广位,对应类型值为:40、70、50**
12 12
13 1. 悬浮框交叉推广位,推荐位置:首页、结算页 13 1. 悬浮框交叉推广位,推荐位置:首页、结算页
14 14
@@ -86,7 +86,7 @@ @@ -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 | PCSDK.stat.bannerNavigateTo | 交叉推广位点击跳转到对应appid的游戏,该接口封装了小游戏的跳转功能(navigateToMiniProgram) | 90 | PCSDK.stat.bannerNavigateTo | 交叉推广位点击跳转到对应appid的游戏,该接口封装了小游戏的跳转功能(navigateToMiniProgram) |
91 | PCSDK.stat.addExposure | 交叉推广位一条或者多条广告展示,添加曝光数据,SDK内部会在onHide时候上报数据到后台 | 91 | PCSDK.stat.addExposure | 交叉推广位一条或者多条广告展示,添加曝光数据,SDK内部会在onHide时候上报数据到后台 |
92 92