了解推送通知传送,包括其传送方式以及可能失败的原因。 ## 推送通知传递
推送通知传送是指推送通知成功传送到收件人的设备。如果一个配置文件在多个设备上安装了您的移动应用程序,则该配置文件可能拥有超过 1 个推送令牌。将尝试向配置文件中存储有令牌的所有设备发送推送通知。 送达率 的概念并不像电子邮件那样适用于推送通知,因为一旦收件人的设备成功接收到通知,就不会执行任何排序。当您通过营销活动或流程发送推送通知时,Klaviyo 会检查推送,然后将其发送到适用于 iOS 的 Apple 推送通知服务 (APN) 或 Android 的推送通知服务 Firebase Cloud Messaging (FCM),以传送到收件人的设备。如果传送出现问题,您可能会看到一些推送通知被跳过。 APN 和 FCM 将接受通知并尝试将其传送到收件人的设备,或者拒绝通知并出现一系列可能的错误。 Klaviyo 只能了解这些服务是否接受通知或拒绝通知。 Klaviyo 无法确认 APNs 或 FCM 接受推送后通知是否失败。想要请求 Klaviyo 推送通知功能吗?填写此 Google 表单 告诉我们! ## 拒绝原因
如果 Klaviyo 在发送通知后收到来自 APNs 或 FCM 的错误响应,则会为受失败传递影响的每个令牌创建一个名为 退回推送 的事件。这将与发送通知的相应流程或活动的收件人活动一起显示在接收配置文件的活动源中。 退回推送事件包含显示 APN 或 Firebase 返回的错误代码消息(例如 ExpiredToken)的元数据。如果您遇到交付问题,请与您的应用开发人员合作,根据事件中的描述解决错误。要查看事件的元数据,请在个人资料的活动日志上单击该事件的*活动详细信息*。 ### 无声推送
您可以查看单个静默推送通知的送达率和退回率;但是,静默推送通知被排除在 Klaviyo 的所有聚合性能报告之外。这包括随着时间的推移移动推送打开率等内容,因为它们没有打开或转化。请注意,您将看到静默推送与标准推送不同的事件,即已接收静默推送和弹回静默推送。如果您在 iOS 上传送静默推送通知时遇到问题,请注意,iOS 不保证静默推送通知的传送。他们可能不会根据设备的当前状态提供它们,例如电池电量和网络连接。 ### iOS
对于通过 APN 发送的 iOS 推送通知,可能会因 Apple 关于处理来自 APN 的通知响应 的参考中列出的至少一种原因而发生拒绝。 | | | |
| — | — | — | |
|---|---|---|---|
| *状态代码* | *APN 错误字符串* | *APN 描述* | |
| 400 | 坏设备令牌 | 指定的设备令牌错误。验证请求是否包含有效令牌并且该令牌是否与环境匹配。 | |
| 400 | 坏主题 | apns-topic 值无效。 | |
| 400 | DeviceTokenNotForTopic | DeviceTokenNotForTopic | 设备令牌与指定主题不匹配。 |
| 400 | 重复标题 | 一个或多个标头重复。 | |
| 400 | 空闲超时 | 空闲超时。 | |
| 400 | 无效的推送类型 | apns-push-type 值无效。 | |
| 400 | 有效负载空 | 消息有效负载为空。 | |
| 403 | 403错误证书 | 证书是坏的。 | |
| 403 | 403不良证书环境 | 客户端证书适用于错误的环境。 | |
| 403 | 403无效的提供商令牌 | 提供者令牌无效或无法验证令牌签名。 | |
| 404 | 404错误路径 | 该请求包含错误的 :path 值。 | |
| 405 | 405方法不允许 | 指定的 :method 不是 POST。 | |
| 410 | 410过期代币 | 设备令牌已过期。 | |
| 410 | 410未注册 | 设备令牌对于指定主题无效。 | |
| 429 | 429太多提供商令牌更新 | 提供商令牌更新过于频繁。 | |
| 500 | 500内部服务器错误 | 发生内部服务器错误。 | |
| 503 | 503服务不可用 | 该服务不可用。 |
安卓 #
对于通过 FCM 发送的 Android 推送通知,可能会因 Google 的 [FCM 错误代码参考] 中列出的至少一种原因而遭到拒绝。(https://firebase.google.com/docs/reference/fcm/rest/v1/ErrorCode)
| *状态代码* | *FCM 错误字符串* | *FCM 描述* |
| 400 | 无效\_参数 | 检查您传递给服务器的注册令牌的格式。确保它与客户端应用程序通过 Firebase 通知注册收到的注册令牌相匹配。不要截断或添加额外的字符。 |
| 400 | 无效\_参数 | 确保消息发送至注册令牌,其包名称与请求中传递的值匹配。 |
| 400 | 无效\_参数 | 检查消息中包含的有效负载数据的总大小是否超过 FCM 限制:大多数消息为 4096 字节,对于主题消息为 2048 字节。这包括键和值。 |
| 400 | 无效\_参数 | 检查负载数据是否不包含 FCM 内部使用的密钥(例如 from、gcm 或任何以 google 为前缀的值)。请注意,FCM 也使用某些单词(例如崩溃\_key),但在有效负载中允许使用,在这种情况下,有效负载值将被 FCM 值覆盖。 |
| 400 | 无效\_参数 | 检查 ttl 中使用的值是否是一个整数,表示 0 到 2,419,200(4 周)之间的持续时间(以秒为单位)。 |
| 400 | 无效\_参数 | 检查提供的参数是否具有正确的名称和类型。 |
| 403 | 403发件人\_ID\_不匹配 | 经过身份验证的发件人 ID 与注册令牌的发件人 ID 不同。 |
| 404 | 404未注册 | 应用程序实例已从 FCM 取消注册。这通常意味着所使用的令牌不再有效,必须使用新的令牌。 |
| 429 | 429配额\_超出 | 超出消息目标的发送限制。返回 google.rpc.QuotaFailure 类型的扩展以指定超出了哪个配额。 |
| 500 | 500内部 | 发生未知的内部错误。 |
| 503 | 503不可用 | 服务器超载。 |
如果收件人丢失或推送令牌无效,您还会看到 退回推送 事件。 ## 最佳实践
收集用户同意 #
为了向个人资料发送标准推送通知,您必须首先征得他们的明确同意。要收集推送通知同意,您必须在客户首次与您的移动应用程序交互时向他们提供权限屏幕提示。权限屏幕提示的最佳做法是包含提供以下信息并允许他们选择加入或选择退出的同意语言:
- *您的品牌发送什么类型的通知*
包括有关您的品牌计划发送的不同推送通知的详细信息(例如,帐户更改、帐户更改、提醒和特别折扣)。 – *为什么用户应该选择加入* 包含有关客户为何应提供权限的信息(例如,接收重要更新或提前访问销售)。详细了解如何收集推送通知同意书
发送相关通知 #
发送推送通知活动时,重要的是要利用 Klaviyo 的细分 发送个性化且与订阅者相关的内容。例如,如果您知道自己有一群忠实的回头客,您可以使用推送通知来提醒他们新的优惠或促销活动。通过确保您向客户发送的内容与他们的兴趣和偏好相关,您可以降低客户选择退出的可能性,并最大限度地提高通过推送通知联系客户的能力。 ### 监控和分析性能
必须使用 Klaviyo 持续监控推送通知性能,以快速识别交付问题和关键推送指标。 最好的方法是监视以下推送通知事件:
- 收到推送
- 开启推送
- 弹跳推
您可以在 Klaviyo 中设置多指标报告,以监控您在这些事件上的表现如何随时间变化。