跳到主要内容

路径分析

问题

什么是路径分析?如何发现用户的典型行为路径?

答案

什么是路径分析

路径分析是不预设步骤,从数据中发现用户实际行为轨迹的分析方法。和漏斗分析的区别在于:漏斗你设定步骤看转化率,路径分析让数据"自己说话"。

路径分析 vs 漏斗分析

对比漏斗分析路径分析
步骤预设自动发现
目的看预设流程的转化探索用户实际怎么走
输出各步转化率桑基图/路径树
适用核心流程优化行为探索,发现意外路径

典型应用场景

场景分析目标
首页入口分析用户从首页去了哪里?
购买前路径用户下单前经历了什么步骤?
流失前行为用户离开前最后做了什么?
功能发现路径用户是怎么找到某个功能的?

SQL 实现:提取用户路径

提取每个用户的事件路径(前5步)
WITH ranked_events AS (
SELECT
user_id,
session_id,
event_name,
event_time,
-- 每个 session 内按时间排序
ROW_NUMBER() OVER (
PARTITION BY user_id, session_id
ORDER BY event_time
) AS step_no
FROM user_events
WHERE event_date = '2024-01-15'
),
path AS (
SELECT
user_id,
session_id,
-- 拼接前 5 步为路径字符串
GROUP_CONCAT(
CASE WHEN step_no <= 5 THEN event_name END
ORDER BY step_no
SEPARATOR ' → '
) AS user_path
FROM ranked_events
WHERE step_no <= 5
GROUP BY user_id, session_id
)
SELECT
user_path,
COUNT(*) AS session_count,
ROUND(COUNT(*) * 100.0 / SUM(COUNT(*)) OVER (), 1) AS pct
FROM path
GROUP BY user_path
ORDER BY session_count DESC
LIMIT 20;

可视化方式

方式特点工具
桑基图展示流量在节点间的流向和分流ECharts、Plotly、Tableau
树形图逐步展开路径分支D3.js
旭日图多层级路径比例ECharts

转化路径分析(逆向路径)

购买用户的前3步路径
WITH before_buy AS (
SELECT
e.user_id,
e.event_name,
e.event_time,
-- 购买事件前的倒数排序
ROW_NUMBER() OVER (
PARTITION BY e.user_id
ORDER BY e.event_time DESC
) AS reverse_step
FROM user_events e
JOIN (
SELECT user_id, MIN(event_time) AS buy_time
FROM user_events
WHERE event_name = 'purchase'
AND event_date = '2024-01-15'
GROUP BY user_id
) b ON e.user_id = b.user_id
WHERE e.event_time <= b.buy_time
)
SELECT
-- 购买前第3步 → 第2步 → 第1步 → 购买
MAX(CASE WHEN reverse_step = 4 THEN event_name END) AS step_minus_3,
MAX(CASE WHEN reverse_step = 3 THEN event_name END) AS step_minus_2,
MAX(CASE WHEN reverse_step = 2 THEN event_name END) AS step_minus_1,
'purchase' AS final_step,
COUNT(DISTINCT user_id) AS user_count
FROM before_buy
WHERE reverse_step <= 4
GROUP BY user_id
ORDER BY user_count DESC
LIMIT 10;

常见面试问题

Q1: 路径分析发现大量用户绕路(不走主流程),怎么分析?

答案

  1. 量化绕路比例:绕路用户占总用户多少?
  2. 分析绕路原因:是找不到入口?还是主流程有问题?
  3. 对比转化率:绕路用户和正常路径用户的转化率差异
  4. 优化方案:如果绕路转化率低 → 优化引导;如果绕路转化率高 → 考虑把"绕路"变成主流程

Q2: 路径分析的数据量很大,怎么处理?

答案

  • 采样:随机抽取 10% 用户分析
  • 聚合:只看前 N 步(如前 5 步),过深的路径归为"其他"
  • 过滤:只分析有目标行为的用户(如购买用户的路径)
  • Session 粒度:按 session 而非全生命周期分析

Q3: 如何用路径分析优化产品?

答案

  1. 找到高频路径:大部分用户走这条路 → 确保体验最优
  2. 找到异常路径:频繁"后退"、反复操作 → 存在体验问题
  3. 找到高转化路径:走这条路的转化率特别高 → 引导更多用户走这条路
  4. 找到流失节点:大量用户在某个节点离开 → 该节点需要优化

相关链接