本文为PMCAFF专栏作者卓别木出品

写作目的:

本文主要讲解关于APP PUSH的流程、机制及相关经验,一是为了方便各位可以针对APP迅速制定PUSH消息推送方案,实现0到1的推送功能搭建,二是可以了解下PUSH流程,对各个环节针对性地提高触达率。

1. APP PUSH定义与价值

APP PUSH的定义为在手机终端锁屏状态下通知栏展示或在操作前台顶端弹出的消息通知,点击后可唤起对应的APP,并在APP内跳转到指定页面。

push消息是通知用户,引导用户进行参与活动、购买产品的重要手段,而且PUSH消息也可以引导用户查看消息,唤起APP提高日活,是一块重要的流量。

2. APP推送分类

从应用的功能来划分,主要分为三类应用,第一类是IM类APP,如微信、QQ等;第二类是新闻资讯类,如华尔街见闻等;其余暂归为为工具类,比如支付宝、美团等。

每种类型APP对PUSH的需求也不同,IM类APP追求实时、稳定的触达,此类APP一般通过自己的长连接进行消息推送,保证用户在收到消息的时候能够实时地接收消息消息。另外,一些安卓厂商也会给予头部APP的进程一定保护,对相关的进程纳入白名单,在清理进程的时候予以忽略。

新闻资讯类的APP与工具类APP的PUSH推送机制基本一致,仅在频率控制上有差异,新闻资讯类由于新闻资讯较多,需要将突发新闻及时推送给用户。

由于目前工具类的APP占大多数,本文将主要讲解工具类APP的常见推送机制。

3. PUSH流程

PUSH消息在消息系统创建好后进入发送阶段,服务端需要根据用户终端信息进行路由,如果是IOS系统,那么会调用苹果自身的推送通知服务(APNs),如果用户的手机是安卓系统,那么根据不同的厂商去调用不同的厂商SDK。

对于不同的系统版本,支持的消息展示形式也是不同,比如IOS10之后,当APP在前台时,是否通知栏展示;此样式可以根据产品需求来选择,由服务端传输相应通知方式的值即可。如果用户的手机非五大厂商内的手机,可以通过自己搭建的长连接或者使用第三方服务进行推送。

如果不是自己直接对接厂商通道,那么内部的服务端可能无需做过多较为复杂繁琐的开发工作,通过接入第三方消息推送平台来实现消息的推送,比如信鸽、个推等。多数的通道会将消息是否成功推送到客户端SDK的回执数据反馈给发送方,需要提供回调地址。

4. 底层通道说明

4.1 推送方式

通道类型一般分为三类:厂商通道、第三方推送服务平台、长连接。

厂商通道是手机终端厂商推出的推送服务,通过接入厂商SDK,内部服务端可以将消息推送到手机系统的服务端,再下发至客户端内部的厂商SDK,由操作系统进行相应展示,点击后唤起相应APP,这样可以避免APP进程被杀死后消息无法触达用户,因此触达率较高。

第三方推送平台是推送服务公司自己搭建相关的消息服务。并且各个APP使用了同一个平台的推送服务时,客户端都是集成同一个第三方推送平台的SDK,因此形成了一个推送联盟,当联盟中的其中一个APP的消息进程没有被杀死的时候,其他的APP也可以利用进行通知用户,形成了相互唤起,提高触达率。经过一些场景的测试,相互唤起的成功率并不是很高,需谨慎结合自身场景评估。为了提高触达率,第三方推送平台也会集成各大厂商的SDK进行推送。

长连接就是建立手机与服务端的一条链路进行消息数据推送,通过长连接也可以进行APP状态监控,但完全由长连接推送且保证触达的稳定,需要投入的研发资源较多,且需尽量避免自己的长连接进程不要被操作系统杀死。

4.2 优劣势对比

APP push功能的搭建需要依据产品自身的情况和公司可投入的资源成本为主,在不同的阶段应该追逐不同的目标。

5. 下发推送

5.1 推送账号

推送时客户端的PUSH SDK均会根据用户的设备号生成一个对应关系的TOKEN。在SDK内部,如果使用的是第三方推送服务,则去第三方的SDK注册;如果是厂商,则去厂商SDK注册;如果使用自己长连接,则去自己的SDK进行注册,作为后续推送的标识用户的唯一ID。

5.2 消息路由

消息路主要见上述推送流程的讲解,此处主要讲解根据不同的业务场景,可能会定向推送给不同版本APP的用户。因此服务端在通道能力路由的时候,不仅需要能够区分通道,还要进一步能够针对用户的手机终端进行更加精细化的差异推送。

此外,消息通道并一定是100%稳定,如果下游通道出现问题,服务端需能够将由于通道问题导致的消息路由到备用通道去发送,以保证业务稳定触达。

5.3 全量推送

一般来说,对于公司内部运营或公司的相关数据均是以产品的customer id为准,用户数据系统对接消息系统时也多为customer id,因此需建立customer id与推送TOKEN的关系,便于运营针对用户进行推送。但对于一些场景会需要针对未登录的用户也进行推送,即全量推送;比如突发重大新闻资讯、大促等活动,所以运营系统需要提供全量推送功能,针对所有TOKEN进行推送。

6. 数据上报

上报数据包括触达 点击 关闭 退出 注册等数据。

对于所有方式的触达消息,都离不开触达与点击,触达的数据通过厂商的需要厂商回调上报,点击数据可以由SDK上报服务端。对于push的关闭,也是需要进行考量的,来评估push是否过度发送,打扰到了用户。关闭数据有两部分,一部分为app内部的关闭,sdk直接上报给服务端即可;另一部分为用户在手机操作系统上关闭了对应app的push,需要APP在前台时,sdk调用手机终端相关方法获取该用户是否关闭了系统通知,然后上报至服务端。

注册数据即用户首次启动APP时,去相关sdk注册token。

一般来说,用户退出账号时,sdk需要上报服务端,解除token与customer id的绑定关系。

7. PUSH特点

7.1 强提醒 不留痕

push由于是app自己的通知渠道,是运营的一个重要工具。如果用户未关闭PUSH通知的话,push可以从通知栏弹出进行消息显示,具有一定的强提醒性,但PUSH点击跳转后便消失,没有痕迹,因此针对于重点的通知消息,需要在APP内设置消息中心,在PUSH的同时留下通知记录。

7.2 消息样式

对于各家PUSH来说,一些营销消息会加入EMOJI表情来吸引用户点击,这也是一个吸引用户点击的一个小方法,只要服务支持传输约定好的EMOJI码就可以了。

目前安卓系统也支持富媒体推送,推送包含图片、语音等形式,对于资讯类的APP可以增加缩略图,吸引用户点击。语音的目前除了用来商户收款提醒,其他应用场景还有待挖掘。

7.3 iOS和安卓

由于APP是基于手机操作系统,因此对于iOS和安卓的推送的流程及功能基本相同,只不过细节和方法上略有不同,且国内安卓产商都在安卓系统上进行了一定改造,导致国内安卓厂商标准各不相同,需要开发同学仔细对接各个厂商。

8. 触达率的提升

触达率的提升需要从消息创建到实际通知到用户的建立完整流程,细化每一个交互环节,发现影响触达率的主要瓶颈,并针对性地进行解决或优化方案。除此之外,未采用厂商通道的消息也可以采用自己的长连接和其他推送平台服务同时多条推送,在客户端的SDK内增加针对同一消息流水号的去重,这样可以也可以提高一部分消息的触达率。

以上内容为个人经验总结,欢迎讨论指正。

点击“阅读原文”围观今日话题

如何评价2019年3月26日苹果春季发布会?

一篇文章带你了解APP PUSH推送机制相关推荐

  1. 一篇文章带你了解短信推送机制

    写作目的: 帮助大家从应用角度了解下短信推送流程.介绍短信行业的一些常规知识,在为企业自身搭建短信平台时,提供一些经验. 一.短信推送定义与常识: 1.1 短信推送: 顾名思义,是指通过运营商将文本或 ...

  2. 一文带你彻底了解APP PUSH推送机制

    1. app push定义: 在手机锁屏状态下通知栏展示 or 在操作前台顶部弹出的消息通知:点击后可唤起对应的APP,并在APP内跳转到指定页面. 2. app push推送分类: 根据手机应用类型 ...

  3. 2021-06-10-APP PUSH推送机制

    APP PUSH推送机制 一.APP PUSH定义与价值 二.APP推送分类 三. PUSH流程 四.底层通道说明 五.下发推送 六.数据上报 七.PUSH特点 八.触达率的提升 一.APP PUSH ...

  4. 国内APP消息推送机制以及微信消息延迟问题剖析

    转自:https://club.huawei.com/thread-15878044-1-1.html 一.前言 随着安卓手机以及QQ/微信/支付宝/滴滴出行/美图外卖等一大批移动通信/移动消费应用的 ...

  5. 客户端技术:一文带你了解iOS消息推送机制

    导语 | 消息推送我们几乎每天都会用到,但你知道 iOS 中的消息推送是如何实现的吗?本文将从推送权限申请,到本地和远程消息推送,再到 App 对推送消息的处理等多个步骤,详细介绍 iOS 中消息推送 ...

  6. python推送app_(原创)一个app消息推送机制的设计与实现

    手机上形形色色的app会给我们推送各种消息,那么一条消息的推送是如何实现的呢?下面让我从某个app的python后端开发的角度来解析一下. 一.背景 推送的消息包括两大类:运营人员手动编辑.推送的公告 ...

  7. 【转】android系统的APP消息推送机制

    原文:https://www.jianshu.com/p/f898a2c02b05 参考文章: http://blog.csdn.net/carson_ho/article/details/52862 ...

  8. 面试百问:App的Push推送原理测试点

    一.Push推送场景 产品角度: 功能需要,如:资讯类产品的新闻推送.工具类产品的公告推送等等 运营角度: 活动运营需要,如:电商类产品的促销活动:召回用户 / 提高活跃度等等 Push推送原理 An ...

  9. 关于 APP 消息推送,看这篇文章就够辣!!

    原链接:http://www.sohu.com/a/168278657_251759 APP消息推送作为消息分发渠道,一方面起到内容告知的作用,另一方面在一定程度上可以提高用户活跃,在用户流失后也许能 ...

最新文章

  1. 如何用CMD开启3389与查看3389端口
  2. CodeForces - 1326D2 Prefix-Suffix Palindrome (Hard version)(马拉车/回文自动机)
  3. go语言的书籍的淘宝调查
  4. Android开发之如何在debug模式下打出release正式包
  5. java 10进制转 000x_java 如何把 00 转换成 0x00 或者 10 转换成 0x10
  6. oracle 11g RAC无法采用deinstall自动卸载grid,手动卸载,超级棒!
  7. 【开源工程】之YUVPlayer1.6
  8. UI控件之(TextField)
  9. dos从优盘启动计算机,制作U盘dos启动盘的五大步骤
  10. Symbian 之浏览器
  11. window环境mysql卸载不干净
  12. 对象存储oss挂载工具ossfs的使用
  13. SMTP 发送邮件错误码和解决方法
  14. ③电子产品拆解分析-充电宝台灯
  15. 修改win7锁屏壁纸,突破壁纸大小256Kb限制
  16. html5文字跳动特效,jQuery网页文字跳动动画特效
  17. 发现了一个可以让网盘加速的小工具(文末还有一个用了很久的小方法)
  18. 联想拯救者y7000充电一闪一闪,接触不良
  19. 女工程师独家揭秘:双11秘密武器阿里云数据库团队故事
  20. 文化中国 系列六:读历史,说帝王

热门文章

  1. python字符串解释_Python学习:字符串的简单解释,深入浅出
  2. Service Mesh 在超大规模场景下的落地挑战
  3. mysql 事务 数量_如何知道数据库创建以来并发事务的最大数量
  4. 惠普的服务器改win7系统,惠普(HP)笔记本预装Win8改Win7系统BIOS设置教程
  5. shell 死循环if判断_Shell的条件判断
  6. Clover 驱动文件夹_四叶草Clover文件夹结构功能+快捷键——墨涩网
  7. java斗破苍穹游戏阵容,斗破苍穹手游竞技场阵容搭配解析 最强阵容你知道吗
  8. linux中oracle静默安装失败,oracle 11 Linux 静默安装 步骤及错误解决(更新中)
  9. 启动elasticsearch命令_快速安装ElasticSearch
  10. openCV实战(一):rectangle函数使用