APP PUSH推送机制解析
  推送的定义为消息发送方将信息传递给接受者的行为。结合到我们日常的场景,就是公司的运营同学或业务系统将营销消息或通知消息通过短信、push、等渠道发送给用户的行为。
  每天针对用户的推送消息可以引导用户参加活动、阅读资讯、查看账单等行为,是一块重要的流量入口,推送是推动业务目标的达成的重要手段。
  搭建一套较为完善的公司内部消息推送管理平台,对公司内部各业务线、产品线的消息推送进行统一管理,统一发送;这样既提高了公司的运营效率,又保证了用户体验。
  一.了解APP PUSH推送机制
  1.1 APP PUSH定义与价值
  APP PUSH的定义为在手机终端锁屏状态下通知栏展示或在操作前台顶端弹出的消息通知,点击后可唤起对应的APP,并在APP内跳转到指定页面。
  push消息是通知用户,引导用户进行参与活动、购买产品的重要手段,而且PUSH消息也可
以引导用户查看消息,唤起APP提高日活,是一块重要的流量。
  1.2 APP 推送分类
  从应用的功能来划分,主要分为三类应用,第一类是IM类APP,如、QQ等;第二类是新闻资讯类,如华尔街见闻等;其余暂归为为工具类,比如支付宝、美团等。
  每种类型APP对PUSH的需求也不同,IM类APP追求实时、稳定的触达,此类APP一般通过自己的长连接进行消息推送,保证用户在收到消息的时候能够实时地接收消息消息。另外,一些安卓厂商也会给予头部APP的进程一定保护,对相关的进程纳入白名单,在清理进程的时候予以忽略。
  新闻资讯类的APP与工具类APP的PUSH推送机制基本一致,仅在频率控制上有差异,新闻资讯类由于新闻资讯较多,需要将突发新闻及时推送给用户。
  由于目前工具类的APP占大多数,本文将主要讲解工具类APP的常见推送机制。
  1.3 PUSH 流程
  PUSH消息在消息系统创建好后进入发送阶段,服务端需要根据用户终端信息进行路由,如果是IOS系统,那么会调用苹果自身的推送通知服务(APNs),如果用户的手机是安卓系统,那么根据不同的厂商去调用不同的厂商SDK。
  对于不同的系统版本,支持的消息展示形式也是不同,比如IOS10之后,当APP在前台时,是否通知栏展示;此样式可以根据产品需求来选择,有服务端传输相应通知方式的值即可。如果用户的手机非五大厂商内的手机,可以通过自己搭建的长连接或者使用第三方服务进行推送。
  如果不是自己直接对接厂商通道,那么内部的服务端可能无需做过多较为复杂繁琐的开发工作,通过接入第三方消息推送平台来实现消息的推送,比如信鸽、个推等。多数的通道会将消息是否成功推送到客户端SDK的回执数据反馈给发送方,需要提供回调地址。
  1.4 底层通道说明
  1.4.1 推送方式
  通道类型一般分为三类:厂商通道、第三方推送服务平台、长连接。
  厂商通道是手机终端厂商推出的推送服务,通过接入厂商SDK,内部服务端可以将消息推送到手机系统的服务端,再下发至客户端内部的厂商SDK,由操作系统进行相应展示,点击后唤起相应APP,这样可以避免APP进程被杀死后消息无法触达用户,因此触达率较高。
  第三方推送平台是推送服务公司自己搭建相关的消息服务。并且各个APP使用了同一个平台的推送服务时,客户端都是集成同一个第三方推送平台的SDK,因此形成了一个推送联盟,当联盟中的其中一个APP的消息进程没有被杀死的时候,其他的APP也可以利用进行通知用户,形成了相互唤起,提高触达率。经过一些场景的测试,相互唤起的成功率并不是很高,需谨慎结合自身场景评估。为了提高触达率,第三方推送平台也会集成各大厂商的SDK进行推送。
  长连接就是建立手机与服务端的一条链路进行消息数据推送,通过长连接也可以进行APP状态监控,但完全由长连接推送且保证触达的稳定,需要投入的研发资源较多,且需尽量避免自己的长连接进程不要被操作系统杀死。
  1.4.2 优劣势对比
  APP push功能的搭建需要依据产品自身的情况和公司可投入的资源成本为主,在不同的阶段应该追逐不同的目标。
  1.5 下发推送
  1.5.1 推送账号
  推送时客户端的PUSH SDK均会根据用户的设备号生成一个对应关系的TOKEN。在SDK内部,如果使用的是第三方推送服务,则去第三方的SDK注册;如果是厂商,则去商城SDK注册;如果使用自己长连接,则去自己的SDK进行注册,作为后续推送的标识用户的唯一ID。
  1.5.2 消息路由
  消息路主要见上述推送流程的讲解,此处主要讲解根据不同的业务场景,可能会定向推送给不同版本APP的用户。因此服务端在通道能力路由的时候,不仅需要能够区分通道,还要进一步能够针对用户的手机终端进行更加精细化的差异推送。
  此外,消息通道并一定是100%稳定,如果下游通道出现问题,服务端需能够将由于通道问题导致的消息路由到备用通道去发送,以保证业务稳定触达。
原生安卓app开发
  1.5.3 全量推送
  一般来说,对于公司内部运营或公司的相关数据均是以产品的customer id为准,用户数据系统对接消息系统时也多为customer id,因此需建立customer id与推送TOKEN的关系,便于运营针对用户进行推送。但对于一些场景会需要针对未登录的用户也进行推送,即全量推送;比如突发重大新闻资讯、大促等活动,所以运营系统需要提供全量推送功能,针对所有TOKEN进行推送。
  1.6、数据上报
  上报数据包括触达 点击 关闭 退出 注册等数据。
  对于所有方式的触达消息,都离不开触达与点击,触达的数据通过厂商的需要厂商回调上报,点击数据可以由SDK上报服务端。对于push的关闭,也是需要进行考量的,来评估push是否过度发送,打扰到了用户。关闭数据有两部分,一部分为app内部的关闭,sdk直接上报给服务端即可;另一部分为用户在手机操作系统上关闭了对应app的push,需要APP在前台时,sdk调用手机终端相关方法获取该用户是否关闭了系统通知,然后上报至服务端。
  注册数据即用户首次启动APP时,去相关sdk注册token。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。