5.6 设计唤醒机制

唤醒机制是指互联网产品中专为召回流失用户而设计的产品机制。常用的唤醒机制包括:电子邮件唤醒、消息推送通知、移动网页唤醒应用等。

电子邮件唤醒

EDM(Email Direct Marketing,电子邮件直邮营销)是网站常见的拉新和唤醒手段,通过将邮件投递到用户的邮箱,实现品牌的曝光和提示,将用户召回网站。EDM被广泛使用在电商、金融、办公等服务中。《2011年度中国邮件营销行业数据报告》针对中国地区邮件营销市场进行了数据调研分析。报告指出,2011年度国内各行业EDM平均邮件送达率为86.64%,平均独立打开率为11.33%,平均独立点击百分比为2.42%。

使用EDM唤醒用户的策略主要如下。

1.提供奖励

最为常见的一种形式,给予用户一定的物质或精神奖励,如消费折扣、VIP特权、免运费、购物卡等。例如国外的域名注册服务提供商GoDaddy,会不定期为不活跃的老用户提供优惠码,吸引用户下单订购。

Pocket会在认为你好久不光顾的时候,用高级付费账户的试用机会来吸引你折返。

00161.jpeg

Godaddy经常不定期给用户发放折扣券

00162.jpeg

Pocket赠送高级账户免费试用机会

2.告知进展

将产品的更新情报、商业蓝图或是团队重大调整事项告知用户,吸引用户感受新界面、体验新功能等。如Evernote推出商业版、IFTTT增加对Nest硬件的支持等。

00163.jpeg

Evernote的商业版更新广告

00164.jpeg

IFTTT的更新通知,新增了对Nest智能硬件设备的控制

3.个性化推荐

根据收集到的用户行为偏好数据,推送精准的个性化内容,而不是千篇一律毫无区分的宽泛信息。如知乎每周精选的EDM,会根据不同的用户发送相应的热门内容。

00165.jpeg

同一期知乎每周精选,针对我的两个不同账号发送了不一样的邮件

淘宝会将用户近期浏览过但未购买的同类商品搜索结果,通过邮件再次推荐到用户面前。

00166.jpeg

淘宝根据最近的搜索浏览历史推送相关商品

4.用户社交互动提示

即依托人际关系的纽带,通过邮件告知用户社交网络上最新发生的活动,例如新的好友申请、收到一封私信等。Twitter会定期发送用户尚未处理的消息。Airbnb默认会将房东的私信回复用邮件告知。

00167.jpeg

Airbnb用邮件方式将站内私信通知给用户

而在Facebook,最有效的邮件通知之一是告诉用户“有人在一张照片中圈了你”(You've just been tagged in a photo on Facebook),这将直接激发收件者的好奇:谁发了照片?照片内容是什么?圈我会让谁看见?哪些人点了赞?在这一系列诱因下,人们点击的转化率可以超过75%。

00168.jpeg

Facebook用邮件通知站内的新消息

目前提供优秀的免费独立第三方邮件群发的服务商,包括MailChimp、TinyLetter等,他们不仅具备基本的邮件订阅和发送功能,还支持分组发送、格式优化、A/B测试等。在国内,QQ邮箱提供的群邮件功能是容易被低估的一个渠道,但其实非常适合封闭群组(比如内测用户群)之间的邮件通知,打开率和点击率都不错。

当然,并非所有服务都有订阅邮件的需求,如果网站本身有重复浏览价值,才更适合订阅。在EDM里也最好为用户提供退订的方式,以免遭到用户举报拉黑,导致被邮件提供商屏蔽。

消息推送通知

应用内的消息推送通知(Push Notification/Push Alert)机制是移动产品唤醒用户的有效手段。市场分析公司Localytics报告称:若用户打开了应用的消息推送功能,62%的用户会在数月之后再次使用它;而如果用户关闭了应用消息推送功能,则该比例下降到了32%。移动调研公司Urban Airship对2400款应用以及5亿个推送通知样本进行调研后得出,使用推送通知的应用,日启动率可提升540%,分享到Facebook和Twitter的内容量可提升30%,通过推送通知进入应用的用户的平均使用时间,比普通进入方法的使用时长多26%(在游戏上则高达35%),6个月内的留存率也更高。

但频繁和不合时宜的推送也会造成用户的困扰和反感,甚至引发卸载。日本一家调研机构针对一万名用户的调研结果显示,有23%的用户有因为系统推送而卸载应用的经历。越年长的用户对应用推送通知的宽容度越低,男性则比女性更容易产生抵触情绪。

推送通知的通常用法,考验的是运营人员的基本功,即如何筛选合适的推送人群、根据使用场景和时间段制定推送内容、制作和优化推送到达的着陆页。根据目标人群的使用场景,推送符合其兴趣和需要的优质内容,就能带来更高的黏性。

00169.jpeg

应用推送对游戏活跃度与留存率的影响,图片来源:Urban Airship

认为自己对应用推送足够了解?那来看看以下这些技巧你掌握了多少。

1.推送授权(Push Notification Authority):不同平台对推送通知的授权方式和权限大小标准不同。在iOS上,用户有权力在首次启动时拒绝应用程序的推送通知。而在安卓上,推送通知通常是默认打开的,用户需要到程序中设置关闭,或借助第三方工具来防止骚扰。权限的差异直接导致两大平台上的推送通知到达率不同,安卓可达95%以上,而iOS一般不到50%。为了提高用户保留推送通知权限的意愿,应当在需要的时候再发起权限请求,尤其推荐用简单的浮层或弹窗提示告知用户获取权限后的使用目的。

2.徽章通知(Badging):徽章通知是唤醒用户的一大强效武器,原因之一是有不少患有“强迫症”的用户总想点开图标处理消息,以消除徽章通知,让桌面清爽。在iOS 7之前的版本中,即使应用程序的推送通知被用户关闭,也可以申请获得Push Token来显示徽章通知,继而尽最大努力地维持存在感。目前原生的安卓系统并没有徽章通知,但已经有第三方厂商的定制ROM提供了该功能。

00170.jpeg

iOS上的徽章通知

3.本地通知(Local Notification):本地通知是iOS系统唤醒用户的另一种方法。它在外观上与正常的推送通知类似,不过所有的通知均是在预设的时间点到来时发起自本地,无须与服务器交互,不需要联网。本地通知适用于特定时间段内使用可能性较大的产品。例如《刀塔传奇》手游,会在一天之内分早中晚三个的活跃时段向用户手机发起本地通知,告诉用户“又到了美味的大餐时间,不来顺便玩一把游戏吗”之类。

4.地理围栏通知(Geofenced Notification):当应用检测到用户接近或进入了特定的位置范围内,就将启动地理围栏通知。典型的使用途径包括商场的自动导购应用、周边餐饮服务发现应用等。由于联网方式和手机性能的不同,获取用户所在的位置可能出现误差,影响地理围栏通知的实际效果。

00171.jpeg

地理围栏通知

5.图片推送通知(Picture in Notification):单纯的文字通知通常需要在100个英文字符或20个汉字内抓住用户的眼球。一种更加吸引人的方式是使用图片做推送通知。安卓系统提供了这样的功能,允许开发者定制通知栏图标、展开大图、媒体背景等。

00172.jpeg 00173.jpeg

安卓系统的推送通知中可以加入图片

6.表情文字(Emoji):对于iOS这种暂不支持在推送通知里加入图片的平台,一种变通的方法是使用Emoji表情文字来代替。恰当地使用不仅可节省字数,也能让内容更加抢眼。

00174.jpeg

iOS的推送通知里可以加入Emoji表情

网页内唤醒移动应用

你一定遇见过这样的场景:别人发来一个链接到你手机上,当你点开链接看得兴致勃勃特别想点个赞时,却突然出现“系统提示:必须先下载应用,才能在应用里点赞”的提示。此时你的点赞热情一定立马烟消云散,一次用户冲动转化为活跃行为的机会就这样溜走了。

有什么办法才能让移动网页和手机应用双剑合璧、和谐共处呢?在用户手机中已经安装了应用的前提下,访问移动版网页,可否无缝地直接跳到应用里?这里我们来看知乎的官方安卓客户端是如何做的。知乎的手机网页版顶部显示有“打开应用”按钮,点击这个按钮就会从手机浏览器直接跳转到知乎应用的该问题页面下。

00175.jpeg

知乎移动网页顶部按钮可以直接唤起应用

类似这样的按钮功能,在iOS系统上可以用Url Scheme技术来实现,官方的开发者文档有着详尽的指导。而在安卓平台上,则主要有如下四种实现途径。曾任豌豆荚增长团队负责人的张楠为我们做出了以下代码范例。

第一种:拦截http跳转

在Android中,最标准的方式,就是在应用的配置文件AndroidManifest.xml中,通过<activity>标签里的来声明:本应用可以更好地处理某些URL对应的页面,浏览器你交给我吧。套用在本例中,应当采取的声明形式如下。

<activity androiduname="com.zhihu.android.QuestionActivity">     
<intent-filter> 
<action androiduname="android.intent.action.VIEW"> 
<category androiduname="android.intent.category.DEFAULT">
<category androiduname="android.intent.category.BROWSABLE">
<!--关键所在,匹配相应域名和URL模式--> 
<data androiduscheme="http" androiduhost="www.zhihu.com" androidupathPattern="question/.*"> 
<intent-filter> 
</activity>

做了上述的声明之后,在手机浏览器里访问知乎的移动页面时,就可以跳转到知乎安卓客户端下,并打开这个问题的页面。不过这个解决方案有挺多问题,最重要的一个问题是——兼容性。

从豌豆荚上的下载量看,最热门的手机浏览器是以下产品。

00176.jpeg

豌豆荚上统计的热门手机浏览器,截至2014年10月

以上浏览器中,除了Chrome之外,目前大都不遵守安卓的协定,不支持通过匹配URL跳转到更适合的应用中去。臆测其原因,大抵是国内浏览器都不愿将流量导给其他应用吧。

第二种:自定义scheme

既然这样,那就另辟蹊径,http协议的URL会被很多浏览器自行处理掉,那就不用http协议而采用自定义的scheme试试看。

将AndroidManifest.xml中的声明修改如下。

<activity androiduname="com.zhihu.android.QuestionActivity"> <action androiduname="android.intent.action.VIEW"> <category androiduname="android.intent.category.DEFAULT"> <category androiduname="android.intent.category.BROWSABLE"> <data androiduscheme="zhihu"androiduhost="questions"> </intent-filter> </activity>

把“打开应用”按钮的跳转链接设置为形如“zhihu://questions/…”的URL,点击后就可以跳转到应用对应的activity中去。当然,如果简单地使用<a>标签来做这件事情,若手机中未安装知乎客户端,点击后就会跳转到一个错误页面(地址是zhihu://questions/…)。解决方案也很简单,使用<iframe>即可。

第三种:Chrome Intent

自定义的scheme可以搞定很多浏览器,但Chrome除外。原因是为了更有序地打通浏览器页面和本地应用,Chrome 25后不再支持自定义的scheme,而推出了Chrome Intent,作为标准协议进行推广,其格式形如下。

intentu //scan/ #Intent; package=com.google.zxing.client.android; scheme=zxing; end;

Chrome Intent首先将scheme统一为“intent”,大量信息放到了锚点“#”之后,称作“fragment”,它描述了由谁来接收这个URI。Fragment中可以指定打开这个URI的包名,或者是action、extra等。使用Intent.parseUri函数可以将这样的URI直接转成一个intent对象,反之调用Intent.toUri函数可将intent对象序列化如此格式的URI。

应用到知乎这个例子里,在AndroidManifest.xml中的声明与自定义scheme写法完全一致,只是在调用时,需要在跳转链接中写成如下格式。

intentu //questions/... #Intent; package=com.zhihu.android; scheme=zhihu; end;

最终奥义:内嵌http服务

随着以微信为代表的社交应用的不断发展,它内嵌的WebView已然成为一个轻型浏览器了,坐拥巨大的用户和内容分享量,微信等应用带来的页面访问量是不容忽视的。但这些应用的WebView通常是禁止外链的,不论是什么scheme在这里一律不好使,这就使得分享到微信的知乎问题,即便是点击“打开应用”都是无效的。那么有办法解决吗?

大家都知道,Web页面可以发起Ajax请求来与服务器交互,如果这个“服务器”不在云端,而是在本机呢?没错,解决方案就是在应用中绑定本地端口,启动一个http服务,来响应发送过来的请求,打开应用或者是做其他事情。

如果知乎App在后台启动http服务,绑定一个端口,比如12306,那么Web页面可以发送如下的Ajax请求来打开应用:

$.ajax({ urlu"httpu//127.0.0.1u12306/open?intent=...", }).done(function(){ //do what you want });

当然,要做得足够细致,还需要实现类似于“http://127.0.0.1:12306/is_installed”这样的API。如果知乎安装了,返回200;如果服务未启动或者知乎未安装,自然是返回404。由此可以在Web页面中判断是否安装了知乎应用,进而决定是否要显示“打开应用”按钮。

通常,必杀技都是有副作用的,如果需要准确地判断是否安装了知乎,就需要这个http服务始终存活,否则“没启动”和“没安装”就傻傻分不清楚了。至于如何使一个已安装应用在各种情况下都保持后台运行,“那是另一个充满了黑科技的领域”,张楠这样表示。