# 启动场景上报分析

## 概述

在小游戏环境下，玩家对启动时长与体验非常敏感。提升小游戏启动速度对于用户新进留存具有非常重要的价值（尤其从“广告”等买量场景进入的玩家）。
开发者可以通过[启动时序与关键指标](perf-action-start)了解小游戏的启动时序和在[小游戏数据助手](/minigame/analysis/assistant.md#%E5%8A%9F%E8%83%BD%E6%A6%82%E8%BF%B0)上查看关键的启动数据，此部分数据只能统计到玩家从点击开始到看到首屏渲染画面为止，在用户真正与游戏发生交互前，通常是还会包含许多的游戏的业务资源的下载和逻辑处理。
为了能够帮助游戏开发者主动发现游戏可交互前的各个阶段的性能、留存情况，现提供官方的上报接口 [wx.reportScene](/minigame/dev/api/data-analysis/wx.reportScene.md)，让开发者实现自定义启动场景数据的上报。

## 启动场景上报

> **说明：**
> 游戏首帧 - 用户看到首帧游戏画面的时间 
> 游戏可交互 - 用户最早可操作游戏的时间，通常意义上指 游戏创角 或 进入游戏核心玩法（如大厅、新手指引等）

![上报时机](https://mmgame.qpic.cn/image/d1311e2289bc11fc114468a37b328cadc89b195d0aad24a0f9442779211fb502/0)

启动场景上报主要有如下的特点：

1. 将游戏自主上报的启动场景与小游戏的框架启动事件进行关联，提供从用户点击开始到启动完成的**全流程**的漏斗分析能力，帮助游戏精确地分析各个启动流程的留存和耗时问题
2. 默认提供网络类型、入口场景等多种维度的数据筛选，并且支持业务新增自定义维度来更精细化地分析启动的问题

### 场景说明

为了帮助开发者更好地统计分析玩家的启动阶段耗时以及留存分析，我们将启动场景分为两个部分

- 系统自带场景、维度、指标的上报，大部分无需开发者手动上报
- 开发者自定义的启动场景上报，此部分需要开发者**主动调用接口**进行数据的上报

**注意：**

- 启动场景上报能力仅用于启动阶段的统计分析，对于其他场景的统计上报，可能会无法得出正确结论。
- 统计数据仅包含 `总运行耗时 <= 60s` 的数据项。

#### 系统启动场景

针对小游戏的启动流程，默认提供了部分启动场景，大部分无需开发者手动上报，但某些场景的统计需要开发者**主动调用接口**上报，才能统计此场景的耗时情况，具体场景说明如表格所示：

|  场景ID   | 场景名称 | 场景说明 |
| :----: | :----: | :---- |
| 7  | 游戏可交互 | 资源加载完毕，上报用户的最早可操作游戏画面的时间点（如进入开始游戏界面、新手引导或大厅界面）|

## 使用方法

### 新建启动场景

登录[微信公众平台](https://mp.weixin.qq.com)，进入「开发」-「研发工具箱」-「启动分析」模块，进入新建场景，新建游戏的自定义启动场景。

![](https://res8.wxqcloud.qq.com.cn/wxdoc/a23743a4-95a9-4a0c-be3d-15816c50157c.png)

### 新建维度

平台默认提供通用维度（平台、机型、网络类型、是否下载代码包和小游戏启动场景）的筛选，若通用维度无法满足业务针对某个场景进行维度划分，业务可以新建维度，并在调用上报接口时带上当前维度对应的维度值信息。

![](https://res8.wxqcloud.qq.com.cn/wxdoc/8e673e97-4dae-4c56-a9d9-24e4ee08352f.png)

### 上报自定义启动场景

更多参数请参考 [wx.reportScene接口文档](/minigame/dev/api/data-analysis/wx.reportScene.md)

```javascript
// 接口上报示例代码，当基础库版本>=2.26.2才能使用此能力
wx.reportScene({
  sceneId: 1000,  //「必填」sceneId 为「新建场景」后，由系统生成的场景 Id 值，用于区分当前是哪个启动场景的数据
  costTime: 365,  //「非必填」costTime 为当前场景的耗时(ms)，非必填，默认为 0
  dimension: {
    d1: 'test', //「非必填」value仅支持传入String类型。若value表示Boolean，请将值处理为0、1进行上报；若value为Number，请转换为String进行上报
  },
  success(res) {
    // 上报接口执行完成后的回调，用于检查上报数据是否符合预期，也可通过启动调试能力进行验证
    console.log(res);
  },
  fail(res) {
    // 上报报错时的回调，用于查看上报错误的原因：如参数类型错误等
    console.log(res);
  },
});
```

### 启动场景上报调试

开发者完成自定义场景、维度的新增后，若需要针对启动场景的上报进行调试和验证，可打开小游戏的 **开发版/体验版** 进行调试，具体调试方法如下

#### 进入调试界面

![](https://res8.wxqcloud.qq.com.cn/wxdoc/8b649239-bdea-4690-b755-d3fe69991e9a.png)

#### 启动调试

![](https://res8.wxqcloud.qq.com.cn/wxdoc/9d822f65-42bc-41ce-a8ac-5cc7e890a577.png)

**注意：**

1. 调试能力仅作用于 `开发版/体验版` 小游戏。
2. 请确保测试人员 `基础库版本 >= 3.0.0`（可通过vConsole最上面一行日志输出确认基础库版本）。
3. 请确保场景调试人员具备当前账号的 `开发者角色权限`。

## 数据分析

数据分析包含系统场景与开发者上报的自定义启动场景的数据，其中数据分析分为 **单场景分析** 和 **漏斗分析**。
登录[微信公众平台](https://mp.weixin.qq.com)，进入「开发」-「研发工具箱」-「启动分析」-「数据分析」模块，查看统计上报的数据。

### 单场景分析

单场景分析着重于查看某个场景下的阶段耗时（完成当前场景的耗时情况）和总耗时（自玩家点击开始到当前场景完成时的总耗时）。通过单场景分析能更好地针对启动流程中的关键场景进行分析，帮助开发者针对性地优化启动流程。

![](https://res8.wxqcloud.qq.com.cn/wxdoc/16719580-f5ab-4d50-aeec-b71c15f16168.png)

### 漏斗分析

漏洞分析支持选择任意个场景（包含系统场景和自定义场景）进行漏斗留存分析（如：查看启动点击到场景 A 的用户留存情况）。通过漏斗留存分析，能更好地发现启动阶段用户都在什么场景下流失，帮助开发者发现启动阶段的流失问题和针对性优化启动流程体验。

![](https://res8.wxqcloud.qq.com.cn/wxdoc/ce39d726-a3fa-40cc-b933-8429ec0467fa.png)

## 联系我们

如有任何问题、建议，欢迎扫码联系小助手咨询

![](https://res8.wxqcloud.qq.com.cn/wxdoc/a5e6eea2-3f21-4705-8e02-5a5115f41bc8.png)
