如何提升PUSH到达率
本文笔者将通过“增加‘系统通知’方式的推送通道”、“找手机厂商开通白名单,避免推送失败的情况”、“进程保活”、“引导打开推送开关”四点来讲述:如何提升PUSH到达率?
这是一篇实操指南,是参考网上资料和相关书籍、复盘了36氪做推送的过程,加上咨询过相关经验产品经理后的总结,希望对你有帮助~
为什么要写这篇呢?
第一是上上周和一位做过很长时间推送优化的产品经理聊天后有了些心得;第二是借上周末在行咨询的机会,又复盘了36氪做推送一些思考;第三则是看《我不是产品经理》这本书也学到很多提升推送到达率的方法,就干脆做个总结,希望能帮到有同样困惑的你~
首先,先明确为什么要优化推送?
最直接原因就是提升DAU,让用户更多打开App,这背后隐含的目的是希望激活新用户、召回流失用户,让业务长期健康增长。因此,务必注意这不是一次性的事儿,要通盘考虑,KPI导向的数据提升一定会引起反弹的。
OK,接下来进入正题,聊下提升PUSH到达率的一些手段。
为了帮大家理解PUSH原理,先放一张业务架构图:
其中“推送通道”一般指第三方,或自建的推送服务,主要用于真正向App发送PUSH消息,而App一般会通过安装推送服务方提供的SDK来接收PUSH。
对企业而言,则可以自行开发管理系统进行PUSH消息创建,并根据不同渠道App特点进行消息路由,从而连接到不同通道中进行发送。
那接下来,要讲的重点就在“推送通道”这里。
一、增加“系统通知”方式的推送通道
如上图所示,大多App选用的推送通道都是如个推、极光、信鸽这样的第三方推送平台,它们都提供了一站式推送服务,在集成便捷、定制化、数据统计上有明显优势。
但它们的传输方式通常采用的都是“透传”方式,也就是不管传输业务如何,它们只负责将需要传送的业务传送到目的节点,同时保证传输质量,而不对传输业务进行处理。
这种透传方式,很容易导致收到消息的App进程,因为目的节点——也就是接收手机操作系统的一些策略给清理掉。
因此,强烈建议在第三方基础上,同时集成指定手机厂商的专属推送SDK,就是上图最上面部分。因为通常它们会支持用“系统通知”方式传输信息——也就是说,服务端实时发送信息到客户端。发送后会在系统通知栏收到展现,同时响铃或振动提醒用户。这种方式到达率会更高。
需要额外说明的是:这里的厂商集成只限国产安卓手机,iOS的推送服务APNs是标准的没法定制,而安卓的原生系统通知服务无法使用(原因你懂的)。
目前市面上常见的,比较成规模的国产手机厂商都支持专属推送SDK,建议根据你家App渠道占比来选择对应厂商,比如:36氪就专门针对小米、华为做了适配,建议安装的有:小米、华为、oppo、vivo、魅族等渠道。
最后提一句,这种方式缺点也很明显:第一是多个厂商集成复杂度和开发成本较高,第二是无法定制客户端的推送显示样式,第三则是因为厂商提供的系统通知的推送方式,客户端无法感知到达情况,只能依赖于被唤醒后发通知到服务端统计,因此可能没法精准统计到达率。这时只能通过时间 渠道来源方式筛选DAU进行估算。具体实施建议酌情选择。
二、找厂商开通白名单
如果没精力集成那么多厂商SDK,还有一种方案,就是想办法将自己接收PUSH的进程加入手机厂商操作系统的白名单,这样不会被系统杀死。
微信、qq这些应用,都加入了各个厂商的白名单,所以才不会出现收不到微信新消息推送的情况。但具体哪家厂商愿意给你开,就只能八仙过海了,这个属于商务层面,这里不再展开。
三、进程保活
这个思路也只适用于国产安卓手机,所谓“进程保活”,就是利用不同App进程使用系统广播进行相互唤醒,算是一种“黑科技吧”,举3个场景:
- 场景一:开机、切换网络、拍照、拍视频的时候,可以利用系统产生的广播唤醒App。(不过貌似Android N已经将这几种广播取消了)
- 场景二:通过第三方SDK唤醒相应App进程,如微信sdk会唤醒微信,支付宝sdk会唤醒支付宝。
- 场景三:App之间相互唤醒,假如你手机里安装了支付宝、淘宝、天猫、UC等阿里系App,那么你打开任意一个,有可能就顺便把其他阿里系的App给唤醒了。
站在用户角度,其实这种做法挺流氓的,容易让系统内存迅速被占满,拖慢App,给大家看下面几张图就知道了:
因此,建议还是慎用。那具体怎么实现进程保活呢?
- 用技术手段:比如设置服务为前台服务;比如启动一个一像素的Activity,使这个进程处于可视进程状态,提高优先级;比如通过账户系统同步机制激活App。
- 接入第三方SDK:个推这样的第三方平台之所以受欢迎,还有个优势就是安装了他们SDK的App可以相互唤醒(如上图所示)。有些大厂的推送SDK,比如百度,也有一定几率做到其全家桶某个App启动顺便启动你的App。但具体是否能唤醒,也取决于当时的其他应用存活状况和操作系统限制。
- 自建推送服务:自建服务有2个思路,第1是将推送服务开放成平台,允许其他App接入,通过其他App的启动唤醒自家App。第2是推送服务只支持自家App,不开放,但可接入自家多个App,让它们相互之间唤醒。
具体进程保活的原理和应用,在岳建雄老师的《我不是产品经理》第7章有详细描述,有兴趣的同学可以去翻看学习。
但仍旧要强调一点,就是:与其花时间在这种偏门手段上,还不如想办法降低自己App的资源消耗,以减少被系统杀死的可能性,从而为用户提供更顺畅的使用体验,这才是上策。
四、引导打开推送开关
这里的开关包括系统级和App级的,强烈建议App针对推送权限做更细粒度的控制,间接给用户一个打开总开关的理由,如下图:
在此基础上,可以适当增加一些打开推送开关的引导,一般可以有如下场景:
- App升级后,用户打开App,跳出弹窗提醒用户打开消息提醒;
- 某些个性化功能,为了提醒用户,引导打开推送开关。比如:关注某个作者提醒他打开开关以接收作者最新文章;比如:买完商品后提醒打开开关以跟踪物流进展等;
- 通过某些有利于用户的消息,提醒用户打开。比如:财经类App打开开关以接收最新股市行情;比如:电商类App打开开关以接收优惠信息等;
- 给用户提供一些利益以促使他打开,比如:打开开关有积分,送优惠券之类的。
但真正最合适的引导方式还是让用户体验到你产品的价值后,给一个利他的理由,自然引导,而不是一上来就弹窗。这点很多大厂App都做的很好,建议多参考。
以上就是今天想和大家分享的,有关推送到达率提升的一些观点总结,信息量有点大,部分也参考了其他文章和书籍,希望能对你有帮助。同时,如果有我没提到的,也欢迎你留言告诉我,我也会再和大家分享~
参考文献
- 《关于 Android 进程保活,你所需要知道的一切》,来自简书:D_clock爱吃葱花。
- 《APP消息推送(Push),竟然还有这么多你不知道的》,来自简书:大城小胖Chris。
- 《我不是产品经理》,作者:岳建雄。
#专栏作家#
申悦,微信公众号:互联网悦读笔记(ID:pmboxs),人人都是产品经理专栏作家,36氪产品总监,起点学院优秀导师。
本文原创发布于人人都是产品经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议