# 交叉推广位 ------ #### **简介** 交叉推广位是在游戏中放置其他游戏icon,用户点击跳转到导出的游戏,达到共享用户的目的,噗嗤游戏对开发者提供了不同类型的广告导出。 噗嗤管理后台可对交叉推广位进行配置管理,对广告导出各项指标进行计算分析。 #### **接入准备** 由于微信对每个游戏可跳转其他游戏有10个限制,可跳转的游戏需要配置微信开发者工具项目的 完成启动注册打点后,登录后台->头部切换到【游戏数据】->【产品分析】->【实时数据】即可实时查看用户活跃、新增等信息: ![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_008.png) 点击【注册转化】可查看列表式显示新增、注册、加载完成等详细信息: ![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_009.png) #### **接入API:** | **名称** | **功能说明** | | ------------------------ | ------------------------------------------------------------ | | PCSDK.stat.loadingFinish | 加载游戏资源完成时打点,不是微信代码包白屏加载完成 | | PCSDK.stat.setLogind | 游戏登录成功后,获取用户信息用户userId、第一次创建角色的注册时间regTime,调用此接口设置SDK统计上报需要的用户信息 | | PCSDK.stat.active | 用户活跃/新增注册上报,切记在setLogind设置需要的信息过后使用,不然会导致新增注册数据统计异常。setLogind后,此接口不限使用位置。 | 1. **loadingFinish** ```javascript PCSDK.stat.loadingFinish(): void ``` 定义:加载游戏资源完成(不是微信白屏加载完成)时打点 参数: ``` 无 ``` 示例:加载完成游戏主界面图片、json资源打点 ```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() { PCSDK.stat.loadingFinish() } // 更新资源加载进度条 private onProgressMain(ret) { let progress = ret.data; 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** ```javascript PCSDK.stat.active(): void ``` 定义:用户活跃/新增注册上报,切记在使用setLogind设置用户信息过后调用此接口,不然会导致新增注册数据统计异常 参数: ```javascript 无 ``` 示例:游戏登录完成后,获取用户信息后进行打点(该示例,只是模拟该接口使用环境) ```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 // 资源加载loading界面 class LoadingScene(){ constructor(){ this.login(); } 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 }); // 进入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); } } ```