MAU 是什么
MAU = Monthly Active Users,中文叫「月活跃用户数」,口语里就说「月活」。MAU、月活、月活跃用户是同一个指标的三种叫法,没有区别。
它衡量的是:在一个月的时间窗口里,有多少个不同的用户对产品做过一次「算数的」操作。
两个变量决定了这个数字:
- 「活跃」怎么算 —— 打开 App?登录?完成一次核心操作(发消息、查一个词、下一单)?每个产品自己定,口径不同数字差很多。
- 「一个月」是哪一个月 —— 见下面「统计口径」。
同一个用户这个月里操作 100 次,也只算 1 个 MAU(按用户去重)。
统计口径:滚动 30 天 vs 自然月
- 自然月:2 月 1 日 00:00 到 2 月最后一天,落在这个区间里活跃过的去重用户数。一个月出一个数。
- 滚动 30 天(trailing 30 days):从今天往前数 30 天,这个窗口里的去重活跃用户。每天都能出一个数,曲线更平滑,也不受「这个月有 28 天还是 31 天」影响。
分析工具(GA4、Mixpanel、Amplitude)和产品仪表盘多数用滚动窗口;财报、投资人材料多数用自然月。看到一个 MAU 数字,先问清楚是哪一种。
DAU / WAU / MAU
同一套逻辑,换时间窗口:
| 指标 | 窗口 | 主要用途 |
|---|---|---|
| DAU | 日活跃用户 | 看日常波动、发版影响、周末效应 |
| WAU | 周活跃用户 | 平滑掉「工作日 / 周末」噪声 |
| MAU | 月活跃用户 | 看整体规模、增长趋势、对外汇报 |
DAU ≤ WAU ≤ MAU:窗口越大,去重后能框进来的人越多。
DAU/MAU 比值 = 黏性
DAU / MAU 常用来衡量「用户多频繁回来」:
- 0.5:平均一个月活用户里,每天有一半在用 —— 大约每两天来一次,很黏(IM、社交类)。
- 0.1:月活用户平均一个月来 3 天 —— 低频工具(报税、机票比价)就是这样,不代表产品差。
拿自己产品的比值跟同品类比,别跨品类比。
SaaS 计费里的 MAU(跟上面的产品指标不完全是一回事)
很多按用户量收费的服务(认证类如 Clerk、Auth0、Supabase;分析类;通信类)用 MAU 做计费单位。这里的 MAU 定义由厂商说了算,通常跟你自己产品的「月活」口径不一样:
- 认证类服务:MAU 一般指「当月至少发起过一次认证 / 持有过一次有效会话的用户」。一个注册了但这个月没登录的用户,不进这个月的计费 MAU。
- 计费周期一般是自然月或订阅周期月,不是滚动 30 天。
- 有的按「当月去重总数」,有的按「当月峰值」,条款里写。
所以看到一个服务写「10,000 MAU 免费」,真正要确认三件事:它怎么定义一个 MAU、按什么周期结算、超了怎么收费。同样一句「10k MAU 免费」,两家可能差很远。
常见坑
- 口径不写清楚:报表里给个「MAU 5 万」,不说「活跃」是什么、窗口多长,等于没给。
- 跨产品 / 跨厂商直接比:你的「打开即活跃」和别人的「完成核心操作才算活跃」不是一个东西。
- 把注册用户数当月活:注册总数是累计值、只增不减;MAU 是一个月内去重活跃、会上下波动,两个维度。
- 机器人 / 爬虫 / 健康检查被计入活跃,把数字冲高。
一段 SQL 示意(自然月,按用户去重)
-- Natural-month MAU: distinct users with at least one qualifying event that month
SELECT
date_trunc('month', event_time) AS month,
count(DISTINCT user_id) AS mau
FROM events
WHERE event_name IN ('app_open', 'core_action') -- your definition of "active"
GROUP BY 1
ORDER BY 1;
滚动 30 天版本:对每一天 d,统计 event_time 落在 [d - 29 days, d] 区间内的 count(distinct user_id)。