送达
初接触推送的使用者,为了衡量消息推送的质量。经常会纠结到消息的”送达率”这个概念.那么究竟什么是送达率呢?或者如何正确理解消息的送达情况呢?
基本概念
先来看与消息送达相关的几个基本概念:
iOS 推送成功数:推送到 APNS 并被 APNS 成功接收的数量。如果 device token 变更,过期或者与推送环境不匹配则不会成功。
Android 目标用户数:匹配推送的条件的Android 用户数(1个月内与服务器有过连接的用户。如果超过1个月都没有与 JPush server 产生任何连接,那么将不向此用户推送)。
Android 在线推送数:消息推送时,目标用户在线,通过在线下发的消息数。Android 用户长连接在线会通过在线下发,其余用户通恢复网络后触发缓存的离线消息。
Android 送达数:消息送达到客户端,并且服务端确认收到了客户端的应答的数量。
点击数:本次推送被用户点击的次数。
送达率的伪命题
如图所示,最外圈的 Total 代表全部的注册用户,即应用创建依赖所有的注册用户数。接下来是目标用户(target)所有的消息推送都会有一个目标用户,这个目标用户是指符合条件的用户,系统会根据推送条件匹配出推送的目标用户。即使作为目标用户也可能包括已经卸载了,或者以后根本不联网的用户,因为JPush 系统是无法获取这些状态的。
每一次消息推送都会有一个送达数,当一次消息推送产生的时候,目标用户中会有一些当时在线和一些不在线的。系统会根据用户的状态立即向在线的用户进行推送, 当时不在线的用户系统会为其保存离线消息,消息有效期之内用户恢复网络后,系统会将离线消息发送到用户客户端。
针对用户的在线和离线情况,了解了一个消息的推送可能后,再来看“送达率”:
在线送达率=在线用户中成功接收的数量/在线用户数
离线送达率 = 离线消息送达数/离线消息下下发数。
只有这个送达率才是真正的送达率,至于有一部分用户虽然是目标用户,但是推送后一直离线或者已经卸载了应用,系统是不可能把消息发送给他们的。所以如果计算送达率的时候把这部分用户计算上显然无法说明什么,而且这部分用户随着一个应用的时间越来越长,数值可能会越来越大。
如果是广播推送,目标用户数比较多,这个真正的送达比率基本上是固定在98%左右。为什么这么说,因为可以影响真是送达率的原因主要是用户网络联通的稳定性,可能发送的时候用户状态还是在线,当消息发送的时候用户已经处于离线状态了,这部分用户就需要恢复连接的时候接收离线消息了。
送达数预期
作为一个产品经理,通过什么数值衡量消息的推送情况呢? 在线用户数,没错就是在线用户数。因为一条消息,从产生的那一个时刻一直到消息有效期超期,在这段期间在线或者登录过的用户才会收到消息。例:一般一条广播消息的默认有效期为24小时,那么这条消息最终的送达数量应该略小于当天的天在线用户数,为什么小于是因为有一部分在线用户数是消息推送后才注册的新用户,这部分用户是不会收到之前的消息的。
结论
“在线用户数” 才是可以用来衡量推送成功数的值。 “消息送达/目标总数”并不是真正的送达率,这个比率没有太多的参考意义。真正的送达率其实是一个比较稳定的值。
相关阅读
作为产品运营人员,我们都知道运营的最终目标是要和用户之间建立长期有价值的联系。完美的用户界面、强大的功能和明确的价值主张,对
ipad pro2018发布时间确定:iOS 12.1透露新设备相关消息
A5创业网(公众号:iadmin5)9月19日报道,今天凌晨,iOS 12.1 首个开发者测试版更新已经发布。根据开发者透露的消息,iOS 12.1为Face ID内建
A5创业网(公众号:iadmin5)1月11日报道,优酷对外宣布将起诉网络自媒体“BiaNews(鞭牛士)”传播不实信息,侵犯优酷商誉,索赔1000
消息队列的实现方式有很多种,比如有专业的rabbitmq,rocketmq,kafka等,这些mq提供了非常专业的功能实现异步发送,而且这些接入又比较
1、引入Module import {GrowlModule} from 'primeng/primeng'; 在@NgModule中imports中引入GrowlModule。 2、Html中 <p-growl