KOL Insight - 产品需求文档 (PRD)
文档信息
| 项目 |
内容 |
| 版本 |
v1.0 |
| 创建日期 |
2025-01-28 |
| 状态 |
草稿 |
1. 产品概述
1.1 产品背景
在 KOL 营销领域,运营人员需要频繁查询达人视频数据以评估投放效果、计算投放成本。现有的云图平台虽然提供了数据,但缺乏批量查询和成本预估能力,导致运营人员需要手动逐条查询和计算,效率低下。
KOL Insight 旨在解决这一痛点,提供批量数据查询和智能成本预估功能,帮助运营人员快速获取决策所需的数据。
1.2 产品定位
- 目标用户:KOL 营销运营人员、投放优化师、品牌方
- 核心价值:批量查询 KOL 视频数据,自动计算预估 CPM 和看后搜成本
- 差异化优势:支持多种查询方式(星图ID/达人ID/昵称),自动计算关键成本指标
1.3 产品目标
| 目标 |
指标 |
衡量方式 |
| 提升查询效率 |
单次可批量查询多个 KOL |
对比手动查询耗时 |
| 降低计算错误 |
自动计算预估指标准确率 100% |
人工抽检验证 |
| 提高数据可用性 |
支持数据导出 |
导出功能完整性 |
2. 用户故事
2.1 用户角色定义
| 角色 |
描述 |
核心目标 |
痛点 |
| 运营人员 |
负责 KOL 投放执行与数据分析的一线人员 |
快速获取 KOL 视频表现数据 |
逐条查询效率低,成本计算繁琐 |
| 投放优化师 |
负责投放策略优化的专业人员 |
评估投放 ROI,优化投放策略 |
数据分散,难以横向对比 |
2.2 用户故事列表
P0 - 核心故事
| ID |
用户故事 |
验收标准 |
| US-001 |
作为运营人员,我想要批量输入星图ID查询KOL数据,以便快速获取多个达人的视频表现 |
1. 支持批量输入星图ID(换行分隔) 2. 精准匹配 star_id 字段 3. 返回完整视频数据列表 |
| US-002 |
作为运营人员,我想要通过达人unique_id查询数据,以便根据达人ID快速定位数据 |
1. 支持批量输入达人unique_id 2. 精准匹配 star_unique_id 字段 3. 返回对应视频数据 |
| US-003 |
作为运营人员,我想要通过达人昵称模糊搜索,以便在不知道精确ID时也能找到数据 |
1. 支持输入达人昵称 2. 模糊匹配 star_nickname 字段 3. 返回所有匹配结果 |
| US-004 | 作为运营人员,我想要看到预估自然CPM和看后搜人数成本,以便评估投放效果 | 1. 自动计算预估自然CPM
2. 自动计算预估自然看后搜人数
3. 自动计算预估自然看后搜人数成本
4. 数据展示在结果列表中 |
P1 - 重要故事
| ID |
用户故事 |
验收标准 |
| US-005 |
作为运营人员,我想要导出查询结果,以便在 Excel 中进一步分析或汇报 |
1. 支持导出为 Excel/CSV 格式 2. 导出数据包含所有查询字段 3. 中文列名清晰可读 |
| US-006 |
作为运营人员,我想要看到视频的完整数据指标,以便全面了解视频表现 |
1. 展示所有核心指标(曝光、互动、A3率等) 2. 数据格式清晰易读 |
P2 - 次要故事
| ID |
用户故事 |
验收标准 |
| US-007 |
作为运营人员,我想要点击视频链接直接跳转,以便快速查看原视频 |
1. 视频链接可点击 2. 新窗口打开视频页面 |
2.3 用户旅程
核心用户旅程:批量查询 KOL 数据
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 触发点 │ │ 输入查询条件 │ │ 查看结果 │ │ 导出数据 │
│ 需要KOL数据 │ ──▶ │ 批量输入ID/昵称 │ ──▶ │ 浏览数据列表 │ ──▶ │ 下载Excel/CSV │
└─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │ │
▼ ▼ ▼ ▼
"需要快速获取 "选择查询方式, "系统自动计算 "数据可用于
多个达人数据" 粘贴ID列表" CPM等指标" 汇报和分析"
用户从需要 KOL 数据开始,选择合适的查询方式(星图ID/达人ID/昵称),批量输入查询条件后提交查询。系统返回结果列表,自动计算预估 CPM 和看后搜成本等指标。用户可浏览数据,需要时导出为 Excel 或 CSV 文件。
3. 功能需求
3.1 功能架构
KOL Insight
├── 数据查询模块
│ ├── 星图ID精准查询
│ ├── 达人unique_id精准查询
│ └── 达人昵称模糊查询
├── 数据计算模块
│ ├── 预估自然CPM计算
│ ├── 预估自然看后搜人数计算
│ └── 预估自然看后搜人数成本计算
├── 数据展示模块
│ ├── 结果列表展示
│ └── 视频链接跳转
└── 数据导出模块
└── Excel/CSV导出
3.2 功能详情
3.2.1 数据查询模块
| 功能点 |
描述 |
关联用户故事 |
优先级 |
验收标准 |
| 星图ID查询 |
批量输入星图ID,精准匹配 star_id 字段 |
US-001 |
P0 |
支持批量输入,精准匹配,返回完整数据 |
| 达人ID查询 |
批量输入达人unique_id,精准匹配 star_unique_id 字段 |
US-002 |
P0 |
支持批量输入,精准匹配,返回完整数据 |
| 昵称模糊查询 |
输入达人昵称,模糊匹配 star_nickname 字段 |
US-003 |
P0 |
支持包含匹配,返回所有匹配结果 |
3.2.2 数据计算模块
| 功能点 |
描述 |
关联用户故事 |
优先级 |
验收标准 |
| 预估自然CPM |
公式:estimated_video_cost / natural_play_cnt * 1000 |
US-004 |
P0 |
计算结果准确,单位为元/千次曝光 |
| 预估自然看后搜人数 |
公式:natural_play_cnt / total_play_cnt * after_view_search_uv |
US-004 |
P0 |
计算结果准确,单位为人数 |
| 预估自然看后搜人数成本 |
公式:estimated_video_cost / 预估自然看后搜人数 |
US-004 |
P0 |
计算结果准确,单位为元/人 |
3.2.3 数据展示模块
| 功能点 |
描述 |
关联用户故事 |
优先级 |
验收标准 |
| 结果列表展示 |
展示查询结果的完整数据表格 |
US-006 |
P1 |
包含所有指标字段,格式清晰 |
| 视频链接跳转 |
点击视频链接跳转到原视频页面 |
US-007 |
P2 |
链接可点击,新窗口打开 |
3.2.4 数据导出模块
| 功能点 |
描述 |
关联用户故事 |
优先级 |
验收标准 |
| 数据导出 |
将查询结果导出为 Excel/CSV 格式 |
US-005 |
P1 |
文件可下载,数据完整,中文列名 |
4. 非功能需求
4.1 性能需求
| 指标 |
要求 |
说明 |
| 查询响应时间 |
≤ 3秒 |
100条以内的批量查询 |
| 页面加载时间 |
≤ 2秒 |
首页加载 |
| 导出响应时间 |
≤ 5秒 |
1000条以内的数据导出 |
4.2 安全需求
- 数据库连接使用安全凭证,不在代码中硬编码
- 查询输入需进行 SQL 注入防护
- 敏感配置通过环境变量管理
4.3 兼容性需求
| 平台/环境 |
支持版本 |
| 浏览器 |
Chrome/Edge/Firefox 最新版 |
| Python |
3.9+ 及以上 |
| PostgreSQL |
14.x 及以上 |
| Node.js(前端构建) |
18.x 及以上 |
4.4 可用性需求
- 系统可用性目标:99%(工作时间)
- 提供基本的错误提示,便于用户理解问题原因
5. 数据需求
5.1 数据模型
┌─────────────────────────────────────────────────────────────────┐
│ 视频数据表 (kol_videos) │
├─────────────────────────────────────────────────────────────────┤
│ 基础信息 │
│ item_id (视频ID) [主键] │
│ title (视频标题) │
│ star_id (星图ID) [索引] │
│ star_unique_id (达人unique_id) [索引] │
│ star_nickname (达人昵称) [索引] │
│ video_url (视频链接) │
│ publish_time (发布时间) │
├─────────────────────────────────────────────────────────────────┤
│ 曝光指标 │
│ natural_play_cnt (自然曝光数) ★ 计算用 │
│ heated_play_cnt (加热曝光数) │
│ total_play_cnt (总曝光数) ★ 计算用 │
├─────────────────────────────────────────────────────────────────┤
│ 互动指标 │
│ total_interact (总互动) │
│ like_cnt (点赞) │
│ share_cnt (转发) │
│ comment_cnt (评论) │
├─────────────────────────────────────────────────────────────────┤
│ 效果指标 │
│ new_a3_rate (新增A3率) │
│ after_view_search_uv (看后搜人数) ★ 计算用 │
│ return_search_cnt (回搜次数) │
├─────────────────────────────────────────────────────────────────┤
│ 商业信息 │
│ industry_id (合作行业ID) │
│ industry_name (合作行业) │
│ brand_id (合作品牌ID) → 需调用品牌API获取名称 │
│ estimated_video_cost (预估视频价格) ★ 计算用 │
└─────────────────────────────────────────────────────────────────┘
★ 标记字段为计算预估指标所需的关键字段
5.2 数据规范
| 字段 |
类型 |
说明 |
校验规则 |
| star_id |
string |
星图ID |
非空 |
| star_unique_id |
string |
达人唯一标识 |
非空 |
| star_nickname |
string |
达人昵称 |
非空 |
| item_id |
string |
视频ID |
非空,唯一 |
| 曝光数 |
integer |
各类曝光数据 |
≥ 0 |
| 互动数 |
integer |
各类互动数据 |
≥ 0 |
| 预估视频价格 |
decimal |
预估价格 |
≥ 0 |
6. 接口需求
6.1 外部接口
| 接口 |
用途 |
提供方 |
| PostgreSQL |
数据存储与查询 |
自建数据库 |
| 品牌API |
根据品牌ID获取品牌名称 |
内部API (api.internal.intelligrow.cn) |
品牌API详情:
6.2 内部接口
| 接口 |
方法 |
用途 |
说明 |
| /api/v1/query |
POST |
批量查询KOL视频数据 |
FastAPI 后端服务提供 |
| /api/v1/export |
GET |
导出查询结果为Excel/CSV |
FastAPI 后端服务提供 |
API 架构说明:
- 后端采用 FastAPI 框架,提供 RESTful API
- 前端(Next.js)通过 HTTP 请求调用后端 API
- API 版本管理:使用
/api/v1/ 前缀
- 跨域支持:FastAPI 配置 CORS 中间件
7. 约束与依赖
7.1 技术约束
| 约束 |
说明 |
影响 |
| 前端技术栈 |
React + Next.js (App Router) |
前端技术选型固定 |
| 后端技术栈 |
Python FastAPI + PostgreSQL |
后端技术选型固定,前后端分离部署 |
| 部署方式 |
Docker(推荐) / PM2(前端) + Gunicorn/Uvicorn(后端) |
运维方式固定,需分别部署前后端服务 |
7.2 业务约束
- 数据来源于云图平台,需确保数据同步的及时性和准确性
- 查询功能仅用于内部运营分析,不对外开放
7.3 外部依赖
| 依赖 |
说明 |
| 云图数据源 |
视频数据需从云图平台同步 |
| PostgreSQL 数据库 |
依赖数据库服务可用性 |
| 品牌API |
依赖内部API服务获取品牌名称 |
8. 里程碑规划
Phase 1 - MVP Phase 2 - 优化
│ │
▼ ▼
┌──────────┐ ┌──────────┐
│ MVP │ ────────▶ │ v1.1 │
│ 核心查询 │ │ 性能优化 │
└──────────┘ └──────────┘
待定日期 待定日期
| 阶段 |
目标 |
交付物 |
| MVP |
完成核心查询和计算功能 |
可用的批量查询系统,支持数据导出 |
| v1.1 |
性能优化和体验提升 |
更快的查询速度,更好的用户体验 |
9. 风险评估
| 风险 |
可能性 |
影响 |
应对措施 |
| 数据同步延迟 |
中 |
中 |
建立数据同步监控机制 |
| 大批量查询性能问题 |
中 |
中 |
设置批量查询上限,优化数据库索引 |
| 数据库连接不稳定 |
低 |
高 |
实现连接池和重试机制 |
| 品牌API不可用 |
低 |
中 |
缓存品牌数据,降级显示品牌ID |
附录
A. 术语表
| 术语 |
定义 |
| KOL |
Key Opinion Leader,关键意见领袖,即达人/网红 |
| 星图ID |
巨量星图平台的达人唯一标识 |
| unique_id |
达人在平台的唯一标识符 |
| CPM |
Cost Per Mille,每千次曝光成本 |
| 看后搜 |
用户观看视频后进行搜索的行为 |
| A3率 |
用户深度互动率指标 |
| 自然曝光 |
非付费推广获得的曝光量 |
| 加热曝光 |
通过付费推广获得的曝光量 |
| natural_play_cnt |
自然曝光次数,用于计算预估自然CPM |
| total_play_cnt |
总曝光次数,包含自然+加热曝光 |
| estimated_video_cost |
预估视频价格,用于计算成本指标 |
| after_view_search_uv |
看后搜用户数,观看视频后进行搜索的独立用户数 |
B. 输出字段完整列表
| 中文名 |
字段名 |
说明 |
| 视频ID |
item_id |
主键 |
| 视频标题 |
title |
- |
| 爆文类型 |
viral_type |
- |
| 视频链接 |
video_url |
- |
| 新增A3率 |
new_a3_rate |
- |
| 看后搜人数 |
after_view_search_uv |
- |
| 回搜次数 |
return_search_cnt |
- |
| 自然曝光数 |
natural_play_cnt |
计算用 |
| 加热曝光数 |
heated_play_cnt |
- |
| 总曝光数 |
total_play_cnt |
计算用 |
| 总互动 |
total_interact |
- |
| 点赞 |
like_cnt |
- |
| 转发 |
share_cnt |
- |
| 评论 |
comment_cnt |
- |
| 合作行业ID |
industry_id |
- |
| 合作行业 |
industry_name |
- |
| 合作品牌ID |
brand_id |
需调用品牌API |
| 合作品牌 |
brand_name |
从品牌API获取 |
| 发布时间 |
publish_time |
- |
| 达人昵称 |
star_nickname |
索引字段 |
| 达人unique_id |
star_unique_id |
索引字段 |
| 预估视频价格 |
estimated_video_cost |
计算用 |
| 预估自然CPM |
(计算字段) |
= estimated_video_cost / natural_play_cnt * 1000 |
| 预估自然看后搜人数 |
(计算字段) |
= natural_play_cnt / total_play_cnt * after_view_search_uv |
| 预估自然看后搜人数成本 |
(计算字段) |
= estimated_video_cost / 预估自然看后搜人数 |
C. 参考文档