Commit 0ca0c59aa8adf964c863912913bbafcac4561f3f
1 parent
c7e4d875
Exists in
master
加入模块阅览
Showing
9 changed files
with
382 additions
and
178 deletions
Show diff stats
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'事件 | ... | ... |
263 KB
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 | + | |
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 | -##  | |
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 | - | |
14 | + | |
15 | 15 | |
16 | 16 | 点击【注册转化】可查看列表式显示新增、注册、加载完成等详细信息: |
17 | 17 | |
18 | - | |
18 | + | |
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 | + | |
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 | + | |
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 | ... | ... |