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提供的模块功能:** +![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_000.png "🔍点击查看大图") -- 统计模块 -- 数据模块 -- 分享视频模块 -- 在线参数模块 -- 跨平台功能模块 +[统计模块:stat](stat.md) + 启动注册打点 -# 噗嗤管理后台 -噗嗤管理后台统计sdk中上报的各项数据进行分析;管理各种sdk中所需要的配置信息:分享/视频配置、配置参数(在线参数配置)、噗嗤游戏导出广告配置、用户事件行为配置。 + setLoginInfo:设置登录信息 -**友情提示:** + loadingFinish:资源加载完成 -- **之后文案中后台指的是噗嗤管理后台,而不是微信小程序/小游戏后台。** -- **后台登录账号获取,需提供手机信息给我方运营,运营创建后台登录账号、密码后反馈;登录后台即可使用后台提供的各项服务** + active:添加注册活跃用户 + 关卡分析打点 + logLevelRelive:游戏关卡复活上报 -**噗嗤后台概览:** -## ![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_006.png "🔍点击查看大图") + 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切换到【游戏数据】->【产品分析】->【实时数据】即可实时查看用户活跃、新增等信息: -![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_008.pn "🔍点击查看大图") +![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_008.png) 点击【注册转化】可查看列表式显示新增、注册、加载完成等详细信息: -![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_009.png "🔍点击查看大图") +![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_009.png) @@ -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完成后调用,不然会导致新增注册数据统计异常 | +接入流程图: +![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_028.png) +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完成后调用,不然会导致新增注册数据统计异常 | +接入流程图: +![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_028.png) +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