触达率提升 20%,融云推送优化实践

触达率提升 20%,融云推送优化实践

不稳定的产品表现和不友好的使用体验,会让社交用户很快失去耐心。关注【融云全球互联网通信云】了解更多

去中心化社交产品 Damus 已经沦为互联网垃圾场。它在人们对去中心化的欢呼声中引爆,但也因违背用户常识和体验惯性的产品表现而很快失去吸引力,烟火般绚烂一瞬,成为留下讨论价值的实验性产品。

可见,由账户密码登录、关注取关等用户管理、信息流展示、推送通知等组成的社交产品形态已经非常深入人心,短期内难以被颠覆。

更重要的是,不同于早期社交产品的先锋性尝试,如今人们几乎已经将大部分真实生活搬到了网上,自然对服务的稳定性和体验感有着极高要求。

持续提升服务稳定性和体验友好度是融云作为专业选手的常规表现。

近期,融云针对 App 触达用户的主要手段推送进行了多重优化,使触达率提高了 20%速度提升了 2 倍

推送触达率提升

全平台推送通道优化

融云推送服务覆盖 FCM、APNs 等系统通道,以及国内大多数手机厂商,比如小米、华为、OPPO、vivo、魅族、一加、Realme 等,实现了全平台的推送覆盖,保障了推送的成功率。

面对推送通道的复杂性,融云通过增强兼容性、设备型号和操作系统版本针对性优化、不同厂商通道优化三大手段进行推送通道的优化,以达成提升推送触达率的目标。

1. 增强兼容性

增强服务兼容性,遵循不同厂商的规范和标准,确保服务可以在各种设备上平稳运行。特别是对华为、小米、OPPO 等本土品牌的手机,融云均进行了针对性适配,以确保不会因兼容性问题,导致推送无法送达。

2. 根据设备型号和操作系统版本进行优化

不同的设备型号和操作系统版本对推送通道的支持程度不同,融云根据具体情况进行持续优化。

例如,在 Android 8.0 及以上版本支持通知渠道(Notification Channels),在 OPPO 手机推送时使用通知栏图标等。

3. 根据不同厂商优化推送通道

推送通道是指消息从服务器到达设备的途径,国外的设备通常有两种方式:苹果 APNs(Apple Push Notification service)与谷歌 FCM(Firebase Cloud Messaging)。

国内厂商众多,且不同厂商针对推送通道的可用性也存在差异。融云根据各厂商特点实行了针对性通道策略配置,例如,在华为手机上使用华为推送通道(HMS),在小米手机上优先使用小米推送通道(Mi Push)。

另外,厂商会通过 QPS(Quantity Per Second)、一天连接的设备上限每次推送的内容大小等对推送进行限制。

针对各厂商的差异化限制,融云在逐一详细研究后,实施了不同的优化策略。以小米和华为的推送优化过程为例——

小米推送分为“普通消息推送”和“通知消息推送”,默认为普通消息推送。2020 年 5 月 1 日起,小米推送对国内消息实施推送数量限制。为了使用没有限制的小米“通知消息”推送功能,在向小米平台申请后,将其提供的 channel_id 在服务管理 -> 应用标识 -> Android -> 小米推送设置中进行设置,提升了推送消息的成功率。

华为的推送分为“服务与通讯类推送”和“资讯营销类推送”,以前使用“服务与通讯类推送”时类型需要设置为重要消息,“资讯营销类推送”需要设置为一般消息融云默认全部为重要消息

华为从 2021 年 5 月底开始,对推送消息频次进行统一管理,对资讯营销类消息进行频次限制。默认根据消息内容来区分消息推送属于什么类别,开发者可通过内容模板申请内容属于什么类别,针对华为的调整,融云也有针对性地在开发者后台提供相应的配置。

针对各大厂商的 QPS 限制,特别是在全员推送等需要瞬时分发大量推送的场景下,融云的推送服务通过整体控速方案来应对,避免触发厂商的推送拦截策略。

另外,融云也通过内部监控平台和相关机制,对各大平台的推送质量进行监控,若遇某一平台的失败率增高等情况,可及时调整推送策略,多管齐下提升推送成功率。

精准推送 & 推送点击上报

1. 支持标签推送

支持根据用户属性设置用户标签、进行标签分组,建立精准用户画像,让推送更精准,提升推送点击率、转化率及用户留存率

融云在开发者后台提供了相关的标签管理能力,开发者可以调用接口灵活管理。

2. 提供自定义推送平台,优化推送内容

融云提供自定义推送平台,支持开发者根据用户的兴趣和需求,定制个性化推送内容,并在推送标题和摘要中突出重点,吸引用户点击。

同时,推送内容的实用性发送时机也非常重要,需要在适当时间发送相关推送。

融云支持文本、富媒体、自定义消息等内容推送,满足各场景的推送运营需求,如:社交互动通知、交易状态同步通知、系统升级、帐号唤醒拉活通知、活动运营通知等。

3. 推送多语言模板设置

针对全球化业务应用中用户的多国属性特点,在发送系统升级、运营活动类等通知时,需要给不同语言环境的用户推送不同内容。

通过推送模板,可根据目标用户设置的语言环境,从推送模板中选择对应语言的内容进行远程推送,增强运营效果,提升用户使用体验。

消息延时推送补偿

在一些网络建设不怎么发达的地区,客户端常处于在线和断线的半连接状态。或者,即便在网络基建完善的地区,人们也常遇到走进电梯、短暂处于网络不佳状态的场景。

这些短暂断网情况,服务器很难及时精准获取,可能造成一些离线消息推送该发而未发。针对于此,融云通过消息延时推送补偿功能,提高了推送的触达率。流程如下图示:

该方案的核心逻辑是:服务会根据客户端实际拉取消息的动作来判断客户是否真的在线,如果客户端没有正常拉取消息,服务器便会补偿该消息的离线推送。

推送体验优化

针对不同地区用户的使用习惯差异,融云完善了 Push 送达、在线送达、单条消息已读等功能,并引入 Notification Service Extension,提供更符合海外 iOS 端用户使用习惯的细腻服务。

Notification Service Extension 是一种用于处理远程通知的扩展,可以让应用在接收到远程通知时进行额外的处理。

它运行在一个单独的进程中,并且可以在没有启动应用的情况下接收和处理远程通知,用于执行各种任务,如下载附件、处理通知中的数据、拉取消息等等。

这一功能的最常见应用场景是,当用户收到一条推送通知,点击进去后即使恰巧遇到进入电梯等情况,也不会因断网而无法查看该消息。

即,应用在接收到推送时立即从服务器拉取消息,而不需要等待应用启动。其具体流程如下图示:

实现 Notification Service Extension 有三个前提:

  • App 需要与 APNs 进行交互,以便在接收到通知时进行处理。
  • App & Notification Service 共用一份消息数据库。
  • 使用 MMWormhole 进行进程间通信,即 Notification Service 和 App 可以相互通知。

其中,使用 MMWormhole 跨进程通信,是为了避免 Notification Service 和 App 同时存在且都进行 IM 连接可能导致的 App 账号被踢现象——

当 App 启动,就通知 Notification Service 断开连接;当 Notification Service 启动则通知 App,App 若存活,则通知 Notification Service 断开连接。

以上进阶体验,开发者均可通过集成融云 IM SDK 获得,无需自行逐一对接多家手机品牌厂商,即可享受毫秒级触达目标用户的极致体验。

同时,融云还提供全平台的推送统计能力,支持查看各手机厂商平台推送数据情况,如推送的成功、失败、到达、点击,以便开发者掌握推送质量情况。