唤醒APP
1.自定义协议
2.universal link (ios)
3.微信sdk
4.asset link (Android)
ASO
自定义协议
关键词:url schema
例子:taobao://
原理:URL Scheme是iOS,Android平台都支持,只需要原生APP开发时注册scheme, 那么用户点击到此类链接时,会自动唤醒APP,借助于URL Router机制,则还可以跳转至指定页面

一些改进
1.前端工程化 1.结耦减少维护成本 2.脚手架应对常见变更
2.监控调用,对生产用户AB测试来测试新策略
3.采集用户信息用于精准投放
4.用options请求cdn根站点获取服务端时间戳
遇到问题
1.百度搜索排名算法的阻拦,百度会惩罚唤醒功能的域名的seo排名
2.浏览器版本更新,safari升级后无法跨域操作cookie
3.公共模块线上用户量极大,对于紧急问题的定位和处理有很强需求
4.客户端cdn问题,用户端访问的cdn是久的
解耦后支持的调用参数:
@param url: 【string】调起URL
@param backUrl: 【string】匹配不成功用到的URL
@param fullwake: 【bool】是否全量唤醒
@param autoTypeClass: 【emu】唤醒类型是每次还是24小时一次
@param maskType: 【emu】 来源url即从openapp唤醒;1,2,3,4,5 从各个浮层唤醒;other各BU调用唤醒
@param isDown 【bool】是否需要下载
@param callback 【function】唤醒成功和失败回调,在唤醒成功或超时后调用
@param pageid 【string】唤醒scheme上带上pageid
@param WxCallBack 【function】老方法 只在微信下载时调用
AB测试
线上同时灰度运行多套方案,
比较同一时间点两种方案的成功率,来调校参数的阀值

自动告警 & 重现问题
_isAccurateAwakenRuleMatched 是否找到了规则;
_isDirectAwaken : 是否直连
_url : 为当前URL
_protocol: 这个为唤醒目标URL
采集的用户信息
GUID 唯一随机值
URL 当前url
assd 唤醒目标url
datetime 触发时间 (如果在5分钟内同用户登陆app推送指定优惠)
isMatch 是否是自动触发规则 ,是触发的哪种规则
system 系统版本
maskType 是否是从广告上触发广告id是多少
ua 浏览器ua
islogin 是否已登陆
uid 用户id
劣势:
1.在safari 和 chrom 中不友好
如果用户安装过app: 会有一个系统提示框提示是否打开app
如果用户未安装过app:会报错 “无法识别的链接”
2.浏览器更新导致的兼容性问题 (突然就不能用了)
解决:用爬虫监控浏览器更新,做自动化测试
3.发出的是单向通信(无法判断用户是否调起成功)
因此:无法判断用户是否安装过APP
解决:用用户是否失去当前页面焦点来判断(极不准确)
因此:app无法识别用户身份
解决:1.把用户token带到app中 2.用用户行为关联匿名用户
universal link
每日触发量成功量20w左右
由于分母是pv而非调用量无法环比,没有准确数据
演示

http://m.ctrip.com/.well-known/apple-app-site-association
特性
- 一定会产生smart banner
- 无法区分渠道 (cookie 和 refferr)
- 百度冰桶算法会惩罚
- ios9以上支持
- 用户重装或升级app时才能获取更新
微信唤醒
演示链接:在微信中访问链接
此为微信jssdk提供的功能,除此方法外微信中禁止一切唤醒行为,
提供了判断是否安装过特定app的接口,但是此功能在ios10以上
被系统禁止
先决要求:
1.需要微信授权,公司和微信有合作关系
2.只允许绑定在用户点击上
google asset link
仅android 7 以上可用

Q&A
aso speech for developer
By zhe zhu
aso speech for developer
- 832