Commit 6ef851672173740d4b1ac176814af3d3ab917b44

Authored by 小川 费
1 parent 4ed51a9d
Exists in master

加入其它模块功能

SUMMARY.md
1 1 # Summary
2   -## 基本使用
  2 +## SDK入门
3 3 * [SDK简介](README.md)
4 4 * [SDK下载](download.md)
5 5 * [安装步骤](install.md)
6   -* [命令](commands.md)
7   -* [目录结构](structure.md)
8   -* [配置](settings.md)
9 6  
10   -## 扩展
11   -* [插件](plugins.md)
12   -* [主题](themes.md)
  7 +## SDK手册
  8 +* [SDK模块功能](modules.md)
  9 +
  10 +* [统计模块](stat_active.md)
  11 + * [启动注册打点](stat_active.md)
  12 + * [交叉推广位](stat_ads.md)
  13 + * [Gitbook命令行速览](installation/gitbook-cli.md)
13 14 \ No newline at end of file
... ...
book.json
... ... @@ -14,13 +14,8 @@
14 14 "-livereload",
15 15 "-fontsettings",
16 16 "simple-page-toc@^0.1.1",
17   - "prism@^2.1.0",
18   - "prism-themes@^0.0.2",
19 17  
20   - "anchors@^0.7.1",
21 18 "include-codeblock@^3.0.2",
22   - "ace@^0.3.2",
23   - "emphasize@^1.1.0",
24 19 "katex@^1.1.3",
25 20 "splitter@^0.0.8",
26 21 "mermaid-gb3@2.1.0",
... ...
download.md
... ... @@ -2,7 +2,17 @@
2 2  
3 3 ------
4 4  
5   -## [v1.0.0.0 下载]()
  5 +## [v1.0.0.1 下载](https://dep.miso-lab.com/sdkword/versions/sdk-out-v1.0.0.1.zip)
  6 +
  7 +> *发布时间*:2019.09.04
  8 +
  9 +**新增:**
  10 +
  11 +1. config.js配置ShareData新增share_wxad_id参数:视频广告uid,配置此参数,拉取不到对应的shareKey,推送看视频,不配置或者配置的uid无效则推送分享
  12 +
  13 +
  14 +
  15 +## [v1.0.0.0 下载](https://dep.miso-lab.com/sdkword/versions/sdk-out-v1.0.0.0.zip)
6 16  
7 17 > *发布时间*:2019.08.31
8 18  
... ... @@ -14,7 +24,7 @@
14 24  
15 25 **新增:**
16 26  
17   -1. config.js新增IsOnlineAutoUse、IsOnlineDebug、ShareRightKey配置参数
  27 +1. config.js配置新增IsOnlineAutoUse、IsOnlineDebug、ShareRightKey配置参数
18 28  
19 29 在线参数获取通过配置决定是否启动拉取,右上角分享配置进行读取shareKey
20 30  
... ...
install.md
... ... @@ -4,15 +4,14 @@
4 4  
5 5 ## SDK下载
6 6  
7   -下载最新版本的SDK [SDK下载](download.md) .
8   -
9   -解压下载的SDK.rar包的目录结构:
  7 +1. 下载最新版本的SDK [SDK下载](download.md) 。
  8 +2. 解压下载的sdk-out-v{版本号}.zip包,解压文件夹里面的的目录结构:
10 9  
11 10 ```
12 11 ├── sdk.d.ts
13 12 ├── sdk/
14 13 | ├── config.js
15   -| └── sdk.js
  14 +| └── index.js
16 15 | └── libs/
17 16 | └── game.min.js
18 17 ```
... ... @@ -21,7 +20,7 @@
21 20  
22 21 - **sdk.d.ts:sdk的ts声明文件,开发者项目采用Typescript开发,请复制该文件到项目中。**
23 22 - sdk/config.js:sdk配置文件,【[详细请阅读下方config.js参数说明](install.md#config)】
24   -- sdk/sdk.js:sdk入口文件,引入了sdk所提供的模块功能
  23 +- sdk/index.js:sdk入口文件,引入了sdk所提供的模块功能
25 24 - sdk/libs/game.min.js:sdk类库核心代码文件
26 25  
27 26  
... ... @@ -70,27 +69,28 @@
70 69  
71 70 ```javaScript
72 71 export default {
73   - Env: 100, // 100表示正式环境,110表示测试环境,测试开发阶段使用110,提审前切记改成100!!!
74   - IsDebug: false, // 是否debug模式,debug模式会打印log,也可以通过stat模块setDebug进行修改
75   - AdCacheDuration: 30, // 广告列表缓存持续时间间隔
76   - IsUseShareModule: true, // 是否使用分享模块
77   - IsOnlineAutoUse: true, // 是否开启sdk自动请求online模块(在线参数配置)的updateOnlineConfig,拉取在线参数配置
78   - IsOnlineDebug: true, // 是否开启online模块(在线参数配置)debug模式
79   - ShareRightKey: 'forward', // 右上角分享的shareKey,shareKey请阅读share模块说明,默认为forward,为空字符串则不使用右上角分享
80   -
81   - ShareData: { // 必填,默认分享数据(拉取不到分享配置后使用,默认分享,SDK自动分配share_id为99999)
  72 + IsDebug: false, // 是否debug模式,debug模式会打印log,也可以通过stat模块setDebug进行修改
  73 + Env: 100, // 100表示正式环境,110表示测试环境,测试开发阶段使用110,提审前切记改成100!!!
  74 + AdCacheDuration: 30, // 广告列表缓存持续时间间隔
  75 + IsUseShareModule: true, // 是否使用分享模块
  76 + IsOnlineAutoUse: true, // 是否开启sdk自动请求online模块(在线参数配置)的updateOnlineConfig,拉取在线参数配置
  77 + IsOnlineDebug: true, // 是否开启online模块(在线参数配置)debug模式
  78 + ShareRightKey: 'forward', // 右上角分享的shareKey,shareKey请阅读share模块说明,默认为forward,为空字符串则不使用右上角分享
  79 +
  80 + ShareData: { // 必填,默认分享数据(拉取不到分享配置后使用,默认分享,SDK自动分配share_id为99999)
82 81 share_desc: 'xxx',
  82 + share_wxad_id: '', // 可选,视频广告uid,配置此参数,拉取不到对应的shareKey,推送看视频,不配置或者配置的uid无效则推送分享
83 83 share_icon: 'xxx'
84 84 },
85   - GameId: 0, // 必填,游戏ID,运营提供;
86   - ChannelId: 0, // 必填,游戏渠道ID,运营提供;
87   - Secret: '***请配置你的Secret***', // 必填,游戏的secret key
88   - MidasPay: { // 米大师虚拟支付配置
89   - OfferId: "0", // 在米大师申请的应用id
90   - ZoneId: "1", // 分区ID,默认:1
91   - Mode: "game", // 支付的类型,不同的支付类型有各自额外要传的附加参数,默认:game
92   - CurrencyType: "CNY", // 币种,默认:CNY
93   - Platform: '' // 申请接入时的平台,platform与应用id有关。默认:android(ios暂时没有开放,这里需要配置Platform,开放后,删掉此配置,sdk已经判断平台)
  85 + GameId: 0, // 必填,游戏ID,运营提供;
  86 + ChannelId: 0, // 必填,游戏渠道ID,运营提供;
  87 + Secret: '***请配置你的Secret***', // 必填,游戏的secret key
  88 + MidasPay: { // 米大师虚拟支付配置
  89 + OfferId: "0", // 在米大师申请的应用id
  90 + ZoneId: "1", // 分区ID,默认:1
  91 + Mode: "game", // 支付的类型,不同的支付类型有各自额外要传的附加参数,默认:game
  92 + CurrencyType: "CNY", // 币种,默认:CNY
  93 + Platform: '' // 申请接入时的平台,platform与应用id有关。默认:android(ios暂时没有开放,这里需要配置Platform,开放后,删掉此配置,sdk已经判断平台)
94 94 }
95 95 };
96 96 ```
... ... @@ -166,6 +166,8 @@
166 166 示例:可以从噗嗤管理后台【游戏数据】=>【分享/视频配置】中选取一条:复制文案,点击分享素材icon->查看大图->右键查看分享图片的html源码复制src图片地址:**{**
167 167  
168 168 ​ **share_desc: ' 半夜传来啪啪啪!竟是隔壁老王偷偷打气球',**
  169 +
  170 + ​ **share_wxad_id: 'adunit-6958dcfc3f0bed31',**
169 171  
170 172 ​ **share_icon: 'https://dep.miso-lab.com/data_analysis/games/res/5D57D4A3Yx.png'**
171 173  
... ... @@ -207,4 +209,10 @@
207 209  
208 210 示例:项目采用的是Laya Typescript版本进行开发,将该文件复制到libs目录下面
209 211  
210   - ![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_007.png)
211 212 \ No newline at end of file
  213 + ![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_007.png)
  214 +
  215 +* #### 到此,SDK的准备工作已经配置完毕,运行起来:
  216 +
  217 + 运行中碰到问题,[[请查看FAQ](faq.md)],或者微信群联系相关人员。
  218 +
  219 + 正常运行,阅读SDK手册,开始[[SDK模块功能](modules.md)]接入。
212 220 \ No newline at end of file
... ...
modules.md 0 → 100644
... ... @@ -0,0 +1,59 @@
  1 +# 噗嗤SDK
  2 +PCSDK(噗嗤SDK)是一款封装了微信小游戏、QQ小游戏平台常用api接口和用户行为数据上报的一款产品。
  3 +PCSDK上报小游戏用户所触发的各种行为数据到噗嗤管理后台,后台对数据进行统计分析后多样化的展示数据统计。
  4 +
  5 +**PCSDK提供的模块功能:**
  6 +
  7 +- 统计模块
  8 +- 数据模块
  9 +- 分享视频模块
  10 +- 在线参数模块
  11 +- 跨平台功能模块
  12 +
  13 +
  14 +
  15 +# 噗嗤管理后台
  16 +噗嗤管理后台统计sdk中上报的各项数据进行分析;管理各种sdk中所需要的配置信息:分享/视频配置、配置参数(在线参数配置)、噗嗤游戏导出广告配置、用户事件行为配置。
  17 +
  18 +为了开发联调测试阶段不影响游戏已上线运营相关数据或者配置信息,特意对管理后台做了测试和线上服划分,噗嗤管理后台分为:测试服后台,正式服后台:
  19 +
  20 +噗嗤管理后台后台地址:
  21 +
  22 +- 正式服后台,地址:https://data.d3games.com/#/login
  23 +
  24 +- 测试服后台,地址:http://pre-data.d3games.com/#/login
  25 +
  26 +**友情提示:**
  27 +
  28 +- **之后文案中后台指的是噗嗤管理后台,而不是微信小程序/小游戏后台。**
  29 +- **后台登录账号获取,需提供手机信息给我方运营,运营创建后台登录账号、密码后反馈;登录后台即可使用后台提供的各项服务**
  30 +
  31 +
  32 +
  33 +**噗嗤后台概览:**
  34 +## ![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_006.png)
  35 +
  36 +
  37 +
  38 +**后台提供数据分析功能:**
  39 +
  40 +- 注册/活跃用户,在线时长实时数据分享。
  41 +- 分享数据分析
  42 +- 用户事件行为分析
  43 +- 渠道数据统计分析
  44 +
  45 +
  46 +
  47 +**后台提供配置相关功能:**
  48 +
  49 +- 分享视频配置
  50 +- 动态配置参数
  51 +
  52 +
  53 +
  54 +# 更多:
  55 +- 快速接入,请详读 [安装步骤](install.md)
  56 +
  57 +
  58 +
  59 +- 遇到问题可以查看 [FAQ](faq.md)
0 60 \ No newline at end of file
... ...
stat_active.md 0 → 100644
... ... @@ -0,0 +1,174 @@
  1 +# 启动注册打点
  2 +
  3 +------
  4 +
  5 +#### **简介**
  6 +
  7 +启动注册打点上报用户注册活跃数据,噗嗤管理后台为游戏提供用户数据统计:实时获取活跃、新增用户数、打开次数、在线时长......;注册转化统计。
  8 +
  9 +
  10 +
  11 +#### **查看数据**
  12 +
  13 +完成启动注册打点后,登录后台->头部切换到【游戏数据】->【产品分析】->【实时数据】即可实时查看用户活跃、新增等信息:
  14 +![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_008.png)
  15 +
  16 +点击【注册转化】可查看列表式显示新增、注册、加载完成等详细信息:
  17 +
  18 +![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_009.png)
  19 +
  20 +
  21 +
  22 +
  23 +
  24 +#### **接入API:**
  25 +
  26 +| **名称** | **功能说明** |
  27 +| ------------------------ | ------------------------------------------------------------ |
  28 +| PCSDK.stat.loadingFinish | 加载游戏资源完成时打点,不是微信代码包白屏加载完成,游戏loading自身cdn资源加载完成调用 |
  29 +| PCSDK.stat.setLogind | 设置sdk必须要使用的用户id、第一次创建角色的注册时间,游戏接入方登录游戏服务器后调用 |
  30 +| PCSDK.stat.active | 用户活跃/新增注册上报,切记在setLogind设置需要的信息过后使用(不限于使用位置),不然会导致新增注册数据统计异常 |
  31 +
  32 +
  33 +
  34 +
  35 +
  36 +
  37 +
  38 +1. **loadingFinish**
  39 +
  40 + ```javascript
  41 + PCSDK.stat.loadingFinish(): void
  42 + ```
  43 +
  44 + 定义:加载游戏加载资源完成时打点
  45 +
  46 + 参数:
  47 +
  48 + ```
  49 + 无
  50 + ```
  51 +
  52 + 示例:加载完成游戏主界面图片、json资源打点
  53 +
  54 + ```javascript
  55 + private async initEnv() {
  56 + await SDKTools.env(Const.VERSION);
  57 + this.loadRes();
  58 + this.loadLogin();
  59 + }
  60 +
  61 + // 开始加载资源
  62 + private loadRes() {
  63 + LoaderManager.I.setCallback(this.onLoadedMain, this.onProgressMain, null, this).loadMain();
  64 + }
  65 +
  66 + // 资源加载完成
  67 + private onLoadedMain() {
  68 + PCSDK.stat.loadingFinish()
  69 + }
  70 +
  71 + // 更新资源加载进度条
  72 + private onProgressMain(ret) {
  73 + let progress = ret.data;
  74 + this.skin.txtProgress.text = Math.floor(progress * 100) + '%';
  75 + }
  76 + ```
  77 +
  78 +2. **setLogind**
  79 +
  80 + ```javascript
  81 + PCSDK.stat.setLogind( data: object ): void
  82 + ```
  83 +
  84 + 定义:游戏登录完成,得到登录用户的用户id和用户第一次注册时间,设置SDK必需的用户信息
  85 +
  86 + 参数:
  87 +
  88 + ```javascript
  89 + data: object
  90 +{
  91 + userId: string | number 必传, 用户唯一标识id
  92 + regTime: number 必传,用户第一次创建角色的注册时间戳
  93 + }
  94 + ```
  95 +
  96 + 示例:游戏登录完成后,获取用户信息后进行打点(该示例,只是模拟使用环境)
  97 +
  98 + ```javascript
  99 + // 发起登录请求,得到登录数据信息,调用setLogind设置SDK用户信息
  100 + Api.login().then( data => {
  101 + let { user_id, user_reg_time } = data;
  102 + PCSDK.stat.setLogind({
  103 + userId: data.user_id,
  104 + regTime: data.user_reg_time
  105 + });
  106 + });
  107 + ```
  108 +
  109 +3. **active**
  110 +
  111 + ```javascript
  112 + PCSDK.stat.active(): void
  113 + ```
  114 +
  115 + 定义:用户活跃/新增注册上报,切记在使用setLogind设置用户信息过后调用此接口,不然会导致新增注册数据统计异常
  116 +
  117 + 参数:
  118 +
  119 + ```javascript
  120 + 无
  121 + ```
  122 +
  123 + 示例:游戏登录完成后,获取用户信息后进行打点(该示例,只是模拟该接口使用环境)
  124 +
  125 + ```javascript
  126 + // 使用场景1:发起登录请求,得到用户数据信息,调用setLogind设置SDK用户信息后立即调用active
  127 + Api.login().then( data => {
  128 + let { user_id, user_reg_time } = data;
  129 + // 设置用户信息
  130 + PCSDK.stat.setLogind({
  131 + userId: data.user_id,
  132 + regTime: data.user_reg_time
  133 + });
  134 + // 用户活跃注册打点
  135 + PCSDK.stat.active();
  136 + });
  137 +
  138 + // 使用场景2:发起登录请求,得到用户数据信息,调用setLogind设置SDK用户信息。在其他界面调用active
  139 + // 资源加载loading界面
  140 + class LoadingScene(){
  141 + constructor(){
  142 + this.login();
  143 + }
  144 +
  145 + private login(){
  146 + // 登录
  147 + Api.login().then( data => {
  148 + let { user_id, user_reg_time } = data;
  149 + // 设置用户信息
  150 + PCSDK.stat.setLogind({
  151 + userId: data.user_id,
  152 + regTime: data.user_reg_time
  153 + });
  154 + // 进入home主页场景
  155 + SceneManager.I.switchScene(HomeScene);
  156 + });
  157 + }
  158 + }
  159 +
  160 + // Home页面
  161 + class HomeScene(){
  162 + constructor(){
  163 + this.btnStarGame.on('click', this.onGame, this);
  164 + }
  165 +
  166 + private onGame(){
  167 + // 用户活跃注册打点
  168 + PCSDK.stat.active();
  169 + // 进入游戏页面
  170 + SceneManager.I.switchScene(GameScene);
  171 + }
  172 + }
  173 +
  174 + ```
0 175 \ No newline at end of file
... ...
stat_ads.md 0 → 100644
... ... @@ -0,0 +1,179 @@
  1 +# 交叉推广位
  2 +
  3 +------
  4 +
  5 +#### **简介**
  6 +
  7 +交叉推广位是在游戏中放置其他游戏icon,用户点击跳转到导出的游戏,达到共享用户的目的,噗嗤游戏对开发者提供了不同类型的广告导出。
  8 +
  9 +噗嗤管理后台可对交叉推广位进行配置管理,对广告导出各项指标进行计算分析。
  10 +
  11 +
  12 +
  13 +#### **接入准备**
  14 +
  15 +由于微信对每个游戏可跳转其他游戏有10个限制,可跳转的游戏需要配置微信开发者工具项目的
  16 +
  17 +完成启动注册打点后,登录后台->头部切换到【游戏数据】->【产品分析】->【实时数据】即可实时查看用户活跃、新增等信息:
  18 +![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_008.png)
  19 +
  20 +点击【注册转化】可查看列表式显示新增、注册、加载完成等详细信息:
  21 +
  22 +![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_009.png)
  23 +
  24 +
  25 +
  26 +
  27 +
  28 +#### **接入API:**
  29 +
  30 +| **名称** | **功能说明** |
  31 +| ------------------------ | ------------------------------------------------------------ |
  32 +| PCSDK.stat.loadingFinish | 加载游戏资源完成时打点,不是微信代码包白屏加载完成 |
  33 +| PCSDK.stat.setLogind | 游戏登录成功后,获取用户信息用户userId、第一次创建角色的注册时间regTime,调用此接口设置SDK统计上报需要的用户信息 |
  34 +| PCSDK.stat.active | 用户活跃/新增注册上报,切记在setLogind设置需要的信息过后使用,不然会导致新增注册数据统计异常。setLogind后,此接口不限使用位置。 |
  35 +
  36 +
  37 +
  38 +
  39 +
  40 +
  41 +
  42 +1. **loadingFinish**
  43 +
  44 + ```javascript
  45 + PCSDK.stat.loadingFinish(): void
  46 + ```
  47 +
  48 + 定义:加载游戏资源完成(不是微信白屏加载完成)时打点
  49 +
  50 + 参数:
  51 +
  52 + ```
  53 + 无
  54 + ```
  55 +
  56 + 示例:加载完成游戏主界面图片、json资源打点
  57 +
  58 + ```javascript
  59 + private async initEnv() {
  60 + await SDKTools.env(Const.VERSION);
  61 + this.loadRes();
  62 + this.loadLogin();
  63 + }
  64 +
  65 + // 开始加载资源
  66 + private loadRes() {
  67 + LoaderManager.I.setCallback(this.onLoadedMain, this.onProgressMain, null, this).loadMain();
  68 + }
  69 +
  70 + // 资源加载完成
  71 + private onLoadedMain() {
  72 + PCSDK.stat.loadingFinish()
  73 + }
  74 +
  75 + // 更新资源加载进度条
  76 + private onProgressMain(ret) {
  77 + let progress = ret.data;
  78 + this.skin.txtProgress.text = Math.floor(progress * 100) + '%';
  79 + }
  80 + ```
  81 +
  82 +2. **setLogind**
  83 +
  84 + ```javascript
  85 + PCSDK.stat.setLogind( data: object ): void
  86 + ```
  87 +
  88 + 定义:游戏登录完成,得到登录用户的用户id和用户第一次注册时间,设置SDK必需的用户信息
  89 +
  90 + 参数:
  91 +
  92 + ```javascript
  93 + data: object
  94 +{
  95 + userId: string | number 必传, 用户唯一标识id
  96 + regTime: number 必传,用户第一次创建角色的注册时间戳
  97 + }
  98 + ```
  99 +
  100 + 示例:游戏登录完成后,获取用户信息后进行打点(该示例,只是模拟使用环境)
  101 +
  102 + ```javascript
  103 + // 发起登录请求,得到登录数据信息,调用setLogind设置SDK用户信息
  104 + Api.login().then( data => {
  105 + let { user_id, user_reg_time } = data;
  106 + PCSDK.stat.setLogind({
  107 + userId: data.user_id,
  108 + regTime: data.user_reg_time
  109 + });
  110 + });
  111 + ```
  112 +
  113 +
  114 +3. **active**
  115 +
  116 + ```javascript
  117 + PCSDK.stat.active(): void
  118 + ```
  119 +
  120 + 定义:用户活跃/新增注册上报,切记在使用setLogind设置用户信息过后调用此接口,不然会导致新增注册数据统计异常
  121 +
  122 + 参数:
  123 +
  124 + ```javascript
  125 + 无
  126 + ```
  127 +
  128 + 示例:游戏登录完成后,获取用户信息后进行打点(该示例,只是模拟该接口使用环境)
  129 +
  130 + ```javascript
  131 + // 使用场景1:发起登录请求,得到用户数据信息,调用setLogind设置SDK用户信息后立即调用active
  132 + Api.login().then( data => {
  133 + let { user_id, user_reg_time } = data;
  134 + // 设置用户信息
  135 + PCSDK.stat.setLogind({
  136 + userId: data.user_id,
  137 + regTime: data.user_reg_time
  138 + });
  139 + // 用户活跃注册打点
  140 + PCSDK.stat.active();
  141 + });
  142 +
  143 + // 使用场景2:发起登录请求,得到用户数据信息,调用setLogind设置SDK用户信息。在其他界面调用active
  144 + // 资源加载loading界面
  145 + class LoadingScene(){
  146 + constructor(){
  147 + this.login();
  148 + }
  149 +
  150 + private login(){
  151 + // 登录
  152 + Api.login().then( data => {
  153 + let { user_id, user_reg_time } = data;
  154 + // 设置用户信息
  155 + PCSDK.stat.setLogind({
  156 + userId: data.user_id,
  157 + regTime: data.user_reg_time
  158 + });
  159 + // 进入home主页场景
  160 + SceneManager.I.switchScene(HomeScene);
  161 + });
  162 + }
  163 + }
  164 +
  165 + // Home页面
  166 + class HomeScene(){
  167 + constructor(){
  168 + this.btnStarGame.on('click', this.onGame, this);
  169 + }
  170 +
  171 + private onGame(){
  172 + // 用户活跃注册打点
  173 + PCSDK.stat.active();
  174 + // 进入游戏页面
  175 + SceneManager.I.switchScene(GameScene);
  176 + }
  177 + }
  178 +
  179 + ```
0 180 \ No newline at end of file
... ...