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 | ... | ... |