#创作挑战赛#

在产品设计过程中,会有一类功能没有界面,这些功能通常是平台的基础能力,支撑整个产品的正常运行。比如支付系统、消息中心等等。本篇我们来聊聊消息中心怎么设计。

消息通知发展史

我们先来回顾一下消息中心的发展过程。

系统内消息

早期的消息提醒出现是在论坛、即时通讯这种应用。比如论坛发的帖子有人回复了,系统会告诉你;比如QQ的未读消息小红点。这类消息都是产品内的消息,消息的送达依赖于用户登录你的产品才能看到。因此,触达率不高。

邮件消息

电子邮箱的出现让消息提醒得以在系统外完成。用户注册的时候使用邮箱注册(国外常见)或绑定邮箱。当有新的消息提醒后,系统除了系统内发送消息外,还同时推送电子邮件提醒用户。用户看到邮件提醒后,自然而然会登录到我们的系统查看具体内容。这就大大地提高了触达率,能够有效提高活跃度。事实上,由于国外的特殊性,邮件一直是首选的系统外通知手段。目前国外的大多数平台还在使用邮件这一方式,比如领英、苹果、Gartner、Dribble等。所以,如果是海外产品,邮箱消息提醒必不可少。

短信提醒

随着手机的普及,短信提醒在国内成为了消息提醒的一个主要手段。早期的2G通讯时代,大家都是“一指禅”——靠大拇指一天能发上百条短信,短信可以说那时候的“延时版”移动端即时通讯。于是,有很多平台开始通过短信和彩信触达用户。近年来,由于短信泛滥,短信触达后的阅读比例降低了很多,已经沦为了验证码接收工具。不过,还是有不少平台使用短信来做消息提醒。比如催费、营销、重要未读消息提醒等。

手机推送消息

智能手机推出后,苹果的APNS推送可以让后台提醒直接在锁屏状态下触达用户,而且可以点击直接达到应用内页面,效果比短信更好。于是,苹果的消息推送提醒成为了App提高活跃度的必备选项。安卓系统也有统一的消息推送,不过国内用不了。国内安卓各个厂商有自己的推送渠道,这加大了推送的接入难度。于是,滋生了各类推送接入平台,比如极光、友盟。总体来说,安卓的触达率和跳转率不如苹果。

微信消息

微信消息主要包括公众号的模板消息和小程序的服务订阅消息。选择微信消息提醒的很大原因是微信成为了“国民应用”,用户每天打开微信的频次非常高,这也就使得微信消息的触达率非常高。于是,大家纷纷打通应用和微信公众号/小程序,当有消息时会通过微信消息的方式提醒用户。

其他

面向B端应用的时候,通常会考虑和钉钉、企微打通。对于工作消息提醒,钉钉和企微是非常不错的选择。

通过消息提醒的发展史,我们可以看到,消息的推送渠道很多,对业务应用来说,每个功能模块单独开发自己的推送功能会显得效率很低,而且可维护性很差 —— 一旦其他平台的规则改变了,每个功能模块都需要修改。基于这些原因,消息中心就诞生了。

消息中心的作用

消息中心,就是将各个业务的消息通知功能集中到一个模块,实现消息的统一发送。这样的好处有4个:

  1. 消息外发的第三方有变更时,只需要修改消息中心的开发,业务模块无需改动,从而可以降低开发工作量;
  2. 统一消息监控日志,掌握消息的发送、送达和阅读情况;
  3. 扩展性更强,当有新的业务接入时,可以直接使用消息中心已有的推送模块;
  4. 用户可以在统一的消息中心界面管理所有的消息,体验更好。

在没有消息中心之前,每个业务系统都需要和对应的消息通知做交互,如下图所示。每个业务系统自己负责消息的发送,导致整个消息的管理非常混乱。

如何优雅地设计软件产品的消息中心(如何优雅地设计软件产品的消息中心)(1)

我们来看一下引入了消息中心后的业务结构,如下图所示。所有业务系统的消息统一接入到消息中心,再由消息中心负责发送出去。引入消息中心了,整个逻辑清晰很多。这就有点类似现实世界的物流中心,在没有物流中心前,怎么送货都是由出发仓库的司机自行决定,效率自然不高。有了物流中心后,货物统一在物流中心集散,统一调度,可以实现全局更优的物流配送方案。

如何优雅地设计软件产品的消息中心(如何优雅地设计软件产品的消息中心)(2)

消息中心的设计

消息中心的概念确定好之后,我们就需要明确消息中心如何支持业务系统的消息发送需求。通常来说,一个基础的系统需要面向业务定义好输入和输出。对于业务系统来说,就是消息怎么发给消息中心以及怎么获取消息状态,这个状态包括是否送达和是否阅读。对于消息中心来说就是如何接收业务系统的消息,以及如何将消息状态反馈给业务系统。

如何优雅地设计软件产品的消息中心(如何优雅地设计软件产品的消息中心)(3)

对于消息接收,通常需要明确下面几个内容:

对于消息状态,相对就简单一些,包括如下内容:

通过状态,我们可以统计消息触达、转化的漏斗图,从而评估消息发送的效果,也可以对消息内容进行 A/B 测试,看看哪种消息的转化率更高。

如何优雅地设计软件产品的消息中心(如何优雅地设计软件产品的消息中心)(4)

总结

消息中心不仅仅是我们在用户端看到的一个消息列表,而是提高产品开发和运营效率的利器。目前,国内的所有应用都避免不了接入多个消息渠道,因此建议是在产品设计之初就建立消息中心这一基础设施,更好地支撑业务以及保持良好的系统扩展性。

,