From 0ca0c59aa8adf964c863912913bbafcac4561f3f Mon Sep 17 00:00:00 2001
From: 小川 费 <449111130@qq.com>
Date: Mon, 16 Sep 2019 20:50:12 +0800
Subject: [PATCH] 加入模块阅览
---
SUMMARY.md | 36 ++++++++++++++++++------------------
data.md | 18 +++++++++---------
event.md | 9 ++++++++-
images/sdk_000.png | Bin 0 -> 268977 bytes
images/sdk_028.png | Bin 0 -> 83443 bytes
modules.md | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------
stat.md | 207 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------
stat_active.md | 196 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------
stat_ads.md | 4 ++--
9 files changed, 382 insertions(+), 178 deletions(-)
create mode 100644 images/sdk_000.png
create mode 100644 images/sdk_028.png
diff --git a/SUMMARY.md b/SUMMARY.md
index 0831e69..c04d8e1 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -1,26 +1,26 @@
# Summary
## SDK入门
-* [SDK简介✔️](intro.md)
-* [SDK下载✔️](download.md)
-* [安装步骤️️️️✔️](install.md)
+* [SDK简介](intro.md)
+* [SDK下载](download.md)
+* [安装步骤️️️️](install.md)
## SDK手册
* [模块概览](modules.md)
* [统计模块](stat.md)
- * [启动注册打点️✔️](stat_active.md)
- * [关卡分析打点️️✔️](stat_level.md)
- * [自定义事件打点✔️](stat_event.md)
- * [交叉推广位✔️](stat_ads.md)
-* [分享视频模块✔️](share.md)
-* [配置参数模块️✔️](online.md)
-* [多平台接口模块](platform.md)
- * [支付打点](platform_pay.md)
- * [授权按钮](platform_common.md#userbtn)
- * [检测自动更新](platform_common.md#autoupdate)
- * [打开客服消息](platform_common.md#service)
- * [震动接口](platform_common.md#vibrate)
- * [其他接口](platform_common.md#other)
-* [数据模块✔️](data.md)
+ * [启动注册打点️](stat_active.md)
+ * [关卡分析打点️️](stat_level.md)
+ * [自定义事件打点](stat_event.md)
+ * [交叉推广位](stat_ads.md)
+* [分享视频模块](share.md)
+* [配置参数模块️](online.md)
+* [多平台接口模块❎](platform.md)
+ * [支付打点❎](platform_pay.md)
+ * [授权按钮❎](platform_common.md#userbtn)
+ * [检测自动更新❎](platform_common.md#autoupdate)
+ * [打开客服消息❎](platform_common.md#service)
+ * [震动接口❎](platform_common.md#vibrate)
+ * [其他接口❎](platform_common.md#other)
+* [数据模块](data.md)
* [事件模块](event.md)
-* [FAQ](faq.md)
\ No newline at end of file
+* [FAQ❎](faq.md)
\ No newline at end of file
diff --git a/data.md b/data.md
index 595d6df..4aedcd4 100644
--- a/data.md
+++ b/data.md
@@ -13,18 +13,18 @@
| **名称** | **功能说明** |
| ------------------------------- | ------------------------------------------------------------ |
-| PCSDK.data.GameId | 获取游戏的GameId |
-| PCSDK.data.ChannelId| 获取游戏渠道ID |
-| PCSDK.data.UserId | 获取用户ID|
-| PCSDK.data.RegTime | 获取用户注册时间 |
+| PCSDK.data.GameId | 获取游戏的GameId,来源于config.js配置的GameId |
+| PCSDK.data.ChannelId| 获取游戏渠道ID,来源于config.js配置的ChannelId |
+| PCSDK.data.UserId | 获取用户ID,setLoginInfo传递的openId的值|
+| PCSDK.data.RegTime | 获取用户注册时间,setLoginInfo传递的regTime的值 |
| PCSDK.data.ShareId | 获取进入游戏的分享会话ID,不是从分享会话进入ShareId为0 |
| PCSDK.data.ShareKey | 接入SDK的分享视频模块后,从分享会话进去游戏,获取到分享会话的分享key |
| PCSDK.data.Platform | 获取游戏运行平台环境,字符串形式:devtools、ios、android。devtools(开发者调试工具)、ios(苹果设备)、android(安卓设备) |
| PCSDK.data.SystemId | 获取游戏运行平台环境,整数形式:0、1。0(开发者调试工具或ios)、1(安卓设备) |
| PCSDK.data.QueryUserInviteUid | 获取此次分享会话进入游戏,分享来源者用户ID |
-| PCSDK.data.IsCross | 获取是否显示/隐藏交叉悬浮框推广位,true:显示,false:隐藏 |
-| PCSDK.data.IsDrawer | 获取是否显示/隐藏交叉抽屉推广位,true:显示,false:隐藏 |
-| PCSDK.data.IsGuessLike | 获取是否显示/隐藏交叉猜你喜欢推广位,true:显示,false:隐藏 |
+| PCSDK.data.IsCross | 获取是否显示/隐藏悬浮框交叉推广位,true:显示,false:隐藏 |
+| PCSDK.data.IsDrawer | 获取是否显示/隐藏抽屉式交叉推广位,true:显示,false:隐藏 |
+| PCSDK.data.IsGuessLike | 获取是否显示/隐藏猜你喜欢交叉推广位,true:显示,false:隐藏 |
@@ -60,7 +60,7 @@
PCSDK.data.UserId: number | string
```
- 定义:获取用户ID,该值来源于[启动打点setLogind](stat_active.md#stat_login)设置的userId
+ 定义:获取用户ID,该值来源于[启动打点setLoginInfo](stat_active.md#stat_login)设置的openId
示例:
@@ -73,7 +73,7 @@
PCSDK.data.RegTime: number
```
- 定义:获取用户第一次创角的时间戳,该值来源于[启动打点setLogind](stat_active.md#stat_login)设置的regTime
+ 定义:获取用户第一次创角的时间戳,该值来源于[启动打点setLoginInfo](stat_active.md#stat_login)设置的regTime
示例:
diff --git a/event.md b/event.md
index cc35b08..be02934 100644
--- a/event.md
+++ b/event.md
@@ -1,3 +1,10 @@
# 事件模块
-事件是一种观察者的设计模式,对象可以发布事件,然后其它对象可以观察该对象,等待这些时刻到来并通过运行代码来响应。噗嗤SDK中。
+事件是一种观察者的设计模式,对象可以发布事件,然后其它对象可以观察该对象,等待这些时刻到来并通过运行代码来响应。
+事件本质是一种通信方式,是一种消息,只有存在多个对象,多个模块的情况下,才有可能需要用到事件进行通信。
+
+有时我们还需要自定义事件以满足特定的需求,比如小模块之间的通信,传递信息等。开发者游戏项目和PCSDK属于两个不同的模块,PCSDK会在内部处理一些业务,想要把这些处理结果告知开发者,那么自定义事件就派上用场了。
+
+例如:
+
+SDK中对微信小游戏的生命周期onShow/onHide处理后,会发送一个'app.show'/'app.hide'事件
diff --git a/images/sdk_000.png b/images/sdk_000.png
new file mode 100644
index 0000000..7adad8b
Binary files /dev/null and b/images/sdk_000.png differ
diff --git a/images/sdk_028.png b/images/sdk_028.png
new file mode 100644
index 0000000..355ddab
Binary files /dev/null and b/images/sdk_028.png differ
diff --git a/modules.md b/modules.md
index e48c460..f4a8dbd 100644
--- a/modules.md
+++ b/modules.md
@@ -1,51 +1,87 @@
-# 噗嗤SDK
-PCSDK(噗嗤SDK)是一款封装了微信小游戏、QQ小游戏平台常用api接口和用户行为数据上报的一款产品。
-PCSDK上报小游戏用户所触发的各种行为数据到噗嗤管理后台,后台对数据进行统计分析后多样化的展示数据统计。
+# 模块概览
+下图是PCSDK的概要思维导图,SDK所提供的所有功能都在下图列出(点击查看大图):
-**PCSDK提供的模块功能:**
+
-- 统计模块
-- 数据模块
-- 分享视频模块
-- 在线参数模块
-- 跨平台功能模块
+[统计模块:stat](stat.md)
+ 启动注册打点
-# 噗嗤管理后台
-噗嗤管理后台统计sdk中上报的各项数据进行分析;管理各种sdk中所需要的配置信息:分享/视频配置、配置参数(在线参数配置)、噗嗤游戏导出广告配置、用户事件行为配置。
+ setLoginInfo:设置登录信息
-**友情提示:**
+ loadingFinish:资源加载完成
-- **之后文案中后台指的是噗嗤管理后台,而不是微信小程序/小游戏后台。**
-- **后台登录账号获取,需提供手机信息给我方运营,运营创建后台登录账号、密码后反馈;登录后台即可使用后台提供的各项服务**
+ active:添加注册活跃用户
+ 关卡分析打点
+ logLevelRelive:游戏关卡复活上报
-**噗嗤后台概览:**
-## 
+ logLevelHide:游戏关卡页onHide上报
+ logLevelFail:游戏关卡失败上报
+ logLevelWin:游戏关卡成功上报
-**后台提供数据分析功能:**
+ logMerge:游戏2合1合成最高等级上报
-- 注册/活跃用户,在线时长实时数据分享。
-- 分享数据分析
-- 用户事件行为分析
-- 渠道数据统计分析
+ 交叉推广位:悬浮框、抽屉式、猜你喜欢
+ bannerList:获取对应类型交叉推广位列表
+ bannerNavigateTo:点击跳转到对应appid的游戏
-**后台提供配置相关功能:**
+ addExposure:交叉推广位一条或者多条广告展示,添加曝光数据
-- 分享视频配置
-- 动态配置参数
+ 自定义事件
+ event:自定义打点事件
+[数据模块:data](data.md)
-# 更多:
-- 快速接入,请详读 [安装步骤](install.md)
+ GameId:获取游戏的GameId,来源于config.js配置的GameId
+ ChannelId:获取游戏渠道ID,来源于config.js配置的ChannelId
+ UserId:获取用户ID,来源于setLoginInfo传递的openId的值
-- 遇到问题可以查看 [FAQ](faq.md)
\ No newline at end of file
+ RegTime:获取用户注册时间,来源于setLoginInfo传递的regTime的值
+
+ ShareId:获取进入游戏的分享会话ID,不是从分享会话进入ShareId为0。需接shareVideo模块
+
+ ShareKey:接入SDK的分享视频模块后,从分享会话进去游戏,获取到分享会话的分享key
+
+ Platform:获取游戏运行平台环境,字符串形式:devtools、ios、android。devtools(开发者调试工具)、ios(苹果设备)、android(安卓设备)
+
+ SystemId:获取游戏运行平台环境,整数形式:0、1。0(开发者调试工具或ios)、1(安卓设备)
+
+ QueryUserInviteUid:获取此次分享会话进入游戏,分享来源者用户ID,来源query的参数invite_user_uid
+
+ IsCross:获取是否显示/隐藏悬浮框交叉推广位,true:显示,false:隐藏
+
+ IsDrawer:获取是否显示/隐藏抽屉式交叉推广位,true:显示,false:隐藏
+
+ IsGuessLike:获取是否显示/隐藏猜你喜欢交叉推广位,true:显示,false:隐藏
+
+[配置参数模块:online](online.md)
+
+ updateOnlineConfig:拉取后台配置的配置参数数据,可代码中手动调用,也可SDK自动拉取
+
+ getParamsInt:根据在线参数key获取number类型参数值
+
+ getParamsObj:根据在线参数key获取object类型参数值
+
+ getParamsString:根据在线参数key获取string类型参数值
+
+事件模块:event
+
+多平台接口模块:platform
+
+[分享视频模块:shareVideo](share.md)
+
+ share:普通分享,不需要处理回调的场景
+
+ dispatch:分享视频分发入口,传入功能点英文命名的分享/视频key
+
+ getShareVideoType:根据功能点在后台配置的分享/视频key,得到此功能点分享开关
diff --git a/stat.md b/stat.md
index 1a0e4f4..137d3c8 100644
--- a/stat.md
+++ b/stat.md
@@ -11,11 +11,11 @@
#### **后台使用**
完成启动注册打点后,登录后台->头部tab切换到【游戏数据】->【产品分析】->【实时数据】即可实时查看用户活跃、新增等信息:
-
+
点击【注册转化】可查看列表式显示新增、注册、加载完成等详细信息:
-
+
@@ -25,31 +25,74 @@
| **名称** | **功能说明** |
| ------------------------ | ------------------------------------------------------------ |
-| PCSDK.stat.loadingFinish | 加载游戏资源完成时打点,不是微信代码包白屏加载完成,游戏loading自身cdn资源加载完成调用 |
-| PCSDK.stat.setLogind | 设置sdk必须要使用的用户id、第一次创建角色的注册时间,游戏接入方登录游戏服务器后调用 |
-| PCSDK.stat.active | 用户活跃/新增注册上报,切记在setLogind设置需要的信息过后使用(不限于使用位置),不然会导致新增注册数据统计异常 |
+| PCSDK.stat.setLoginInfo | 设置SDK必须要使用的openId、第一次创建角色的注册时间(时间戳转换,单位秒),游戏接入方登录游戏服务器后调用 |
+| PCSDK.stat.loadingFinish | 加载游戏资源完成时打点,例如:游戏加载完成游戏ui界面图、json资源等(不是微信代码包白屏加载完成) |
+| PCSDK.stat.active | 用户活跃/新增注册上报,切记在loadingFinish完成后调用,不然会导致新增注册数据统计异常 |
+接入流程图:
+
+1. **setLoginInfo**
+
+ ```javascript
+ PCSDK.stat.setLoginInfo( data: object ): void
+ ```
+ 定义:游戏成功登录到服务器,获取到openId和用户信息:openId和用户第一次注册的时间(时间戳转换,单位秒),设置SDK必需的用户信息
+
+ 参数:
+
+ ```javascript
+ data: object
+{
+ openId: string 必传,openId
+ regTime: number 必传,用户第一次创建角色的注册时间(时间戳转换,单位秒)
+ }
+ ```
+ 返回值:
+
+ ```javascript
+ 无
+ ```
+
+ 示例:游戏登录游戏服务器后,获取到用户openId和用户第一次创建角色的注册时间。
+ 该示例,只是模拟使用环境。
+
+ ```javascript
+ // 发起登录请求成功后,得到用户信息:user_openid、user_reg_time,调用setLoginInfo设置SDK必需的用户信息。
+ Api.login().then( data => {
+ let { user_openid, user_reg_time } = data;
+ PCSDK.stat.setLogind({
+ openId: user_openid, // openId
+ regTime: user_reg_time // 用户第一次注册时间,时间戳,单位秒
+ });
+ });
+ ```
-1. **loadingFinish**
+2. **loadingFinish**
```javascript
- PCSDK.stat.loadingFinish(): void
+ PCSDK.stat.loadingFinish(): Promise
```
- 定义:加载游戏加载资源完成时打点
+ 定义:加载游戏资源完成时打点,例如:游戏加载完成游戏ui界面图、json资源等(不是微信代码包白屏加载完成)
参数:
```
无
```
+ 返回值:
+
+ ```javascript
+ Promise
+ Promise resolve 加载打点成功完成回调
+ ```
- 示例:加载完成游戏主界面图片、json资源打点
+ 示例:
```javascript
private async initEnv() {
@@ -65,7 +108,8 @@
// 资源加载完成
private onLoadedMain() {
- PCSDK.stat.loadingFinish()
+ // 打点:loadingFinish
+ PCSDK.stat.loadingFinish();
}
// 更新资源加载进度条
@@ -74,37 +118,6 @@
this.skin.txtProgress.text = Math.floor(progress * 100) + '%';
}
```
-
-2. **setLogind**
-
- ```javascript
- PCSDK.stat.setLogind( data: object ): void
- ```
-
- 定义:游戏登录完成,得到登录用户的用户id和用户第一次注册时间,设置SDK必需的用户信息
-
- 参数:
-
- ```javascript
- data: object
-{
- userId: string | number 必传, 用户唯一标识id
- regTime: number 必传,用户第一次创建角色的注册时间戳
- }
- ```
-
- 示例:游戏登录完成后,获取用户信息后进行打点(该示例,只是模拟使用环境)
-
- ```javascript
- // 发起登录请求,得到登录数据信息,调用setLogind设置SDK用户信息
- Api.login().then( data => {
- let { user_id, user_reg_time } = data;
- PCSDK.stat.setLogind({
- userId: data.user_id,
- regTime: data.user_reg_time
- });
- });
- ```
3. **active**
@@ -112,49 +125,113 @@
PCSDK.stat.active(): void
```
- 定义:用户活跃/新增注册上报,切记在使用setLogind设置用户信息过后调用此接口,不然会导致新增注册数据统计异常
+ 定义:用户活跃/新增注册上报,切记在loadingFinish完成后调用,不然会导致新增注册数据统计异常。active有两种使用方式:
+ 1)、loadingFinish完成后,立即调用active,适用于轻度、休闲游戏。
+
+ 2)、loadingFinish,不调用active,在其他界面开始游戏 or 创建角色完成后再调用,适用于重度游戏。
参数:
```javascript
无
```
+ 返回值:
- 示例:游戏登录完成后,获取用户信息后进行打点(该示例,只是模拟该接口使用环境)
+ ```javascript
+ void
+ 无
+ ```
+
+ 示例:
```javascript
- // 使用场景1:发起登录请求,得到用户数据信息,调用setLogind设置SDK用户信息后立即调用active
- Api.login().then( data => {
- let { user_id, user_reg_time } = data;
- // 设置用户信息
- PCSDK.stat.setLogind({
- userId: data.user_id,
- regTime: data.user_reg_time
- });
- // 用户活跃注册打点
- PCSDK.stat.active();
- });
-
- // 使用场景2:发起登录请求,得到用户数据信息,调用setLogind设置SDK用户信息。在其他界面调用active
+ // 使用场景1:发起登录请求,得到用户数据信息,资源加载完成后跳转到其他界面,立即调用active
// 资源加载loading界面
class LoadingScene(){
constructor(){
+ // 登录
this.login();
+ // 加载资源
+ this.loadResouce();
}
+ /**
+ * 登录
+ */
private login(){
- // 登录
Api.login().then( data => {
- let { user_id, user_reg_time } = data;
- // 设置用户信息
- PCSDK.stat.setLogind({
- userId: data.user_id,
- regTime: data.user_reg_time
+ let { user_openid, user_reg_time } = data;
+ // 打点:设置用户信息
+ PCSDK.stat.setLoginInfo({
+ openId: user_openid, // openId
+ regTime: user_reg_time // 用户第一次注册时间,时间戳,单位秒
});
+ });
+ }
+
+ /**
+ * 加载资源
+ */
+ private loadResouce(){
+ LoaderManager.I.setCallback(this.onLoadedMain, this.onProgressMain, null, this).loadMain();
+ }
+
+ /**
+ * 加载资源完成回调监听
+ */
+ private onLoadedMain(){
+ // 打点:加载资源完成
+ PCSDK.stat.loadingFinish().then( () => {
+ // 打点:用户活跃注册打点
+ PCSDK.stat.active();
+
// 进入home主页场景
SceneManager.I.switchScene(HomeScene);
+ });
+ }
+ }
+
+ // 使用场景2:发起登录请求,得到用户数据信息,资源加载完成后跳转到其他界面,在其他界面"开始游戏"调用active。
+ // 资源加载loading界面
+ class LoadingScene(){
+ constructor(){
+ // 登录
+ this.login();
+ // 加载资源
+ this.loadResouce();
+ }
+
+ /**
+ * 登录
+ */
+ private login(){
+ Api.login().then( data => {
+ let { user_openid, user_reg_time } = data;
+ // 打点:设置用户信息
+ PCSDK.stat.setLoginInfo({
+ openId: user_openid, // openId
+ regTime: user_reg_time // 用户第一次注册时间,时间戳,单位秒
+ });
});
}
+
+ /**
+ * 加载资源
+ */
+ private loadResouce(){
+ LoaderManager.I.setCallback(this.onLoadedMain, this.onProgressMain, null, this).loadMain();
+ }
+
+ /**
+ * 加载资源完成回调监听
+ */
+ private onLoadedMain(){
+ // 打点:加载资源完成
+ PCSDK.stat.loadingFinish().then( () => {
+ // 进入home主页场景
+ SceneManager.I.switchScene(HomeScene);
+ });
+ }
}
// Home页面
@@ -163,9 +240,13 @@
this.btnStarGame.on('click', this.onGame, this);
}
+ /**
+ * 按钮点击开始游戏
+ */
private onGame(){
- // 用户活跃注册打点
+ // 打点:用户活跃注册打点
PCSDK.stat.active();
+
// 进入游戏页面
SceneManager.I.switchScene(GameScene);
}
diff --git a/stat_active.md b/stat_active.md
index cf5a05c..137d3c8 100644
--- a/stat_active.md
+++ b/stat_active.md
@@ -25,29 +25,72 @@
| **名称** | **功能说明** |
| ------------------------ | ------------------------------------------------------------ |
-| PCSDK.stat.loadingFinish | 加载游戏资源完成时打点,不是微信代码包白屏加载完成。例如:游戏加载完成游戏ui界面图、json资源等 |
-| PCSDK.stat.setLogind | 设置SDK必须要使用的用户id、第一次创建角色的注册时间(时间戳转换,单位秒),游戏接入方登录游戏服务器后调用 |
-| PCSDK.stat.active | 用户活跃/新增注册上报,切记在setLogind设置需要的信息过后使用(设置setLogind后此api不限于使用位置),不然会导致新增注册数据统计异常 |
+| PCSDK.stat.setLoginInfo | 设置SDK必须要使用的openId、第一次创建角色的注册时间(时间戳转换,单位秒),游戏接入方登录游戏服务器后调用 |
+| PCSDK.stat.loadingFinish | 加载游戏资源完成时打点,例如:游戏加载完成游戏ui界面图、json资源等(不是微信代码包白屏加载完成) |
+| PCSDK.stat.active | 用户活跃/新增注册上报,切记在loadingFinish完成后调用,不然会导致新增注册数据统计异常 |
+接入流程图:
+
+1. **setLoginInfo**
+
+ ```javascript
+ PCSDK.stat.setLoginInfo( data: object ): void
+ ```
+ 定义:游戏成功登录到服务器,获取到openId和用户信息:openId和用户第一次注册的时间(时间戳转换,单位秒),设置SDK必需的用户信息
+
+ 参数:
+
+ ```javascript
+ data: object
+{
+ openId: string 必传,openId
+ regTime: number 必传,用户第一次创建角色的注册时间(时间戳转换,单位秒)
+ }
+ ```
+ 返回值:
+
+ ```javascript
+ 无
+ ```
+
+ 示例:游戏登录游戏服务器后,获取到用户openId和用户第一次创建角色的注册时间。
+ 该示例,只是模拟使用环境。
+
+ ```javascript
+ // 发起登录请求成功后,得到用户信息:user_openid、user_reg_time,调用setLoginInfo设置SDK必需的用户信息。
+ Api.login().then( data => {
+ let { user_openid, user_reg_time } = data;
+ PCSDK.stat.setLogind({
+ openId: user_openid, // openId
+ regTime: user_reg_time // 用户第一次注册时间,时间戳,单位秒
+ });
+ });
+ ```
-1. **loadingFinish**
+2. **loadingFinish**
```javascript
- PCSDK.stat.loadingFinish(): void
+ PCSDK.stat.loadingFinish(): Promise
```
- 定义:加载游戏资源完成时打点,不是微信代码包白屏加载完成。例如:游戏加载完成游戏ui界面图、json资源等
+ 定义:加载游戏资源完成时打点,例如:游戏加载完成游戏ui界面图、json资源等(不是微信代码包白屏加载完成)
参数:
```
无
```
+ 返回值:
+
+ ```javascript
+ Promise
+ Promise resolve 加载打点成功完成回调
+ ```
示例:
@@ -75,37 +118,6 @@
this.skin.txtProgress.text = Math.floor(progress * 100) + '%';
}
```
-
-2. **setLogind**
-
- ```javascript
- PCSDK.stat.setLogind( data: object ): void
- ```
-
- 定义:游戏成功登录到服务器后得到用户信息:用户id和用户第一次注册时间(时间戳转换,单位秒),设置SDK必需的用户信息
-
- 参数:
-
- ```javascript
- data: object
-{
- userId: string | number 必传,用户唯一标识id
- regTime: number 必传,用户第一次创建角色的注册时间(时间戳转换,单位秒)
- }
- ```
-
- 示例:游戏登录游戏服务器后,获取用户信息(用户id和用户第一次注册时间)后进行打点。该示例,只是模拟使用环境。
-
- ```javascript
- // 发起登录请求成功后,得到用户信息:user_id、user_reg_time,调用setLogind设置SDK必需的用户信息。
- Api.login().then( data => {
- let { user_id, user_reg_time } = data;
- PCSDK.stat.setLogind({
- userId: data.user_id,
- regTime: data.user_reg_time // 用户第一次注册时间,时间戳,单位秒
- });
- });
- ```
3. **active**
@@ -113,49 +125,113 @@
PCSDK.stat.active(): void
```
- 定义:用户活跃/新增注册上报,切记在使用setLogind设置用户信息后调用此接口,不然会导致新增注册数据统计异常
+ 定义:用户活跃/新增注册上报,切记在loadingFinish完成后调用,不然会导致新增注册数据统计异常。active有两种使用方式:
+ 1)、loadingFinish完成后,立即调用active,适用于轻度、休闲游戏。
+
+ 2)、loadingFinish,不调用active,在其他界面开始游戏 or 创建角色完成后再调用,适用于重度游戏。
参数:
```javascript
无
```
+ 返回值:
+
+ ```javascript
+ void
+ 无
+ ```
示例:
```javascript
- // 使用场景1:发起登录请求,得到用户信息,调用setLogind设置SDK用户信息后立即调用active
- Api.login().then( data => {
- let { user_id, user_reg_time } = data;
- // 设置用户信息
- PCSDK.stat.setLogind({
- userId: data.user_id, // 用户id
- regTime: data.user_reg_time // 用户第一次注册时间,时间戳,单位秒
- });
- // 用户活跃注册打点
- PCSDK.stat.active();
- });
-
- // 使用场景2:发起登录请求,得到用户数据信息,调用setLogind设置SDK用户信息。在其他界面调用active
+ // 使用场景1:发起登录请求,得到用户数据信息,资源加载完成后跳转到其他界面,立即调用active
// 资源加载loading界面
class LoadingScene(){
constructor(){
+ // 登录
this.login();
+ // 加载资源
+ this.loadResouce();
}
+ /**
+ * 登录
+ */
private login(){
- // 登录
Api.login().then( data => {
- let { user_id, user_reg_time } = data;
- // 设置用户信息
- PCSDK.stat.setLogind({
- userId: data.user_id, // 用户id
- regTime: data.user_reg_time // 用户第一次注册时间,时间戳,单位秒
+ let { user_openid, user_reg_time } = data;
+ // 打点:设置用户信息
+ PCSDK.stat.setLoginInfo({
+ openId: user_openid, // openId
+ regTime: user_reg_time // 用户第一次注册时间,时间戳,单位秒
});
+ });
+ }
+
+ /**
+ * 加载资源
+ */
+ private loadResouce(){
+ LoaderManager.I.setCallback(this.onLoadedMain, this.onProgressMain, null, this).loadMain();
+ }
+
+ /**
+ * 加载资源完成回调监听
+ */
+ private onLoadedMain(){
+ // 打点:加载资源完成
+ PCSDK.stat.loadingFinish().then( () => {
+ // 打点:用户活跃注册打点
+ PCSDK.stat.active();
+
// 进入home主页场景
SceneManager.I.switchScene(HomeScene);
+ });
+ }
+ }
+
+ // 使用场景2:发起登录请求,得到用户数据信息,资源加载完成后跳转到其他界面,在其他界面"开始游戏"调用active。
+ // 资源加载loading界面
+ class LoadingScene(){
+ constructor(){
+ // 登录
+ this.login();
+ // 加载资源
+ this.loadResouce();
+ }
+
+ /**
+ * 登录
+ */
+ private login(){
+ Api.login().then( data => {
+ let { user_openid, user_reg_time } = data;
+ // 打点:设置用户信息
+ PCSDK.stat.setLoginInfo({
+ openId: user_openid, // openId
+ regTime: user_reg_time // 用户第一次注册时间,时间戳,单位秒
+ });
});
}
+
+ /**
+ * 加载资源
+ */
+ private loadResouce(){
+ LoaderManager.I.setCallback(this.onLoadedMain, this.onProgressMain, null, this).loadMain();
+ }
+
+ /**
+ * 加载资源完成回调监听
+ */
+ private onLoadedMain(){
+ // 打点:加载资源完成
+ PCSDK.stat.loadingFinish().then( () => {
+ // 进入home主页场景
+ SceneManager.I.switchScene(HomeScene);
+ });
+ }
}
// Home页面
@@ -164,9 +240,13 @@
this.btnStarGame.on('click', this.onGame, this);
}
+ /**
+ * 按钮点击开始游戏
+ */
private onGame(){
- // 用户活跃注册打点
+ // 打点:用户活跃注册打点
PCSDK.stat.active();
+
// 进入游戏页面
SceneManager.I.switchScene(GameScene);
}
diff --git a/stat_ads.md b/stat_ads.md
index b3a8486..e78aea7 100644
--- a/stat_ads.md
+++ b/stat_ads.md
@@ -8,7 +8,7 @@
噗嗤游戏提供了3种类型的交叉推广位,后台可对交叉推广位进行配置管理,对交叉推广位各项指标分析查看。
-**3种广告类型:悬浮框交叉推广位、抽屉式交叉推广位、猜你喜欢交叉推广位**
+**3种广告类型:悬浮框交叉推广位、抽屉式交叉推广位、猜你喜欢交叉推广位,对应类型值为:40、70、50**
1. 悬浮框交叉推广位,推荐位置:首页、结算页
@@ -86,7 +86,7 @@
| **名称** | **功能说明** |
| --------------------------- | ------------------------------------------------------------ |
-| PCSDK.stat.bannerList | 根据类型获取对应类型交叉广告列表,目前SDK支持3种类型:40(交叉悬浮广告框)、70(交叉抽屉式广告位)、50(交叉猜你喜欢广告位) |
+| PCSDK.stat.bannerList | 根据类型获取对应类型交叉推广位列表,目前SDK支持3种类型:40(悬浮框交叉推广位)、70(抽屉式交叉推广位)、50(猜你喜欢交叉推广位) |
| PCSDK.stat.bannerNavigateTo | 交叉推广位点击跳转到对应appid的游戏,该接口封装了小游戏的跳转功能(navigateToMiniProgram) |
| PCSDK.stat.addExposure | 交叉推广位一条或者多条广告展示,添加曝光数据,SDK内部会在onHide时候上报数据到后台 |
--
libgit2 0.21.0