逢年过节,各式各样的祝福信息就铺天盖地疯狂来袭,广大用户除了担心手机被信息震爆之外,还得绞尽脑汁去回复几十甚至上百条祝福,可谓苦不堪言;另一方面,在智能手机应用横行的时代,用短信发送祝福则越来越显得形式单一无新意。


  微信已经逐渐成为网民们沟通交流的新方式,语音、视频等丰富的媒体形式一直广受用户推崇。如何在不影响微信整体定位的前提下,满足广大人民群众节日群发祝贺的需求呢?


抓大放小满足用户主需求


    从群发需求来看,满足的场景主要为发送节日问候或事务性通知两类情况,但节日群发容易给人造成缺乏诚意的感觉,同时还带来被利用来发垃圾广告的风险。因此,避免垃圾信息过多、营造良好的用户体验成了急需解决的两大问题。


  经过几轮需求会议的不断PK,多方意见在不断的糅合下终于达成了共识:满足用户主需求,多种措施正面规避痛点。


(1)群发助手不作为主功能,而是以插件形式存在,用户有完全的自主权,可以选择使用或卸载该插件;


(2)支持发送多种媒体形式,加入语音、视频、艺术表情等,丰富群发消息类型;


(3)特殊日期(如节日前夕)服务器可控制出现或消失在主界面。若用户卸载了插件则不受服务器控制;


(4)制定反垃圾规则,后台服务器进行群发的频率限制,防止垃圾信息的滋生。


迭代设计快速验证


  需求正式启动后,产品、交互、视觉、开发各1名同事组成了了特性虚拟小组,在短促的开发时间里,虚拟小组成员凭借着高效的沟通和反复的迭代验证,最终促成了特性的输出。


图1】反复迭代的工作流程

    需求进一步明确后,交互设计师会将讨论结果转化为具体的原型设计初稿,初稿不会详细涉及到每一个具体的细节,而是特性的大致流程及关键点的交互方式。初稿完成后,特性小组成员召开会议对方案进行进一步的讨论,以确定可行性和优化点。交互先行的方式有利于特性方案的最优化,避免重复开发浪费人力。


  尽管设计过程较为反复,中间阶段需求细节有所变更,但从总体来看,设计一直遵循着以下的几点原则


页面层级的最简化


  由漏斗法则可知:设计上每增加一个操作步骤或者界面切换,就有可能流失10%的用户,因此应该尽量减少操作步骤和界面之间跳转。


  群发助手在初期方案上设计了会话列表,对同一批好友群发了消息会生成一条新的会话,点击列表项进入二级页面,可以对同一批人进行再次群发。后期的Demo验证阶段证明会话列表的设计其实增加了用户的操作成本,页面层级应该进行简化,因此发信历史应该放在插件的第一页,作为快捷入口,以帮助用户用尽可能短的时间完成群发操作:

   

图2】页面层级的精简

区分主次


  单个页面的信息在不加区分的情况下会给用户带来过多的视觉干扰,从而影响整体的使用效率。以群发助手的发信历史面板为例,前期设计中收信人和消息面板处于分离的情况,几乎看不出二者的联系,迭代后的设计将消息面板和收信人合二为一,在信息层级上更具引导性;当收件人过多时,采用tab的方式将收件人的次要信息收起,凸显消息内容主体。


图3】发信历史面板的变迁

    轻量操作


    轻量是此次设计中最重要的准则。群发助手被定位成特定场景下用于群发消息的插件,这样的定位下,群发应该是一个操作快捷方式,使用中不应给人过重的体验。


  群发消息后对同一批人再发一条消息的场景,更多的是一次性给同一批人发图、文字等多种信息时的连续发送,往往这次发完后就很少再发,后期的方案设计中将再发一次以链接的方式放置于消息面板的右下角,用户需要对同一批人再次发送消息就不需找回之前的消息记录;虽然点击成本与发送成功后弹确认框是一样的,但在操作的轻量性来看这种方案显然更优。


   

图4】再发一次功能的变化:轻量化设计的体现


后台逻辑介绍


    (1)简单的断点续传


  断点续传有助于在较差的网络情况下,减少用户在重试中产生过多的流量消耗。网络上的许多下载站点支持断点续传,而群发助手则把断点续传应用到上传过程中。我们把消息体组织成分段的数据块,每次接收完数据块后会通知客户端服务器需要接收的下一个数据块,避免重复传输。针对断点续传中恶意产生的重试,服务器记录并阻止用户进一步的操作。


(2)发送队列


  普通短信群发应用由于运营商的限制,只能做到一条一条的重复发送消息,对用户操作进行了简化,但在流量与耗时上,并没有任何的改进。在微信群发助手中,用户上传完单条消息的数据后便完成了群发操作。剩下的是微信队列服务器默默地完成消息的投递与推送操作。


  当发送操作失败时,队列服务器会进行多次的重试,重试方式包括队列内重试与重新入队列,前者适合消息创建阶段,后者则适合发送阶段,理由是整理去掉已发送的接收方再随机投递到其它队列中可以避免多余的重复发送操作。

   

    (3)频率限制


  群发助手是典型的资源消耗大户,用户一次简单的群发操作,会导致致服务器内部产生大量的请求,这些请求包括对于每个接收方的联系人与黑名单检查、消息重复性检查与写入、通知推送等等。

   

  为了防止过量的群发消耗掉大量服务器资源,服务器对发送队列的后台处理进程进行了可控的频率限制。一分钟内,每个群发处理进程最多发送一定数量的消息。达到阈值之后,该进程将会休眠到下一分钟,然后继续未完的发送。


  对群发助手后台服务器的限制,可以保证既宽松了对用户消息群发的限制,也减少了群发的压力。


后记


  随着微信新版本的发布,群发助手插件受到了用户的好评,尤其是春节期间掀起了一股使用热潮,语音拜年、视频拜年成了过年祝福的新时尚,以下是微博上部分网友的反馈: