diff --git a/json-schemas/src/account-stats.json b/json-schemas/src/account-stats.json index a334b64c..e8f04b96 100644 --- a/json-schemas/src/account-stats.json +++ b/json-schemas/src/account-stats.json @@ -1517,7 +1517,7 @@ "push.notifications.delivered.apns": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of successfully-delivered Push notifications over the APNS transport." + "description": "Total number of successfully-delivered Push notifications over the APNS transport. Counts per-device notifications, so it excludes apnsLiveActivity, which counts Live Activity broadcasts issued rather than per-device deliveries." }, "push.notifications.delivered.apnsLocation": { "type": "number", @@ -1527,7 +1527,12 @@ "push.notifications.delivered.apnsLiveActivity": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of successfully-delivered APNS Live Activity Push notifications." + "description": "Total number of successfully-issued APNS Live Activity broadcasts, the final broadcast sent by an end request included. Each broadcast is a single request to Apple that Apple fans out to every device subscribed to the broadcast channel (Ably has no per-device visibility), so this counts issuance, not deliveries, and is not included in the apns or total aggregates, which count per-device notifications." + }, + "push.notifications.delivered.apnsPushToStart": { + "type": "number", + "inclusiveMinimum": 0, + "description": "Total number of successfully-delivered APNS Live Activity push-to-start notifications." }, "push.notifications.delivered.apnsAlert": { "type": "number", @@ -1542,7 +1547,7 @@ "push.notifications.delivered.total": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of successfully-delivered Push notifications over any transport." + "description": "Total number of successfully-delivered Push notifications over any transport. Counts per-device notifications, so it excludes apnsLiveActivity, which counts Live Activity broadcasts issued rather than per-device deliveries." }, "push.notifications.refused.retriable.fcm": { "type": "number", @@ -1557,7 +1562,7 @@ "push.notifications.refused.retriable.apns": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of Push notifications that Ably attempted to deliver to APNS but were refused with a retriable error (so which Ably will attempt to retry)." + "description": "Total number of Push notifications that Ably attempted to deliver to APNS but were refused with a retriable error (so which Ably will attempt to retry). Counts per-device notifications, so it excludes apnsLiveActivity, which counts Live Activity broadcasts issued rather than per-device deliveries." }, "push.notifications.refused.retriable.apnsLocation": { "type": "number", @@ -1567,7 +1572,12 @@ "push.notifications.refused.retriable.apnsLiveActivity": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of APNS Live Activity Push notifications that Ably attempted to deliver but were refused with a retriable error (so which Ably will attempt to retry)." + "description": "Total number of APNS Live Activity broadcasts that Apple refused with a retriable error (the caller receives the failure synchronously and can retry). Not included in the apns or total aggregates." + }, + "push.notifications.refused.retriable.apnsPushToStart": { + "type": "number", + "inclusiveMinimum": 0, + "description": "Total number of APNS Live Activity push-to-start notifications that Ably attempted to deliver but were refused with a retriable error (so which Ably will attempt to retry)." }, "push.notifications.refused.retriable.apnsAlert": { "type": "number", @@ -1582,7 +1592,7 @@ "push.notifications.refused.retriable.total": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of Push notifications that Ably attempted to deliver but were refused with a retriable error (so which Ably will attempt to retry)." + "description": "Total number of Push notifications that Ably attempted to deliver but were refused with a retriable error (so which Ably will attempt to retry). Counts per-device notifications, so it excludes apnsLiveActivity, which counts Live Activity broadcasts issued rather than per-device deliveries." }, "push.notifications.refused.final.fcm": { "type": "number", @@ -1597,7 +1607,7 @@ "push.notifications.refused.final.apns": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of Push notifications that Ably attempted to deliver to APNS but were refused with a non-retriable error." + "description": "Total number of Push notifications that Ably attempted to deliver to APNS but were refused with a non-retriable error. Counts per-device notifications, so it excludes apnsLiveActivity, which counts Live Activity broadcasts issued rather than per-device deliveries." }, "push.notifications.refused.final.apnsLocation": { "type": "number", @@ -1607,7 +1617,12 @@ "push.notifications.refused.final.apnsLiveActivity": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of APNS Live Activity Push notifications that Ably attempted to deliver but were refused with a non-retriable error." + "description": "Total number of APNS Live Activity broadcasts that Apple refused with a non-retriable error. Not included in the apns or total aggregates." + }, + "push.notifications.refused.final.apnsPushToStart": { + "type": "number", + "inclusiveMinimum": 0, + "description": "Total number of APNS Live Activity push-to-start notifications that Ably attempted to deliver but were refused with a non-retriable error." }, "push.notifications.refused.final.apnsAlert": { "type": "number", @@ -1622,12 +1637,12 @@ "push.notifications.refused.final.total": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of Push notifications that Ably attempted to deliver but were refused with a non-retriable error." + "description": "Total number of Push notifications that Ably attempted to deliver but were refused with a non-retriable error. Counts per-device notifications, so it excludes apnsLiveActivity, which counts Live Activity broadcasts issued rather than per-device deliveries." }, "push.notifications.skipped.apns": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of Push notifications that Ably did not attempt to deliver to APNS, for example APNS location push notifications sent over a channel to subscribing devices without location tokens." + "description": "Total number of Push notifications that Ably did not attempt to deliver to APNS, for example APNS location push notifications sent over a channel to subscribing devices without location tokens. Counts per-device notifications, so it excludes apnsLiveActivity, which counts Live Activity broadcasts issued rather than per-device deliveries." }, "push.notifications.skipped.apnsLocation": { "type": "number", @@ -1637,7 +1652,12 @@ "push.notifications.skipped.apnsLiveActivity": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of APNS Live Activity Push notifications that Ably did not attempt to deliver, for example Live Activity push-to-start notifications sent to devices without push-to-start tokens." + "description": "Total number of APNS Live Activity broadcasts that Ably did not attempt to issue. Currently always zero: every accepted broadcast request is issued synchronously." + }, + "push.notifications.skipped.apnsPushToStart": { + "type": "number", + "inclusiveMinimum": 0, + "description": "Total number of APNS Live Activity push-to-start notifications that Ably did not attempt to deliver, for example push-to-start notifications sent to devices without push-to-start tokens." }, "push.notifications.skipped.apnsAlert": { "type": "number", @@ -1647,7 +1667,7 @@ "push.notifications.skipped.total": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of Push notifications that Ably did not attempt to deliver, for example APNS location push notifications sent over a channel to subscribing devices without location tokens." + "description": "Total number of Push notifications that Ably did not attempt to deliver, for example APNS location push notifications sent over a channel to subscribing devices without location tokens. Counts per-device notifications, so it excludes apnsLiveActivity, which counts Live Activity broadcasts issued rather than per-device deliveries." }, "push.notifications.all.fcm": { "type": "number", @@ -1662,7 +1682,7 @@ "push.notifications.all.apns": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of attempts (whatever the outcome) to deliver Push notifications over the APNS transport." + "description": "Total number of attempts (whatever the outcome) to deliver Push notifications over the APNS transport. Counts per-device notifications, so it excludes apnsLiveActivity, which counts Live Activity broadcasts issued rather than per-device deliveries." }, "push.notifications.all.apnsLocation": { "type": "number", @@ -1672,7 +1692,12 @@ "push.notifications.all.apnsLiveActivity": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of attempts (whatever the outcome) to deliver APNS Live Activity Push notifications." + "description": "Total number of attempts (whatever the outcome) to issue APNS Live Activity broadcasts. Not included in the apns or total aggregates, which count per-device notifications." + }, + "push.notifications.all.apnsPushToStart": { + "type": "number", + "inclusiveMinimum": 0, + "description": "Total number of attempts (whatever the outcome) to deliver APNS Live Activity push-to-start notifications." }, "push.notifications.all.apnsAlert": { "type": "number", @@ -1687,18 +1712,13 @@ "push.notifications.all.total": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of attempts (whatever the outcome) to deliver Push notifications over any transport." + "description": "Total number of attempts (whatever the outcome) to deliver Push notifications over any transport. Counts per-device notifications, so it excludes apnsLiveActivity, which counts Live Activity broadcasts issued rather than per-device deliveries." }, "push.directPublishes": { "type": "number", "inclusiveMinimum": 0, "description": "Total number of direct push publishes (that is, notifications triggered by a request to /push/publish, not a channel message with a push payload)." }, - "push.apnsBroadcasts": { - "type": "number", - "inclusiveMinimum": 0, - "description": "Total number of APNs Live Activity broadcasts issued. Each broadcast is a single request to Apple that Apple fans out to every device subscribed to the broadcast channel (Ably has no per-device visibility), so this counts issuance, not deliveries. Includes the final broadcast sent by an end request." - }, "peakRates.messages": { "type": "number", "inclusiveMinimum": 0, diff --git a/json-schemas/src/app-stats.json b/json-schemas/src/app-stats.json index 5e20d14a..c0bcce16 100644 --- a/json-schemas/src/app-stats.json +++ b/json-schemas/src/app-stats.json @@ -1522,7 +1522,7 @@ "push.notifications.delivered.apns": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of successfully-delivered Push notifications over the APNS transport." + "description": "Total number of successfully-delivered Push notifications over the APNS transport. Counts per-device notifications, so it excludes apnsLiveActivity, which counts Live Activity broadcasts issued rather than per-device deliveries." }, "push.notifications.delivered.apnsLocation": { "type": "number", @@ -1532,7 +1532,12 @@ "push.notifications.delivered.apnsLiveActivity": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of successfully-delivered APNS Live Activity Push notifications." + "description": "Total number of successfully-issued APNS Live Activity broadcasts, the final broadcast sent by an end request included. Each broadcast is a single request to Apple that Apple fans out to every device subscribed to the broadcast channel (Ably has no per-device visibility), so this counts issuance, not deliveries, and is not included in the apns or total aggregates, which count per-device notifications." + }, + "push.notifications.delivered.apnsPushToStart": { + "type": "number", + "inclusiveMinimum": 0, + "description": "Total number of successfully-delivered APNS Live Activity push-to-start notifications." }, "push.notifications.delivered.apnsAlert": { "type": "number", @@ -1547,7 +1552,7 @@ "push.notifications.delivered.total": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of successfully-delivered Push notifications over any transport." + "description": "Total number of successfully-delivered Push notifications over any transport. Counts per-device notifications, so it excludes apnsLiveActivity, which counts Live Activity broadcasts issued rather than per-device deliveries." }, "push.notifications.refused.retriable.fcm": { "type": "number", @@ -1562,7 +1567,7 @@ "push.notifications.refused.retriable.apns": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of Push notifications that Ably attempted to deliver to APNS but were refused with a retriable error (so which Ably will attempt to retry)." + "description": "Total number of Push notifications that Ably attempted to deliver to APNS but were refused with a retriable error (so which Ably will attempt to retry). Counts per-device notifications, so it excludes apnsLiveActivity, which counts Live Activity broadcasts issued rather than per-device deliveries." }, "push.notifications.refused.retriable.apnsLocation": { "type": "number", @@ -1572,7 +1577,12 @@ "push.notifications.refused.retriable.apnsLiveActivity": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of APNS Live Activity Push notifications that Ably attempted to deliver but were refused with a retriable error (so which Ably will attempt to retry)." + "description": "Total number of APNS Live Activity broadcasts that Apple refused with a retriable error (the caller receives the failure synchronously and can retry). Not included in the apns or total aggregates." + }, + "push.notifications.refused.retriable.apnsPushToStart": { + "type": "number", + "inclusiveMinimum": 0, + "description": "Total number of APNS Live Activity push-to-start notifications that Ably attempted to deliver but were refused with a retriable error (so which Ably will attempt to retry)." }, "push.notifications.refused.retriable.apnsAlert": { "type": "number", @@ -1587,7 +1597,7 @@ "push.notifications.refused.retriable.total": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of Push notifications that Ably attempted to deliver but were refused with a retriable error (so which Ably will attempt to retry)." + "description": "Total number of Push notifications that Ably attempted to deliver but were refused with a retriable error (so which Ably will attempt to retry). Counts per-device notifications, so it excludes apnsLiveActivity, which counts Live Activity broadcasts issued rather than per-device deliveries." }, "push.notifications.refused.final.fcm": { "type": "number", @@ -1602,7 +1612,7 @@ "push.notifications.refused.final.apns": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of Push notifications that Ably attempted to deliver to APNS but were refused with a non-retriable error." + "description": "Total number of Push notifications that Ably attempted to deliver to APNS but were refused with a non-retriable error. Counts per-device notifications, so it excludes apnsLiveActivity, which counts Live Activity broadcasts issued rather than per-device deliveries." }, "push.notifications.refused.final.apnsLocation": { "type": "number", @@ -1612,7 +1622,12 @@ "push.notifications.refused.final.apnsLiveActivity": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of APNS Live Activity Push notifications that Ably attempted to deliver but were refused with a non-retriable error." + "description": "Total number of APNS Live Activity broadcasts that Apple refused with a non-retriable error. Not included in the apns or total aggregates." + }, + "push.notifications.refused.final.apnsPushToStart": { + "type": "number", + "inclusiveMinimum": 0, + "description": "Total number of APNS Live Activity push-to-start notifications that Ably attempted to deliver but were refused with a non-retriable error." }, "push.notifications.refused.final.apnsAlert": { "type": "number", @@ -1627,12 +1642,12 @@ "push.notifications.refused.final.total": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of Push notifications that Ably attempted to deliver but were refused with a non-retriable error." + "description": "Total number of Push notifications that Ably attempted to deliver but were refused with a non-retriable error. Counts per-device notifications, so it excludes apnsLiveActivity, which counts Live Activity broadcasts issued rather than per-device deliveries." }, "push.notifications.skipped.apns": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of Push notifications that Ably did not attempt to deliver to APNS, for example APNS location push notifications sent over a channel to subscribing devices without location tokens." + "description": "Total number of Push notifications that Ably did not attempt to deliver to APNS, for example APNS location push notifications sent over a channel to subscribing devices without location tokens. Counts per-device notifications, so it excludes apnsLiveActivity, which counts Live Activity broadcasts issued rather than per-device deliveries." }, "push.notifications.skipped.apnsLocation": { "type": "number", @@ -1642,7 +1657,12 @@ "push.notifications.skipped.apnsLiveActivity": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of APNS Live Activity Push notifications that Ably did not attempt to deliver, for example Live Activity push-to-start notifications sent to devices without push-to-start tokens." + "description": "Total number of APNS Live Activity broadcasts that Ably did not attempt to issue. Currently always zero: every accepted broadcast request is issued synchronously." + }, + "push.notifications.skipped.apnsPushToStart": { + "type": "number", + "inclusiveMinimum": 0, + "description": "Total number of APNS Live Activity push-to-start notifications that Ably did not attempt to deliver, for example push-to-start notifications sent to devices without push-to-start tokens." }, "push.notifications.skipped.apnsAlert": { "type": "number", @@ -1652,7 +1672,7 @@ "push.notifications.skipped.total": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of Push notifications that Ably did not attempt to deliver, for example APNS location push notifications sent over a channel to subscribing devices without location tokens." + "description": "Total number of Push notifications that Ably did not attempt to deliver, for example APNS location push notifications sent over a channel to subscribing devices without location tokens. Counts per-device notifications, so it excludes apnsLiveActivity, which counts Live Activity broadcasts issued rather than per-device deliveries." }, "push.notifications.all.fcm": { "type": "number", @@ -1667,7 +1687,7 @@ "push.notifications.all.apns": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of attempts (whatever the outcome) to deliver Push notifications over the APNS transport." + "description": "Total number of attempts (whatever the outcome) to deliver Push notifications over the APNS transport. Counts per-device notifications, so it excludes apnsLiveActivity, which counts Live Activity broadcasts issued rather than per-device deliveries." }, "push.notifications.all.apnsLocation": { "type": "number", @@ -1677,7 +1697,12 @@ "push.notifications.all.apnsLiveActivity": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of attempts (whatever the outcome) to deliver APNS Live Activity Push notifications." + "description": "Total number of attempts (whatever the outcome) to issue APNS Live Activity broadcasts. Not included in the apns or total aggregates, which count per-device notifications." + }, + "push.notifications.all.apnsPushToStart": { + "type": "number", + "inclusiveMinimum": 0, + "description": "Total number of attempts (whatever the outcome) to deliver APNS Live Activity push-to-start notifications." }, "push.notifications.all.apnsAlert": { "type": "number", @@ -1692,17 +1717,12 @@ "push.notifications.all.total": { "type": "number", "inclusiveMinimum": 0, - "description": "Total number of attempts (whatever the outcome) to deliver Push notifications over any transport." + "description": "Total number of attempts (whatever the outcome) to deliver Push notifications over any transport. Counts per-device notifications, so it excludes apnsLiveActivity, which counts Live Activity broadcasts issued rather than per-device deliveries." }, "push.directPublishes": { "type": "number", "inclusiveMinimum": 0, "description": "Total number of direct push publishes (that is, notifications triggered by a request to /push/publish, not a channel message with a push payload)." - }, - "push.apnsBroadcasts": { - "type": "number", - "inclusiveMinimum": 0, - "description": "Total number of APNs Live Activity broadcasts issued. Each broadcast is a single request to Apple that Apple fans out to every device subscribed to the broadcast channel (Ably has no per-device visibility), so this counts issuance, not deliveries. Includes the final broadcast sent by an end request." } } }