Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
12a5951c
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3200
Star
106
Fork
813
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
94
列表
看板
标记
里程碑
合并请求
70
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
94
Issue
94
列表
看板
标记
里程碑
合并请求
70
合并请求
70
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
未验证
提交
12a5951c
编写于
6月 14, 2022
作者:
DCloud_Heavensoft
提交者:
Gitee
6月 14, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update docs/uni-stat-v2.md.
上级
8a9d983d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
66 addition
and
32 deletion
+66
-32
docs/uni-stat-v2.md
docs/uni-stat-v2.md
+66
-32
未找到文件。
docs/uni-stat-v2.md
浏览文件 @
12a5951c
...
@@ -53,7 +53,7 @@ uni统计的错误信息更全面,包括 js前端错误和 App 原生层的崩
...
@@ -53,7 +53,7 @@ uni统计的错误信息更全面,包括 js前端错误和 App 原生层的崩
uni统计深入uni-app和uniCloud框架底层,提供了众多其他统计平台无法提供的功能:
uni统计深入uni-app和uniCloud框架底层,提供了众多其他统计平台无法提供的功能:
-
uni-app全端识别,无需对接不同sdk、无需在不同报表中切换和自己累加数据
-
uni-app全端识别,无需对接不同sdk、无需在不同报表中切换和自己累加数据
-
自动识别uni-app路由,自动采集页面标题(基于
navigationBar或uni-title
组件)
-
自动识别uni-app路由,自动采集页面标题(基于
pages.json的navigationBar或uni-nav-bar
组件)
-
自动捕获js错误,上报app端原生崩溃日志
-
自动捕获js错误,上报app端原生崩溃日志
-
兼容uni-app渠道包打包体系,自动识别渠道包
-
兼容uni-app渠道包打包体系,自动识别渠道包
-
基于uni-id账户体系,自动出具注册用户(不是设备)的新增、活跃、留存报表
-
基于uni-id账户体系,自动出具注册用户(不是设备)的新增、活跃、留存报表
...
@@ -88,18 +88,18 @@ uni统计的开源且基于[uni-admin](/uniCloud/admin)的插件规范提供了
...
@@ -88,18 +88,18 @@ uni统计的开源且基于[uni-admin](/uniCloud/admin)的插件规范提供了
## 使用教程
## 使用教程
`uni统计2.0`
包括两个模块:
`uni统计2.0`
包括两个模块:
-
前端采集模块:
通常为用户端App,内置在
`uni-app`
项目中,可通过
`manifest.json`
进行配置;
-
前端采集模块:
内置在
`uni-app`
框架中,在业务App的
`manifest.json`
进行配置;
-
云端统计模块:
通常为管理后台,内置在
`uni-admin`
项目,和用户端App项目复用同样的
服务空间;
-
云端统计模块:
内置在
`uni-admin`
项目模板中,和业务App复用同样的uniCloud
服务空间;
### 前端采集配置
### 前端采集配置
在
项目中打开
`manifest.json`
, 选择
`uni统计配置`
项,根据需求,选择开通
`uni统计`
,勾选
`version2
`
开启新版统计。
在
业务App项目的
`manifest.json`
里,选择
`uni统计配置`
项,根据需求,选择开通
`uni统计`
,勾选
`2.0
`
开启新版统计。
![
开启统计
](
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/14b2b045-3d8e-4535-acad-2e745441c816.png
)
![
开启统计
](
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/14b2b045-3d8e-4535-acad-2e745441c816.png
)
#### 源码视图json解读
上述可视化操作,其实对应manifest源码视图的
`uniStatistics`
节点。如下文档对manifest规范进行详述。
**如不关心规范细节,可以不阅读本小节,继续看下一节《小程序域名白名单》**
。
将
`manifest.json -> uniStatistics`
下的
`enable`
字段设置为
`true|false`
,
来开启关闭
`uni统计`
`uniStatistics`
下的
`enable`
字段设置为
`true|false`
,
来开启关闭
`uni统计`
设置
`version`
属性为
`"2"`
来开启新版统计
设置
`version`
属性为
`"2"`
来开启新版统计
...
@@ -156,10 +156,11 @@ uni统计的开源且基于[uni-admin](/uniCloud/admin)的插件规范提供了
...
@@ -156,10 +156,11 @@ uni统计的开源且基于[uni-admin](/uniCloud/admin)的插件规范提供了
| 阿里云 | api.bspapp.com |
| 阿里云 | api.bspapp.com |
| 腾讯云 | tcb-api.tencentcloudapi.com |
| 腾讯云 | tcb-api.tencentcloudapi.com |
根据选择的uniCloud云厂商,配置相应的域名到小程序的域名白名单配置里即可。
#### 调试模式
#### 调试模式
将
`manifest.json -> uniStatistics`
下的
`debug`
字段设置为
`true|false`
,
来开启关闭
`uni统计`
调试模式
将
`manifest.json -> uniStatistics`
下的
`debug`
字段设置为
`true|false`
,
来开启关闭
`uni统计`
调试模式
在调试模式下,会将上报数据的关键信息打印到控制台,方便观察采集信息是否正确 ,多用在自定义扩展的时候
在调试模式下,会将上报数据的关键信息打印到控制台,方便观察采集信息是否正确 ,多用在自定义扩展的时候
...
@@ -204,30 +205,44 @@ uni统计的开源且基于[uni-admin](/uniCloud/admin)的插件规范提供了
...
@@ -204,30 +205,44 @@ uni统计的开源且基于[uni-admin](/uniCloud/admin)的插件规范提供了
#### 创建 admin 项目
#### 创建 admin 项目
`uni统计2.0`
的后台统计报表是
`uni-admin`
的内置插件,故使用
`uni统计2.0`
,需依赖
[
uni-admin
](
https://uniapp.dcloud.io/uniCloud/admin.html#uni-admin-%E6%A1%86%E6%9E%B6-%E5%8E%9F%E5%90%8D-unicloud-admin
)
项目。
`uni统计2.0`
的后台统计报表是
[
uni-admin
](
https://uniapp.dcloud.io/uniCloud/admin.html
)
的内置插件。
[
uni-admin
](
https://uniapp.dcloud.io/uniCloud/admin.html
)
是一个开源管理后台。也就是使用
`uni统计2.0`
,需要安装这个后台系统,在里面找到uni统计的菜单并使用。
请参考
[
uni-admin
](
https://uniapp.dcloud.io/uniCloud/admin.html#uni-admin-%E6%A1%86%E6%9E%B6-%E5%8E%9F%E5%90%8D-unicloud-admin
)
文档,完成如下操作:
请参考
[
uni-admin
](
https://uniapp.dcloud.io/uniCloud/admin.html#uni-admin-%E6%A1%86%E6%9E%B6-%E5%8E%9F%E5%90%8D-unicloud-admin
)
文档,完成如下操作:
1.
创建新的
`uni-admin`
项目
1.
创建新的
`uni-admin`
项目(HBuilderX新建项目界面选择uni-admin模板)
2.
绑定服务空间
2.
在弹出的云服务空间初始化向导中,关联服务空间(如果您的业务App已使用了uniCloud,那么选择相同的服务空间;否则,新建一个服务空间,并在业务App里关联相同服务空间)
3.
部署云端资源(上传部署云函数、公共模块、初始化数据库表等)
3.
部署云端资源:上传部署云函数、公共模块、通过
`db_init.json`
初始化数据库表。如之前的表已经有冲突数据,需要自己手动合并下
4.
完成其它初始化配置,如:打开
`uni-config-center`
配置
`uni-id`
相关秘钥
4.
在云端配置中心完成其它初始化配置,如:在
`uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json`
文件中填写自己的 passwordSecret 字段 (用于加密密码入库的密钥) 和 tokenSecret 字段 (为生成 token 需要的密钥,测试期间跳过本条也可以),然后对uni-config-center公共模块点右键上传更新。
5.
运行 uni-admin 项目,在「应用管理」中新增「被统计应用」的记录(appid 等)
5.
运行 uni-admin 项目,一般是运行到浏览器
6.
设置管理员账户
7.
在左侧「应用管理」中新增「被统计应用」的记录(appid 等)
8.
配置结束后,启动业务App,将会在运行后的
`uni-admin`
页面左侧的uni统计菜单里看到业务App的数据(如看不到数据,见下方常见问题章节)
9.
测试通过后,在HBuilder发行菜单里发行
`uni-admin`
项目,选择部署到uniCloud服务空间的前端网页托管里。可以在
[
uniCloud web控制台
](
https://unicloud.dcloud.net.cn/
)
自定义域名。
::: warning 注意
::: warning 注意
-
「连接本地云函数」运行需要在 uni-admin 的 database 文件夹上右键,点击「下载所有DB schema及扩展校验函数」
-
「连接本地云函数」运行需要在 uni-admin 的 database 文件夹上右键,点击「下载所有DB schema及扩展校验函数」
。如果之前服务空间初始化向导里漏操作了
`db_init`
初始化数据,则对
`uniCloud/database/db_init.json`
点右键初始化
-
我们
建议用户端项目和
`uni-admin`
项目关联(复用)相同的服务空间,此时如果用户端项目和
`uni-admin`
项目下,均存在
`uni-config-center`
的话,务必注意互相覆盖的问题,此时建议单点维护,比如所有配置均在
`uni-admin`
项目下的
`uni-config-center`
中完成。
-
建议用户端项目和
`uni-admin`
项目关联(复用)相同的服务空间,此时如果用户端项目和
`uni-admin`
项目下,均存在
`uni-config-center`
的话,务必注意互相覆盖的问题,此时建议单点维护,比如所有配置均在
`uni-admin`
项目下的
`uni-config-center`
中完成。
:::
:::
**老项目升级**
**uni-admin老项目升级**
如您需要统计的业务之前已经使用了
`uni-admin`
,可以升级
`uni-admin`
。对项目下的
`package.json`
点右键,选择「从插件市场更新」。
uni统计新增的文件主要包括:
-
云函数:
`uniCloud/cloudfunctions/uni-stat-cron`
(定时跑批云函数)、
`uniCloud/cloudfunctions/uni-stat-receiver`
(接收前端打点的云对象)
-
云函数公共模块:
`uniCloud/cloudfunctions/common/uni-stat`
-
数据表:
`uniCloud/database`
目录下
`uni-stat`
开头的若干
`schema`
文件
-
统计页面:
`pages/uni-stat`
文件夹下面的若干页面
更新时注意合并pages.json,确保新页面都注册成功。否则运行起来后,点击左侧菜单会报找不到xxx文件。
若你想复用老的
`uni-admin`
项目,请手动对比新老项目差异,将uni统计新增云函数及统计页面复制到老的uni统计项目中,主要包括:
`db_init.json`
初始化数据库时,老项目的菜单表
`opendb-admin-menus`
,已经有数据了,此时key冲突的数据无法插入,需要手工合并。
-
云函数:
`uniCloud/cloudfunctions/uni-stat-cron`
、
`uniCloud/cloudfunctions/uni-stat-receiver`
1.
如果老项目没有改动过menus和权限,那么可以删掉老表,重新初始化
-
通用模块:
`uniCloud/cloudfunctions/uni-stat`
2.
如果老项目的menus菜单改动过,需要把uni统计的若干页面再合并到菜单数据表里
-
数据表:
`uniCloud/database`
目录下相关
`schema`
文件
-
统计页面:
`pages/uni-stat`
文件夹
#### 设置定时任务云函数的触发周期
#### 设置定时任务云函数的触发周期
...
@@ -770,7 +785,7 @@ uni统计配置项存放于uniCloud配置中心(`uni-config-center`)下的 `
...
@@ -770,7 +785,7 @@ uni统计配置项存放于uniCloud配置中心(`uni-config-center`)下的 `
-
应用在运行、调试时不会上报统计数据,仅在发行后,并启动新版的App、h5、小程序,才会上报数据。
-
应用在运行、调试时不会上报统计数据,仅在发行后,并启动新版的App、h5、小程序,才会上报数据。
-
不支持 CLI 项目
-
不支持 CLI 项目
:::
:::
## 扩展和自定义方式
## 扩展和自定义方式
uni统计提供了基础的数据报表,如不能达到预期的数据采集,可以在客户端通过
`uni.report(eventKey,param)`
自由上报数据 ,并通过 uni-admin 增加页面 ,自行统计数据。
uni统计提供了基础的数据报表,如不能达到预期的数据采集,可以在客户端通过
`uni.report(eventKey,param)`
自由上报数据 ,并通过 uni-admin 增加页面 ,自行统计数据。
...
@@ -797,16 +812,21 @@ uni.report('购买',{
...
@@ -797,16 +812,21 @@ uni.report('购买',{
})
})
```
```
### uni-admin 中使用自定义事件上报的数据
### uni-admin 中使用自定义事件上报的数据
在 uni-admin 中新增页面,使用
[
uniCloud API
](
https://uniapp.dcloud.io/uniCloud/clientdb#clientdb%E7%AE%80%E4%BB%8B
)
获取所有
`uni-report`
上报的原始数据,数据存放于
[
uni-stat-event-logs
](
https://gitee.com/dcloud/opendb/tree/master/collection/uni-stat-event-logs
)
表中。
在 uni-admin 中新增页面,使用
[
uniCloud API
](
https://uniapp.dcloud.io/uniCloud/clientdb#clientdb%E7%AE%80%E4%BB%8B
)
获取所有
`uni-report`
上报的原始数据,数据存放于
[
uni-stat-event-logs
](
https://gitee.com/dcloud/opendb/tree/master/collection/uni-stat-event-logs
)
表中。
-
获取数据后,可以自行扩展所需业务逻辑
-
获取数据后,可以自行扩展所需业务逻辑
```
js
```
js
const
db
=
uniCloud
.
database
()
const
db
=
uniCloud
.
database
()
db
.
collection
(
'
uni-stat-event-logs
'
)
db
.
collection
(
'
uni-stat-event-logs
'
)
```
```
不管是新上报的数据,还是
[
opendb
](
https://uniapp.dcloud.net.cn/uniCloud/opendb.html
)
的数据、或者开发者自己的业务数据库里的数据,都可以自己编写报表进行统计分析。
与普通uni-app页面一样,新建页面,编写代码。
在
`uni-admin`
中注册左侧菜单时,需要参考文档:
[
uni-admin 左侧窗口-菜单栏
](
https://uniapp.dcloud.io/uniCloud/admin.html#%E5%B7%A6%E4%BE%A7%E7%AA%97%E5%8F%A3-%E8%8F%9C%E5%8D%95%E6%A0%8F
)
## 常见问题
## 常见问题
...
@@ -814,13 +834,20 @@ db.collection('uni-stat-event-logs')
...
@@ -814,13 +834,20 @@ db.collection('uni-stat-event-logs')
答:与定时任务配置配置有关,默认
`统计首页`
、
`今日概况`
等数据为1小时后可见,其余数据为次日可见。要想详细了解各类型数据统计时间请参考
[
定时任务配置说明
](
#定时任务配置说明
)
。
答:与定时任务配置配置有关,默认
`统计首页`
、
`今日概况`
等数据为1小时后可见,其余数据为次日可见。要想详细了解各类型数据统计时间请参考
[
定时任务配置说明
](
#定时任务配置说明
)
。
**2.
如何判断是否需要配置分钟级定时任务?
**
**2.
已经开启统计,定时任务配置也正常,但是后台还是看不到数据
**
答:一般情况下是不需要自行配置的,但如果
`定时任务云函数(uni-stat-cron)`
出现运行超时的情况时,就要考虑去开启分钟级定时任务了。
答:
-
确保分清楚,业务App 和 admin 是2个工程。业务App是采集端,admin是报表端
-
确保使用HBuilderX 3.4.14+
-
确保在需要统计的业务App工程的manifest里勾选了开启 uni统计2.0,并关联和正确的uniCloud服务空间
-
确保重新发行过业务App(在HBuilder里发行即可,不需要上架应用商店或小程序商店),数据上报只发生在项目发行后或者运行项目开启了调试模式,其他情况不会上报数据。
[
详情
](
#report-time
)
-
确保uni-admin项目的uniCloud目录下的云函数都上传到了与App相同的uniCloud服务空间
-
在
[
uniCloud web控制台
](
https://unicloud.dcloud.net.cn/
)
的云函数日志中,可以看到
`uni-stat-receiver`
云函数有正确的请求日志
-
如需看uni-admin这个管理端的统计数据,才需要在uni-admin工程的manifest里配置uni统计2.0并再次发行。再次强调不要搞混业务App和admin
**3.
已经开启统计,定时任务配置也正常,但是后台还是看不到数据
**
**3.
如何判断是否需要配置分钟级定时任务?
**
答:
数据上报只发生在项目发行后或者运行项目开启了调试模式,其他情况不会上报数据,所以后台看不到数据。
[
详情
](
#report-time
)
答:
一般情况下是不需要自行配置的,但如果
`定时任务云函数(uni-stat-cron)`
出现运行超时的情况时,就要考虑去开启分钟级定时任务了。
**4. 如何创建或授权`uni统计`运营管理员账号**
**4. 如何创建或授权`uni统计`运营管理员账号**
...
@@ -829,3 +856,10 @@ db.collection('uni-stat-event-logs')
...
@@ -829,3 +856,10 @@ db.collection('uni-stat-event-logs')
**5. 为什么总设备数比活跃设备数少?**
**5. 为什么总设备数比活跃设备数少?**
答:总设备数计算公式为:总设备数 = 原设备数 + 新设备数,而判断一个设备是否为新设备的依据是在客户端SDK中是否已储存该设备上次访问某一应用的时间,未存储则认为是该应用的新设备(即lvts=0时为新设备,lvts>0为老设备)。 因此如果之前某一设备已经访问过某一应用,就算此时清除数据库中的数据,由于已经在客户端SDK中储存该设备上次访问应用的时(即此时lvts > 0),所以该设备也不会再被认为是该应用的新设备从而不会再被计算进该应用的总设备数中而只会计算进活跃设备数中,此时可能就会出现总设备数小于活跃设备数的情况。
答:总设备数计算公式为:总设备数 = 原设备数 + 新设备数,而判断一个设备是否为新设备的依据是在客户端SDK中是否已储存该设备上次访问某一应用的时间,未存储则认为是该应用的新设备(即lvts=0时为新设备,lvts>0为老设备)。 因此如果之前某一设备已经访问过某一应用,就算此时清除数据库中的数据,由于已经在客户端SDK中储存该设备上次访问应用的时(即此时lvts > 0),所以该设备也不会再被认为是该应用的新设备从而不会再被计算进该应用的总设备数中而只会计算进活跃设备数中,此时可能就会出现总设备数小于活跃设备数的情况。
**参考资料:**
不掌握如下文档,很难对 uni统计2.0 吃透和做二次开发
-
uni-admin文档:
[
详见
](
https://uniapp.dcloud.net.cn/uniCloud/admin.html
)
-
uni-id文档:
[
详见
](
https://uniapp.dcloud.net.cn/uniCloud/uni-id.html
)
-
opendb文档:
[
详见
](
https://uniapp.dcloud.net.cn/uniCloud/opendb.html
)
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录