本文为「心中有数」CDA征文作品
无论是产品经理、产品运营还是数据分析师,在评估产品用户粘性及价值时,留存率和忠诚度等关键指标均发挥着举足轻重的作用。这些指标能够反映出用户对产品的依赖程度以及产品的整体价值。及时了解用户留存和流失趋势,有助于产品进行功能迭代和运营策略的及时调整。
今天,我们将深入探讨如何利用SQL计算留存率,以及在工作中如何分析这一重要指标。
留存率,顾名思义,指的是用户留下来继续使用产品的比例。具体而言,留存用户指的是在APP产生行为后,在固定的第N日仍然访问或使用APP的用户。而留存率的计算则基于用户在一段时间后或固定间隔后留存的比例。
用户留存率种类繁多,包括新客留存率、老客留存率、活跃用户留存率、购买留存率以及特定功能使用用户的留存率等。计算时间间隔通常为次日、3日、7日、30日和60日等。根据业务需求的不同,可以选择适合的计算方式和时间间隔。重要的是确保与产品负责人和运营人员对好指标口径,以确保数据的准确性和可比性。
本次分享的重点是新客留存率的计算及分析。新客留存率的计算公式为:第N日新客留存率等于某日新注册用户在第N日内访问过APP的留存用户数除以某日的新注册用户总数。
为了便于理解,我们将留存率的计算过程分为两步:首先是计算留存时间,其次是计算留存用户。虽然在实际操作中,这两个步骤可以合并为一个步骤,但为了教学目的,我们分步讲解。
第一步:计算用户注册日期、登录日期以及登录日期距离注册日期的天数差。
我们可以创建一个视图来存储这些信息,包括用户ID、注册日期、登录日期以及登录日期与注册日期的天数差。
CREATE VIEW IF NOT EXISTS user_retention_view AS
SELECT
t2.operator_id AS "用户ID",
to_date(register_day) AS "注册日期",
to_date(login_day) AS "登录日期",
DATEDIFF(login_day, register_day) AS "登录时间距离注册日期的天数"
FROM (
SELECT DISTINCT operator_id, to_date(create_time) AS login_day
FROM user_log
) t1
LEFT JOIN (
SELECT operator_id, MIN(to_date(create_time)) AS register_day
FROM user_log
GROUP BY operator_id
) t2 ON t1.operator_id = t2.operator_id;
第二步:利用已计算出的时间差来计算用户留存率。
例如,要计算次日留存率,我们可以在上一步的计算结果中找出登录时间距离注册日期为1天的数据。类似地,要计算7日或30日留存率,只需找出符合相应条件的数据。
接下来,我们将通过SQL查询来计算各种留存率,并输出结果。
通过这样的分析,我们可以得到新客户的留存情况概览。在此基础上,我们可以进一步分析留存率下降的原因,如目标客户不匹配、活动吸引力不足等,并针对这些问题提出改进措施,如优化产品功能、调整运营策略等。
为了提高留存率,我们需要根据分析结果“对症”。这可能涉及到优化产品核心功能、改进运营手段、进行精准的用户画像分析等方面。我们还可以参考行业内的最佳实践和标准,如6个月和12个月的用户及收入留存率标准,来评估我们的表现。