唤醒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.单独使用  

      2.通过网页上JS触发

             1.通过url上的唤醒参数 演示链接

             2.通过广告上的按钮 演示链接

             3.满足一定条件触发 (清空缓存访问演示链接

优势:

       目前是市面上最主要的唤醒方式

       单独使用:采用中间页的形式

       网页中触发:

             成功率在 每日10-15万到达APP/百万次触发 

             android 和 ios 大部分浏览器,小部分app支持

   

劣势:

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时才能获取更新

参考资料:apple develop 链接

解决方案:

        用cname解析把当前站点伪装成另一个站点来使用

微信唤醒

演示链接:在微信中访问链接

 

此为微信jssdk提供的功能,除此方法外微信中禁止一切唤醒行为,

提供了判断是否安装过特定app的接口,但是此功能在ios10以上

被系统禁止

 

先决要求:

       1.需要微信授权,公司和微信有合作关系

       2.只允许绑定在用户点击上

 

 

 

google asset link

仅android 7 以上可用

特性同universal link 开发者说明

额外特性:

       会在chrome浏览器中产生下载卡片

Q&A

aso speech for developer

By zhe zhu

aso speech for developer

  • 832