::: warning 注意
推荐使用 [uni统计2.0](uni-stat-v2.html)
:::
## 统计
从uni-app 2.2.3起,支持uni统计。一张报表,掌握全端数据。业务介绍详见[https://tongji.dcloud.net.cn](https://tongji.dcloud.net.cn)
自定义事件是统计中不可或缺的功能。开发者可通过本API自定义上报统计数据,如统计登录、注册、点击某个按钮,我们都可以称之为自定义事件。
### uni.report( eventKey , param)
**参数说明**
|参数|类型|描述|
|---|---|---|
|eventKey|String|事件名称,最大长度不超过 255 个字符|
|param|String 、 Object |事件参数|
::: tip 提示
- eventKey 为 String 类型,并且字符长度必须小于255
- param 为 String 类型时,字符长度必须小于255
- param 为 Object 类型时,该对象的值只能为 String 类型
- 字符串支持特殊字符但不包括(英文逗号 , 英文冒号 : 点 .)
- eventKey 为 `title` 时为内容标题上报,用户不能自定义。此时数据会展现在uni统计的首页-内容统计及左侧导航的内容统计中。方便查看内容页数据。
- 用户在使用 `uni.login()` 会执行登录事件,不携带参数。如果如需上报携带具体参数的数据,需要手动调用 `uni.report('login',{...})`
- 用户在使用 `uni.share()` 或触发 `onShareAppMessage` 会执行分享事件,不携带参数。如果如需上报携带具体参数的数据,需要手动调用 `uni.report('share',{...})`
- 用户在使用 `uni.requestPayment()` 会执行支付事件,不携带参数。如果如需上报携带具体参数的数据,需要手动调用 `uni.report('pay_success',{...})` 和 `uni.report('pay_fail',{...})`
:::
**示例**
```javascript
// 内容统计
// 当 eventKey 为 title 时,param 只能为 String 类型
uni.report('title','首页')
// 登录
uni.report('login',{
'name':'uni-app',
'age':'21',
// ...
})
// 分享
uni.report('share','分享')
// 支付成功
uni.report('pay_success','支付成功')
// or
uni.report('pay_success',{
"订单金额":'20元',
"订单名称":'鼠标',
// ...
})
// 支付失败
uni.report('pay_fail','支付失败')
// or
uni.report('pay_fail',{
"订单金额":'20元',
"订单名称":'鼠标',
// ...
})
// 注册
uni.report('register',{
'name':'uni-app',
'age':'21',
// ...
})
// 搜索
uni.report('search','搜索内容')
// or
uni.report('search',{
'内容':'搜索内容'
})
```
自定义事件上报后,在统计后台的`事件和转换`栏目中,可以看到上报的事件情况。
::: tip 提示
- 小程序平台,需将`tongji.dcloud.net.cn`配入域名白名单,[详见](https://ask.dcloud.net.cn/article/36298)
- uni统计使用教程:[uni统计2.0](https://uniapp.dcloud.io/uni-stat-v2.html)、[uni统计1.0](https://uniapp.dcloud.io/uni-stat-v1.html)
:::
### 支持 uni.report 的 uni-ui 组件
`uni-ui` 中内置了一些数据采集相关的组件,用户使用这些组件,并设置属性 `stat:true`,即可在使用相关组件时,自动上报相关自定义数据
- [uni-nav-bar](https://ext.dcloud.net.cn/plugin?name=uni-nav-bar)
- [uni-title](https://ext.dcloud.net.cn/plugin?name=uni-title)
- [uni-group](https://ext.dcloud.net.cn/plugin?name=uni-group)
- [uni-goods-nav](https://ext.dcloud.net.cn/plugin?name=uni-goods-nav)
### 非官方自定义统计
除了官方的uni统计,如果开发者还需要调用小程序平台的自定义统计,给小程序的后台上报数据,那么需使用条件编译,在各端调用此自己的API。
#### 微信小程序平台:
- 数据上报:[wx.reportMonitor](https://developers.weixin.qq.com/miniprogram/dev/api/open-api/report/wx.reportMonitor.html)
- 数据分析:[wx.reportAnalytics](https://developers.weixin.qq.com/miniprogram/dev/api/open-api/data-analysis/wx.reportAnalytics.html)
#### 支付宝小程序平台:
- 自定义分析数据的上报接口:[my.reportAnalytics](https://docs.alipay.com/mini/api/report)
#### 百度小程序平台:
- 数据分析:[swan.reportAnalytics](https://smartprogram.baidu.com/docs/develop/api/data/#swan-reportAnalytics/)
#### 字节跳动小程序平台:
- [reportAnalytics](https://developer.toutiao.com/dev/cn/mini-app/develop/open-capacity/data-analysis/reportanalytics)
#### QQ小程序平台:
- 数据上报:[qq.reportMonitor](https://q.qq.com/wiki/develop/miniprogram/API/open_port/port_dataup.html)
- 数据分析:[qq.reportAnalytics](https://q.qq.com/wiki/develop/miniprogram/API/open_port/port_dataanalysis.html#qq-reportanalytics)
#### App平台的友盟统计:
- 友盟统计:[开发规范](http://www.html5plus.org/doc/zh_cn/statistic.html),[配置文档](https://ask.dcloud.net.cn/article/74)