stat.md 7.4 KB

c82c1e268c01f6f5968c49fd7525ce1eb4e5290f/inner/stat.md#">启动注册打点


c82c1e268c01f6f5968c49fd7525ce1eb4e5290f/inner/stat.md#">简介

启动注册打点上报用户注册活跃数据,噗嗤管理后台为游戏提供用户数据统计:实时获取活跃、新增用户数、打开次数、在线时长......;注册转化统计。

c82c1e268c01f6f5968c49fd7525ce1eb4e5290f/inner/stat.md#">后台使用

完成启动注册打点后,登录后台->头部tab切换到【游戏数据】->【产品分析】->【实时数据】即可实时查看用户活跃、新增等信息: sdk文件目录结构

点击【注册转化】可查看列表式显示新增、注册、加载完成等详细信息:

sdk文件目录结构

接入API:

名称 功能说明
PCSDK.stat.setLoginInfo 设置SDK必须要使用的openId、第一次创建角色的注册时间(时间戳转换,单位秒),游戏接入方登录游戏服务器后调用
PCSDK.stat.loadingFinish 加载游戏资源完成时打点,例如:游戏加载完成游戏ui界面图、json资源等(不是微信代码包白屏加载完成)
PCSDK.stat.active 用户活跃/新增注册上报,切记在loadingFinish完成后调用,不然会导致新增注册数据统计异常

接入流程图:

sdk文件目录结构

  1. setLoginInfo javascript PCSDK.stat.setLoginInfo( data: object ): void

定义:游戏成功登录到服务器,获取到openId和用户信息:openId和用户第一次注册的时间(时间戳转换,单位秒),设置SDK必需的用户信息

参数:

   data: object
{
       openId: string          必传,openId
       regTime: number         必传,用户第一次创建角色的注册时间(时间戳转换,单位秒)
   }

返回值:

示例:游戏登录游戏服务器后,获取到用户openId和用户第一次创建角色的注册时间。 该示例,只是模拟使用环境。

    // 发起登录请求成功后,得到用户信息: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
   PCSDK.stat.loadingFinish(): Promise<any>

定义:加载游戏资源完成时打点,例如:游戏加载完成游戏ui界面图、json资源等(不是微信代码包白屏加载完成)

参数:

返回值:

   Promise<any>
   Promise resolve 加载打点成功完成回调

示例:

    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) + '%';
    }
  1. active
   PCSDK.stat.active(): void

定义:用户活跃/新增注册上报,切记在loadingFinish完成后调用,不然会导致新增注册数据统计异常。active有两种使用方式: 1)、loadingFinish完成后,立即调用active,适用于轻度、休闲游戏。

2)、loadingFinish,不调用active,在其他界面开始游戏 or 创建角色完成后再调用,适用于重度游戏。

参数:

返回值:

   void
   无

示例:

    // 使用场景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);
        }
    }