原创 苏文康-得物技术
前言
当你在刷朋友圈时突然看到一个潮鞋广告,正是你非常喜欢、一直想买的那款而且价格美丽,于是你兴奋地点击广告直接打开了购物App,并且直接进入刚刚看到的潮鞋详情页,你只需要直接点击购买就能得到这双你期待已久潮鞋,这流程如丝般顺滑!
你正在疯狂追的爱豆在微博发了一款联名潮玩内容,还是独家发售,贴文中就有网页链接,你点击后直接打开购物平台进入了与爱豆联名同款的潮玩详情页,迫不及待的下单拥有一款时尚的潮玩!
我今天要和大家分享的是得物唤端技术,关于唤端网上已经有很多优秀的文章了,这里不会复读机式的把URL Scheme协议、Universal Link协议等再一遍遍唠叨了,这样可能你也会觉得毫无新意。
唤端分类
1. 剪切板式还原
场景1:
每当大促时节,由于线上广告载体平台大量封禁链接,导致电商平台只能采用发送文本的方式邀请亲朋好友给自己助力或者分享好物。其他用户复制整条信息,打开得物App,客户端检测到剪切板中有特定信息的内容,就能打开特定的页面。我们把这种方式称为剪切板式还原。
场景2:
除了转发给好友通过复制内容还原,还有一个场景也同样可以用到剪切板,那就是新用户拉新!当你在某个第三方投放了一个拉新活动,用户点击下载App时,会遇到第三方平台屏蔽URL Scheme和Universal Link的情况,那么此时你既不能打开应用市场也不能打开得物App,我们难道就只能眼睁睁的流失大量的潜在新用户吗?此时,剪切板还原不失为一个备选方案。可以提示用户点击按钮复制还原文案到剪切板,然后让用户手动去应用市场下载得物App,那么当用户下载完成后打开App,也可以实现场景还原的效果,只是链路变长了,体验感不太友好,不过有路走总比无计可施要好得多。
2. 链接式还原
当用户在站外点击链接加载h5页面,如果已经安装了得物App,那么可以直接打开得物App并且还原用户在站外关联商品详情页或者列表页等,我们也都知道实现此功能使用的无非就是通过Url Scheme(通用)、Universal Link(iOS>=9专属)【1】、Chrome Intent【2】(在Android系统中的Chrome >= 25浏览器中使用)、APP Links【3】(Android版的Universal Link)等特殊链接传参实现,这里就不对URL Scheme、Universal Link展开赘述了,因为这些协议是网上罗列最全最详细的方案,我把这类唤端分类为链接式还原。
3. 服务端辅助式还原
如果是新用户,则没有下载过得物App,那么他就只能先去应用市场下载了后再打开,我们先假设下载APP没有使用到APP Links 【4】以及Chrome Intent【5】技术,那么当用户下载完成以后打开得物App时,也能还原到站外相关页面。分明用户从站外跳转到应用市场或者Android系统直接下载安装包,到用户打开得物App,这条链路已经断了呀,得物App是怎么知道需要还原到某个特定页面的呢?答案是服务端辅助式还原!
在用户跳转到应用市场或者直接下载安装包前,前端通过接口把用户的设备指纹以及需要打开得物App时还原的页面参数传给服务端,当用户打开刚下载的应用时,客户端通过调接口也传相应的设备指纹给服务端,接口通过一系列的跨端设备指纹判断到是同一用户,下发给客户端新用户就可以跳转到在站外看到的相关页面。
实践问题:
按照上一段的三个分类分别评价三种方式的优劣。
剪切板式还原:
优点:
- 应用还原场景比较广泛,不管是在从站外召回老用户,还是拉新下载打开得物 App 都可以在站内直接还原场景。
- 兼容性强,剪切板无需区分iOS和Android或者其它系统,在跨端场景中都可以使用。
缺点:
- 数据容易丢失。剪切板中的内容很容易被手机内的其它 App 污染或者清空。
- 无唤端能力。用户需要复制粘贴,然后再手动打开得物 App 才能够还原场景。
链接式还原:
优点:
- 相应时间极速,场景还原流程如丝般顺滑。用户在站外点击链接就可直接打开得物App场景还原,减少了用户的操作流程,才能最大程度的留住潜在用户。
缺点:
- 兼容性太差。
a.由于各流量平台经常会封禁链接式还原的技术,导致在非商业环境中不能正常的实现唤端,更不用说还原了。
b. 不同系统、不同版本对于链接跳转的方式也有差异。如Universal Link不支持iframe形式触发,不支持自动触发等。
服务端辅助式还原:
优点:
- 兼容性较强。无需区分iOS和Android或者其它系统,在跨端场景中都可以使用。
缺点:
- 无唤端能力,需要手动打开 App。
- 跨端设备指纹的准确性非常考验技术团队的以往经验及能力。由于通过js直接获取到的站外浏览器信息有限,所以还需要通过其它途径尽可能多的采集数据,不断积累优化才能生成一个准确性高的设备指纹,团队的相关经验和能力决定着设备指纹的冲突率高低。
关键埋点
有了以上技术原理,通过观察一些关键埋点,可以更好的及时优化流程,各种方式的唤端或还原的成功率是最重要的指标。对于拉新,我们更关注的是唤端率,而对于召回,我们更关注的是召回率。
- 站外前端触发唤端事件的同时上报触发事件埋点
- App打开检查到有场景还原链接时上报埋点
- 打开 WebView 时再次上报埋点
- 成功还原会场后上报一个埋点
通过这样四个埋点形成一个漏斗,统计这四个埋点可得出唤端在哪一步流失率最大,进而有针对性的给出相应策略。
神奇的设备指纹
对于剪切板和链接式作为前端开发应该都不陌生,即使作为普通的用户对剪切板式的还原也已经非常熟悉了。服务端辅助式还原,则因为“缺少”必要的完整链路居然可以进行还原有时会让我们觉得有些“神奇”。
手机中有一个M App很久没使用了,也许是因为手机内存羞涩导致手机有点卡,又或许是你不想看到应用商场一直提示你升级M,所以你干脆直接卸载了它。过了一段时间突然又需要用到M App,你又去应用商城下载安装回来。神奇的是,M App没有让你输入账号、验证码/密码,居然直接登录了你卸载前的账号。更神奇的是,你新安装的同属于M家的App,居然也默认登录了你的账号!
上面这个例子在原生App中非常容易做到,因为客户端可拿到设备中的许多信息,从而根据一定的算法生成唯一的设备指纹,再把账号与设备指纹绑定即可,你的这台设备就成了一个稳定账号,所以不用再繁琐的输入账户、验证码/密码了。
得物唤端技术现状以及未来展望
得物发展初期考虑到复杂的URL Scheme兼容性问题,选择了第三方SDK接入,能力仅限于以上提到的链接式还原,当新用户下载得物打开App时并不能进行场景还原,降低了新用户的体验感。同时遇到针对性的媒体唤端兼容性问题时,还需要跟第三方沟通,增加了解决问题的链路时间,也需要我们的开发人员花费大量时间成本去配合定位、解决问题。
面对得物App现在日益增长的投放业务需求,我们对唤端成功率有了更高的追求,也明显感觉到第三方的解决方案越来越吃紧,于是我们也开始逐步搭建自己的唤端技术平台,通过不断积累经验、学习别人优秀的唤端方案,期待努力早日完成得物自研唤端平台能力。
未来得物的唤端除了会支持URL Scheme、Universal Link常见的技术外,还会包括以上提到的剪切板、服务端辅助式还原。其中服务端辅助还原的难点就是跨端指纹,这也是我们正在攻克的主要技术难点,打通全部唤端还原场景!
总结
唤端原理其实很简单,在实际场景中的情况却很复杂,排除微信、微博等媒体平台对URL Scheme、Universal Link协议的控制,不同浏览器对协议的响应也可能会有差别,iOS、Android、HarmonyOS系统对协议也有着不同的兼容性问题。比如说在使用URL Scheme时,是使用a标签、还是iframe、还是location都需要根据环境去选择。唤端技术没有十全十美的解决方案,只能根据业务需求去选择一个最优方案。
参考链接:
【1】https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html
【2】https://developer.chrome.com/multidevice/android/intents?spm=taofed.bloginfo.blog.1.707e5ac8c56BXh
【3】https://developer.android.com/studio/write/app-link-indexing?hl=zh-cn
【4】https://developer.android.com/studio/write/app-link-indexing?hl=zh-cn
【5】https://developer.chrome.com/multidevice/android/intents?spm=taofed.bloginfo.blog.1.707e5ac8c56BXh
*文/苏文康
关注得物技术,每周一三五晚18:30更新技术干货
要是觉得文章对你有帮助的话,欢迎评论转发点赞~