# 启动注册打点 ------ #### **简介** 启动注册打点上报用户注册活跃数据,噗嗤管理后台为游戏提供用户数据统计:实时获取活跃、新增用户数、打开次数、在线时长......;注册转化统计。 #### **后台使用** 完成启动注册打点后,登录后台->头部tab切换到【游戏数据】->【产品分析】->【实时数据】即可实时查看用户活跃、新增等信息: ![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_008.png) 点击【注册转化】可查看列表式显示新增、注册、加载完成等详细信息: ![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_009.png) #### **接入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 // 用户第一次注册时间,时间戳,单位秒 }); }); ``` 2. **loadingFinish** ```javascript PCSDK.stat.loadingFinish(): Promise ``` 定义:加载游戏资源完成时打点,例如:游戏加载完成游戏ui界面图、json资源等(不是微信代码包白屏加载完成) 参数: ``` 无 ``` 返回值: ```javascript Promise Promise resolve 加载打点成功完成回调 ``` 示例: ```javascript private async initEnv() { await SDKTools.env(Const.VERSION); this.loadRes(); this.loadLogin(); } // 开始加载资源 private loadRes() { LoaderManager.I.setCallback(this.onLoadedMain, this.onProgressMain, null, this).loadMain(); } // 资源加载完成 private onLoadedMain() { // 打点:loadingFinish PCSDK.stat.loadingFinish(); } // 更新资源加载进度条 private onProgressMain(ret) { let progress = ret.data; this.skin.txtProgress.text = Math.floor(progress * 100) + '%'; } ``` 3. **active** ```javascript PCSDK.stat.active(): void ``` 定义:用户活跃/新增注册上报,切记在loadingFinish完成后调用,不然会导致新增注册数据统计异常。active有两种使用方式: 1)、loadingFinish完成后,立即调用active,适用于轻度、休闲游戏。 2)、loadingFinish,不调用active,在其他界面开始游戏 or 创建角色完成后再调用,适用于重度游戏。 参数: ```javascript 无 ``` 返回值: ```javascript void 无 ``` 示例: ```javascript // 使用场景1:发起登录请求,得到用户数据信息,资源加载完成后跳转到其他界面,立即调用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( () => { // 打点:用户活跃注册打点 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页面 class HomeScene(){ constructor(){ this.btnStarGame.on('click', this.onGame, this); } /** * 按钮点击开始游戏 */ private onGame(){ // 打点:用户活跃注册打点 PCSDK.stat.active(); // 进入游戏页面 SceneManager.I.switchScene(GameScene); } } ```