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 免费」,两家可能差很远。

常见坑

  1. 口径不写清楚:报表里给个「MAU 5 万」,不说「活跃」是什么、窗口多长,等于没给。
  2. 跨产品 / 跨厂商直接比:你的「打开即活跃」和别人的「完成核心操作才算活跃」不是一个东西。
  3. 把注册用户数当月活:注册总数是累计值、只增不减;MAU 是一个月内去重活跃、会上下波动,两个维度。
  4. 机器人 / 爬虫 / 健康检查被计入活跃,把数字冲高。

一段 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)。