首先我们应该知道APP开发中的推送功能到底是什么,它的价值何在?首先我们看一下定义:推送定义为在手机终端锁屏状态下,通知栏展示或者是在操作的情况下,前端弹出消息提示,点击后可换起对应的APP或在APP内进行跳转到指定相应的页面。APP推送消息是通知客户,引导客户进行下一步的活动,在营销过程当中,推送是非常有价值的营销手段,可以引导用户查看相应的消息,唤起APP的使用和活性也是流量的重要来源。进行APP的开发这个是必不可少的内容。
接下来我们来看一下推送的分类:从应用的功能来分类,推送主要分为三类应用:第1类是即时通讯类的APP,例如微信、QQ等第;2类是新闻资讯类的APP,例如华尔街见闻或者是今日头条等等;第3类统称为商业APP,比如支付宝工具应用APP以及美团等其他类型的商业APP。每种类型的APP对推送的需求是不相同的,即时通信类的APP追求的是实时稳定的到达,此类的APP,一般通过自己的长链接进行消息推送,保证用户在收到消息的时候能够准确的收到内容。另外一些安卓厂商也会给予IM类的APP进行一定的保护,对相关进程纳入白名单,在清理后台后也可以继续使用。而新闻资讯类的语言和工具类的APP推送的机制基本是相同的,只是在频率控制上面有很大的差异,因为新闻的内容很多,只是将重点的内容和要闻推送给我们的用户。而其他商用语音就是根据实际的用户使用频率要求来确定。
再来看一下消息推送的流程消息,推送是在消息系统创建好后进入发送阶段,服务端需要根据用户的终端信息进行路由,如果是IOS的系统苹果的系统,那么则会调用苹果自身的推送信息机制来进行推送,这个信息推送通常是统一的称为APNs,如果用户手机是安卓系统,那么会根据不同厂商的方法去调用不同厂商的sdk进行消息的推送,对于不同的系统版本支持消息的展现形式也是不相同的,例如苹果的系统在iOS10以后,APP在前台时是否通知栏展示此样式是用户可以灵活调整的。而安卓相对比较复杂,如果不是对接厂商相关的通道,那么内部服务可能无需做过多复杂的开发工作,通过第三方消息推送平台来实现推送,比如信鸽、个推等等,但是是否能成功的将信息推送到客户端的SDK回执数据反馈给发送方需要提供回调地址这个是需要设置的。接下来我们会对比三种方式,厂商通道,第三方推送服务和长链接,把各自的优势进行对比,由此来去判断我们应该使用什么样的方式来进行推送。
下发推送的三种类型:
第一类:推送账号
推送客户端PUSH SDK都会根据用户的设备号生成一个对应关系的TOKEN值。SDK内部,如果使用第三方推送服务,去第三方的SDK注册;如果是厂商,则去商城SDK注册来进行使用;如果使用自己长连接,则去自己的SDK进行注册,作为后续推送的标识用户的唯一ID。这个现在是同行的办法。
消息路主要讲解根据不同的业务场景,可能会定向推送给不同版本APP的用户。因此服务端在通道能力路由的时候,不仅需要能够区分通道,还要进一步能够针对用户的手机终端进行更加精细化的差异推送。
对于公司内部运营或公司的相关数据均是以产品的id为准,用户数据系统对接消息系统时也多为id,因此需建立id与推送TOKEN的关系,便于运营针对用户进行推送。但对于一些场景会需要针对未登录的用户也进行推送,即全量推送;比如突发重大新闻资讯、大促等活动,所以运营系统需要提供全量推送功能。