高流量网站中有效跟踪 DAU 和 MAU
在高流量网站中跟踪 DAU 和 MAU 是一项挑战性任务。这篇文章描述了我们在 Logto 如何解决这个问题。
不可否认的是,作为一个身份提供者,Logto 每天都要处理大量的用户数据。我们不能忽视的一个关键指标是'每日活跃用户'(DAU)— 它让我们了解用户的参与度如何。但在跟踪 DAU 和每月活跃用户(MAU)时,事情可能会变得混乱。管理大量的数据而不影响用户体验并不容易,但这是我们已经学会有效应对的问题。
在这篇文章中,我们将利用这个机会向你介绍 DAU 相关概念,解释 DAU、MAU 以及如何计算月度参与率。
DAU、MAU 和月度参与率
每日活跃用户(DAU)
DAU 是在任何给定日子内与你的平台互动的独特用户。这些互动可以是任何事情—从登陆,发布或喜欢某事,或任何表现出活动的特定行为。跟踪 DAU 让我们能够每日衡量用户参与度,并了解我们的活跃用户基础的规模。
每月活跃用户(MAU)
MAU 则是标示一个月内至少有一次与你的平台交互的独特用户。就像 DAU 一样,活跃用户可以是任何人,从只是登录的人,到以某种方式与平台互动的人。
月度参与率
在理解用户每月与我们平台互动的频率时,我们发现一个特别的度量—月度参与率(MER)—具有巨大的价值。这对我们来说不仅仅是一个数字,而是一个对我们定价策略产生重大影响的关键元素。
MER 揭示了用户参与的频率,通过指出一个用户在一个月内登录或与我们的平台互动的独特日子的数量。这个洞见不仅有用,而且是我们的关键区别。不同于那些仅关注用户在一个月内是否访问的典型做法,我们深入研究,我们努力理解'经常是多经常'。这个'多经常'使我们能够衡量用户与我们平台交互的深度,并为我们提供有形的度量,以便向我们的用户提供更多价值。
在 Logto 中,MER 是基于使用量定价的一个重要因素。通过将我们的价位与 MER 关联,我们确保我们的收费与用户的参与程度对应;你可以说我们已经将公平转化为一个可以度量的标准。虽然其他人可能会将只登录一次的用户与每日用户一样计算在内,但我们则是根据实际的使用情况和提供的价值进行定价。通过这种方式,我们确保了一个更透明,公平,并且最终,一个脱颖而出的定价方式。
从用户日志
通常,DAU 和 MAU 是直接从用户日志中计算出来的。但是随着这些日志的堆积,这个过程变得效率低下,并带来了数据扩展和日志保留等问题。更不用说,由于隐私和安全规定,永远保留用户日志的记录并不现实。
另一种方法:创建 DAU 表
这就是为什么我们提出了创建 DAU 表的概念。这个表主要包括两列—user_id
和 date
。 date
可以设定为某一天的开始。
我们有两种方式来保持这个表的更新。第一种是一个每日自动任务,它会浏览前一天的用户日志。第二种方法是在用户活动发生时触发更新。
每当我们遇到一个独特的 user_id
,我们就在 DAU 表中添加一个新的条目,包括 user_id
和 date
。这是使用 SQL 的 "upsert" 操作完成的,这需要 user_id
和 date
的唯一键。
结果,跟踪 DAU 和 MAU 只是计算表中行数的问题。而月度参与率的计算可以通过结合 group by
和 count
来完成。
结果和优点
DAU 表,本质上是用户日志的凝缩版本,大大简化了我们的 DAU 和 MAU 计算过程。它不仅使用户参与度的追踪变得更容易,而且也大大减轻了我们系统的负担。
结论
在优化 DAU 和 MAU 计算的过程中,我们一直强调用户隐私和法规遵守。我们围绕确保 DAU 表不存储敏感用户信息的策略进行构建。相反,我们只存储匿名标识符(普通 user_id 的哈希值)和活动日期,严格遵守所有相关的数据保护规定。
我们强烈推荐这种以隐私为导向的方法给数字服务行业的其他人。无论用户数据的规模或体量如何,隐私应该始终处于最优先位置。
最后,数据跟踪并不一定要复杂,即使对于高流量的网络应用程序也是如此。像我们这样稳定高效的策略可以使跟踪关键的用户参与度度量变得轻而易举。
我们希望分享我们的经验可以启发其他数字平台,并提供如何开发有效和高效的数据跟踪创新解决方案的想法。