当前位置:网站首页 >  教程

用户分层实操全流程指南:从规则搭建到落地提效用户留存全步骤

时间:2026年06月11日 10:02:22 来源:易频IT社区

一、前期准备:工具与数据源梳理

首先完成基础环境与数据准备,无需付费工具即可快速落地:

  • 数据源要求:提前准备2张核心表,字段必须包含:用户表(用户ID、注册时间、最近登录时间、累计消费金额)、订单表/行为表(用户ID、消费时间、消费金额、核心功能使用记录)
  • 数据可视化工具:直接使用开源免费的Metabase做留存数据分析,Docker一键安装命令如下:
    docker run -d -p 3000:3000 --name metabase metabase/metabase
    安装完成后访问服务器IP:3000,按照引导绑定你的业务数据库即可。

二、用户分层规则搭建(可直接复用模板)

采用适配90%行业的RFM分层模型,直接套用以下规则即可:

2.1 维度权重配置

3个核心维度各打1-5分,权重配置为:最近登录时间R(40%)、行为/消费频次F(30%)、消费/使用金额M(30%),用户总得分公式:总分=R得分0.4 + F得分0.3 + M得分0.3

2.2 分层阈值通用模板

  • 核心价值用户:总分≥4.5分,近7天有登录,累计消费≥1000元(工具类产品替换为累计使用核心功能≥50次)
  • 潜力用户:总分3-4.4分,近30天有登录,有过消费/核心功能使用记录
  • 活跃新用户:总分2-2.9分,注册时间≤30天,近7天有登录无消费/未深度使用核心功能
  • 沉睡用户:总分1-1.9分,近30-90天有登录,近30天无访问记录
  • 流失用户:总分<1分,超过90天无登录记录

三、分层数据计算与标签落地实操

直接执行以下SQL即可完成全量用户分层标签计算,可直接复制修改对应表名字段:

用户分层实操全流程指南:从规则搭建到落地提效用户留存全步骤

```sql
SELECT
u.user_id,
-- R得分计算
CASE WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=7 THEN 5
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=14 THEN 4
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=30 THEN 3
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=90 THEN 2
ELSE 1 END AS r_score,
-- F得分计算(工具类替换为核心功能使用次数)
CASE WHEN b.pay_cnt >=10 THEN 5
WHEN b.pay_cnt >=5 THEN 4
WHEN b.pay_cnt >=2 THEN 3
WHEN b.pay_cnt >=1 THEN 2
ELSE 1 END AS f_score,
-- M得分计算(工具类替换为核心功能使用时长)
CASE WHEN b.pay_amount >=500 THEN 5
WHEN b.pay_amount >=200 THEN 4
WHEN b.pay_amount >=100 THEN 3
WHEN b.pay_amount >=10 THEN 2
ELSE 1 END AS m_score,
-- 总得分计算
ROUND(
(CASE WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=7 THEN 5
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=14 THEN 4
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=30 THEN 3
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=90 THEN 2
ELSE 1 END)0.4 +
(CASE WHEN b.pay_cnt >=10 THEN 5
WHEN b.pay_cnt >=5 THEN 4
WHEN b.pay_cnt >=2 THEN 3
WHEN b.pay_cnt >=1 THEN 2
ELSE 1 END)0.3 +
(CASE WHEN b.pay_amount >=500 THEN 5
WHEN b.pay_amount >=200 THEN 4
WHEN b.pay_amount >=100 THEN 3
WHEN b.pay_amount >=10 THEN 2
ELSE 1 END)0.3
,1) AS total_score,
-- 打分层标签
CASE
WHEN ROUND(
(CASE WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=7 THEN 5
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=14 THEN 4
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=30 THEN 3
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=90 THEN 2
ELSE 1 END)0.4 +
(CASE WHEN b.pay_cnt >=10 THEN 5
WHEN b.pay_cnt >=5 THEN 4
WHEN b.pay_cnt >=2 THEN 3
WHEN b.pay_cnt >=1 THEN 2
ELSE 1 END)0.3 +
(CASE WHEN b.pay_amount >=500 THEN 5
WHEN b.pay_amount >=200 THEN 4
WHEN b.pay_amount >=100 THEN 3
WHEN b.pay_amount >=10 THEN 2
ELSE 1 END)0.3
,1)>=4.5 AND DATEDIFF(CURRENT_DATE, u.last_login_time) <=7 AND u.total_pay >=1000 THEN '核心价值用户'
WHEN ROUND(
(CASE WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=7 THEN 5
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=14 THEN 4
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=30 THEN 3
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=90 THEN 2
ELSE 1 END)0.4 +
(CASE WHEN b.pay_cnt >=10 THEN 5
WHEN b.pay_cnt >=5 THEN 4
WHEN b.pay_cnt >=2 THEN 3
WHEN b.pay_cnt >=1 THEN 2
ELSE 1 END)0.3 +
(CASE WHEN b.pay_amount >=500 THEN 5
WHEN b.pay_amount >=200 THEN 4
WHEN b.pay_amount >=100 THEN 3
WHEN b.pay_amount >=10 THEN 2
ELSE 1 END)0.3
,1)>=3 AND ROUND(
(CASE WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=7 THEN 5
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=14 THEN 4
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=30 THEN 3
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=90 THEN 2
ELSE 1 END)0.4 +
(CASE WHEN b.pay_cnt >=10 THEN 5
WHEN b.pay_cnt >=5 THEN 4
WHEN b.pay_cnt >=2 THEN 3
WHEN b.pay_cnt >=1 THEN 2
ELSE 1 END)0.3 +
(CASE WHEN b.pay_amount >=500 THEN 5
WHEN b.pay_amount >=200 THEN 4
WHEN b.pay_amount >=100 THEN 3
WHEN b.pay_amount >=10 THEN 2
ELSE 1 END)0.3
,1)<=4.4 AND DATEDIFF(CURRENT_DATE, u.last_login_time) <=30 AND u.total_pay >0 THEN '潜力用户'
WHEN ROUND(
(CASE WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=7 THEN 5
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=14 THEN 4
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=30 THEN 3
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=90 THEN 2
ELSE 1 END)0.4 +
(CASE WHEN b.pay_cnt >=10 THEN 5
WHEN b.pay_cnt >=5 THEN 4
WHEN b.pay_cnt >=2 THEN 3
WHEN b.pay_cnt >=1 THEN 2
ELSE 1 END)0.3 +
(CASE WHEN b.pay_amount >=500 THEN 5
WHEN b.pay_amount >=200 THEN 4
WHEN b.pay_amount >=100 THEN 3
WHEN b.pay_amount >=10 THEN 2
ELSE 1 END)0.3
,1)>=2 AND ROUND(
(CASE WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=7 THEN 5
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=14 THEN 4
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=30 THEN 3
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=90 THEN 2
ELSE 1 END)0.4 +
(CASE WHEN b.pay_cnt >=10 THEN 5
WHEN b.pay_cnt >=5 THEN 4
WHEN b.pay_cnt >=2 THEN 3
WHEN b.pay_cnt >=1 THEN 2
ELSE 1 END)0.3 +
(CASE WHEN b.pay_amount >=500 THEN 5
WHEN b.pay_amount >=200 THEN 4
WHEN b.pay_amount >=100 THEN 3
WHEN b.pay_amount >=10 THEN 2
ELSE 1 END)0.3
,1)<=2.9 AND DATEDIFF(CURRENT_DATE, u.register_time) <=30 AND DATEDIFF(CURRENT_DATE, u.last_login_time) <=7 THEN '活跃新用户'
WHEN ROUND(
(CASE WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=7 THEN 5
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=14 THEN 4
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=30 THEN 3
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=90 THEN 2
ELSE 1 END)0.4 +
(CASE WHEN b.pay_cnt >=10 THEN 5
WHEN b.pay_cnt >=5 THEN 4
WHEN b.pay_cnt >=2 THEN 3
WHEN b.pay_cnt >=1 THEN 2
ELSE 1 END)0.3 +
(CASE WHEN b.pay_amount >=500 THEN 5
WHEN b.pay_amount >=200 THEN 4
WHEN b.pay_amount >=100 THEN 3
WHEN b.pay_amount >=10 THEN 2
ELSE 1 END)0.3
,1)>=1 AND ROUND(
(CASE WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=7 THEN 5
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=14 THEN 4
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=30 THEN 3
WHEN DATEDIFF(CURRENT_DATE, u.last_login_time) <=90 THEN 2
ELSE 1 END)0.4 +
(CASE WHEN b.pay_cnt >=10 THEN 5
WHEN b.pay_cnt >=5 THEN 4
WHEN b.pay_cnt >=2 THEN 3
WHEN b.pay_cnt >=1 THEN 2
ELSE 1 END)0.3 +
(CASE WHEN b.pay_amount >=500 THEN 5
WHEN b.pay_amount >=200 THEN 4
WHEN b.pay_amount >=100 THEN 3
WHEN b.pay_amount >=10 THEN 2
ELSE 1 END)0.3
,1)<=1.9 AND DATEDIFF(CURRENT_DATE, u.last_login_time) <=90 AND DATEDIFF(CURRENT_DATE, u.last_login_time) >30 THEN '沉睡用户'
ELSE '流失用户' END AS user_layer_tag
INTO user_layer_tag
FROM user_info u
LEFT JOIN (SELECT user_id, COUNT(order_id) AS pay_cnt, SUM(pay_amount) AS pay_amount FROM order_info WHERE pay_time >= DATE_SUB(CURRENT_DATE, INTERVAL 30 DAY) AND pay_status=1 GROUP BY user_id) b
ON u.user_id = b.user_id
```

3.1 定时更新配置

将上述SQL保存为/opt/sql/user_layer_update.sql,Linux服务器执行crontab -e添加以下配置,实现每日凌晨2点自动更新分层标签:

0 2    /usr/bin/mysql -uroot -p你的数据库密码 你的数据库名称 < /opt/sql/user_layer_update.sql > /dev/null 2>&1

配置完成后执行systemctl reload crond生效,无需人工干预每日自动更新标签

四、基于分层的留存提效实操方案

所有动作均设置对照组,每组用户数量≥1000人,对照组不做特殊触达,7天后统计留存差值评估效果:

4.1 核心价值用户

  • 配置专属客服通道,进线响应时长≤30秒
  • 每月1号自动发放10%消费返利优惠券,有效期30天
  • 新功能内测资格优先推送,每季度邀请参与调研赠送专属周边

4.2 潜力用户

  • 根据历史浏览记录推送同品类满减券,满减门槛为用户历史单次最高消费的1.2倍
  • 每7天推送1次未解锁高价值功能使用教程

4.3 活跃新用户

  • 注册前7天每日推送新手任务,完成后赠送≤5元可提现权益,完成全部任务额外赠送15元无门槛券
  • 拉入新用户专属社群,前3天每日推送1次核心功能操作指南

4.4 沉睡用户

  • 近45天未登录用户,推送满20减10无门槛券,短信+APP推送双触达
  • 近60天未登录用户,追加赠送1个月核心功能会员权益,登录自动到账

4.5 流失用户

  • 超过90天未登录用户,每30天推送1次回归福利:30元无门槛券+1个月高级会员,回归后7天内有效
  • 大促节点前额外追加1次触达,告知专属优惠力度

五、效果追踪与迭代规则

在Metabase中配置2个核心指标看板,每日监控:

  • 7日留存=统计日分层用户中,7天后仍然登录的用户数/统计日该层总用户数
  • 30日留存=统计日分层用户中,30天后仍然登录的用户数/统计日该层总用户数

迭代规则:若某分层触达动作7日留存提升低于2%,立即调整触达内容/福利力度;连续2周留存无提升,重新调整该层分层阈值

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图