说到消息推送,就离不开送达率。但很多人对消息送达率都有一点小误区,其实每一次消息推送都会有一个送达数,当一次消息推送产生的时候,目标用户中会有一些当时在线和一些不在线的。系统会根据用户的状态立即向在线的用户进行推送,当时不在线的用户系统会为其保存离线消息,消息有效期之内用户恢复网络后,系统会将离线消息发送到用户客户端。 因此,直接可计算的送达率分为:
在线送达率=在线用户中成功接收的数量/在线用户数
离线送达率 = 离线消息送达数/离线消息下下发数
再考虑实际因素,比如说有一部分用户虽然是目标用户,但是推送后一直离线或者已经卸载了应用,系统是不可能把消息发送给他们的。所以如果计算送达率的时候把这部分用户计算上显然无法说明什么,而且这部分用户随着一个应用的时间越来越长,数值可能会越来越大。从这一点可以看出,在线送达率才是真正的衡量标准。另外,发送延时也是隐形的一个衡量标准,可能一条消息发出的时候用户状态还是在线,当消息送达的时候用户刚好处于离线状态了,这部分用户就需要恢复连接的时候接收离线消息了。