提高 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的稳定性,主要决定于整体的系统架构设计,同时也不可忽略编程的细节,正所谓"千里之堤,溃于蚁穴",一旦考虑不周,看似无关紧要的代码片段可能会带来整体软件系统的崩溃.尤其因为 ...
随机推荐
- zabbix自定义key监控nginx和fpm(网站并发数)
一. nginx编译参数 监控nginx,主要讲解监控并发数 --prefix=/usr/local/nginx --with-http_stub_status_module zabbix编译参数的查 ...
- javascript的constructor属性
/* constructor 属性 constructor 属性返回所有 JavaScript 变量的构造函数. */console.log("John".constructor) ...
- QT中自定义系统托盘的实现—c++语言为例
将要介绍的是:QT中自定义系统托盘(systemtray)的一个Demo,希望能帮需要的读者快速上手. 前提假设是诸位已经知道QT中的signals .slot以及资源文件,所以关于这些不会再累述. ...
- 微信第三方登录测试时报Scope参数错误或没有Scope权限解决方法
一 报错信息: 二 出现原因分析: 出现这种错误网上查出现有的原因是: 1. 订阅号没有相关的权限 2. 账号没有认证,没有相关的权限 那么这里遇到问题两种都不是.开发账号是 服务号,而且也是认证号. ...
- centos7部署JavaWeb项目
centos7部署JavaWeb项目共有三步 1.配置java环境 2.配置tomcat环境. 3.部署JavaWeb项目 一.配置java环境 1.1安装java 参考我的另一篇博文:https:/ ...
- Introduction mybatis
项目地址 https://github.com/mybatis/mybatis-3 英文官网 http://mybatis.github.io/mybatis-3/ 中文官网 http://mybat ...
- C# 生成dll文件 并导入使用
首先 在unity创建一个脚本 并编写内容,其中需要调用的方法.变量要公有化(也可以直接新建cs文件用编译器打开编译,但要先导入UnityEngine.dll). 然后,复制脚本关闭unity,在外界 ...
- 编写高质量代码改善C#程序的157个建议——建议118:使用SecureString保存密钥等机密字符串
建议118:使用SecureString保存密钥等机密字符串 托管代码中的字符串是一类特殊的对象,它们不可用被改变.每次使用System.String类张的方法之一时,或者使用此类型进行运算时(如赋值 ...
- jmeter监控内存,CPU等方法
方法1: 使用插件来监控CPU,内存等的使用情况 1.需要的插件准备 JMeterPlugins-Standard-1.4.0.zip , JMeterPlugins-Extras-1.4.0.zip ...
- 昨天发现的nginx默认不支持下划线引起angular-phonecat项目部分文件404问题
今天发现原来确实是不存在这个文件... 因为我的Ubuntu的git没有安装,所以导致bower install时没有拉下来依赖包,因为bower是使用的git拉的包. 但是同时也搜到了nginx不支 ...