You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase如何查看应用的逐月用户留存率?

Firebase/GA4 按月维度统计用户留存率实现方案

Firebase和GA原生仅支持天/周维度的留存数据展示,要实现按月维度的留存统计和同款周留存的同期群展示样式,可通过以下两种方式实现:

方案1:GA4探索报告自定义配置(无代码快速实现)

  • 进入GA4后台,打开左侧「探索」模块,新建空白探索
  • 维度栏添加「首次访问月份」、「事件月份」两个维度,指标栏添加「活跃用户数」指标
  • 表格配置区:将「首次访问月份」拖动到行,「事件月份」拖动到列,「活跃用户数」拖动到值
  • 手动计算留存:每行对应一个新用户的首访月份分组(即同期群),每列对应后续的月份,用对应单元格的活跃用户数 ÷ 首访月份的总新增用户数,即可得到对应第N个月的留存率,最终呈现样式和周留存完全一致

方案2:BigQuery导出数据计算(灵活度最高,支持自定义逻辑)

  • 前提:已完成GA4/Firebase与BigQuery的关联,同步了全量事件数据
  • 核心逻辑是构建同期群(Cohort)分析模型,给每个用户标记首访月份,再统计每个用户后续各月的活跃情况,最终聚合计算留存比例,参考SQL代码片段如下:
WITH 
-- 标记每个用户的首次访问月份
user_cohort AS (
  SELECT 
    user_pseudo_id, 
    DATE_TRUNC(PARSE_DATE("%Y%m%d", event_date), MONTH) AS first_month
  FROM `your_project.analytics_xxxxxx.events_*`
  WHERE event_name = 'first_open'
  GROUP BY 1,2
),
-- 统计每个用户的活跃月份
user_activity AS (
  SELECT 
    user_pseudo_id, 
    DATE_TRUNC(PARSE_DATE("%Y%m%d", event_date), MONTH) AS active_month
  FROM `your_project.analytics_xxxxxx.events_*`
  WHERE event_name = 'session_start'
  GROUP BY 1,2
),
-- 统计每个首访月份的总新增用户数
cohort_total AS (
  SELECT first_month, COUNT(DISTINCT user_pseudo_id) AS total_users
  FROM user_cohort
  GROUP BY 1
)
SELECT 
  c.first_month,
  DATE_DIFF(a.active_month, c.first_month, MONTH) AS months_after_register,
  COUNT(DISTINCT a.user_pseudo_id) AS retained_users,
  ROUND(COUNT(DISTINCT a.user_pseudo_id) / t.total_users, 4) AS retention_rate
FROM user_cohort c
LEFT JOIN user_activity a ON c.user_pseudo_id = a.user_pseudo_id
LEFT JOIN cohort_total t ON c.first_month = t.first_month
WHERE DATE_DIFF(a.active_month, c.first_month, MONTH) >= 0
GROUP BY 1,2,t.total_users
ORDER BY 1,2
  • 导出SQL执行结果后,可直接在Excel/BI工具中透视生成月留存同期群表格,匹配你需要的周留存展示样式。

注意:上述逻辑统计的是自然月留存,如果需要计算滚动30天留存(即用户首访后满30/60/90天的留存情况),将SQL中月份差值的计算逻辑调整为按天差值取整除以30即可,两种统计口径结果存在差异,可按需选择。

内容的提问来源于stack exchange,提问作者luc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 13:27:10