如何计算 1 个月的用户留存率

How to calculate user retention for a period of 1 month

我目前有一个名为 user_tracker 的 table (MySQL),它存储:

  1. 用户 IP 地址:IpAddress
  2. 每个人一个唯一的令牌(保存为 cookie):CookieToken
  3. URL用户检查:Page
  4. 用户查看该页面的日期:CreatedOn

我们想要做的是,在 30 天的时间里,有多少人只访问该网站 1 次、2 次、3 次、... 30 次(意味着他们每天都访问该网站).

如果用户在 1 天内查看了 5 个页面并且再也没有回来,则该用户仍被视为“1 次”。

我怎样才能得到这样的东西?

如果有人知道在不使用 Tableau 或其他工具的情况下在 MySQL 上获取此数据的查询,我将不胜感激。

附件是使用 SAS VA 收集的上个月数据的屏幕截图。

假设您的 createdOn 是一个有效的日期列,您可以计算日期间隔中的行数

如果您需要用户访问网站的不同天数,请使用不同的 createdOn

  select 
      IpAddress
      , count(distinct createdOn)
  from my_table 
  where CreatedOn between  BETWEEN NOW() - INTERVAL 30 DAY AND NOW()
  group by IpAddress

如果您想知道用户访问站点的次数,请使用计数(*)

  1. 创建一个 LOD 计算字段,[每月活跃天数] 以显示每个人当月的唯一天数 {FIXED [CookieToken] : COUNTD(DAY([Created On])) }
  2. 将 [每月活跃天数] 放在行架上
  3. 将月份([创建于])放在颜色架上
  4. 将 COUNTD([CookieToken]) 放在列架子上

使用 COUNTD 很方便,但对于大型数据集来说成本很高。如果性能不够,那么您可能希望预处理数据以预先支付该费用。

上述步骤假定所有数据均来自一年。如果您的数据涵盖多年,您需要相应地修改步骤 1 and/or 3