Files
digital-psychology/.ai/product/feature-spec/ops-analytics.md
T
jackyu66gitandCursor 4889ff5916 merge: 合入本地 Ops 扩展与 origin/main(ECR-009–016)
保留远程用户侧 ECR-009–016 与本地 Ops 目录/RBAC/CMS/危机等能力;文档标注分叉期间 ECR 编号冲突。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-13 01:45:53 +08:00

157 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Feature Spec: 运营行为分析(Ops-B
> Status: `Active` · Map: `§7 运营后台` · Phase: `Ops-B`
> ESS`docs/ECR/ECR-007-ops-analytics.md`**Closed** · L2)· BD-2026-007 Approved
> 关联:[ops-admin.md](ops-admin.md) · [analytics.md](analytics.md) · [cece-frontend-re/complete-design/40-ops-commerce.md](cece-frontend-re/complete-design/40-ops-commerce.md)
---
## ESS 门禁
按本仓 `docs/PROJECT_RULES.md` + ESS `CHANGE_MANAGEMENT.md`
1. Change Level = **L2** → ECR Approved + Feature Spec Active + BACKEND_DESIGN Approved — **已满足(2026-08-07**
2. 实现顺序以 `docs/ENGINEERING_SPEC/ECR-007-ops-analytics.md` 为准
3. 完成后:TEST_REPORT · CODE_REVIEW · `ess-validate --phase review` · DoD Review Report
(与 ECR/BACKEND_DESIGN 冲突时以已 Approved 的 ESS 工件为准。)
---
## 1. 目标
按**传统 App 运营**模式:
1. **采集**:页浏览、点击、停留时长、会话退出页等
2. **落库**:自有管道(可与 GA4 双写)
3. **展示**:管理端「数据」看板(DAU、页面、退出页、漏斗)
4. **分期**:先 Ops-B 分析,再内容 / 商业 / 权限全量模块
---
## 2. 分期总览
| 分期 | 主题 | 交付 |
|---|---|---|
| Ops-A | 已完成 | 登录 · 用户 · 订单 · 会员授予 · 审计 · 概览图 |
| **Ops-B** | **行为分析** | 自有埋点 + 管理端「数据」 |
| Ops-C | 内容运营 | 首页宫格/工具配置 · 测评上下架 |
| Ops-D | 商业加深 | 订单筛选 · 套餐价配置 · 退款只读 |
| Ops-E | 系统 | RBAC · 封禁 · 推送/站内信占位 |
UGC / 达人 / 真支付网关:**更远期**,不在本 Spec 承诺范围。
---
## 3. Ops-B 功能定义
| 字段 | 内容 |
|---|---|
| Name | App 行为分析(采集 + 运营看板) |
| Purpose | 用自有数据回答:谁来了、看了哪、停多久、从哪走、点了什么、漏斗掉哪 |
| Business Goal | 替代「只能看 GA / 改库」;支撑日常运营决策 |
| In | Out |
|---|---|
| session / page_view / page_leave(dwell) / ui_click / session_end(exit_page) | 热力图坐标级精确点击 |
| 漏斗事件写入同一管道 | 实时毫秒大屏 |
| Admin「数据」页聚合 | 用户轨迹录像 |
---
## 4. 采集字典(客户端)
扩展 `apps/user-h5/src/lib/analytics.ts`:通道 A = GA4(可选);通道 B = 自有 `POST /api/v1/analytics/events`
| Event | 触发 | 关键 props |
|---|---|---|
| `session_start` | 冷启动或可见性恢复(节流) | `session_id`, `cold`, `app_ver` |
| `page_view` | `router.afterEach` | `page_path`, `page_title`, `referrer_path` |
| `page_leave` | 路由离开 / `visibilitychange=hidden` / `pagehide` | `page_path`, **`dwell_ms`** |
| `ui_click` | `data-track` 或白名单委托 | `page_path`, `element_id` |
| `session_end` | 超时 / 关页(`sendBeacon` | `session_id`, `duration_ms`, **`exit_page`** |
| 既有漏斗 | 保持 | `home_cta_portrait` 等 |
规则:
- 批量上报(5–10s)+ 退出冲刷
- `session_id``sessionStorage`30min 无互动新开
- **禁止**生日、问答正文、手机号、完整档案 ID 明文
---
## 5. 数据模型
```text
analytics_sessions
id, device_key, user_id?, started_at, ended_at, exit_page, duration_ms
analytics_events
id, session_id, user_id?, name, page_path, props jsonb, client_ts, received_at
analytics_daily_page(可选汇总)
day, page_path, pv, uv, dwell_sum_ms, exit_count
```
---
## 6. API
| Method | Path | 意图 |
|---|---|---|
| POST | `/api/v1/analytics/events` | 批量 ingestDeviceAuth,限流) |
| GET | `/api/v1/admin/analytics/overview` | DAU / 会话 / 均时长 |
| GET | `/api/v1/admin/analytics/pages` | 页 PV/UV/avg_dwell/exit |
| GET | `/api/v1/admin/analytics/exits` | 退出页 TOP |
| GET | `/api/v1/admin/analytics/clicks` | 点击 TOP |
| GET | `/api/v1/admin/analytics/funnel` | 漏斗计数 |
查询均带 `from` / `to`(日)。
---
## 7. 管理端「数据」页
侧栏:概览 · **数据** · 用户 · 订单 · 审计
- 时间筛选:今日 / 7 日 / 30 日
- 卡片:DAU、新增、会话数、人均会话时长
- 图:日活趋势;页面均停留 TOP
- 表:页面明细、退出页 TOP、点击 TOP
- 漏斗:探索列表 → 开始作答 → 量表完成 → 画像完成 → 深度 CTA → 支付成功
视觉:愈心谷色系;品牌仅 logo,无「运营后台」字样。
---
## 8. Ops-CE 边界(后置)
| 分期 | In |
|---|---|
| Ops-C | 首页宫格/工具 CRUDscales 上下架 |
| Ops-D | 订单多维筛选;membership 展示价;退款状态只读 |
| Ops-E | 用户封禁;admin 角色;推送任务占位 |
---
## 9. Ops-B 验收
**Given** H5 打开并切换两页后离开
**When** ingest 成功
**Then** 存在 `page_view`×2、`page_leave`(含 dwell_ms)、`session_end.exit_page`
**Given** Admin 登录「数据」近 7 日
**When** GET overview/pages/exits
**Then** 返回非空聚合且与事件量级一致
---
## 10. 实施顺序
1. 本 Spec 置 Active + 改 feature-map §7 / ops-admin 分期
2. Migration + ingest API
3. Admin 聚合 API
4. H5 SDK(会话/停留/点击/beacon
5. admin-h5「数据」页
6. 测试与部署