GoWind UBA 产品介绍
GoWind UBA(User Behavior Analytics)是一个用户行为分析工具,基于 Go 后端和 Vue3 前端构建。提供数据采集、事件分析、用户画像、漏斗分析、对比分析等功能,帮助产品经理和数据分析师理解用户行为,驱动数据化决策。
一、核心特性
1. 数据采集
- 埋点采集:灵活的埋点方案,支持自定义事件
- 自动采集:自动追踪页面浏览、点击等标准事件
- SDK 集成:提供多种编程语言的采集 SDK
- 数据验证:自动验证和清洗采集数据
- 实时处理:实时数据处理和入库
- 跨域追踪:支持 Web、App、小程序等多端追踪
2. 事件分析
- 事件热力图:可视化用户交互热点
- 事件漏斗:分析用户流失环节
- 事件路径:追踪用户行为路径
- 事件对比:对比不同时间段、用户群体的事件差异
- 事件趋势:展示事件发生趋势
- 自定义事件:灵活定义业务特定事件
3. 用户画像
- 用户分群:基于行为、属性自动分群
- 用户标签:灵活的用户标签系统
- 用户旅程:完整的用户生命周期追踪
- 用户留存:追踪用户留存和流失
- 用户价值:评估用户生命周期价值(LTV)
- 用户属性:支持自定义用户属性
4. 漏斗分析
第一步(用户进入)
↓
第二步(用户操作) ← 流失分析
↓
第三步(用户转化) ← 流失分析
↓
目标(最终转化) ← 转化率
- 转化漏斗:分析销售/注册等关键转化
- 流失分析:识别用户流失环节
- 转化率优化:对标行业均值,优化转化漏斗
- 多步骤漏斗:支持长流程漏斗分析
5. 对比分析
- 时间对比:对比不同时间段的数据差异
- 人群对比:对比不同用户群体的行为差异
- 版本对比:对比不同 App 版本的差异
- 渠道对比:对比不同流量渠道的差异
- 差异显著性检验:统计学显著性检验
6. 报表和仪表板
- 自定义报表:拖拽式报表构建
- 数据仪表板:实时数据展示
- 定时报表:自动生成和分发报表
- 数据导出:支持多格式导出(CSV、Excel、PDF)
- 数据共享:报表权限控制和分享
- 告警设置:关键指标异常告警
7. 用户转化追踪
- 购买转化:电商购买流程追踪
- 注册转化:新用户注册转化分析
- 订阅转化:付费订阅转化分析
- 社交转化:社交分享和邀请转化分析
- 内容消费:内容阅读和消费转化分析
8. 实验和 A/B 测试
- A/B 测试:支持运行多个并发 A/B 测试
- 流量分配:灵活的流量分配和用户分组
- 统计显著性:自动计算 p-value 和置信度
- 实验结果分析:完整的实验报告和洞察
- 灰度发布支持:支持灰度发布和金丝雀部署
二、应用场景
电商平台
购买转化分析、用户留存分析、商品推荐优化等。
SaaS 产品
用户注册转化、付费转化、功能采用率、流失预警等。
内容平台
内容浏览量、用户粘性、社交分享转化等。
游戏产品
新用户留存、等级进度、付费转化、社交互动等。
移动应用
应用启动、功能使用、用户留存、版本对比等。
金融产品
投资转化、账户活跃度、风险评估等。
三、技术架构
技术栈
| 层次 | 技术 | 说明 |
|---|---|---|
| 后端 | Go 1.18+、Kratos 框架、分布式处理 | 高吞吐、低延迟的数据处理 |
| 前端 | Vue3、TypeScript、Echarts、可视化库 | 丰富的数据可视化 |
| 数据处理 | Spark / Flink | 批量和流处理 |
| 数据存储 | ClickHouse / Elasticsearch | 高效的时间序列和日志存储 |
| 缓存 | Redis | 热数据缓存 |
| 消息队列 | Kafka | 数据管道 |
系统架构
┌──────────────────────────────────┐
│ Web / App 客户端 │
│ (集成采集 SDK) │
└──────────────┬───────────────────┘
│
┌──────▼──────────┐
│ 数据采集服务 │
│ (事件收集) │
└──────┬──────────┘
│
┌──────▼──────────┐
│ 消息队列(Kafka) │
└──────┬──────────┘
│
┌──────────┼──────────┐
│ │ │
┌───▼──┐ ┌───▼──┐ ┌───▼──┐
│实时处理 │ │批量处理 │ │数据分析 │
│(Flink)│ │(Spark) │ │(计算) │
└───┬──┘ └───┬──┘ └───┬──┘
│ │ │
┌───▼──────────▼─────────▼──┐
│ 数据存储 │
│ - ClickHouse (OLAP) │
│ - Elasticsearch (日志) │
│ - MySQL (元数据) │
│ - Redis (缓存) │
└────────────┬──────────────┘
│
┌────▼────────┐
│ 分析引擎 │
│ 报表展示 │
└─────────────┘
四、核心功能模块
1. 数据采集
// 初始化 SDK
import {UBAClient} from '@gowind/uba-sdk';
const uba = new UBAClient({
serverUrl: 'https://uba.example.com',
appId: 'your_app_id',
userId: 'current_user_id'
});
// 追踪页面浏览
uba.trackPageView({
page_name: 'Product List',
page_url: '/products'
});
// 追踪自定义事件
uba.trackEvent('add_to_cart', {
product_id: '123',
product_name: 'Product A',
price: 99.99
});
// 设置用户属性
uba.setUserProperties({
email: 'user@example.com',
vip_level: 'gold',
signup_date: '2024-01-01'
});
2. 事件分析
- 事件发生次数和趋势
- 事件用户数
- 人均事件次数
- 事件转化率
3. 用户分析
- 活跃用户 (DAU / MAU)
- 新用户和留存用户
- 用户分群和标签
- 用户旅程地图
4. 转化漏斗
步骤1: 页面浏览 (1000 用户)
↓ 90% 转化
步骤2: 添加购物车 (900 用户)
↓ 70% 转化
步骤3: 提交订单 (630 用户)
↓ 95% 转化
步骤4: 支付成功 (599 用户) ✓
最终转化率: 59.9%
最大流失环节: 步骤2 -> 步骤3 (30%)
五、快速开始
1. 在线演示
敬请期待...
2. 环境准备
- Go 1.18+
- Node.js 16+
- ClickHouse(数据存储)
- Kafka(消息队列)
- Redis(缓存)
3. 快速启动
git clone https://github.com/tx7do/go-wind-uba.git
cd go-wind-uba
# 后端启动
cd backend
make init
gow run uba
# 前端启动
cd ../frontend
pnpm install
pnpm dev:antd
4. 访问地址
- 分析面板:http://localhost:5555
- API 文档:http://localhost:7801/docs/
六、API 概览
事件追踪 API
# 上报事件
POST /api/v1/track/event
{
"app_id": "your_app_id",
"event_name": "add_to_cart",
"user_id": "user123",
"properties": {
"product_id": "123",
"product_name": "Product A",
"price": 99.99
},
"timestamp": 1234567890
}
# 设置用户属性
POST /api/v1/track/user
{
"app_id": "your_app_id",
"user_id": "user123",
"properties": {
"email": "user@example.com",
"vip_level": "gold"
}
}
数据查询 API
# 获取事件数据
GET /api/v1/analytics/events
?app_id=your_app_id
&event_name=add_to_cart
&date_from=2024-01-01
&date_to=2024-01-31
# 获取用户数据
GET /api/v1/analytics/users
?app_id=your_app_id
&metric=dau
&date_from=2024-01-01
&date_to=2024-01-31
# 漏斗分析
GET /api/v1/analytics/funnel
?app_id=your_app_id
&funnel_id=checkout_funnel
&date_from=2024-01-01
&date_to=2024-01-31
七、集成 SDK
JavaScript SDK
import {UBAClient} from '@gowind/uba-sdk';
const uba = new UBAClient({
serverUrl: 'https://uba.example.com',
appId: 'your_app_id'
});
// 自动追踪页面浏览
uba.enableAutoPageView();
// 自动追踪用户点击
uba.enableAutoClickTracking();
// 追踪转化事件
uba.trackEvent('purchase', {
order_id: 'ORDER123',
amount: 99.99,
currency: 'USD'
});
iOS SDK
import GoWindUBA
let uba = UBAClient(serverUrl: "https://uba.example.com", appId: "your_app_id")
// 追踪事件
uba.trackEvent("app_launch", properties: [
"version": "1.0.0",
"device": "iPhone"
])
Android SDK
import com.gowind.uba.UBAClient
val uba = UBAClient("https://uba.example.com", "your_app_id")
uba.trackEvent("app_launch", mapOf(
"version" to "1.0.0",
"device" to "Android"
))
八、部署指南
Docker 部署
docker build -t gowind-uba:latest .
docker run -d \
-p 7801:7801 \
-e CLICKHOUSE_DSN="your-clickhouse-dsn" \
-e KAFKA_BROKERS="your-kafka-brokers" \
-e REDIS_ADDR="your-redis-addr" \
gowind-uba:latest
Kubernetes 部署
apiVersion: apps/v1
kind: Deployment
metadata:
name: gowind-uba
spec:
replicas: 3
selector:
matchLabels:
app: gowind-uba
template:
metadata:
labels:
app: gowind-uba
spec:
containers:
- name: uba
image: gowind-uba:latest
ports:
- containerPort: 7801
env:
- name: CLICKHOUSE_DSN
valueFrom:
secretKeyRef:
name: uba-secrets
key: clickhouse-dsn
resources:
requests:
memory: "512Mi"
cpu: "250m"
limits:
memory: "1Gi"
cpu: "500m"
九、常见问题
Q: UBA 能处理多大的数据量?
A: 通过 ClickHouse 和分布式处理,可处理数十亿级别的事件数据。
Q: 数据延迟是多少?
A: 实时处理延迟通常在秒级以内。
Q: 如何保护用户隐私?
A: 支持数据匿名化、GDPR 合规等隐私保护功能。
Q: 是否支持自定义事件?
A: 完全支持,可定义业务特定事件。
Q: 数据保存多久?
A: 默认保存 90 天,可自定义配置。
Q: 是否支持实时告警?
A: 是的,支持设置关键指标告警和通知。
十、获取帮助
- 📖 快速开始指南
- 📧 邮件:yanglinbo@gmail.com
- 💬 讨论:GitHub Discussions
- 🐛 反馈:GitHub Issues
更详细的安装和使用说明,请参考 UBA 安装指南。
