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

Firebase Cloud Messaging推送接收率偏低相关问题咨询

FCM推送送达率问题答疑

报表数据是否代表43K条推送未抵达用户设备?

答案是否定的,你不能直接用发送量减去报表显示的接收量,来计算未抵达设备的推送数量。
FCM后台的统计口径存在明确边界:「累计发送量」统计的是FCM服务端成功收到你的推送请求、且校验参数合法后,进入分发队列的消息总数;而报表中的「被用户接收」数据,默认统计的是应用在前台运行时,客户端SDK成功触发接收回调并回传上报的消息数量。大量设备实际收到、甚至用户已经看到的推送,都不会被计入这个接收统计,所以43K的差值不代表全部未抵达用户设备。

送达率偏低的核心原因

你可以从以下几个维度排查:

  • 系统层面的推送拦截策略
    安卓和iOS都有原生的节能、消息优先级管控逻辑:

    国产安卓定制系统(如MIUI、鸿蒙、ColorOS等)对非白名单应用的后台推送管控极严,即使用户主动授予了推送权限,只要应用长时间未被启动、被系统后台冻结,推送就会被系统直接拦截不会展示;iOS端如果用户开启了专注模式、或者给应用开启了「定时推送摘要」,非高优先级推送会被延迟汇总,甚至直接静默丢弃,这类情况都不会被FCM统计为接收成功。

  • 消息类型的统计差异
    如果你发送的是*数据消息(Data Message)*而非官方的通知消息(Notification Message),FCM默认不会在系统通知栏展示消息,只有应用处于前台运行状态时才会触发SDK的接收回调,应用在后台时的消息不会被计入接收统计。
  • 客户端异常导致的分发失败
    • 用户已经卸载应用、或者手动清除了应用本地数据,对应的FCM注册令牌(Token)已经失效,FCM服务端会直接丢弃对应推送,不会进入下游分发链路
    • 用户设备长期处于断网、关机状态,超过你设置的消息存活时间(FCM默认最长4周,可自定义更短的有效期),消息会被FCM服务端直接标记为过期清除
  • 统计上报的偏差
    FCM的接收数据依赖客户端SDK的回传上报,如果用户收到推送时设备网络不稳定、或者定制ROM禁用了应用的后台数据上报权限,就会出现用户实际已经看到了推送,但上报数据没有成功传到Firebase后台的情况,也会被统计为未接收。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:27:03