移动开发DeepLink简介

ec1fcc63f6c1ed06e4c0402680fdb84b_b.jpg

转载至:https://zhuanlan.zhihu.com/p/20694818,如侵权请联系删除

DeepLink是我一直想聊的话题,但是一直没下笔,因为Deeplink技术的线索太多,太乱,太杂,就像《费加罗的婚礼》和《疯狂的石头》一样,多条线索交织前进,有生态为目的巨无霸,有商业化为目的创业公司,有体验为目的系统开发商。这些线索都是以深度链接(DeepLink)为基础,各打各的牌,各下各的棋。

昨天再读《国家为什么会失败》,重温国家的兴荣可以简化到2个维度来分析,我突然有点灵感,把DeepLink分为三层来介绍,希望能把DeepLink讲清楚。

移动用户86%的时间 (Flurry 2015数据)都是在各个APP中。然而,各个移动App就像大海中的一座座岛屿,虽然都生活在一个海洋中(Android系统或iOS),但是他们之间通常是老死不相往来。举例来说,在微信应用中,用户基本上就没有机会打开第三方应用APP,只能通过Web/浏览器方式提供受限的互通。

真实的用户需求是什么样的呢? 例如,用户在朋友圈中,看到关于一个饭店文章的时候,用户可以很方便打开大众点评应用看评论,直接打开美团查看折扣券,直接打开叫车软件前往该地点。 在信息流看到推荐的商品,能够直接打开淘宝/京东App查看宝贝详情。但是很不幸,目前这些应用孤岛之间都是通过Web进行连接的,通过浏览器的WebView,进行内容跳转,缺少原生App体验。

那么问题来了,为什么各个应用之间,为啥不能支持方便的自由穿梭呢? 这里有2个原因,一个是经济原因,另外一个是技术原因。

经济原因比较简单,目前各个应用开发者的核心目标是把用户"滞留"在自己的应用中,用户离开(哪怕短期离开)被认为是需要医治的病。应用做的越来越大,越来越粘人。举例来说,本来浏览器是一个系统工具软件,但越来越多的浏览器软件集成了更多的功能模块,例如新闻,小说,视频,音乐等。大家都希望用户在自己的APP中,沉溺的时间越长越好。

另外一个就是技术原因了,也是今天想聊的主题。所谓DeepLink(深度链接)就是支持在移动App自由跳转的技术,在PC的Web时代,这个问题简化一个HTTP地址。到了移动时代,这个问题变得复杂起来,移动操作系统有多家,各家处理应用间跳转的底层技术都不一样,调用方式、代码都不同,支持的力度也不同。目前也没有任何行业协会致力于解决这个问题,没有像W3C组织解决Web的规范化。

1 总结篇

今天,我从三个层次来介绍移动DeepLink相关技术和产品,包括系统基础技术,巨头产品,创新产品,图示如下。

image

简单解释一下:

1. 底层:系统级别对于DeepLink技术支持

a) 基础的App调起技术,通过代码实现,步骤较为复杂

b) 增强的App调起技术(App Links),通过HTTP(S)调用(Android 6.0和iOS9以上)

2. 中间层:移动巨无霸公司在应用间调转的技术和思路

在APP时代,搜索公司无法索引到APP内部的数据,因此搜索公司希望能够建立Web和APP之间的关系的索引,因此它对于Deep Link是一个拥抱的态度。谷歌/百度/苹果都提供技术和接口,让APP开发者提交Web和APP直接的映射关系,对于有映射的WEB结果,用户有机会直接打开APP,提高用户体验。对于搜索广告商而言,除了Web形式的落地页之外,他们也可以提交对应的APP地址,例如谷歌App Indexing, 百度APP Link, 必应 App Linking。

3. 高层:基于DeepLink的创新机会

由于底层DeepLink技术的复杂性,巨无霸企业的规范各自为政的背景下,DeepLink的应用层面还是一个《列王的纷争》的感觉,这种混沌的状态也吸引了很多创业小公司,利用DeepLink技术,找到一个业务突破点。不少公司获得较高的估值,例如URX(估值4000万美元), DeepLink.me, BUTTON,豌豆荚等。

第二部分 底层:基础技术篇

这一部分介绍,基础的系统调用,如何打开第三方应用

第一类,基础DeepLink调用方式:

打开APP发起者需要处理所有的容错,版本检查,参数非标准传递等所有事项。下面是各个系统的DeepLink实现的具体技术

Android 系统: 创建一个Intent,并且指定目标应用的包名(例如com.twitter等)和参数等,既可以打开目标应用。

iOS系统:使用openURL("twitter://userid/1234"), canOpenURL

Windows Phone:使用UriMapper ,例如Uri:"/Music/song123"

JavaScript:使用Intent Schema,使用新窗口打开,但是很多浏览器/应用并不支持这些JS的执行,或者有白名单列表。

第二类:增强的DeepLink调用篇(App Links/Universal Links, Since 2015)

Android 和 iOS其实是鼓励各个应用之间进行交互和集成,提高用户体验,为了就解决基础调用方式的复杂性。2015年,Android 和iOS依次推出了方便开发者得App Links技术,谷歌叫做App Links(Android 6.0),苹果叫做Universal Links(iOS9.0),基本想法就是把打开应用的地址,统一为使用HTTP(S)方式,系统通过拦截和解析HOST地址,与系统注册的HOST进行匹配,如果发现就可以直接打开APP。(注意,谷歌的APP Links技术和App Indexing没有半毛钱关系。)

简单介绍一下Google App Links技术,

image

以Android App Links为例(苹果的Universal Links整个过程也很类似)

1. App 开发者使用AppLinks(Android 6.0)

a)在App Manifest中声明App Links,打开Intent Filter

b)在HOST服务器创建statements.json配置,包含打开包名和数字签名

2.系统的调用DeepLink过程

系统如果发现http://HTTPS://HOST请求,系统将检查App Links,如果发现注册的APP,就会直接打开应用。支持的场景包括浏览器,短信等很多系统内置场景。

第三部分 中层:巨无霸的DeepLink情节

搜索结果或则社交网络是用户经常使用的APP,百度搜索,Facebook,谷歌搜索,这些应用也在吸收直接跳转到第三方应用的技术,它有三个目的:

第一:获取App的应用内数据。之前的结果都是Web结果,搜索引擎公司在App的事件里,无法为应用内数据做索引,百度/谷歌/必应需要索引更多的应用内数据。

第二:提升广告主的转化。通过直接打开/拉活APP,有数据表明转化率更高,广告主更愿意为高转化率的技术买单。

第三,改进移动的用户体验。例如,你在浏览器搜到一个地点,点击之后直接调转到打车软件。

这里面有一个核心技术,就是如何建立Web和App之间的映射。对这个行业来说,这是一个新问题,谷歌/Facebook提供了2种方式。

方法一:App开发者提供这种映射关系 ,手工上载这种关系

方法二:App在Web站内描述好打开App的方式,机器爬虫可收集。

目前来说,Facebook提出了一种标准叫做App Links,定义了一些Meta语言放在<HTML>的Meta部分。 App Links的相关标准定义,在http://AppLinks.org可以找到。这确实是一个行业不错的标准,可以定义App和Web的映射,这样搜索引擎公司建立索引将更加方便自然。豌豆荚推出的应用内搜索,也是需要App将这些信息提供给豌豆荚,用于索引。

http://AppLinks.org的标记代码例子,用于支持不同的OS。

image

下面是App Indexing 的一些基本流程

image

行业的几个相关的技术,虽然名称不同,但都是一个事情:

1. Facebook : App Links(2014),http://AppLinks.org

2. 谷歌:App Indexing(2014,Android 4.0):

3.Quixey: 网站的根目录下面AppURL.JSON

4. 百度App Link : AppLink.baidu.com; 搜索场景, 面向广告主或有Web站的APP开发者。 WEB站中嵌入了与APP之间的映射关系。

5. Bing App Linking:类似谷歌的App Indexing,Bing可以在搜索结果中直接打开APP的过程,主要用于一些电商产品的推广。

6. 豌豆荚 In-App Search:应用内搜索,比较类似谷歌App Indexing

第四部分 创新层:DeepLink 创新产品篇

在中层,大公司都定义了自己的DeepLink技术标准,利用自己巨无霸的地位,自己索引Web和App映射,支持巨无霸APP中打开第三方应用。那么对于其他的大大小小应用,非巨无霸应用,如何打开其它应用呢?

我们来看看需求,一些小应用需要集成一些第三App体验,例如一个订餐软件集成一个打车软件的App,一个美食App在后面对接一个订餐App,或折扣券App。为了解决这个问题,通常有两个技术问题要解决。

1. 调用方App:需要简化调用的过程(容错,参数传递,标准化等)

2. 被调起方App:需要支持DeepLink,并且无缝与调起方联系起来

有问题,就会有创新。前几年出现不少创新公司,解决这些问题,并积极开发DeepLink的商业机会。总结了一下,这些公司大概提供了两类服务:

1. App的某些Intent场景下,适时引入第三方App,类商业化平台例如有个App软件需要对接打车服务,那么广告平台可以选择滴滴或者是神州的App打开。http://DeepLink.me公司推出了移动端的AdWords,有雄心壮志把所有的App都接入它的广告平台。

2. 降低DeepLink的集成门槛,方便的支持跨平台,统计等

简单介绍一下市面上一些DeepLink的创业公司/项目吧。

1. Bitly:短链接服务,提供SDK,可以非常方便调用第三方APP

2. 腾讯应用直达广告:支持应用的拉活,在蘑菇街有Show Case,提高30%的CPA

3. AppsFlyer:提供SDK服务,降低DeepLink集成门槛,支持强大统计分析。

4. http://DeepLink.me:提供SDK服务,也推出AdWords产品,App推广可以购买相关的Intent,通过DeepLink进行倒流。

5. URX:提供场景化的第三方应用打开,也希望通过广告模式发展

image

最后总结一下DeepLink的发展,在Android6.0和iOS9.0之前,系统对于DeepLink的技术支持有限,使用起来比较复杂,业务的模式也比较薄弱,一直都没有发展起来。随着Google App Links和 Apple Universal Links的发展,越来越多的App可以参考这两个标准,支持从其它应用中被唤起。由于商业原因的限制,直接调转到第三方应用的场景还有限,因此虽然技术很美好和强大,但是现实却很骨感,应用之间的互联互通还是一个商业禁忌之地。

终于罗嗦完了,本文相关技术名词较多,这里有个总结,方便大家查阅。

image
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容