一、关于用户触达
用户触达:可以简单理解为通过某种方式将消息传递给用户的行为;触达的特定消息从功能上可分展示、引导落地两层。用户触达作为一种产品运营方式,已经融入我们日常生产活动的方方面面。在移动互联网的世界里,我们的产品离不开触达,用户活动也离不开触达。
二、为什么做用户触达
以用户使用角度来看,用户在使用App的过程中会有一些与用户相关的系统类的通知,比如交易物流、客服消息、账单信息,借还款提醒,实时资讯等消息需要及时的给用户提醒;
以APP运营活动看,App在日常运营过程中,根据当前的目标,结合活动向用户定向发送相关营销类信息,比如单品的活动信息或一些品类促销优惠等,引导用户快速进入活动页面;
因此触达在拉新、促活、留存、变现、自传播等运营活动中扮演者重要角色。这篇文章从app 研发视角介绍下用户触达方面的一些实践。
三、触达用户的方式实践
从APP的存活状态区分,实现触达有两种方式,一种是:APP非活跃状态时的站外触达,主要包含:短信、Push、桌面小组件等
另一种是:APP活跃状态时的站内触达,主要包含站内弹窗、页面固定运营位,feed流推荐位等。
下面介绍下一下我们实现的几种触达方式及遇到的一些问题。
触达方式一:短信
短信起初应用最广泛的场景是作为我们交流沟通的一种方式,随着时代的发展微信、QQ等即时通讯类的app逐渐代替了短信作为人与人沟通工具,但是由于短信能够及时稳定的将消息同步给用户的特点,它仍是我们现在使用比较广泛的消息触达方式。常见的应用场景如:验证码通知、还款提醒、账户变动、营销活动通知等。我们知道作为一种触达方式,它的使命不仅是将消息通知到用户,对于特定的消息还要能便捷的引导用户跳转到APP内的相应的落地页。
短信的消息触达能力是毋庸置疑的,虽然短信文本中直接放入的链接我们也可以打开,但是确存在一些局限性,这种方式仅支持打开web页面,无法跳转到APP原生页面,另外点击链接会先弹窗,由用户选择打开链接的app,这种体验相比直接打开APP指定页面来说大打折扣。因此,如何通过短信直接到达APP内
相应的落地页就是我们需要解决的问题。google提供了一种能使Android系统直接通过网站地址打开应用程序对应内容页面,而不需要用户选择使用哪个应用来处理网站地址的方式,即Android App Links;其工作流程如下:
要添加Android App Links到应用中,需要在应用里定义通过Http(s)地址打开应用的intent filter,并验证你确实拥有该应用和该网站。
如果系统成功验证到你拥有该网站,那么系统会直接把URL对应的intent路由到你的应用。
1.在AndroidManifest里配置用于系统进行验证的IntentFilter:
当android:autoVerify="true"出现在你任意一个intent filter里,在Android 6.0及以上的系统上安装应用的时候,会触发系统对APP里和URL有关的每一个域名的验证。验证过程设计以下步骤:
系统会检查所有包含以下特征的intent filter:Action为
android.intent.action.VIEW、Category为
android.intent.category.BROWSABLE和
android.intent.category.DEFAULT、Data scheme为http或https
2.配置一个数字资产链接的Json文件,声明你的网址和应用之间的关系;
对于在上述intent filter里找到的每一个唯一的域名,Android系统会到对应的域名下查找数字资产文件,地址是:https://域名
/.well-known/assetlinks.json
只有当系统为AndroidManifest里找到的每一个域名找到对应的数字资产文件,系统才会把你的应用设置为特定链接的默认处理器。
数字资产示例:
package_name:在build.gradle里定义的application ID
sha256_cert_fingerprints:应用签名的SHA256指纹信息,这个字段支持多个指纹信息,可以用来支持不同的应用版本,如开发版本和发布版本然后将assetlinks发布到https://域名
/.well-known/assetlinks.json
[ { "relation": [ "delegate_permission/common.handle_all_urls" ], "target": { "namespace": "android_app", "package_name": "xxx.xxx.xx", "sha256_cert_fingerprints": [ "xx:xx...." ] } } ]
3.跳转落地页
在配置了上述intent filter的Activity中解析url,并执行跳转落地页等操作
4.问题及排查方法
如果配置后点击短信的链接无法正常跳转,可以逐个排查相关配置是否正确
4.1 确认数字资产文件是否被正确地定义和发布:
https://digitalassetlinks.googleapis.com/v1/statements:list?
source.web.site=https://你的域名:可选的端口
&relation=delegate_permission/common.handle_all_urls
4.2 确认应用是否设置了正确链接处理方式:
adb shell am start -a android.intent.action.VIEW \
-c android.intent.category.BROWSABLE \
-d "http://你的域名:可选的端口"
4.3 检查链接策略
这一步需要在应用安装后,等待一段时间10s后再执行,因为应用安装后系统会请求解析配置表
执行:adb shell dumpsys package domain-preferred-apps 或 adb shell dumpsys package d
该命令返回了设备上每一个应用配置的列表,这个列表标明应用和网站之间的关联
App linkages for user 0:
Package: com.android.demo 代表应用包名
Domains: play.google.com market.android.com 网站域名,多个网站之间用空格分隔
Status: always : xxxx 表示应用在Manifest文件里的配置了 android:autoVerify="true" 状态为 always;后面的xxxx和验证是否成功无关,和系统中应用的配置记录有关;
4.4 解决机型兼容性适配问题
在实践过程中还发现各厂商的不同型号的设备上存在无法跳转到落地页的情况,经分析该机型上应用安装后系统请求解析配置表as