在开始留存分析之前,我们首先需要明确一个问题,到底什么样的用户,才是我们要分析的新用户?
很多技术和运营人员的第一反应是,注册了账号的用户就是新用户。
这个理解本身没有问题,但放在运营分析里,这个定义还不够严谨。因为在数据库里,一个用户通常不会只有一条数据记录,而是会产生多条行为数据记录,例如:
这些数据混在一起,使我们无法直接判断用户第一次来到平台的时间。
为了统一分析口径,我们先对“活跃行为”进行定义:
因此,我们把“用户第一次注册的时间”,定义为该用户留存分析的起点。
在实际业务中,我们需要的数据往往不会集中存储在单张数据表里,为了提升数据库性能与存储效率,开发人员通常会采用分表设计,将数据分散存储在两张或多张关联数据表中。在本案例中,我们将通过以下两张数据表,完成次日留存分析。
1、用户注册表

这张表告诉我们:
2、用户行为表

字段说明:
需要注意的是,这两张表都有一个共同的字段,就是user_id,后面我们可以通过它,将两张表连接(JOIN)起来,从而得到完整的数据字段。
在动手写SQL之前,我们先理清次日留存的计算逻辑:
继续延申一下,7日留存的计算逻辑:
这里有一个常见的误区,很多人会把“7日留存率”和“7日内留存率”混淆,认为二者是同一个指标,这是非常错误的。
我们可以通过一个简单的类比来理解它们的不同。
7日留存率,是衡量用户是否形成了较为稳定的行为,它考量的是用户在第7天当天是否活跃。这就好比一个学校,每周五都会定期进行测验考试,周五就是一个固定的考试日子。
7日内活跃率(7日内留存率),衡量的是新用户初期的活跃情况,只要一周内有过登录行为就算,它衡量的是新注册用户池的初始质量。比如出勤率,就是看一段时间内的出勤次数。
而7日留存率的数值一定小于或等于7日内活跃率。
举例来说,有100个新注册用户,其中50人在7天内有过登录行为,但只有10个人在第7天当天有登录行为,则:
如果用50%的7日内留存率去对标行业7日留存率,会得出乐观且致命的错误结论,严重影响整体运营决策。
因此,几乎所有的行业报告、数据分析平台和专业运营团队,提到“N日留存”时,都严格指“第N日当日”的活跃情况。只有这样,才能与行业标准进行有意义的对比,也才能绘制出标准的用户留存曲线。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。