提高 iOS App 通知功能启用率的三个策略
我们都知道推送通知在 App 运营中的作用巨大。但是,很多用户却并不买帐,App 第一次启动提示是否「启用推送通知」时,他们直接选择了「否」。
是的,最近我本人就转变成了这样的人 - 认真地评估每个应用是否要启用推送通知功能。App 第一次启动就让我做选择,我没有预期我要收这个 App 的通知做什么,我为什么要选择开启通知功能,而受各种非预期的通知的打扰呢?
据统计,平均只有 40% 的人启用应用的推送通知功能。具体来说也要看 App 属性了,比如微信这种通讯类 App,用户会预期要及时地收到消息通知,自然就会启用。但大多数 App 没有这么幸运,用户没有一个明确的预期或理由,App 会推送什么通知。关于不同类别的 App 通知启用率的分析与对策,可参考这篇文章:为什么 Uber 的推送打开率超过 60%?
App 开发者有没有办法,让用户更多点地开启通知功能呢?还是有点思路的。本文总结三个有效的策略。
策略一:提前声明通知的作用,让用户有预期
绝大多数 App 在申请推送通知功能开启时,都是简单粗暴的:App 首次打开时代码注册推送通知功能,让系统弹出「是否启用推送通知」的提示框。
这个粗暴作法的结果也很简单,用户直接点击「否」。
有没有更友好的作法呢?有。就是在使用 App 的某个阶段,先业务上提示,向用户说明,「开启通知功能」对这个 App 的体验有多么重要。然后,再调用系统远程通知注册,系统会弹出请求通知权限的提示框,让用户做选择。
以上截图是「星空」这款 App 刚打开时给我的展示界面。在弹出系统的提示是否允许通知前,它有个介绍的页面,告诉你启用「定位」对这个 App 有什么好处,启用「通知」对这个 App 有什么好处。看到关于通知的说明,我点击「允许」按钮后,就会弹出下图里系统的界面,让你允许启用通知功能。
这个截图是来自于应用 「AppSo」,一款做应用推荐的 App。看到有「限免」通知,我就毫不犹豫地点击了「允许」推送通知。
总之,在用户面对系统的提示框前,先给用户说明「通知」对这个应用的意义。如果在这一步用户就表示不同意,就不必弹出系统提示了,以后有机会需要开启时再次提示。
策略二:通知分类,给用户更多的控制权
用户不愿意启用一个 App 的「通知」功能,是出于这样的考虑:App 会推送什么通知我不知道,我不想要非我预期的通知信息来打扰我。
我们如果能够想办法让用户更清晰地了解,我们这个 App 会给他推送什么通知,则可以一定程度上打消用户的顾虑,从而让他启用这个应用的「通知」功能。
让用户清晰地了解推送的内容的方式,就是对可能的「通知」进行分类,并且让用户勾选他希望收到通知的分类。

比如「亚马逊购物」这个应用,推送通知的类型有这些可选,我选择开通了:帐户状态通知、配送状态通知、个性化推荐,而秒杀不是我感兴趣的。如果他不提供这个设置项,则我会因为有秒杀这种广告性质的通知而完全关闭这个 App 的通知功能。
策略三:找时机提示用户重新考虑打开「通知」功能,并提供方便
如果用户就是没有启用我这个 App 的「通知」,是不是就完全没有办法了呢?还是有机会的:当用户访问到通知相关功能时,再次提示用户去打开「通知」功能。
很多用户的策略就是,新安装一个应用默认不启用「推送通知」。对于这种用户,只能采取本条的思路了:必要时再次提示用户。
有些用户不熟悉如何去设置里打开「通知」,其实即使如我这样熟悉的人,在那么长的 App 列表里去找到要操作的 App 来打开通知,也是有负担的。所以,如果 App 里有快捷入口,点击一下就切换到系统设置里对应的界面,就会很方便了。
下图是「天猫」的界面,点击「新消息提示总开关」这里,就切换到了系统设置里「天猫」应用相关的设置项页面。


需要注意的是,提示用户其实也有个时机把握问题,我对 QQ 的提示就不太爽:经常冷不丁弹出提示,说我没有启用通知建议我启用。而有些应用的提示就还可接受,即在 App 使用场景真的与通知相关时才提示我,比如电商类 App 我在查询发货进度时。
总结来说,iOS App 如果想要基于 Push 更充分地运营,就必须要做好上述三个策略,以便从用户那儿争取到他「启用通知」。遗憾的是,目前大部分的 App 还没有做好这几个方面的功课,甚至有些大 App 也做得不是非常让人满意。但要承认的是,的确也在逐渐地改进了。希望本文对你的 App 改进有所帮助!
作者:javenfang - 极光推送
原文:提高 iOS App 通知功能启用率的三个策略
知乎专栏:极光日报
提高 iOS App 通知功能启用率的三个策略的更多相关文章
- 25条提高iOS App性能的技巧和诀窍
25条提高iOS App性能的技巧和诀窍 当我们开发iOS应用时,好的性能对我们的App来说是很重要的.你的用户也希望如此,但是如果你的app表现的反应迟钝或者很慢也会伤害到你的审核. 然而,由于IO ...
- 25条提高iOS App性能的建议和技巧
这篇文章来自iOS Tutorial Team 成员 Marcelo Fabri, 他是 Movile 的一个iOS开发者. Check out his personal website or fol ...
- 25条提高iOS app性能的方法和技巧
以下这些技巧分为三个不同那个的级别---基础,中级,高级. 基础 这些技巧你要总是想着实现在你开发的App中. 1. 用ARC去管理内存(Use ARC to Manage Memory) 2.适当的 ...
- iOS App引导页功能实现
一.写作原因 以前都没有想着来写点东西,今天遇到件事情让我决定每次还是要做记录.因为以前自己可以轻松的完成pod spec的配置,但是今天在做的时候还是忘了遇到了很多坑.pod spec配置遇到的坑不 ...
- ios app 实现热更新(无需发新版本实现app添加新功能)
目前能够实现热更新的方法,总结起来有以下三种 1. 使用FaceBook 的开源框架 reactive native,使用js写原生的iOS应用 ios app可以在运行时从服务器拉取最新的js文件到 ...
- iOS开发之判断用户是否打开APP通知开关
一.前言 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情.iOS中通知机制又叫消息机制,其包括两类:一类是 ...
- ios app 实现热更新(无需发新版本号实现app加入新功能)
眼下可以实现热更新的方法,总结起来有下面三种 1. 使用FaceBook 的开源框架 reactive native,使用js写原生的ios应用 ios app能够在执行时从server拉取最新的js ...
- 马蜂窝 iOS App 启动治理:回归用户体验
增长.活跃.留存是移动 App 的常见核心指标,直接反映一款 App 甚至一个互联网公司运行的健康程度和发展动能.启动流程的体验决定了用户的第一印象,在一定程度上影响了用户活跃度和留存率.因此,确保启 ...
- iOS App稳定性指标及监测
一个App的稳定性,主要决定于整体的系统架构设计,同时也不可忽略编程的细节,正所谓"千里之堤,溃于蚁穴",一旦考虑不周,看似无关紧要的代码片段可能会带来整体软件系统的崩溃.尤其因为 ...
随机推荐
- Lucene的查询及高级内容
Lucene查询 基本查询: @Test public void baseQuery() throws Exception { //1. 创建查询的核心对象 FSDirectory d = FSDir ...
- 让tomcat自动定位到项目
在servelt.xml中添加粗体部分. <Host name="localhost" appBase="webapps" unpackWARs=&quo ...
- 477. Total Hamming Distance总的二进制距离
[抄题]: The Hamming distance between two integers is the number of positions at which the correspondin ...
- crontab学习笔记
一.crond与crontab简介 在Linux系统中,循环运行的例行性计划任务,是由 cron (crond) 这个系统服务来控制的,而crontab命令则被用来提交和管理用户的需要周期性执行的任务 ...
- mybatis中使用懒加载实现一对多复杂查询
1.包结构 2.pom配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...
- Jenkins持续集成构建
配置Sonar.Jenkins进行持续审查 http://go2live.cn/archives/38261.html Jenkins iOS 项目持续集成 http://go2live.cn/arc ...
- [C++] Function Template - optional parameter
Function Template
- g2o的使用
相关文献 1.论文 Grisetti, Giorgio, et al. “A tutorial on graph-based SLAM.” IEEE Intelligent Transportatio ...
- IO引脚复用和映射
1.端口复用 这些外设包括ADC,DAC以及串口等等. 查找STM32F429数据手册可以找到相关IO口的复用功能引脚. 注意:除ADC和DAC要配置成模拟通道外,其他的所有外设都要配置成复用功能.
- Golang 之 Base62 编码
Base62 编码用62个可见字符来编码信息,也就是所谓的62进制,可用于缩短地址之类的.实现起来也很简单.当然,这个实现跟别人家的有可能不一样,反正自己能编能解就行. package main im ...