# 自定义事件打点 ------ #### **简介** 自定义事件是噗嗤游戏为开发者提供的自助分析功能:事件触发去重人数、次数等信息。游戏的任意位置需要统计触达人数、次数等都可以使用事件来实现,后台提供分析数据可查看,并不局限于用户的行为事件。 #### **后台使用** 接入自定义事件打点后,登录后台->头部tab切换到【游戏数据】->【产品分析】->【事件分析】可查看自定义事件次数、去重人数等详细信息(此功能需要管理员添加权限): ![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_018.png "🔍点击查看大图") #### **接入必读** 接入自定义事件打点前,请[前往后台](https://data.d3games.com/index.html#/login)进行添加自定义事件的key:登录后台->头部tab切换到【游戏数据】->【产品分析】->【事件分析】->点击【新增】添加自定义事件(事件key可语义化的自定义,推荐_连接)。 ![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_016.png "🔍点击查看大图") ![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_017.png "🔍点击查看大图") > 提示:游戏新增自定义事件如果很多,一个个复制可能比较繁琐,进入噗嗤后台【事件列表】后,chrome浏览器打开【开发者工具】,在console栏下方输入下面的命令后,可自动生成自定义事件key的枚举(如果事件很多出现翻页,则每一页都执行后,手动合并为一个枚举),复制到项目中使用,枚举key生成规则为事件key转换为大驼峰式,枚举value为事件key: ```javascript // 第1个参数表示生成枚举的名字:EventKeys // 第2个参数表示事件key所在列索引(第2列):1 // 第3个参数表示事件key注释所在列索引(第3列):2 // 最后一个参数选填,any传递false表示枚举字符串不带any转换 PCPlugins.transform('EventKeys', 1 , 2 , { any: false}); ``` ![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_019.png "🔍点击查看大图") 示例:使用PCPlugins.transform('EventKeys', 1 , 2 , { any: false}); 生成的自定义事件key枚举 ```javascript enum EventKeys { // 关卡7进入, Level7Enter = 'level7_enter', // 关卡6进入, Level6Enter = 'level6_enter', // 关卡5进入, Level5Enter = 'level5_enter', // 关卡4进入, Level4Enter = 'level4_enter', // 关卡3进入, Level3Enter = 'level3_enter', // 关卡2进入, Level2Enter = 'level2_enter', // 关卡1进入, Level1Enter = 'level1_enter', // 关卡失败双倍奖励, MapFailDouble = 'map_fail_double', // 引导10-主界面再次进入游戏, Guide109 = 'guide_109', // 引导9-合成确认, Guide108 = 'guide_108', // 引导8-合成成功后, Guide107 = 'guide_107', // 引导7-合成, Guide106 = 'guide_106', // 引导6-第二次购买, Guide105 = 'guide_105', // 引导5-第一次购买, Guide104 = 'guide_104', // 引导4-结算引导, Guide103 = 'guide_103', // 引导3-开始射击, Guide102 = 'guide_102', // 引导2-开始游戏, Guide101 = 'guide_101', // 引导1-欢迎, Guide100 = 'guide_100', // 金币加速,关闭, SpeedUpClose = 'speed_up_close', // 金币加速,免费领取, SpeedUpFree = 'speed_up_free' } ``` #### **接入API**: | **名称** | **功能说明** | | ---------------- | ------------------------------------------------------------ | | PCSDK.stat.event | 自定义事件打点,使用前请[前往后台](https://data.d3games.com/index.html#/login)进行添加自定义事件key | 1. **event** ```javascript PCSDK.stat.event(event_key: string , event_source: string , opts?: { ext_val?: string | number} ): Promise ``` 定义:自定义事件打点,可在游戏任何位置定义事件打点 参数: ``` event_key: string 必传,后台配置的事件key event_source: string 必传,触发该事件所在页面位置,例如:结算页面、排行榜界面、签到页面。。。 opts?: object 选传,自定义扩展参数,一些特定的事件想传递更多信息,此参数使用请咨询相关对接人员目前只支持对象一个key(evt_val),多个扩展参数使用'|'连接 { ext_val: '100|1000' } ``` 示例: ```javascript // 签到功能 private onSign() { // 事件上报:签到页面打开 PCSDK.stat.event(EventKeys.FunctionSign, '主界面'); PopwinMananger.I.openWin(SignPopwin); } // 开始加载资源 private loadRes() { // 事件上报:开始加载资源 PCSDK.stat.event(EventKeys.LoadingExhibition, '加载界面'); LoaderManager.I.setCallback(this.onLoadedMain, this.onProgressMain, null, this).loadMain(); } // 升级领奖 private onReward(e: Laya.Event) { // 事件上报:发起升级领奖 PCSDK.stat.event(EventKeys.LvUpRewards, '升级界面'); SDKTools.shareDispatch(ShareKey.LevelUpDiamond, { success: this.handleDoubleReward, context: this }); } export enum EventKeys { // 升级奖励, LvUpRewards = 'lv_up_rewards', // 点击主界面-签到, FunctionSign = 'function_sign', // 加载, LoadingExhibition = 'loading_exhibition' } ```