谈谈IM类app的未读消息push功能设计
一、 何谓push
生活中常常发生这样的事情:用户并没有打开某个app,通知栏仍然会收到来自该app的消息推送(即push)。事实上,只要用户没有在使用app,不管是被切到后台、还是终止进程、甚至从未打开,用户都可能会收到push。
Push是运营中常用的方法和手段,运用好push可以提高产品的活跃度(DAU/MAU)、带动功能模块的使用率、唤醒沉睡用户从而提高留存率。当然,如果push被滥用,推送的消息过多或用户不感兴趣,将会对用户造成打扰,从而招致用户的屏蔽或卸载。
二、 未读消息push对于IM类app的意义
除了前述的共性意义外,不同类型app的push还具有自己特有的意义,例如:对于电商类app,push通过个性化推荐商品或发放购物红包,刺激用户的购买行为;对于内容类app,push通过推送用户感兴趣的内容,增加用户的粘性。
对于IM类app而言,push除了是一种运营的方法和手段外,更是实现基本IM功能的必要条件。IM类app的未读消息push功能可以在用户离开app界面且有新的会话消息时,通知用户并由用户决定是否查看。试想,如果你离开了app界面,而app又没有push功能,那么消息传达的时效将无法保证、沟通效率将大大降低。
三、 未读消息push功能设计中需要考虑的问题
关于push需要注意的共性问题,如push频率、push对象等,相关讨论已经很多,这里主要结合IM类app的特点,讨论IM类app在进行未读消息push功能设计中需要考虑的特性问题。
1、 PC和app同时在线时,是否向手机发送未读消息push
当PC和app同时在线时,用户可能已经在PC端查看了消息,此时的未读消息push也许对于用户来说就是不必要的打扰。对此,微信和钉钉的做法是,允许用户选择是否需要push(“开启手机通知”或“关闭手机通知”)。这种给予用户选择权的做法应该借鉴。但是,仅仅提供开启或关闭两个选择,又会导致一些问题:如果用户开启了通知,那么当用户在使用PC客户端接收消息时,放在一旁的手机仍然会收到未读消息push,对用户造成干扰;如果用户关闭了通知,那么当用户不在电脑前时,手机端收不到未读消息push,消息不能及时被查看。
基于上述场景中的问题,我认为一个合适的解决方案是:除了提供通知的开启和关闭选项之外,还提供一个“智能通知”的选项,用户选择智能通知后,根据PC客户端的使用状态来智能地进行推送,当用户状态为“离开”时发送push,当用户状态不是“离开”时不发送push,既减少了对用户的打扰又保证了消息传达的时效,如图1所示。
图1 “智能通知”流程图
2、 普通消息和重要消息是否需要区分对待
IM中不同消息的重要程度不同。一般来说,@消息、单人消息、强提醒消息(如钉钉的DING)相对于普通的群组消息更重要。将重要性不同的消息区别对待,可以在尽量少打扰用户的同时保证消息传达的时效。但是,经过调研发现:大部分IM类app并没有提供这方面的设置,如微信、钉钉;而另一些app则允许用户进行详细的设置,如slack支持设置全部消息都通知、只接受DM消息和关键词消息通知或不接收通知。
微信、钉钉通过push不断唤醒用户可以提高用户的活跃度和粘性,从而实现商业目的;slack提供的设置可以满足用户对于未读消息通知的个性化需求,从而获得更好的用户体验。取得用户目标和商业目标的平衡是做好产品的关键,微信、钉钉、slack之类耕耘IM领域多年的产品的做法不同,这实际上是不同的产品设计原则的体现。
3、 用户点击未读消息push后是否直达相应的会话页面
对于活动信息push,用户点击后应当直接进入相应的活动页面;对于电商类app的商品push,用户点击后应当直接进入商品详情页面。否则,如果用户点击后进入的是app首页,用户还要花精力去寻找感兴趣的活动或商品在哪儿,这是不友好的用户体验,一定程度上挫伤了用户点开push的热情。目前这个设计原则已经基本上被认可,但是IM类app中的未读消息push却并不是那么回事儿。
一般来说,app基本不会在同一时间推送两条活动信息;当电商类app推送多个商品时,用户也不大可能同时对两个以上的商品感兴趣(至少目前的技术条件下还不能实现如此精准的推送)。而IM类app中的未读消息有多条是很常见的情况。如果用户点击push后直接进入相应的会话页面,那么TA可以直接看到该未读消息,但可能会忽略其他的未读消息(因为用户未必注意到其他未读消息)。如果用户点击push后进入的是消息主页面,那么TA可以从消息列表中选择重要消息先看,随后再查看其他消息,但查看重要消息会多一次点击。因此,用户点击未读消息push后,未必应该直达相应的会话页面,需要通过一些数据进行分析和讨论后再做决定。
4、 PC端查看消息后,手机push是否应该自动撤回
本部分的讨论基于以下两个场景:
场景一:用户选择当PC和app同时在线时“开启消息通知”,或选择“智能通知”并处于离开状态,在此条件下,有未读消息时手机会收到相应的通知,但用户并没有点开该push,而是在PC端查看了该未读消息。
场景二:用户PC离线时收到了未读消息push,但未点开该push,而是登录PC端后在PC端查看了未读消息。
在上述场景下,用户实际上已经在PC端查看过了未读消息,本着减少对用户的打扰的原则,在用户查看未读消息之前手机收到的push应撤回。尤其是企业级IM类app,办公时间消息的收发十分集中,如果PC端查看消息后手机push仍然霸占着通知栏,无疑会引起用户的反感。