一、主流的第三方推送平台分类
手机厂商类:小米推送、华为推送;
第三方平台类:个推推送、极光推送、友盟推送;
BAT大厂:阿里云移动推送、腾讯信鸽推送、百度云推送。
二、第三方推送服务的特点
第三方服务基本都具备免费、和到达率高的特点,那么应该如何选择呢?我们来分别看一下第三方推送各种方式的优点。
3.1 手机厂商推送
操作系统不会杀死属于自己品牌的推送服务。
手机厂商的推送服务在自家的手机上属于系统级别的服务,这意味着系统不会杀死自家的推送服务。比如说,Android原生系统是不会杀死C2DM消息推送服务,MIUI系统是不会杀死小米的推送服务。
3.2 BAT大厂的推送
BAT大厂其实并没有什么优势,用了腾讯信鸽推送,不一定能依靠微信保证App永远内部不被杀死。手机淘宝除了自家的阿里云的移动推送,同时也使用其它的第三方推送平台(比如友盟推送)。
3.3 第三方平台类
推送系统会共享一条推送渠道。这意味着假设你接入了个推推送,而恰好新浪微博也接入了个推。有一天你的App被杀死了,但这时用户启动了新浪微博,那么推送系统也就会通过共享的推送通道顺便把你推送消息送达到手机上,然后还可能把你的进程也唤醒(被“保活”了)。
如果希望进一步提高推送的效果,其实可以集成多个手机厂商的推送服务和第三方平台,比如小米渠道用小米推送,华为渠道用华为推送,再结合个推推送,但这样的实现成本会大一些。
三、推送方案的公认评价采取4s标准
1.safe(安全)、2.stable(稳定)、3.save(省电省流量省成本)、4.slim(体积小)
1、safe(安全)
推送方案应支持透传及各种加密方案,保障信息传递安全。推送方案的ID系统应该独立于已有的网站或服务的ID系统,这样保障用户在不同手机上登录后的信息投递准确性,避免因为取消绑定事件失败因网络传输而造成的信息误投送。
2、stable(稳定)
稳定包括两个部分:
服务端稳定性:因为使用长连接方案,对服务器的开销和要求很大,推送方案对服务器开发要求很高,海量线程连接下的服务器稳定性是非常具有挑战性的。
一般的评判标准包括:
-同时在线时峰值(一般按照百万并发连接时服务器稳定性评测);
-高并发时消息平均延迟时间(一般按照1分钟处理1百万条信息评测);
-服务稳定性(一般要求全年99.9%以上可用,有备份,有负载均衡等)。
鉴于服务器稳定的开发难度很大,小团队不建议自己开发,建议使用稳定的第三方推送方案,如个推,友盟,极光,百度云推送等。
手机端的稳定性,主要是因为中国的复杂网络状况及手机型号适配情况造成手机长时间稳定联网较困难,所以稳定性非常重要,一般的评判标准包括:
-每日联网23.5小时以上用户比例(表征联网稳定性)
-消息发送后9小时内收到率 (表征到达率)
3、save(省电省流量省成本)
省电应注意CPU休眠,一般用服务缩短待机时间百分比评判;
省流量应注意协议的修改和冗余数据包的处理,一般用空载待机月流量评判;
省成本应考虑单服务器承载同时连接数,可承载同时连接数越多成本越低。
4、slim(体积小)
推送服务应该体积尽量小,不影响主程序的大小和复杂度,一般以小于300K为宜。
四、如何选择第三方平台推送服务
可以根据用户群体属性、实现成本、渠道、使用场景进行选择消息推送平台。
五、推送消息类别的选择
5.1推送消息的类别
通常第三方推送平台都支持两种推送消息类型:通知栏消息和透传消息。
<1>通知栏消息:该类消息在被送达用户的设备后,直接以系统通知栏的形式展示给用户,不会继续被传递到App。
<2>透传消息:该类消息在被送达用户的设备后,还会继续传递到App。通过回调App的某个BroadcastReceiver的形式将消息传递到App内部。然后由App决定如何处理和显示这个消息。所以透传消息不一定会以系统通知栏的形式进行推送,由程序猿自定义。
5.2 消息类别的区别与特点
二者的区别在于:透传消息在整个消息传递过程中比通知栏消息多了一步传递到App。
<1>通知栏消息的优点:送达率高。因为透传消息在整个消息传递过程中比通知栏消息多了一步传递到App,因此透传消息就增加一些被系统限制的概率,给系统杀死的概率就高一些,所以说,通知栏消息比透传消息应该能提供更好的送达率。
<2>透传消息的优点:对消息操作程度高 & 自定义程度高。提供了对消息数据的更灵活的操纵能力。可自定义通知提醒的样式(包括提示样式、提示形式如声音等等)。