个推透传消息设置通知栏展示 ios_消息链路优化之弱感知链路优化

背景

闲鱼的消息系统作为沟通买家与卖家的工具,增进理解、促进信任,对闲鱼的商品成交有重要的价值,是提升用户体验最关键的环节。
闲鱼消息系统面临的问题包括:在线消息的体验提升、离线推送的到达率问题、消息玩法与消息底层系统的耦合过强。
现阶段离线推送的问题最为关键,对用户体验影响较大,本文优先解决离线推送的到达问题。

消息系统现状

强感知链路与弱感知链路

根据闲鱼客户端是否在线,闲鱼的整体消息链路大致可以分为强感知链路和弱感知链路。

强感知链路由发送方客户端、idleapi-message(闲鱼的消息网关)、heracles(闲鱼的消息底层服务)、accs(阿里自研的长连接通道)、接收方客户端组成。整条链路的核心指标在于端到端延迟和消息到达率。强感知链路的双方都是在线的,消息到达客户端就可以保证接收方感知到。强感知链路的主要痛点在消息的端到端延迟。

弱感知链路与强感知链路的主要不同在于:弱感知链路的接收方是离线的,需要依赖离线推送这样的方式送达。因此弱感知链路的用户感知度不强。其核心指标在于消息的到达率,而非延迟。当前弱感知链路的主要的问题是到达率不高。

闲鱼消息架构

这里放一张闲鱼消息系统的架构图,大家感受下整体链路:

ca05f82d6a9c830da3afe9dd202db096.png

HSF是一个远程服务框架,是dubbo的内部版本。tair是阿里自研的分布式缓存框架,支持 memcached、Redis、LevelDB 等不同存储引擎。agoo是阿里的离线推送中台,负责整合不同厂商的离线推送通道,向集团用户提供一个统一的离线推送服务。accs是阿里自研的长连接通道,为客户端、服务端的实时双向交互提供便利。lindorm是阿里自研的NoSQL产品,与HBase有异曲同工之妙。域环是闲鱼消息优化性能的核心结构,用来存储用户最新的128条消息。

强感知链路和弱感知链路在通道选择上是不同的。强感知链路使用accs这个在线通道。弱感知链路使用agoo这个离线通道。

弱感知链路问题分析

链路这件事情,比较抽象。首先需要分析链路的核心指标、链路的环节、链路的瓶颈,然后才能着手优化。问题分析清楚,也就成功了一半。

何为弱感知

本期先带大家看看闲鱼的弱感知链路优化。弱感知链路是指闲鱼的离线推送系统。相比较于在线消息和端内推送,离线推送难以确保被用户感知到。典型的情况包括:

  • 未发送到用户设备。因为离线通道的token失效、参数错误、用户关闭应用通知、用户已卸载等原因,推送未送达用户设备。这种情况可以从通道的返回分析。

  • 发送到用户设备但没有展示到系统通知栏。闲鱼曾遇到通道返回成功,但是用户未看到推送的案例。具体原因仍在分析,这种情况占比很少。

  • 展示到通知栏,并被系统折叠。不同安卓厂商对推送的折叠策略不同,折叠的原因包括:点击率、应用在厂商处的权重、推送的数量等。推送被折叠后,需要用户主动展开才能看到推送内容,触达效果会明显变差。

  • 展示到通知栏,并被用户忽略。离线推送的点击率相比于在线推送更低,原因包括:用户不愿意查看推送;用户看到了推送,但是对内容不感兴趣;用户在忙别的事,无暇处理。

离线推送用户感知度不高,闲鱼称之为弱感知链路。

弱感知链路的构成

闲鱼的弱感知链路分为系统、通道、用户三个部分,包含Hermes、agoo、厂商、设备、用户、承接页这几个环节。

775003aeb0d77a35be040d45464c0b6a.png

从推送的产生到用户最终进入闲鱼,共分为如下几个步骤:

Step 1. Hermes是闲鱼的用户触达系统,负责人群管理、内容管理、时机把控,是整个弱感知链路的起点。

Step 2. agoo是阿里内部承接离线推送的中台,是闲鱼离线推送能力的基础。

Step 3. agoo实现离线推送依靠的是厂商的推送通道,例如:苹果的apns通道、Google的fcm通道、以及国内各大厂商的自建通道。

Step 4. 通过厂商的通道,推送最终出现在用户的设备上,这是用户能感知到推送的前提条件。

Step 5. 如果用户刚巧看到这条推送,推送的内容也很有趣,在用户的主动点击下。会唤起闲鱼,打开承接页,进而给用户展示个性化的商品。到此,弱感知链路就完成了使命。

弱感知链路面临的问题

弱感知链路的核心问题在于:

  • 推送的消息是否投递给了用户。

  • 用户是否有感知

这对应推送的两个阶段:

  • 推送到达设备

  • 用户查看推送并点击

其中,到达设备这个阶段是最基础的,也是本次优化的核心。我们可以将每一步的消息处理量依次平铺,展开为一张漏斗图,从而直观的查看链路的瓶颈。漏斗图斜率最大的地方是优化的重点,差异小的地方不需要优化。

284a0c991954f097a83ae319bbf53210.png

通过分析闲鱼的漏斗图,弱感知链路的优化重点在三个方面:

  • agoo受理率。agoo受理率是闲鱼发送推送的数量到可以通过agoo(阿里承接离线推送的中台)转发到厂商通道的数量之间的漏斗。

  • 厂商受理率。厂商受理率是agoo中台受理的量到厂商返回成功的量之间的漏斗。

  • Push点击。

有了优化方向,我们来看看优化手段吧。

弱感知链路优化

我们跟随推送的视角,顺着链路看下闲鱼的优化。

agoo受理率优化

用户的推送,从 Hermes 站点搭乘“班车”,驶向下一站:agoo。这是推送经历的第一站,到站一看,傻眼了,只有不到一半的推送到站下车了。这是咋回事嘞?这就要先说说 agoo 了,调用 agoo 有两种方式:

  • 指定设备和客户端,agoo直接将推送投递到相应的设备

  • 指定用户和客户端,agoo根据内部的转换表,找到用户对应的设备,再进行投递。

闲鱼不保存用户的设备信息。因此,闲鱼是按照用户来调用agoo的。同时,因为由于没有用户的设备信息,并不知道用户是 iOS 客户端还是 Android 客户端。工程侧不得不向 iOS 和 Android 都发送一遍推送。虽然保证了到达,但是,一半的调用都是无效的。为了解这个问题,我们使用了agoo的设备信息。将用户转换设备这一阶段提前到了调用 agoo 之前,先明确用户对应的设备,再指定设备调用 agoo,从而避免无效调用。

64f34664610b3043374d5e393e391e66.png

agoo调用方式优化后,立刻剔除了无效调用,agoo受理率有了明显提升。至此,我们总算能对 agoo 受理失败的真正原因做一个高大上的分析了。根据统计,推送被 agoo 拒绝的主要原因是:用户关闭了通知权限 同时,对 agoo 调用数据的进一步分析发现。有部分用户找不到对应的设备。优化到此,我们猛然发现多了两个问题。那就优化呗:

  • 通知体验优化,引导打开通知权限

  • 与agoo共建设备库,解决设备转换失败的问题

这两个优化方向又是一片新天地,我们择日再聊。

厂商受理率优化

推送到达 agoo ,分机型搭乘厂商“专列”,驶向下一站:用户设备。这是推送经历的第二站。出站查票,发现竟然超员了。于是乎,闲鱼每天有大量推送因为超过厂商设定的限额被拦截。提供推送通道的厂商,为了保证用户体验,会对每个应用能够推送的消息总量进行限制。这个限制会根据推送的类型和应用的用户规模设定。推送主要分为产品类的推送和营销类的推送。对于产品类推送,厂商会保证到达;对于营销类推送,厂商会进行额度限制。未标记的推送默认作为营销类推送对待。闲鱼刚好没有对推送进行标记,因此触发了厂商的推送限制。这对闲鱼的用户来说,会带来困扰。闲鱼的交易,很依赖买卖家之间的消息互动。这部分消息是需要确保到达的。同样,订单类的消息、用户的关注,也需要保证推送给用户。我们和主流厂商进行了合作。将闲鱼的Push分为即时通讯消息、订单状态变化、用户关注内容、营销消息这几类,并进行相应标记。同时,在业务上,我们也进行了推送的治理。将用户关注度不高的消息,取消推送,避免打扰。经过这些优化,闲鱼因为超过厂商限额而被拦截的推送实现了清零。

Push点击优化

在日常的开发测试过程中,闲鱼的工程师们发现了推送的两个体验问题:

  • 用户点击Push有开屏广告

  • 营销Push 也有权限校验,更换用户登陆后无法点击

对于开屏广告功能,闲鱼增加了Push点击跳广告的能力。针对Push的权限校验功能,闲鱼根据场景做了细分。涉及个人隐私的推送,保持权限校验不变。营销类的推送,放开权限校验。以上是点击体验的优化,我们还需要考虑用户的点击意愿。用户点击量与推送的曝光量、推送素材的有趣程度相关。推送的曝光量又和推送的到达量、推送的到达时机有关。通过优化agoo受理率、厂商受理率,我们解决了推送到达量的瓶颈。在推送内容上,我们需要优化的是推送的时机和相应的素材。在推送时机上,算法会根据用户的偏好和个性化行为数据,计算每个用户的个性化推送时间,在用户空闲的时间推送。避免在不合适的时间打扰用户,同时也能提升用户看到推送的可能性。在推送素材上,算法会根据素材的实时点击反馈,对素材做实时赛马。只发用户感兴趣的素材,提高用户点击意愿。

链路优化效果

通过分析链路的瓶颈并进行相对应的优化,整体链路有了不错的提升,到达率相对提升了两位数。

后续计划

今天主要和大家聊一下消息链路中的一环:弱感知链路的优化。消息系统整体,还是一个比较复杂的领域。闲鱼在消息的发展过程中,面临着如下问题:

  • 如何进行消息的链路追踪

  • 如何保证IM消息的快速到达

  • 如何将消息的玩法和底层能力分离

  • 离线推送中如何通过用户找到对应的设备

在后续的文章中,我们会和大家一一讨论这些主题。预知后事如何,且听下回分解。

c1edc645eb73153cd24931fc3f0afee0.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值