FCM 通知送达报告

FCM Notification Delivery Report

我知道在发布消息后 google 会发回消息 ID,这并不意味着消息已经发送到设备。

是否可以在 FCM 中接收已发送通知的送达报告?

是的,message_id 仅标识消息已成功传递到 FCM 服务器。


December 17, 2019 - FCM Update

FCM 已删除对通过 XMPP 协议的送货回执的持续支持。在 FCM 客户端 SDK 中,开发人员应 enable delivery data export 代替 XMPP 交付收据。

我想你要找的是 Delivery Receipts:

Delivery Receipt: If the app server included delivery_receipt_requested in the downstream message, the XMPP connection server sends a delivery receipt when it receives confirmation that the device received the message.

方法projects.androidApps.deliveryData.list读取:

List aggregate delivery data for the given Android application.

需要一个parent节点projects/{project_id}/androidApps/{appId}通过然后returns:

{
  "androidDeliveryData": [
    {
      "appId": "",
      "date": {
        "year": 2021,
        "month": 12,
        "day": 19
      },
      "data": { ... }
    }, ...
}

术语“汇总”排除了个别消息传递报告,

但每日汇总统计数据仍然比没有统计数据要好:

MessageOutcomePercents:

{
  "delivered": number,
  "pending": number,
  "droppedTooManyPendingMessages": number,
  "droppedAppForceStopped": number,
  "droppedDeviceInactive": number
}

DeliveryPerformancePercents:

{
  "deliveredNoDelay": number,
  "delayedDeviceOffline": number,
  "delayedDeviceDoze": number,
  "delayedMessageThrottled": number,
  "delayedUserStopped": number
}

MessageInsightPercents:

{
  "priorityLowered": number
}

这些类别是相同的,例如发布的类别。作为 Push Kit 通知回执。


SMS 标准还将提供消息回执 - 因为这些是
个人消息 - 而不是每批 500 pub/sub 订阅者。
虽然这也不能保证,因为可以禁用这些回复。