GoWind 开源生态GoWind 开源生态
首页
框架
GoWind Admin
GoWind CMS
GoWind IM
GoWind UBA
GoWind IoT
GoWind Toolkit
GoWind Quant
GitHub
首页
框架
GoWind Admin
GoWind CMS
GoWind IM
GoWind UBA
GoWind IoT
GoWind Toolkit
GoWind Quant
GitHub
  • 介绍

    • GoWind UBA 产品介绍
  • 架构参考

    • UBA 系统架构
    • UBA 后端模块总览
    • UBA 后端 API 契约
    • UBA 前端架构
  • 开发者指南(二开)

    • UBA 安装指南
    • UBA 代码生成管线教程
    • 新增对外服务教程
    • 新增业务实体教程
    • 新增前端页面教程
  • 运维指南

    • UBA Docker 部署指南
    • UBA 配置详解与安全清单
    • UBA PM2 部署指南
    • UBA Superset BI 部署指南
  • 数据分析师指南

    • 数据分析师上手指南
    • 基础聚合

      • 事件趋势分析
      • 活跃用户分析
      • 维度分组聚合
    • 转化与路径

      • 漏斗分析
      • 留存分析
      • 热门转化路径
      • 行为序列分析
    • 用户深度

      • 归因分析
      • 分布分析
      • 用户分群圈选
      • 点击热力图
      • 间隔时间分析
    • 生命周期

      • 用户生命周期
      • 流失与回流分析
      • 新老用户对比
      • 矩阵象限分析
    • 营收与价值

      • 营收分析
      • 付费分层(鲸鱼分析)
      • 历史 LTV 分析
    • 会话与异常

      • 会话分析
      • 同比环比与异常检测
    • 游戏专属

      • 关卡分析(游戏)
      • 滚服留存(游戏)
      • 同时在线分析(游戏)
      • 经济系统分析(游戏)
    • OLAP 查询手册
  • SDK 接入

    • Web SDK 接入指南
    • C# SDK 接入指南(Unity / Godot / .NET)
  • 附录

    • UBA 附录:端口、术语、已知限制与 FAQ

漏斗分析

漏斗分析用于衡量用户在关键转化路径中各步骤的转化率与流失率,是电商、注册、支付等场景的核心分析模型。对应后端 AnalyticsService.Funnel。


一、它能回答什么问题

  • 从「浏览商品」到「支付成功」,整体转化率是多少?
  • 哪一步流失最严重?
  • 不同时间窗口(30 分钟 vs 24 小时)下,转化率差异如何?

二、漏斗原理

关键指标

指标含义
步骤用户数该步骤的唯一用户数(count(DISTINCT user_id))
步骤转化率当前步骤用户数 / 上一步骤用户数
总体转化率最终步骤用户数 / 第一步骤用户数
流失率1 − 步骤转化率

三、后端接口

gRPC:AnalyticsService.Funnel

字段类型说明
time_rangeTimeRange分析时间范围
stepsrepeated string≥2,有序事件名,如 ["view_product", "add_to_cart", "submit_order", "payment_success"]
app_iduint32(可选)按应用过滤
window_msint64(可选)完成漏斗的时间窗口,默认 30 分钟

响应 FunnelResponse:steps[](每个 FunnelStep 含 step_index / event_name / count / conversion_rate / overall_rate)、completed_users / entered_users / overall_conversion。

HTTP(admin 转发)

POST /admin/v1/analytics/funnel
Content-Type: application/json

{
  "timeRange": { "startMs": 1718169600000, "endMs": 1718774399000 },
  "steps": ["view_product", "add_to_cart", "submit_order", "payment_success"],
  "windowMs": 1800000
}

后端会校验 steps 数量 ≥2,否则返回 ErrorBadRequest。


四、SQL 原理

漏斗核心是「在限定时间窗口内,按用户找连续完成各步骤的最大进度」。

Doris 实现(近似:按步骤统计唯一用户)

后端 Doris 实现对每个步骤独立统计 count(DISTINCT user_id),再计算相邻步骤的转化率:

SELECT event_name, count(DISTINCT user_id) AS user_count
FROM events_fact
WHERE event_time BETWEEN :start AND :end
  AND event_name IN ('view_product','add_to_cart','submit_order','payment_success')
GROUP BY event_name;

然后在应用层按 steps 顺序计算 conversion_rate(本步/上步)与 overall_rate(本步/首步)。

ClickHouse 实现(windowFunnel)

ClickHouse 有原生的 windowFunnel 函数,可在窗口内严格判断连续步骤:

WITH funnel_steps AS (
    SELECT
        user_id,
        windowFunnel(1800)(   -- 30 分钟窗口(秒)
            event_ts,
            event_name = 'view_product',
            event_name = 'add_to_cart',
            event_name = 'submit_order',
            event_name = 'payment_success'
        ) AS step_reached
    FROM events_fact
    WHERE event_ts BETWEEN :start_ms AND :end_ms
      AND event_name IN ('view_product','add_to_cart','submit_order','payment_success')
    GROUP BY user_id
)
SELECT
    step_reached,
    count() AS user_count
FROM funnel_steps
GROUP BY step_reached
ORDER BY step_reached;

step_reached = N 表示该用户连续完成了 N 个步骤。由此可算出每步的留存与转化。

当前后端 analytics_repo.go 的 Funnel 实现是按步骤独立统计 count(DISTINCT user_id)(非严格窗口连续)。需要严格窗口漏斗时,可在 ClickHouse 上用 windowFunnel 自行查询。方言差异见 OLAP 查询手册。


五、典型场景

电商购买转化漏斗

步骤:view_product → add_to_cart → submit_order → payment_success,窗口 30 分钟。找出流失最大的环节(通常是「加购→下单」),针对性优化。

新用户注册转化漏斗

步骤:open_app → view_signup → submit_signup → signup_success,窗口可放宽到 24 小时(windowMs = 86400000)。

内容消费漏斗

步骤:page_view → read_article → share → comment,衡量内容粘性与互动转化。


六、注意事项

  • 步骤必须 ≥2,否则接口报错。
  • 窗口默认 30 分钟:长流程(注册、金融)建议调大 window_ms。
  • 转化率定义:当前实现按步骤独立统计唯一用户,未做严格「同一用户在窗口内连续完成」的约束。若需严格漏斗,用 ClickHouse windowFunnel。
  • 跨天漏斗:用户可能在第一天完成步骤 1、第二天完成步骤 2——只要在 window_ms 内即可,注意 time_range 要覆盖整个可能跨度。
  • 空数据/转化率为 0:先确认事件已落库(见 上手指南 · 数据落库现状)。

七、相关文档

  • 数据分析师上手指南
  • 事件趋势分析
  • 留存分析
  • OLAP 查询手册
  • 后端 API 契约
Edit this page
Last Updated:: 6/29/26, 12:03 AM
Contributors: Bobo
Next
留存分析