APP PUSH推送机制解析
推送的定义为消息发送方将信息传递给接受者的行为。结合到我们日常的场景,就是公司的运营同学或业务系统将营销消息或通知消息通过短信、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%稳定,如果下游通道出现问题,服务端需能够将由于通道问题导致的消息路由到备用通道去发送,以保证业务稳定触达。
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。
一般来说,用户退出账号时,sdk需要上报服务端,解除token与customer id的绑定关系。
1.7、PUSH特点
1.7.1 强提醒 不留痕
push由于是app自己的通知渠道,是运营的一个重要工具。如果用户未关闭PUSH通知的话,push可以从通知栏弹出进行消息显示,具有一定的强提醒性,但PUSH点击跳转后便消失,没有痕迹,因此针对于重点的通知消息,需要在APP内设置消息中心,在PUSH的同时留下通知记录。
1.7.2 消息样式
对于各家PUSH来说,一些营销消息会加入EMOJI表情来吸引用户点击,这也是一个吸引用户点击的一个小方法,只要服务支持传输约定好的EMOJI码就可以了。
目前安卓系统也支持富媒体推送,推送包含图片、语音等形式,对于资讯类的APP可以增加缩略图,吸引用户点击。目前来看,语音场景还有点挖掘。
1.7.3 IOS和安卓
由于APP是基于手机操作系统,因此对于IOS和安卓的推送的流程及功能基本相同,只不过细节和方法上略有不同,且国内安卓产商都在安卓系统上进行了一定改造,导致国内安卓厂商标准各不相同,需要开发同学仔细对接各个厂商。
1.8 触达率的提升
触达率的提升需要从消息创建到实际通知到用户的建立完整流程,细化每一个交互环节,发现影响触达率的主要瓶颈,并针对性地进行解决或优化方案。除此之外,未采用厂商通道的消息也可以采用自己的长连接和其他推送平台服务同时多条推送,在客户端的SDK内增加针对同一罅隙流水号的去重,这样可以也可以提高一部分消息的触达率。
二.从0到1搭建消息管理平台
2.1 推送系统流程
一般来说,消息推送有2种发送方式,一种方式为运营活动批量定时投放,需提供系统功能方便运营筛选用户,然后编辑文案,经审核通过后进行发送。另一种是需要实时触发的消息,比如支付成功通知、验证码获取、满足某种条件触发的营销活动等消息,这类时效性要求较高且每个用户发送的消息内容中涉及到差异化的参数,需要业务应用实时触发。触发的消息需经过一定的过滤与拦截规则,针对于短期内已经覆盖过用户进行过滤,异常或者不合规的消息进行拦截,按照设定好的渠道进行推送。
2.2 数据准备
对于消息推送系统,需要获取投放的目标用户的账号数据,往往公司产品的customer ID和对应推送渠道的账号不一致,需要获取绑定关系,比如短信需要手机号,push需要SDK上报的token,微信需要使用OPEN ID,相关数据的采集在各个渠道的发送机制的文章里进行阐述。
2.3 消息创建
2.3.1 投放人群选择
日常的运营活动为了更加精准,提高货多功能转化率,运营同学会根据一些用户的特征进行筛选,比如北京地区用户,近3天内有登录过APP的用户等等,因此消息投放系统需与公司内部数据部门的标签系统进行对接,提供运营同学投放人群选择。接口实时触发的消息,一般需要业务系统监控到用户行为,将用户账号与需要的参数通过MQ或者接口传递至消息推送系统进行发送。
也需提供用户账号文件上传功能,以便突发事件需要及时告知用户,避免来不及对涉及用户数据录入标签系统等问题。
2.3.2 消息类型与等级划分
消息的类型的应以消息内容的目的进行划分,大类可分为通知、营销、验证码等类型。
例如,短信行业内分为通知、营销、验证码类型的消息, 该类型的划分主要为方便路由短信至SP服务商不同通道,不同的通道触达率也不同,为了保证重要短信的触达率,需要将各个内容的短信路由至不同的通道发送。
结合个人经验,公司内部可以根据实际情况进行更细粒度的划分,比如增加通知+营销类型,可能场景为用户支付成功后,在表述完用户支付成功信息后,结合适当场景增加领取优惠文案,引导用户向其他活动转化。对于金融借贷类的机构,也可增加还款通知类型,主要为用户产生逾期行为需要提示还款的消息;原因为特殊期间,还款通知类短信可能会受特别的管制,单独出来可以进行较好的监控与处理。
对于通知类的消息,也应该按照等级进行划分,比如用户支付成功提示消息和优惠券到账通知消息,显然不应该是同一等级。支付消息涉及用户资金变动,通知等级较高;优惠券到账消息更偏营销类型,通知等级较低。为避免对用户产生更多干扰,需要分级进行控制,必要的时候降低等级较低的消息的推送频率。
2.3.3 消息内容
不同的渠道的消息,所需要的消息内容不一样,短信内容仅需要短信对话框内的文案即可,PUSH需要展示标题与内容摘要;微信有模板消息与图文、语音等多类型的消息内容。在产品设计时,选择了对应的投放渠道后,应展示对应渠道所需的字段,且为必填项。
2.3.4 消息跳转
消息触达到用户后,对于感兴趣的用户需要进一步了解信息,那么目前各类消息的载体不是有足够的空间来展示所有的信息,因此需要跳转到落地页进行详细信息获取。短信类型的消息需要将长链转化成短链再进行发送,一是为了节省成本,因为短信是按照字符数进行收费的,二是为了用户体验,用户在手机上看到的不应该是一对长的乱码。PUSH需要根据跳转的不同的页面设置不同的跳转类型,如H5页面和原生页面,跳转协议由客户端提供,消息系统只需要将其配置到系统上,运营同学可以选择就可以。微信的消息内容一般模板消息条状到H5的活动页,图文消息跳转到文章详情,文本消息中也可以添加超链接,跳转到小程序。
2.3.5 其他需记录信息
消息发送部门:此数据是用来作为后期短信费用结算的依据,按照消息发送部门扣减公司内部各业务线的费用,对于PUSH、微信消息等免费的资源,也可分析关系各个业务部门对消息资源的使用情况。
转化行为口径:消息点击后的一个环节一般是转化,为了更好地衡量消息发送的质量,应该记录下每条消息下发的目的,比如:订单、实名、激活、下载、通知等,将消息与转化行为匹配起来进行数据分析。
产研负责人:在消息发送之前应该记录好每个任务或模板,对应业务线的产品、研发实际消息的负责人,当消息发生客诉时,通过消息记录查询功能,便可迅速定位消息的产研负责人,紧急确认对应消息是否有异常并解决。
2.3.6 推送时间设置
对于不同发送形式的消息,推送时间不同。创建的消息任务可以预定时间进行发送;对于已经固化下的营销场景,需设置周期性任务,设置初始执行时间与执行周期,降低运营操作成本。接口触发的时间一般为实时触发,触发时间由业务系统决定。
2.3.7 在线测试
当消息任务设置好后,需要验证消息投放出去后展示的效果与相关跳转是否正常,避免造成线上推送事故。测试需要发送运营设置好的真实内容,推送对象为内部消息创建者。为避免出现消息误发,测试发送的文案前应添加“测试”,或设置测试白名单,不在白名单内的账号无法进行测试。
2.4 消息审核
当消息任务或者消息模板创建好,需要经过谨慎审核后才能发送,避免出现工作失误产生不良影响。
审核级别一般需要业务线内部负责人审核与公司平台或者对应职能部门审核。审核要点主要为:消息文案是否符合广告法、消息跳转是否正常、发送频率、时间是否合适等。
2.5 消息过滤与拦截
消息过滤主要针对营销类型消息,时段限制(早上9点至晚上8点之间可发送)、频率限制(用户7天内只能收到1条短信,针对于周期性任务,同一任务触达过的用户可以进一步扩大过滤周期,)、黑名单限制(用户退订)。
消息拦截主要为限制发送量级,比如每个业务线针对同一用户每日最多发送5条短信;公司整体对同一个用户最多发送30条短信;短时间(时间可设置,如300S)内同一用户重复内容过滤;量级的控制只要为避免由于业务系统故障造成的对用户消息轰炸,产生不良影响。
关键词拦截,如包含违法、暴力等词汇。
不同的场景使用的过滤频率可做适当调整,比如用户对短信消息的容忍度比push的容忍度较低,因此短信频率应该更加严格。
2.6 消息发送
目前经过种种逻辑的处理,消息终于到了发送环节。发送环节主要后台逻辑,重点要优化消息发送的性能,提高消息发送的稳定性,避免业务损失。发送环节应该添加监控并且适当打印日志,以便及发现异常并定位问题。
2.7 消息路由
短信、安卓push均可接入多个渠道,搭建分发集群。可以根据业务业务逻辑指定通道发送,也可以根据下游通道状态自动路由。
2.8 数据分析
对于触达系统来说,数据分析一般按照消息的全流程进行分析,包括发送数量——触达数量——点击数量——转化数据。
如果涉及消息对APP进行导流,提高APP活跃,也许统计各消息为带来APP唤起次数。
对于短信来说,涉及到短信费用,需要针对渠道和成功触达条数进行计费,设计对账看板。
短信退订、PUSH关闭等等用户行为数据也需要进行分析,便于调整后续触达策略。
2.9 后台管理
2.9.1 通道路由配置
对于短信类型的消息,涉及到签名与通道,不同的业务场景需要不同的短信签名,需要将某些账号、某些模板的消息路由至固定通道侧。以及系统需要根据下游通道性能或状态自动路由消息。
2.9.2 消息发送记录查询
针对于近期发送出去的相关消息,需提供客服侧或运营侧一定的查询功能,以便用户来电咨询相关消息问题,比如未收到验证码消息、没有进行操作却收到消息等等情况。
2.9.3 黑名单
黑名单功能主要应用于消息过滤,当用户投诉或退订后,避免再给用户发送消息,屏蔽的粒度需根据消息类型进行屏蔽,可适当根据内部业务划分。
2.9.4 过滤与拦截规则配置
- 需针对同一用户设置消息发送上限,避免由于业务系统异常导致对用户造成轰炸。
- 重复内容拦截,需设置一定时间内,完全相同内容进行拦截,避免重复发送。
- 关键词拦截,需针对于违规、违法的关键词进行拦截,避免出现运营事故。
- 针对于营销消息,需根据不同的触达方式,控制触达频率,避免对用户造成干扰,反而让用户对品牌产生反感心理。
2.9.5 上行管理
上行管理主要应用于短信消息,用户回复退订或办理业务的关键词。由于从运营商到发送者的上行过程不能精确到用户回复的是哪条消息(也可能用户主动给某些号码发送短信),为了保证各场景不互相影响,需控制上行关键词唯一。
作者:卓别木
来源:卓别木
扫一扫 微信咨询
商务合作 联系我们