3.4 KiB
3.4 KiB
AutoClip 埋点体系
工具:PostHog(US 区,
https://us.i.posthog.com) 原则(见ROADMAP.mdPhase 0):匿名 · 可关 · 本地缓冲。不采集 PII、视频内容、字幕文本、API key 明文。
1. 指标框架
| 层级 | 指标 | 数据来源 |
|---|---|---|
| 🌟 北极星 | 周成功出片用户数 | clips_exported |
| 获取 | 下载数 / 安装数 | 下载页 / app_installed |
| 激活 | 导入→出片转化率、首次出片耗时 | 漏斗事件 |
| 留存 | D1/D7/D30、周活 | app_opened(PostHog 自动算) |
| 参与 | 人均出片数、功能渗透率 | 各功能事件 |
| 变现就绪 | 模型分布、配 key 率、失败率 | api_key_configured / processing_failed |
2. 核心漏斗
下载 .dmg → app_installed → video_imported → clips_exported(★激活) → 回访(留存)
3. 事件字典
命名规范:对象_动作,snake_case。代码统一走 src/analytics/events.ts,未配置 key 或用户关闭时自动 no-op。
生命周期(src/analytics/lifecycle.ts)
| 事件 | 触发 | 属性 |
|---|---|---|
app_installed |
设备首次启动 | version, os, arch |
app_opened |
每次启动 | version, session_number |
app_updated |
版本号变化 | from_version, to_version |
激活漏斗
| 事件 | 触发位置 | 属性 |
|---|---|---|
video_imported |
api.ts uploadFiles / createDownloadTask / createYouTubeDownloadTask |
source(upload/url), fileType, sizeBytes |
clips_exported ★ |
api.ts downloadVideo |
clipCount, exportType(clip/collection/project) |
配置
| 事件 | 触发位置 | 属性 |
|---|---|---|
api_key_configured |
SettingsPage 保存成功后 |
provider, hasKey(不传明文) |
错误
| 事件 | 触发位置 | 属性 |
|---|---|---|
processing_failed |
api.ts 导入/导出 catch |
stage(import/export/...), code, message |
崩溃/异常栈交给 Sentry(Phase 0 另接),PostHog 只记业务失败。
4. 全局属性(Super Properties)
每条事件自动携带,在 lifecycle.ts 的 trackLaunch() 里注册:
app_version(Tauri getVersion())· os · arch · app_locale。
5. 身份模型
- 现在:匿名设备 ID(PostHog 自动,
localStorage持久化)。 - Phase 1 账号上线后:登录
identifyUser(userId)、登出resetUser()(src/analytics/posthog.ts已备好)。
6. 下载量(App 外)
App 内用 app_installed 当装机量。若有官网,加 PostHog 网页 snippet 埋 download_clicked,串成"落地页→下载→安装"全漏斗。
7. 隐私 / 合规
- 设置页 → 应用设置 → 隐私与数据 开关(
setAnalyticsEnabled),状态持久化,重启生效。 - 默认关录屏、不采 PII、key 只记
hasKey。 - 上线前需配套隐私政策(《个人信息保护法》要求)。
8. 配置
环境变量(frontend/.env.local,已 gitignore):
VITE_PUBLIC_POSTHOG_KEY=phc_xxx
VITE_PUBLIC_POSTHOG_HOST=https://us.i.posthog.com
缺省时埋点全程 no-op。模板见 frontend/.env.example。
9. 加新事件的步骤
- 在
events.ts的AnalyticsEvent加常量 + 类型化封装函数。 - 在调用点 import 调用(优先放
services/api.ts这类集中层)。 - 更新本文件的事件字典。