CN107003877A - 应用的上下文深层链接 - Google Patents
应用的上下文深层链接 Download PDFInfo
- Publication number
- CN107003877A CN107003877A CN201580061382.1A CN201580061382A CN107003877A CN 107003877 A CN107003877 A CN 107003877A CN 201580061382 A CN201580061382 A CN 201580061382A CN 107003877 A CN107003877 A CN 107003877A
- Authority
- CN
- China
- Prior art keywords
- client device
- application
- link
- fingerprint
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/60—Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/303—Terminal profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/0005—Control or signalling for completing the hand-off
- H04W36/0011—Control or signalling for completing the hand-off for data sessions of end-to-end connection
- H04W36/0033—Control or signalling for completing the hand-off for data sessions of end-to-end connection with transfer of context information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
上下文深层链接服务器从客户端设备接收与有效上下文深层链接相关联的请求,上下文深层链接与指示应用的特定配置的链接数据相关联。在确定客户端设备存储有先前生成的指纹之后,服务器还接收由与先前生成的指纹相匹配的本地存储的指纹所标识的客户端设备的已存储上下文信息。在确定客户端设备没有先前生成的指纹之后,服务器随后基于客户端设备的多个特性来生成客户端设备的唯一指纹,并且基于客户端设备的特性来确定请求的上下文信息。服务器还向客户端设备发送基于客户端设备的上下文信息而选择的响应,以使得该响应在客户端设备上可操作。
Description
相关申请的交叉引用
本申请要求2015年11月6日提交的美国申请No.14/935,301、2015年11月6日提交的美国申请No.14/935,308、2014年12月24日提交的美国临时申请No.62/096,833、以及2014年11月13日提交的美国临时申请No.62/079,512的优先权,上述申请的全部公开内容通过引用并入本文中。
技术领域
本公开一般地涉及移动应用的领域,具体地涉及移动应用的上下文深层链接。
背景技术
对客户端设备上的应用生态系统(例如,与智能电话上的“应用商店”相关联的生态系统)的开发已经产生了这样的系统,其中,用户可以容易地安装新的应用并且立即向他们的客户端设备添加新功能。这是因为,由生态系统提供的应用是半标准化的以提供统一的安装进程,并且可以使用由生态系统提供的标准化库函数。然而,随着由这些生态系统提供的应用的数量增加,用户的客户端设备上的环境变得不那么粘着,这是因为与互联网上的超链接不同,客户端设备上的每个应用都无法通过应用安装进程容易地链接到客户端设备上的另一个应用的一部分。此外,用户也不能将其他用户引导到这些应用的特定部分,尤其是在其他用户在他或她的客户端设备上没有安装该应用的情况下。这产生了用户被迫半隔离地操作每个应用程序的情况。因此,缺少这样一种方法,其能够容易地将用户引导到应用内的部分并且将数据传递给应用,而不论用户的客户端设备的类型如何以及客户端上是否安装了应用。
附图说明
根据具体实施方式、所附的权利要求以及附图,所公开的实施例的优点和特征将变得更加显而易见。下面是对附图的简要介绍。
图1示出了能够进行上下文深层链接的示例性系统。
图2示出了根据一个实施例的客户端链接模块。
图3示出了根据一个实施例的服务器链接模块。
图4是示出了根据一个实施方式的、用于生成上下文深层链接的示例性方法的流程图。
图5是示出了根据一个实施例的、用于利用基于上下文的响应来对与深层上下文链接相关联的请求做出响应的示例性方法的流程图。
图6是示出了根据一个实施例的、用于请求和发送链接数据的示例性交互的交互图。
图7是示出了能够从机器可读介质读取指令并且在处理器(或控制器)中执行指令的示例性机器中的各部件的框图。
具体实施方式
附图和以下描述涉及仅作为示例的优选实施例。应该理解,根据下文论述,本文公开的结构和方法的替选实施例将被容易地认识为可以在不偏离所要求保护的权利要求的原理的前提下被采用的可行替代方案。
现在将详细参照若干实施例,这些实施例的示例在附图中示出。应该理解,附图中可以使用相似或相同的附图标记,并且可以指示相似或相同的功能。附图仅出于说明的目的来描绘所公开的系统(或方法)的实施例。根据以下描述,本领域技术人员将容易地认识到可以在不偏离本文公开的原理的前提下采用本文说明的结构和方法的替选实施例。
配置概述
作为示例实施例,公开了用于创建和使用上下文深层链接的系统。在一个实施例中,上下文深层链接服务器从客户端设备接收与有效上下文深层链接相关联的请求。上下文深层链接与指示应用的特定配置的链接数据相关联。
响应于确定客户端设备已经存储先前生成的指纹的指示符,服务器取回(retrieve)由本地存储的指纹标识的客户端设备的存储的上下文信息,所述本地存储的指纹与由存储在客户端设备上的指示符确定的先前生成的指纹相匹配。这样的上下文信息被存储在上下文深层链接服务器上。或者,响应于确定客户端设备没有先前生成的指纹的指示符,上下文深层链接服务器基于客户端设备的特性生成客户端设备的唯一指纹,并且基于客户端设备的特性确定请求的上下文信息。这些特性可以包括IP地址、操作系统版本、硬件标识符、操作系统提供的标识符、以及在结合时可以生成客户端的唯一指纹的其他特性。
上下文深层链接服务器随后向客户端设备发送基于客户端设备的上下文信息而选择的响应,以使得该响应在客户端设备上是可操作的。例如,如果上下文信息指示客户端设备支持应用生态系统,则响应可以使得客户端设备打开在上下文深层链接的链接数据中指定的应用。或者,如果客户端设备不支持应用生态系统,则响应可以使得客户端设备在网页浏览器上打开具有关于应用的更多信息的着陆页面。作为另一个示例,如果没有安装应用,则响应可以使得客户端设备打开与应用商店对接的应用,在应用商店中用户可以下载和安装应用。
示例性上下文深层链接系统
图1示出了能够进行上下文深层链接的示例性系统100。系统100包括一个或多个客户端设备120、应用商店140、应用服务器130以及上下文深层链接服务器110。尽管示出的系统110包括图1中示出的元件,然而在其他实施例中,系统100可以包括不同的元件。此外,在其他实施例中,每个元件的功能可以不同地分布在多个元件之中。
网络150(其可以是有线网络、无线网络或其组合)使得能够在客户端设备120、应用商店140、应用服务器130以及上下文深层链接服务器110之间进行通信,并且可以包括互联网、LAN、VLAN(例如,利用VPN)、WAN或其他网络。在一个实施例中,网络150使用标准通信技术和/或协议,例如超文本传输协议(HTTP)、传输控制协议/网络协议(TCP/IP)、统一资源定位符(URL)和域名系统(DNS)。在另一实施例中,作为代替或除了上文描述的技术之外,实体还可以使用定制的和/或专用的数据通信技术。
应用商店140是应用生态系统(例如,移动应用生态系统)中的部件,其提供了客户端设备的集中式位置以提交对要在客户端设备120上安装的应用的请求。应用商店140提供可以被预装在客户端设备120上的对接应用。应用商店140还包括可用应用的数据库以及诸如安装要求、应用权限等的应用元数据。应用商店140从对接应用接收安装应用的请求。响应于请求,应用商店140将用于安装应用的数据发送到客户端设备120。
客户端设备120是由用户用来执行功能的电子设备,所述功能例如是消费数字内容、执行软件应用、浏览托管在网络150上的网页服务器上的网站、下载文件以及与应用商店140、应用服务器130和上下文深层链接服务器110交互。例如,客户端设备120可以是专用的电子阅读器、智能电话、可穿戴设备(例如,智能表或挂件)、或平板设备、膝上型设备、或与参照图7描述的示例性机器(或计算系统)类似配置的台式计算机。
每个客户端设备120包括一个或更多个应用121,其在由客户端设备120执行时执行由应用开发者定义的各种功能。应用121可以利用客户端设备120的操作系统或硬件组件,并且可以使用客户端设备120的一个或多个输入/输出部件来向用户提供接口。应用121的示例包括导航应用、在线无线电应用、电子(e)商务应用、本地商户审核应用等。
在一个实施例中,一个或更多个应用121支持上下文深层链接。上下文深层链接指示应用121的特定配置。在一些情况下,这样的配置仅是对应用121中的位置(例如应用121内的部分)的引用。例如,众包查看应用中的特定位置可以是本地餐厅的查看页面。这种到应用121中的一个位置的链接本身还可以被称为深层链接。在其他情况中,这样的配置包括特定的设置、参数、变量以及应用121的其他选项。例如,电子商务应用的一组特定设置可以对特定用户账户设置一定的推荐奖励。
在一个实施例中,上下文深层链接可以是统一资源定位符(URL)。此外,当客户端设备120发出与应用121的上下文深层链接相关联的请求时,客户端设备120从上下文深层链接服务器110接收响应,该响应基于客户端设备120的上下文信息。上下文信息可以包括客户端设备120的平台(例如,移动平台或桌面平台)、在客户端设备120上执行的操作系统的类型和版本、客户端设备120上是否已经安装了应用121等。由于响应是基于上下文的并且不固定,因此任何客户端设备120都能够对响应进行操作。这允许跨所有客户端设备平台而使用上下文深层链接。
例如,上下文深层链接可以是http://link-provider.com/[应用标识符]/[唯一标识符]格式的URL。在该示例中,“link-provider.com”是与执行协调上下文深层链接操作的实体相关联的域名。这可以与专用的服务器相关联,例如下文描述的上下文深层链接服务器。“[应用标识符]”是标识所考虑的应用的唯一字符串标识符。“[唯一标识符]”是标识特定链接的另一个唯一字符串标识符。注意到,上下文深层链接的其他实施例可以在URL(例如,URL可以包括查询字符串)中具有不同的标识符组合。当用户点击上下文深层链接(或与其交互)时,向“link-provider.com”服务器发出请求,该服务器接收唯一标识符并且能够向用户的客户端设备120发送上下文有效的响应。例如,如果用户正在使用支持移动应用生态系统的移动设备,则服务器可以检测到该上下文信息,并且在用户没有安装链接中引用的应用的情况下,利用到用户的客户端设备120上的应用商店的重定向来进行响应。
为了支持上下文深层链接,在一个实施例中,应用121包括客户端链接模块122,其从上下文链接服务器110请求上下文深层链接并且从上下文深层链接服务器110取回与上下文深层链接有关的链接数据。为了建立上下文深层链接以发送到第二客户端设备120,第一客户端设备120上的第一客户端链接模块122从上下文深层链接服务器110请求上下文深层链接。第一客户端链接模块122还向上下文深层链接服务器110发送链接数据,其指示了应用121的特定配置。第一客户端链接模块122随后从上下文深层链接服务器110接收新生成的上下文深层链接。
当第二客户端设备120(例如,由于从用户接收到与上下文深层链接的轻击交互而)发送与上下文深层链接相关联的请求时,第二客户端设备120从上下文深层链接服务器110接收响应。如果由上下文深层链接的链接数据指示的应用121已经安装在第二客户端设备120上,则响应包括使得第二客户端设备120打开或初始化第二客户端设备120上的应用121的链接。当应用121初始化时,第二客户端设备120的应用121上的第二客户端链接模块122向上下文深层链接服务器110发送对任何链接数据的请求。如果由上下文深层链接的链接数据指示的应用121没有安装在第二客户端设备120上,则响应包括如下链接:该链接使得第二客户端设备120打开或初始化与应用商店140对接的应用并且使得应用商店应用打开应用121的着陆页面。
在另一个实施例中,为了建立上下文深层链接,客户端链接模块122最初不从服务器请求上下文深层链接。相反,客户端链接模块122可以根据特定的格式独立地生成上下文深层链接,该上下文深层链接也包括应用被配置为与上下文深层链接相关联的链接数据。在一个实施例中,该格式是“link-provider.com/key=[应用标识符]?[链接数据],”,其中,“应用标识符”表示如上文描述的应用的标识符,而“链接数据”表示具有链接数据的查询字符串,针对该链接数据的应用被配置为与独立生成的上下文深层链接相关联。
当第二客户端设备120发送与上下文链接相关联的请求时,该请求被发到上下文深层链接服务器110。上下文深层链接服务器110标识在独立生成的上下文深层链接中指示的链接数据并且存储该链接数据。上下文深层链接服务器110生成新的上下文深层链接,并且将新存储的链接数据与新生成的上下文深层链接相关联。上下文深层链接服务器110利用该新生成的上下文深层链接来响应来自第二客户端设备120的请求。第二客户端设备120被定向到由新生成的上下文深层链接指示的位置,并且接收使得第二客户端设备120执行如上文针对非独立生成的上下文深层链接描述的一个或更多个动作的响应数据。
在一个实施例中,上文描述的响应由上下文深层链接服务器110实时地执行以使得在向上下文深层链接服务器110发出请求与由上下文深层链接服务器110做出响应之间没有延迟、或者延迟不超过阈值或用户能感觉到的时间段。通过实时地或接近实时地做出响应,用户不会容易地感觉到确定上下文或基于链接数据来配置应用中的任何延迟,由此提供了无缝体验。
在一些实施例中,该客户端链接模块122由上下文深层链接系统的开发者作为插入到应用121中的插件或库提供给应用121的开发者。
在一些实施例中,客户端设备120包括能够发送与上下文深层链接相关联的请求的网页浏览器123。在这样的情况中,上下文深层链接具有超文本标记语言(HTML)超链接的形式。网页浏览器123显示超链接的上下文深层链接,并且如果用户点击、轻击超链接或与超链接交互,则网页浏览器123向超链接所指示的上下文深层链接服务器110提交请求。网页浏览器123随后基于正执行网页浏览器123的客户端设备的上下文而接收响应。
响应于来自应用的请求,上下文深层链接服务器110生成上下文深层链接、向请求有效上下文深层链接的客户端设备发送响应、以及向应用所有者提供与上下文深层链接有关的分析。如所示出的,上下文深层链接服务器110包括服务器链接模块115、分析模块116、以及分析存储设备117。
服务器链接模块115响应于请求生成上下文深层链接并且发送对与有效上下文深层链接相关联的请求的响应,该有效上下文深层链接是基于发出请求的客户端设备的上下文来选择的。
在一个实施例中,服务器链接模块115从应用121接收请求以生成上下文深层链接。当服务器链接模块115接收这样的请求时,其生成新的上下文深层链接并且将该链接与关联于请求的信息相关联。服务器链接模块115还可以与请求一起接收链接数据。如上文描述的,该链接数据描述关于应用121已请求与生成的上下文深层链接相关联的信息,并且可以指示应用121的特定配置。服务器链接模块115存储该链接数据并且将其与生成的上下文深层链接相关联。
服务器链接模块115还响应于与深层上下文链接相关联的请求。当服务器链接模块115从客户端设备120接收到与上下文深层链接相关联的请求时,服务器链接模块115确定客户端设备120是否已经(例如,在cookie中)存储了唯一指纹的指示符。如果存在这样的指纹指示符,则服务器链接模块115基于指纹取回先前存储的与客户端设备120有关的上下文信息。如果不存在指纹,则服务器链接模块115基于客户端设备120的特性(例如,网络地址、操作系统版本等)生成一个指纹。服务器链接模块115还基于客户端设备120的特性确定客户端设备120的上下文信息。基于上下文信息,服务器链接模块115将响应发送回客户端设备120,使得该响应在客户端设备120上可操作。
此外,服务器链接模块115可以从客户端设备120上的应用121接收对链接数据的请求。服务器链接模块115再次确定客户端设备120的指纹,并且取回与上下文深层链接相关联的任何链接数据,该上下文深层链接具有来自有相同指纹的客户端设备120的最近的相关联的请求。服务器链接模块115将该链接数据发送到客户端设备120。
分析模块116分析与上下文深层链接相关联的请求以提供应用所有者的分析信息。应用所有者可以是应用121的开发者或者是具有对应用121的合法权利的实体。分析模块116提供给所有者的分析信息的类型可以包括点击了上下文深层链接的客户端设备120、包括客户端设备120的特性在内的与客户端设备120有关的已知信息、以及基于客户端设备的用户的上下文深层链接交互历史而推断出的客户端设备的用户的配置文件信息。
分析模块116还可以向应用121的所有者提供与用户在由上下文深层链接引用的应用121中执行的一些动作有关的信息。这样的动作的示例可以包括应用中的用户随后访问的部分、用户随后在应用121中消费的任何赞助内容等。在一个实施例中,分析模块116经由网页接口向所有者提供上文描述的信息。
在一个实施例中,上下文深层链接服务器110从应用的所有者接收与每个上下文深层链接相关联的标签信息。标签信息可以被包括在链接数据中或者是针对上下文深层链接的单独的标签数据。分析模块116向所有者提供针对与其交互过且具有与其相关联的标签信息的每个上下文深层链接的标签信息。标签的示例包括指示运动的标签、指示推荐程序的标签、指示邀请的标签等。
分析存储设备117存储分析模块116用来向所有者提供分析信息的数据。该数据可以包括上文描述的由分析模块116使用的数据。在一个实施例中,分析存储设备117中的数据是从服务器链接模块115接收的。
应用服务器130提供一个或多个应用121所需的任何服务器侧功能。尽管示出了单个的应用服务器130,但在其他实施例中,可以使用一个以上的应用服务器130来支持不同的应用121。尽管应用服务器130被示出为具有客户端链接模块122,但在其他实施例中,应用服务器130还包括额外的部件,例如用于处理应用121的服务器侧功能的服务器侧应用模块、网页服务器、和/或用于存储与应用121有关的服务器侧数据的数据库。与应用121的功能一样,应用服务器130的功能主要由应用121本身的所有者确定。
在一个实施例中,应用服务器130包括可以执行与应用121上的客户端链接模块122相同的功能的客户端链接模块122。客户端链接模块122可以用于从上下文深层链接服务器110请求上下文深层链接。应用服务器130上的客户端链接模块122向连接到应用服务器130的客户端设备120提供该生成的上下文深层链接。例如,应用服务器130可以包括网页服务器,并且应用服务器130可以接收来自客户端设备120的网页请求。作为响应,应用服务器130上的客户端链接模块122可以请求上下文深层链接并且经由网页服务器将其展示给客户端设备120的用户。
基于发出与链接相关联的请求的客户端设备的上下文信息,上文描述的系统100提供了用于在计算机网络中发送指示应用生态系统中的应用内的特定配置的链接的改进的方法。这样的系统至少可以用于解决计算机网络中的如何通过对服务器的单独的请求来识别客户端设备以将与上下文深层链接相关联的链接数据发送给客户端设备的问题。此外,这样的系统至少可以用于解决计算机网络中的如何提供对应用的更深层的访问以便于提供对应用中的位置的访问或提供对应用配置的访问的问题。应用可以请求指示应用内的特定配置的上下文深层链接,并且上下文深层链接服务器利用新生成的上下文深层链接来做出响应。当客户端设备的用户与上下文深层链接交互时,上下文深层链接服务器通过确定客户端设备的特性来确定客户端设备的上下文,并且基于上下文将合适的响应发送给客户端设备。上下文深层链接服务器还将上下文深层链接与客户端设备的指纹相关联。
响应可以初始化用户的客户端设备上的应用,该应用向上下文深层链接服务器提交对与任何最近使用的上下文深层链接相关联的链接数据的请求。上下文深层链接服务器将由应用提供的指纹与关联于上下文深层链接的指纹相匹配,并且向应用发送相关联的链接数据,该链接数据随后可以用于配置该应用,由此允许数据跨应用且跨设备地被传送。
应用的示例性客户端链接模块
图2示出了根据一个实施例的图1中的客户端链接模块122。如所示出的,客户端链接模块122包括链接请求模块210、指纹生成模块220、设备信息模块230、链接数据取回模块240、应用配置模块250、以及深层链接数据库260。尽管示出的客户端链接模块122包括图2所示的元件,但在其他实施例中,客户端链接模块122可以包括不同的元件。此外,在其他实施例中,每个元件的功能可以不同地分布在各元件之间。
深层链接数据库260存储应用121内的位置的指示符和/或在上下文深层链接的链接数据中指示的其他配置信息。位置是页、部分、内容项、以及用户可以导航到的应用中的任何其他元素。例如,在互联网无线电应用中,位置可以包括应用内的特定无线电台的着陆页面。在一个实施例中,深层链接数据库260将对这些位置的指示存储在与应用的导航结构相匹配的分层树中。由此,针对应用中的每个位置,深层链接数据库260可以包括该位置本身的指示符以及到表示可以从该位置直接到达的各种后续位置的指示符的分支。在一个实施例中,深层链接数据库260包括位置的内部指示符集合与用于上下文深层链接的位置的外部指示符之间的映射。
在一个实施例中,深层链接数据库260还存储与折扣率和折扣码有关的信息、推荐信息、以及与可以经由链接数据发送的数据有关的其他细节。例如,链接数据可以指示折扣码,并且深层链接数据库260存储与该折扣码有关的折扣率信息。当具有该折扣码的链接数据被客户端链接模块122接收时,客户端链接模块122从深层链接数据库260取回由折扣码指示的详细折扣信息。
为了建立深层链接数据库260,应用121的开发者可以手动地将每个位置或其他数据输入到深层链接数据库260中。在一个实施例中,位置是由客户端链接模块122在用户使用应用121并且访问应用121内的不同位置时自动地收集的。在另一个实施例中,客户端链接模块122爬行应用121中的各种位置来填充深层链接数据库260。
链接请求模块210将对新的上下文深层链接的生成请求发送给上下文深层链接服务器110。在一些情况下,链接请求模块210接收来自应用121的、关于请求新的上下文深层链接的请求,从而将链接数据发送到另一个客户端设备120。如上文描述的,链接数据指示应用121的特定配置。在一个实施例中,链接数据中的配置信息指示应用中的位置,并且该位置指示符可以由链接请求模块210从深层链接数据库260取回。在另一个实施例中,链接数据中的配置信息包括应用的其他信息。例如,链接数据可以包括链接数据的期望接收方应用可以用来自动地填写推荐码字段的推荐数据。
为了请求新的上下文深层链接,链接请求模块210可以将对新的上下文深层链接的请求发送给上下文深层链接服务器110。该请求包括应用121期望新生成的上下文深层链接的接收方访问的链接数据。在请求之后,链接请求模块210接收新生成的上下文深层链接,和/或可以从上下文深层链接服务器110接收状态/错误消息。如上文所述,在一些实施例中,客户端链接模块122可以独立地生成上下文深层链接。在这样的情况下,链接请求模块210不联系上下文深层链接服务器110。
在一些实施例中,上下文深层链接是URL形式的,具有与上下文深层链接服务器110相关联的域名,并且具有查询字符串,该查询字符串是用于唯一地标识上下文深层链接的随机生成的唯一变量。在另一个实施例中,域名与应用的所有者相关联,并且当与上下文深层链接交互时,上下文深层链接产生到上下文深层链接服务器110的重定向。
指纹生成模块220基于客户端设备120的一个或多个特性生成客户端设备120的唯一指纹。客户端设备120的特性是可以用于唯一地标识客户端设备120的关于客户端设备120的信息。关于客户端设备的信息可以包括其网络地址(例如,IP地址)、操作系统类型和版本、其他安装应用的列表、地理位置、设备型号信息、屏幕尺寸等。客户端设备120的特性还可以包括客户端设备120独有的且由客户端设备120的操作系统生成的跟踪标识符,以用于跟踪客户端设备120。为了生成指纹,指纹生成模块220采用这些特性中的一个或更多个并且生成客户端设备独有的唯一值。在一个实施例中,指纹生成模块220通过对表示特性的值使用诸如MD5或SHA-1等的散列算法来生成指纹。例如,指纹生成模块220可以将包括上文所列举的示例特性的字符串散列化成表示指纹的唯一的散列值。在其他示例中,指纹生成模块220通过将表示特性的一个或多个值附加在一起来生成指纹。
在生成指纹时使用的特性的数量可以是确保所有可能的客户端设备之间的高度唯一性或高百分比唯一性所需的最小特性数量。为了计算该最小数量,上下文深层链接服务器110可以增加特性的数量直到这些特性的不同排列在生成指纹时超出预定值或大于估计的现有的或达到特定值或量级的客户端设备的数量。使用的特性数量还可以由管理员手动地设置。如果某些特性仅在客户端设备120的特定平台上可用、如果某些特性在页面请求期间将不会由在客户端设备120上执行的网页浏览器暴露给网页服务器、或者如果某些特性可能有揭露不必要量的额外信息的风险,则指纹生成模块220可以将这些特性排除用于生成指纹。
设备信息模块230收集可以被提交给上下文深层链接服务器110的客户端设备120的设备信息。设备信息包括可以由上下文深层链接服务器110用来确定关于客户端设备120的上下文信息的客户端设备120的任何信息。客户端设备120的设备信息可以包括上文描述的特性、安装应用的列表、或配置设置。由于设备信息模块230是应用121的一部分,因此,与经由网页浏览器暴露的信息或从客户端设备120到上下文深层链接服务器110的网络请求相比,其能够收集关于客户端设备120的更详细的信息。
在一个实施例中,设备信息模块230至少收集在客户端设备120上安装的应用的列表,以使得客户端设备120的上下文信息包括在客户端设备120上能够链接到的已知应用的列表。
当应用121被初始化时,链接数据取回模块240从上下文深层链接服务器110取回任何链接数据。当应用121开始执行时,应用121在客户端设备120上被初始化。这可能意味着应用没有驻留在客户端设备120的易失性存储器中或者可以仅具有正在执行的存根应用或背景进程。初始化还可以在应用失去焦点后在客户端设备上重新获得焦点时发生,或者在应用刚被安装时发生。
在应用121的初始化之后,链接数据取回模块240向上下文深层链接数据库110发送用于请求链接数据的请求(如果有)。连同该请求一起,链接数据取回模块240还向上下文深层链接服务器110发送由指纹生成模块生成的客户端设备120的指纹并且还可以发送由设备信息模块230收集的设备信息。链接数据取回模块240随后从上下文深层链接服务器110接收与指纹相关联的任何链接数据。在一个实施例中,该链接数据被发送到应用配置模块250。
应用配置模块250接收链接数据并且基于链接数据中的信息来配置应用。如上文所述,链接数据包括应用的配置信息。特别地,在一个实施例中,链接数据包括一个或多个键值对。这些键值对可以被安排在参数表中。键值对的键描述特定应用配置属性,并且与该键相关联的值描述如何配置该属性。值可以是数值、计算机指令、文本、二进制数据等形式。
在一些实施例中,当键值对指示应用中的位置时,应用配置模块250确定与该位置指示符相关联的位置并且将应用121配置为向客户端设备120的用户呈现该位置。应用配置模块250可以通过在深层链接数据库260中查找位置指示符以找到映射位置或到应用位置的导航路径,来将位置呈现给用户。
在一些实施例中,当链接数据中的键值对的键指示应用121的不同属性时,应用配置模块250基于该值来配置属性。配置属性的特定方法是基于应用的。例如,如果应用是导航应用,并且链接数据中的键值对的键指示导航目的地属性,则应用配置模块250可以配置应用以将导航目的地设置成键值对的值中的数据。
上下文深层链接服务器的示例性服务器链接模块
图3示出了根据一个实施例的图1的服务器链接模块115。如所示出的,服务器链接模块115包括链接生成模块310、指纹生成模块320、指纹匹配模块330、上下文响应模块340、上下文数据存储设备350、链接数据存储设备360、以及链接数据模块370。尽管示出的服务器链接模块115包括图3中示出的元件,但在其他实施例中,服务器链接模块115可以包括不同的元件。此外,在其他实施例中,每个元件的功能可以不同地分布在多个元件上。
指纹生成模块320基于客户端设备120的一个或多个特性生成客户端设备120的唯一指纹。在一些情况下,服务器链接模块115从不能独立生成指纹或没有将指纹发送给服务器链接模块115的客户端设备120接收与上下文深层链接相关联的请求。在这样的情况下,指纹生成模块320基于客户端设备120的特性生成客户端设备120的唯一指纹。
在一个实施例中,上下文深层链接是URL,并且上下文深层链接服务器110从客户端设备120的网页浏览器123接收与上下文深层链接相关联的请求。在这样的情况下,指纹生成模块320基于客户端设备120的由网页浏览器123暴露的并且存在于请求中的特性来生成指纹。这些特性可以包括网络地址(例如,IP地址)、操作系统版本、操作系统类型、设备型号信息、以及屏幕尺寸。可以使用由网页浏览器123提供的用户代理字段来确定这些特性中的一些。可以通过在网页浏览器123上执行诸如JavaScript代码等的指令来确定这些特性中的一些。
如上文针对客户端链接模块122上的指纹生成模块220所描述的,由指纹生成模块220生成的指纹可以是散列的或是其他唯一标识格式。
在生成客户端120的指纹之后,指纹生成模块320将指纹本地存储在一个或多个数据存储设备中。指纹生成模块320还将指纹的指示符存储在客户端设备120上。指示符可以是可以被唯一地生成的任何字符串或其他值。在一个实施例中,指纹生成模块320将指示符存储在客户端设备120的网页存储器123上的cookie中。存储在客户端设备120上的指纹的指示符可以用于从本地数据存储设备取回指示的指纹。
将指纹的指示符而不是指纹本身存储在客户端设备120上的一个益处是,一个客户端设备120可以与多个指纹相关联。这可能是由于指纹生成方法导致的。例如,指纹可能是基于时间戳或网络地址生成的,并且因此同一个客户端设备120的指纹可能变化。由此,在客户端设备120上存储指纹的指示符使得上下文深层链接服务器110能够将客户端设备120与多个指纹相关联,而不必改变指示符的值。
上下文数据存储设备350存储与服务器链接模块115已经连接到或已经遇到的客户端设备120有关的上下文信息。如上文描述的,上下文信息可以包括平台类型(例如,移动或桌面)、以及客户端设备120的其他特性,例如在客户端设备120上执行的操作系统的类型和版本。存储在上下文数据存储设备350中的上下文信息还可以包括从客户端设备120接收的其他信息,例如,如上文描述的,从客户端设备120接收的由设备信息模块230收集的信息。这些可以包括客户端设备120上的安装应用的列表以及关于客户端设备120的其他详细信息。客户端设备120的每组上下文信息可以与唯一的客户端设备标识符相关联。在一些情况下,该标识符是由指纹生成模块220和/或指纹生成模块320生成的客户端设备的指纹。针对先前没有遇到过的每个新客户端设备120,服务器链接模块115可以向上下文数据存储设备350添加新的条目,该新的条目具有新客户端设备120的上下文信息以及其相关联的指纹。
客户端信息模块380收集关于客户端设备120的上下文信息以存储到上下文数据存储设备350中。在一个实施例中,如上文针对指纹生成模块320所描述的,客户端信息模块380从客户端设备120收集基于客户端设备120的特性的上下文信息,客户端设备120的特性是在由客户端设备120发出的请求中所暴露的。在一个实施例中,客户端信息模块380基于经由设备信息模块230从客户端设备120接收的信息,从客户端设备120接收上下文信息。
链接数据存储设备360存储生成的上下文深层链接和相关联的链接数据以及与上下文深度链接交互过的那些客户端设备120的指纹。如上文描述的,链接数据是可以由客户端设备120提交以用于请求生成新的上下文深层链接的数据,并且指纹是由指纹生成模块220和/或指纹生成模块320生成的客户端设备120的唯一标识符。一旦生成了新的上下文深层链接,服务器链接模块115就将该链接的条目以及任何相关联的链接数据存储在链接数据存储设备360中。一旦客户端设备120发送了与该上下文深层链接相关联的请求,就生成该客户端设备120的指纹。该指纹随后由服务器链接模块115存储在链接数据存储360中并且与链接数据存储设备360中的上下文深层链接相关联。
链接生成模块310响应于由客户端链接模块122发出的请求而生成上下文深层链接。响应于来自客户端链接模块122的生成上下文深层链接的请求,链接生成模块310生成具有唯一标识符的链接。如上文描述的,在一些实施例中,上下文深层链接是具有随机生成的查询字符串的URL。在一个实施例中,链接生成模块310还从客户端链接模块122接收链接数据。链接生成模块310将该链接数据连同生成的上下文深层链接的唯一标识符一起存储在链接数据存储设备360中。链接生成模块310随后将生成的上下文深层链接发送到客户端链接模块122。
指纹匹配模块330找到存储的指纹与客户端设备所指示的或针对客户端设备120新生成的指纹之间的匹配。指纹既被存储在存储客户端设备120的上下文信息的上下文数据存储设备350中,也被存储在存储上下文深层链接的链接数据的链接数据存储设备360中。
在一些情况下,上下文深层链接服务器110从客户端设备120接收与上下文深层链接相关联的请求,该请求包括唯一指纹的指示符,其中,指示符由指纹生成模块320先前存储在客户端设备120上。
在其他情况下,上下文深层链接服务器110从客户端设备120接收对包括指纹的任何链接数据的请求。该指纹可能已经由客户端链接模块122中的指纹生成模块220生成。
在另外的情况下,上下文深层链接服务器110从客户端设备120接收与不包括指纹指示符的上下文深层链接相关联的请求。相反,指纹生成模块320以上文描述的方法生成客户端设备120的指纹。
在以上的情况下,指纹匹配模块330在上下文数据存储设备350和链接数据存储设备360中搜索与从客户端设备120接收的指纹相匹配的指纹、由接收自客户端设备120的指纹指示符所指示的指纹、或者与由指纹生成模块320生成的新生成的指纹相匹配的指纹。在一个实施例中,当从客户端设备120接收的或者由客户端设备120指示的指纹与先前存储的指纹准确匹配时,指纹匹配模块330找到匹配。在其他实施例中,当从客户端设备120接收的或者由客户端设备120指示的指纹与先前存储的指纹在阈值数量的元素上匹配时(例如,这可能是当指纹由若干单独元素构成时的情况),指纹匹配模块330找到匹配。
当上下文数据存储设备350中存在匹配时,指纹匹配模块330向上下文响应模块340指示上下文数据存储设备350中存在匹配的指纹并且指示该匹配的指纹。当链接数据存储设备360中存在匹配时,指纹匹配模块330向链接数据模块370指示链接数据存储设备360中存在匹配的指纹并且指示该匹配的指纹。当不存在匹配时,指纹匹配模块330指示不存在匹配。
上下文响应模块340基于客户端设备120的指纹确定客户端设备120的上下文信息并且基于客户端设备的上下文信息向客户端设备120提供响应。
在从客户端设备120接收与上下文深层链接相关联的请求后,上下文响应模块340可以从指纹匹配模块330接收关于上下文数据存储设备350中的匹配指纹的指示。上下文响应模块340从上下文数据存储设备350取回匹配的上下文信息,以确定客户端设备120的合适的上下文以及对来自客户端设备120的请求的正确响应。
在一个实施例中,针对支持应用生态系统的客户端设备120,上下文响应模块340使用匹配的上下文信息来确定客户端设备120上是否安装了应用121,上下文深度链接包括针对该应用的链接数据。如上文所述,上下文信息可以包括安装在客户端设备210上的应用的列表。当该信息由上下文深层链接服务器110从应用121接收时,信息可以从与上下文响应模块340检查其安装状态的应用不同的应用121被接收。
如果安装了应用,则上下文响应模块340在响应中包括使得客户端设备120初始化(例如,打开或使其成为焦点)与上下文深层链接相关联的应用121的消息。例如,响应可以包括标识应用121的URL,其使得客户端设备120上的操作系统初始化应用。
如果没有安装应用121,则上下文响应模块340在响应中包括将客户端设备120重定向到应用生态系统的应用商店140的应用页面以使用户安装应用的消息。例如,响应可以包括标识应用商店对接应用中的应用121的着陆页面的URL,其使得客户端设备120上的操作系统初始化该应用商店对接应用并且使得该应用商店对接应用显示着陆页面。
在一个实施例中,当上下文响应模块340无法获得确定是否安装了应用121的上下文信息时,上下文响应模块340默认发送将客户端设备120重定向到应用商店140的消息。
在一个实施例中,上下文响应模块340使用匹配的上下文信息来确定客户端设备120的平台类型。一旦上下文响应模块340确定了客户端设备120的平台类型,上下文响应模块340就利用可以由客户端设备120的特定平台类型执行的响应来响应客户端设备120的请求。可以由上下文响应模块340用于确定客户端设备120的平台类型的上下文信息的示例包括操作系统类型和版本、用户代理信息、设备型号等。
当平台类型是包括应用生态系统的类型时,上下文响应模块340可以根据应用是否被安装而在响应中包括上文描述的响应中的一个。
当平台类型是不支持应用生态系统的平台类型时,上下文响应模块340可以在响应中包括使得客户端设备120被重定向到由客户端设备120支持的替选元素的消息。该替选元素向用户呈现与应用有关的信息并且还可以包括允许用户向支持应用生态系统的用户客户端设备120发送另一个或相同的上下文深层链接的接口选项。
例如,客户端设备120可以是具有不支持应用生态系统的操作系统的台式计算机,并且与上下文深层链接相关联的请求可能已经由上下文深层链接服务器110(例如,通过点击上下文深层链接的超链接)从客户端设备120的网页浏览器123接收。由上下文响应模块340提供的响应可以包括将网页浏览器123重定向到替选着陆页面,该替选着陆页面包括使用户向支持应用生态系统的用户智能电话发送文本消息的选项。被发送到智能电话的文本消息可以包括相同的上下文深层链接或具有相同的关联链接数据的新生成的上下文深层链接。作为另一个示例,上下文响应模块340可以向客户端设备120发送将客户端设备120的网页浏览器123重定向到介绍应用121或显示应用的基于网络的版本的标题或着陆页面。
在向客户端设备发送对上下文深层链接的上下文响应之后,上下文响应模块340修改链接数据存储设备360中的、针对具有发出与上下文深度链接相关联的请求的客户端设备120的指纹的上下文深度链接的条目。
链接数据模块370利用链接数据来响应来自客户端设备120的链接数据请求。该请求可以由客户端设备120的应用121发出。在接收到来自客户端设备120的对链接数据的请求之后,链接数据模块370可以从指纹匹配模块330接收对链接数据存储设备360中的匹配的指纹的指示。链接数据模块370从链接数据存储设备360取回针对匹配指纹的匹配链接数据并且将该链接数据返回给客户端设备120。
在许多情况下,指纹匹配模块330可能找不到匹配的指纹。链接数据模块370可以在应用121每次被初始化时从客户端设备120的应用121接收链接数据请求。然而,仅在一些情况下链接数据是可用的。这些情况包括上下文深层链接服务器110最近从其上安装了应用的客户端设备120接收到与上下文深层链接相关联的请求的情况。在这些情况下,指纹与链接数据存储设备360中的链接数据相关联。
在一个实施例中,链接数据模块370还确定指纹被添加到链接数据存储设备360中的链接数据条目时的时间戳。如果该时间戳超过特定范围(例如,两小时),则链接数据模块370不取回用于发送到客户端设备120的相关联的链接数据。这使链接数据“失效”并且可能有助于防止具有指纹的第一客户端设备120发送与上下文深层链接相关联的请求而具有相同指纹的第二客户端设备120之后请求相关联的链接数据的场景。如果没有使旧的请求失效的手段,则在这些情况下,链接数据模块370可能将链接数据发送到第二客户端设备120,但是该链接数据不是用于第二客户端设备120的。然而,这样的场景是不太可能发生的,而是仅在所涉及的两个客户端设备120具有足够相似的特性以使得两个客户端设备120的指纹相同时才会发生。
在一个实施例中,一旦链接数据被成功地取回,链接数据模块370就将该链接数据的条目从链接数据存储设备360中移除。这意味着每个链接数据条目仅被使用一次来传递链接数据。
使用上下文深层链接的示例性应用搜索引擎
在一些实施例中,服务器链接模块115还包括服务器深层链接数据库,该数据库包括针对每个其支持的应用121的位置并且与客户端设备120上的深层链接服务器260类似。此外,针对服务器深层链接数据库中的位置的每个条目可以与针对该位置的各种元数据(例如,标题)相关联。这些位置可以从每个客户端链接模块122的深层链接数据库260接收,可以直接从应用的开发者接收,或者可以在客户端链接模块122收集用户在应用中浏览过的位置时从客户端链接模块122接收。
服务器深层链接数据库允许服务器链接模块115针对存储在服务器深层链接数据库中的各种位置从客户端设备120接收对于关联应用的搜索请求。服务器链接模块115通过提供分级的搜索结果来响应这些搜索请求,由此提供对应用内部的位置的搜索能力。分级的搜索结果中的每个条目包括应用的位置。搜索结果可以根据流行度或针对每个位置收集的元数据被分级并且被存储在服务器深层链接数据库中。位置结果还可以基于在上下文数据存储设备350中存储的用户的客户端设备120的上下文信息,来指示用户的客户端设备120是否安装了相关联的应用。
如果用户选择这些位置结果中的一个,则服务器链接模块115利用来自结果的位置和客户端设备120的指纹来在链接数据存储设备360中建立条目。服务器链接模块115利用与关联于相同链接数据的上下文深层链接的响应类似的响应来对用户的客户端设备120做出响应,如上文针对上下文响应模块340所描述的那样。例如,如果用户的客户端设备安装了相关联的应用,则响应将使得用户的客户端设备120初始化该应用并且从搜索结果取回指示位置的链接数据。
示例性流程
图4是示出了根据一个实施例的用于生成上下文深层链接的示例性方法400的流程图。在一个实施例中,图4将方法400的步骤归到上下文深层链接服务器110的服务器链接模块115。然而,步骤中的一些或全部可以由其他元件执行。此外,一些实施例可以并行地执行步骤、以不同地顺序执行步骤、或执行不同的步骤。此外,应该理解,在一个示例性实施例中,步骤和/或模块可以被体现为指令,例如可以由参照图7描述的处理器702执行的指令724。
上下文深层链接服务器110从客户端设备120接收410对具有指示应用121的特定配置的链接数据的上下文深层链接的链接建立请求。如上文所述,应用121的配置可以包括应用121中的位置或其他配置信息。
上下文深层链接服务器110生成420包括随机生成的标识符的上下文深层链接。如上文所述,上下文深层链接可以是URL,其具有随机生成的标识符作为该URL的查询字符串。
上下文深层链接服务器110存储430与生成的上下文深层链接相关联的链接数据。如上文所述,通过引用与该链接数据相关联的上下文深层链接来取回该链接数据。上下文深层链接服务器110向客户端设备120发送440该上下文深层链接。
图5是示出了根据一个实施例的、利用基于上下文的响应来对与上下文深层链接相关联的请求做出响应的示例性方法500的流程图。在一个实施例中,图5将方法500的步骤归到上下文深层链接服务器110的服务器链接模块115。然而,步骤中的一些或全部可以由其他元件执行。此外,一些实施例可以并行地执行步骤、以不同的顺序执行步骤、或执行不同的步骤。此外,注意到,在一个示例实施例中,步骤和/或模块可以体现为指令,例如由参照图7描述的处理器702执行的指令724。
上下文深层链接服务器110从客户端设备120接收510与有效上下文深层链接相关联的请求。如上文所述,上下文深层链接可以由超链接表示,并且请求可以是HTTP请求。
上下文深层链接服务器110在520确定客户端设备120是否存储了先前生成的指纹的指示符。这可以被存储在客户端设备120上的cookie中。先前生成的指纹是在与客户端设备120的先前相遇期间由上下文深层链接服务器110先前生成的指纹。换言之,上下文深层链接服务器110确定之前是否已经遇到过特定的客户端设备120。如以上所述,指纹是唯一的并且是基于客户端设备120的特性而生成的。
如果客户端设备120不具有先前存储的指纹的指示符,则上下文深层链接服务器110基于客户端设备的多个特性而生成530客户端设备的唯一指纹。如上文所述,该指纹可以被存储在上下文深层链接服务器110上并且可以由存储在客户端设备120上的指示符指示。
之后,上下文深层链接服务器110基于客户端设备120的特性而确定550请求的上下文信息并且将上下文信息与生成的指纹相关联。该上下文信息可以包括诸如设备型号、操作系统类型以及上文描述的其他特性等的信息。上下文信息和指纹可以被存储在上下文深层链接服务器110上。
或者,如果客户端设备120具有先前存储的指纹,则上下文深层链接服务器110取回540由与先前生成的指纹相匹配的本地存储指纹所标识的客户端设备120的上下文信息。如上文描述的,上下文深层链接服务器110将存储在客户端设备120上的指纹与本地存储的指纹相匹配以找到被存储在上下文深层链接服务器110上的相关联的上下文信息。
上下文深层链接服务器110向客户端设备发送560基于客户端设备的上下文而选择的响应,以使得该响应能在客户端设备120上操作。如上文所述,基于上下文信息,该响应可以是不同的。例如,如果客户端设备120被确定为不支持应用生态系统的台式计算机,则上下文深层响应服务器110可以发送将客户端设备120重定向到着陆页面的响应。如果客户端设备120支持应用生态系统,则上下文深层链接服务器110可以发送使得客户端设备初始化与上下文深层链接的链接数据相关联的应用的响应。如果上下文信息指示应用未被安装,则上下文深层链接服务器110可以发送将用户重定向到应用商店的响应。
图6是示出了根据一个实施例的、请求和发送链接数据的示例性交互600的交互图。在一个实施例中,图6将交互600的步骤归到应用121和上下文深层链接服务器110。然而,步骤中的一些或全部可以由其他元件执行。此外,一些实施例可以并行地执行步骤、以不同的顺序执行步骤、或执行不同的步骤。此外,注意到,在一个示例性实施例中,步骤和/或模块可以被体现为指令,例如可以由参照图7描述的处理器702执行的指令724。
最初,应用121被初始化610或被启动。如上文描述的,这可以在客户端设备120响应于用户与上下文深层链接交互而自动地启动应用121时发生。例如,来自上下文深层链接的响应可以使得客户端设备120将用户定向到应用商店以安装应用121。一旦安装了应用121,其可以自动地初始化或由用户初始化。应用121基于客户端设备120的多个特性生成620唯一的指纹。特性可以包括硬件标识符、IP地址、或可以唯一地标识客户端设备120的客户端设备120的其他标识符或标识符组合。应用121向上下文深层链接服务器110发送包括链接数据请求和指纹的消息630。
上下文深层链接服务器110选择由至少与所接收的指纹的阈值数量的元素相匹配的本地存储指纹所标识的链接数据。本地存储的指纹被存储在上下文深层链接服务器110上。一旦找到与从应用121接收的指纹相匹配的本地存储的指纹,上下文深层链接服务器110就选择与指纹相关联的链接数据。该链接数据可以被存储在链接数据存储设备360中。
上下文深层链接服务器110向应用121发送具有所选择的链接数据的消息650。
应用121基于接收到的链接数据来对自身进行配置,链接数据具有与应用的特定配置相对应的一个或多个配置参数。这可以在上文针对应用配置模块250描述的相同方法中发生。
示例性机器架构
图7是示出了能够从机器可读介质读取指令并且在处理器(或控制器)中执行指令的示例性机器的各部件的框图。具体地,图7示出了具有计算机系统700的示例形式的机器的图形化表示。计算机系统700可以被用于执行指令724(例如,程序代码或软件)以使得机器执行本文描述的方法(或过程)中的一个或多个。在替选的实施例中,机器可以作为独立设备或作为连接到其他机器的相连(例如,联网)设备操作。在联网部署中,机器可以作为服务器-客户端网络环境中的服务器机器或客户端机器操作,或者作为对等(或分布式)网络环境中的对等机器操作。计算机系统700被用于执行在图1-6中描述的过程和功能。
机器可以是服务器计算机、客户端计算机、个人计算机(PC)、平板PC、机顶盒(STB)、智能电话、物联网(IoT)设备、网络路由器、交换机或网桥、或能够(按照顺序或不按照顺序地)执行指定要由该机器执行的动作的指令724的任何机器。此外,尽管仅示出了单个的机器,术语“机器”还应该包括独立地或联合地执行指令724以执行本文讨论的方法中的任一个或更多个的任何机器集合。
示例性计算机系统700包括一个或多个处理单元(一般地,处理器702)。处理器702例如是中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、控制器、状态机、一个或多个专用集成电路(ASIC)、一个或多个射频集成电路(RFIC)、或上述的任何组合。计算机系统700还包括主存储器704。计算机系统可以包括存储单元716。处理器702、存储器704,并且存储单元716经由总线708通信。
此外,计算机系统706还包括静态存储器706、显示驱动器710(例如,用于驱动等离子体显示屏(PDP)、液晶显示器(LC)或投影仪)。计算机系统700还可以包括字母数字输入设备712(例如,键盘)、光标控制设备714(例如,鼠标、跟踪球、游戏杆、运动传感器或其他指点设备)、信号生成设备718(例如,扬声器)以及网络接口设备700,这些设备也被配置为经由总线708通信。
存储单元716包括其上存储有体现本文描述的方法或功能中的任何一个或更多个的指令724(例如,软件)的机器可读介质722。在由计算机系统700执行期间,指令724还可以完全地或至少部分地驻留在主存储器704或处理器702内(例如,在处理器的高速缓存内),主存储器704和处理器702还构成机器可读介质。指令724可以经由网络接口设备720、通过网络726被发送或接收。
尽管在示例性实施例中将机器可读介质722显示为静态介质,但术语“机器可读介质”应该被理解为包括能够存储指令724的单个介质或多个介质(例如,集中式或分布式数据库或相关联的缓存或服务器)。术语“机器可读介质”还应该被理解为包括能够存储由机器执行且使得机器执行本文公开的方法中的任一个或更多个的指令724的任何介质。术语“机器可读介质”包括——但不限于——以固态存储器、光介质和磁介质形式的数据存储库。
其他考虑
本文描述的上下文深层链接系统提供了多种优点和益处,包括使上下文深层链接在客户端设备的任何上下文中都能工作的能力。相反地,取决于客户端设备的上下文,在没有理解客户端设备的上下文的情况下所生成的深层链接将根据客户端设备的上下文而提供可能不能正确工作的链接。这会在客户端设备上产生错误消息。相反地,本公开可以产生在任何上下文中都不导致错误的上下文深层链接。
为实现该目的,在一个实施例中,如上文公开的,上下文深层链接系统利用唯一指纹来标识客户端设备,并且收集该客户端设备的上下文信息,以将该上下文信息与指纹相关联。由于系统是跨多个应用被使用的,因此其能够跨平台地收集上下文信息并且能够得到比每个应用能够单独收集的更多的关于每个客户端设备的信息。
另一个优点是,系统可以将链接数据从应用或请求上下文深层链接的其他实体传送到在链接数据中指示并且该链接数据提供其特定配置的任何其他应用。这与其他系统不同,其他系统没有跨应用和平台地被标准化,因此在范围上受到限制。
在整个本说明书中,多个实例可以实现在单个实例中描述的部件、操作或结构。尽管一个或更多个方法中的各个操作被示出和描述为单独的操作,但各个操作中的一个或更多个可以被并行地执行,并且不需要以所示出的顺序执行这些操作。在示例性配置中表示为分开的部件的结构和功能可以被实现为组合的结构或部件。类似地,表示为单个部件的结构和功能可以被实现为分开的部件。这些以及其他变型、修改、添加以及改进都落入本发明所要求保护的主题的范围内。
某些实施例在本文中被描述为包括逻辑或若干部件、模块或机构,例如,如图1、图2和图3中所示出的。模块可以构成软件模块(例如,在机器可读介质上或传输信号中体现的代码)或硬件模块。硬件模块是能够执行某些操作的有形单元并且可以以特定的方式被配置或布置。在示例性实施例中,一个或更多个计算机系统(例如,独立计算机系统、客户端或服务器计算机系统)或一个计算机系统的一个或更多个硬件模块(例如,处理器或一组处理器)可以由软件(例如,应用或应用部分)配置为能够执行本文描述的某些操作的硬件模块。
在各种实施例中,硬件模块可以被机械地或电气地实现。例如。硬件模块可以包括被永久配置为执行某些操作的专用电路或逻辑(例如,被配置为诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)的专用处理器)。硬件模块还可以包括由软件暂时地配置为执行某些指令的可编程逻辑或电路(例如,被配置为包括在通用处理器或其他可编程处理器内)。应该理解的是,对在专用或永久配置的电路中还是在暂时配置的电路(例如,由软件配置)中机械地实现硬件模块这一决定是由于考虑到成本和时间方面的因素。
本文描述的示例性方法的各种操作可以至少部分地由一个或多个处理器(例如,处理器702)执行,处理器(例如,由软件)被暂时地配置或永久地配置为执行相关的操作。不论暂时地还是永久地配置,这样的处理器都可以构成操作成执行一个或更多个操作或功能的处理器实现的模块。在一些示例性实施例中,本文中所引用的模块包括处理器实现的模块。
一个或更多个处理器也可以操作成在“云计算”环境中或作为“软件即服务”(SaaS)支持相关操作的执行。例如,至少一些操作可以由一组计算机(作为包括处理器的机器的示例)来执行,这些操作可以经由网络(例如,互联网)以及经由一个或更多个合适的接口(例如,应用程序接口(API))被访问。
某些操作的执行可以分布在一个或多个处理器上,不是仅驻留在单个的机器内,而是被部署在若干机器上。在一些示例实施例中,一个或多个处理器702或处理器实现的模块可以位于单个的地理位置上(例如,在家庭环境、办公环境、或服务器群组内)。在其他示例性实施例中,一个或多个处理器或处理器实现的模块可以分布在多个地理位置上。
本说明书的一些部分是在以下方面中介绍的:对在机器存储器(例如,计算机存储器)内被存储为位或二进制数字信号的数据进行操作的算法或符号表示。这些算法或符号表示是由数据处理领域中的普通技术人员用来将他们的工作实质传达给该领域的其他技术人员的技术的示例。如本文使用的,“算法”是产生期望结果的操作或类似处理的自洽序列。在这样的背景下,算法和操作涉及对物理量的物理操作。通常,但非必须地,这样的量可以采取能够由机器存储、访问、传送、组合、比较或其他操纵的电、磁或光信号的形式。主要出于通用的原因,使用诸如“数据”、“内容”、“位”、“值”、“元素”、“符号”、“字符”、“项”、“数字”、“数值”等词汇来指代这样的信号有时是方便的。然而,这些词汇仅是便利的标签而不是与适合的物理量相关联。
除非专门指出,否则本文中的使用诸如“处理”、“计算”、“运算”、“确定”、“呈现”、“显示”等词汇所进行的讨论可以指代机器(例如,处理器)的动作或过程,该机器对被表示为一个或多个存储器(例如,易失性存储器、非易失性存储器或其组合)、寄存器或接收、存储、传送、或显示信息的其他机器部件内的物理(例如,电、磁、或光)量的数据进行操纵或变换。
如本文中使用的,“一个实施例”或“实施例”是指结合该实施例描述的特定元件、特征、结构或特征被包括在至少一个实施例中,在说明书的不同位置中出现的短语“在一个实施例中”不一定都指同一个实施例。
可以使用表述“耦合”和“连接”以及其衍生词来描述一些实施例。例如,可以使用术语“耦合”来描述一些实施例以指示两个或更多个元件直接地物理接触或电接触。然而,术语“耦合”还可以表示两个或更多个元件不与彼此直接接触,但仍然与彼此共同操作或交互。实施例不受这样的上下文的限制。
如本文使用的,术语“包括”、“包含”、“含有”、“具有”、“有”或其任何其他变形旨在覆盖非排他性的包含。例如,包括元件列表的过程、方法、物品、或装置不一定仅受限于这些元件,而是可以包括没有明确列出的、或这些过程、方法、物品、或装置所固有的其他元件。此外,除非明确地相反地陈述,否则,“或”指代开放性的或而不是排他性的或。例如,条件A或B由以下中的任何一个满足:A为真(或存在)并且B为伪(或不存在)、A为伪(或不存在)并且B为真(或存在)、以及A和B都为真(或存在)。
此外,本文中采用“一”或“一个”来描述实施例的元件或部件。这仅是出于方便并且为了给出一般性的发明观念。这样的描述应该被理解为包括一个或至少一个,并且单数形式还包括复数形式,除非其明显地是指单数。
通过阅读本公开内容,本领域技术人员将理解,可以通过本文公开的原理实现针对用于生成和响应上下文深层链接的系统和过程的额外的替选结构和功能设计。由此,尽管已经示出和描述了特定的实施例和应用,但应该理解的是,所公开的实施例不限于本文公开的确切的构造和部件。对本领域技术人员显而易见的是,可以在不背离在所附的权利要求中限定的精神和范围的前提下对本文公开的方法和装置的布置、操作和细节做出各种修改、改变和变化。
Claims (40)
1.一种方法,包括:
在服务器处,从客户端设备接收与有效上下文深层链接相关联的请求,所述上下文深层链接与指示应用的特定配置的链接数据相关联;
响应于确定所述客户端设备存储有先前生成的指纹的指示符,取回所存储的所述客户端设备的上下文信息,所述客户端设备与由所述先前生成的指纹的指示符所指示的本地存储的指纹相关联;
将所述有效上下文深层链接的链接数据与所述本地存储的指纹相关联;
将基于所述客户端设备的上下文信息而选择的响应发送给所述客户端设备;
从所述客户端设备的应用接收链接数据请求和由所述应用生成的指纹;
选择由所述本地存储的指纹所标识的链接数据,所述本地存储的指纹至少与所接收的指纹的阈值数量的元素相匹配;以及
将所述链接数据发送给所述客户端设备的所述应用。
2.根据权利要求1所述的方法,还包括:
响应于确定所述客户端设备没有所述先前生成的指纹的指示符,基于所述客户端设备的多个特性而生成所述客户端设备的唯一指纹,并且基于所述客户端设备的特性来确定所述请求的上下文信息。
3.根据权利要求1所述的方法,其中,所述客户端设备的上下文信息指示不支持应用生态系统的环境,并且其中,所述响应指示网络位置,所述网络位置包括允许用户将所述有效上下文深层链接转发到支持所述应用生态系统的所述用户的第二客户端设备的接口。
4.根据权利要求1所述的方法,其中,所述客户端设备的上下文信息指示支持应用生态系统的环境并且指示所述客户端设备上安装了在所述有效上下文深层链接中所引用的应用,并且其中,所述响应包括使得所述客户端设备初始化在所述有效上下文深层链接中所引用的应用的数据。
5.根据权利要求1所述的方法,其中,所述客户端设备的上下文信息指示支持应用生态系统的环境并且指示所述客户端设备上没有安装在所述有效上下文深层链接中所引用的应用,并且其中,所述响应包括如下数据,该数据使得所述客户端设备初始化所述客户端设备上安装的应用商店应用,并且将在所述有效上下文深层链接中所引用的应用的标识符传送至所述应用商店应用。
6.根据权利要求1所述的方法,其中,所存储的上下文信息包括基于先前从所述客户端设备上的第二应用接收的信息检测到的、被安装在所述客户端设备上的应用的列表。
7.根据权利要求1所述的方法,其中,所述链接数据指示所述应用中的特定位置。
8.一种系统,包括:
处理器;以及
非暂态计算机可读存储介质,其上存储有指令,该指令在由所述处理器执行时使得所述处理器:
从客户端设备接收与有效上下文深层链接相关联的请求,所述上下文深层链接与指示应用的特定配置的链接数据相关联;
响应于确定所述客户端设备存储有先前生成的指纹,取回由与所述先前生成的指纹相匹配的本地存储的指纹所标识的客户端设备的上下文信息;
将所述有效上下文深层链接的链接数据与所述本地存储的指纹相关联;
向所述客户端设备发送基于所述客户端设备的上下文信息选择的响应;
从所述客户端设备的应用接收链接数据请求和由所述应用生成的指纹;
选择由所述本地存储的指纹所标识的链接数据,所述本地存储的指纹至少与所接收的指纹的阈值数量的元素相匹配;以及
将所述链接数据发送给所述客户端设备的所述应用。
9.根据权利要求8所述的系统,其中,所述非暂态计算机可读存储介质还包括存储于其上的指令,该指令当由所述处理器执行时使得所述处理器:
响应于确定所述客户端设备没有所述先前生成的指纹的指示符,基于所述客户端设备的多个特性来生成所述客户端设备的唯一指纹,并且基于所述客户端设备的特性来确定所述请求的上下文信息。
10.根据权利要求8所述的系统,其中,所述客户端设备的上下文信息指示支持应用生态系统的环境并且指示所述客户端设备上安装了在所述有效上下文深层链接中所引用的应用,并且其中,所述响应包括使得所述客户端设备初始化在所述有效上下文深层链接中所引用的应用的数据。
11.根据权利要求8所述的系统,其中,所述客户端设备的上下文信息指示支持应用生态系统的环境并且指示所述客户端设备上没有安装在所述有效上下文深层链接中所引用的应用,并且其中,所述响应包括如下数据,该数据使得所述客户端设备初始化被安装在所述客户端设备上的应用商店应用,并且将在所述有效上下文深层链接中所引用的应用的标识符传送至所述应用商店应用。
12.根据权利要求8所述的系统,其中,所述非暂态计算机可读存储介质还在其上存储有指令,该指令当由所述处理器执行时使得所述处理器:
从所述客户端设备接收用于搜索数据库的、具有标识符的搜索请求,所述数据库包括针对多个应用的多个位置条目;
基于所述标识符在所述数据库中搜索多个候选位置条目;
基于所述客户端设备的上下文信息以及每个候选链接数据条目的相关元数据来对所述多个候选位置条目进行分级;
将指示被分级的多个候选位置条目的列表提供给所述客户端设备;
接收对所述列表中的多个候选位置条目中的一个的选择;以及
将与包括所选择的候选位置条目的链接数据相关联的第二上下文深层链接发送给所述客户端设备。
13.一种非暂态计算机可读存储介质,被配置为存储指令,该指令当由处理器执行时使得所述处理器:
从客户端设备接收与有效上下文深层链接相关联的请求,所述上下文深层链接与指示应用的特定配置的链接数据相关联;
响应于确定所述客户端设备存储有先前生成的指纹,取回由与所述先前生成的指纹相匹配的本地存储的指纹所标识的客户端设备的已存储上下文信息;
将所述有效上下文深层链接的链接数据与所述本地存储的指纹相关联;
向所述客户端设备发送基于所述客户端设备的上下文信息而选择的响应;
从所述客户端设备的应用接收链接数据请求和由所述应用生成的指纹;
选择由本地存储的指纹所标识的链接数据,所述本地存储的指纹至少与所接收的指纹的阈值数量的元素相匹配;以及
将所述链接数据发送给所述客户端设备的所述应用。
14.根据权利要求13所述的计算机可读存储介质,其中,所述非暂态计算机可读存储介质还在其上存储有指令,该指令当由所述处理器执行时使得所述处理器:
响应于确定所述客户端设备没有所述先前生成的指纹的指示符,基于所述客户端设备的多个特性来生成所述客户端设备的唯一指纹,并且基于所述客户端设备的特性来确定所述请求的上下文信息。
15.根据权利要求13所述的计算机可读存储介质,其中,所述客户端设备的上下文信息指示支持应用生态系统的环境并且指示所述客户端设备上安装了在所述有效上下文深层链接中所引用的应用,并且其中,所述响应包括使得所述客户端设备初始化在所述有效上下文深层链接中所引用的应用的数据。
16.根据权利要求13所述的计算机可读存储介质,其中,所述客户端设备的上下文信息指示支持应用生态系统的环境并且指示所述客户端设备上没有安装在所述有效上下文深层链接中所引用的应用,并且其中,所述响应包括如下数据,该数据使得所述客户端设备初始化被安装在所述客户端设备上的应用商店应用,并且将在所述有效上下文深层链接中所引用的应用的标识符传送至所述应用商店应用。
17.根据权利要求13所述的计算机可读存储介质,其中,所存储的上下文信息包括基于先前从所述客户端设备上的第二应用接收的信息检测到的、被安装在所述客户端设备上的应用的列表。
18.根据权利要求13所述的计算机可读存储介质,其中,所述上下文深层链接与来自第二客户端设备的应用的、与所述链接数据一起提交的在先链接生成请求相关联。
19.根据权利要求13所述的计算机可读存储介质,其中,所述非暂态计算机可读存储介质还包括存储于其上的指令,该指令当由所述处理器执行时使得所述处理器:
从所述客户端设备接收用于搜索数据库、具有标识符的搜索请求,所述数据库包括针对多个应用的多个位置条目;
基于所述标识符在所述数据库中搜索多个候选位置条目;
基于所述客户端设备的上下文信息以及每个候选链接数据条目的相关元数据来对所述多个候选位置条目进行分级;
将指示被分级的多个候选位置条目的列表提供给所述客户端设备;
接收对所述列表中的多个候选位置条目中的一个的选择;以及
将与包括所选择的候选位置条目的链接数据相关联的第二上下文深层链接发送给所述客户端设备。
20.一种方法,包括:
从客户端设备接收与有效上下文深层链接相关联的请求,所述上下文深层链接与指示应用的特定配置的链接数据相关联;
将所述有效上下文深层链接的链接数据与所述客户端设备相关联;
从所述客户端设备的应用接收链接数据请求;
选择与所述客户端设备相关联的标识的链接数据;以及
将所述链接数据发送给所述客户端的所述应用。
21.一种方法,包括:
由客户端设备将与上下文深层链接相关联的请求发送给服务器,所述上下文深层链接与指示应用的特定配置的链接数据相关联;
从所述服务器接收根据所述客户端设备的上下文信息的响应;
由所述客户端设备初始化被存储在所述客户端设备上的所述应用;
由所述客户端设备响应于初始化所述应用而将所述应用对链接数据的请求发送给所述服务器;
由所述客户端设备的所述应用基于所述客户端设备的多个特性而生成所述客户端设备的唯一指纹;
由所述客户端设备的所述应用将所述唯一指纹发送给所述服务器;以及
从所述服务器接收与所述上下文深层链接相关联的链接数据;
由所述客户端设备根据所述链接数据中指示的配置来配置所述应用。
22.根据权利要求21所述的方法,其中,由第二客户端设备上的第二应用从所述服务器请求所述上下文深层链接,所述方法还包括:
从所述第二客户端设备接收所述上下文深层链接。
23.根据权利要求21所述的方法,其中,所述链接数据与被存储在所述服务器上的远程指纹相关联,所述远程指纹与由所述应用生成的生成指纹的至少阈值数量的元素相匹配。
24.根据权利要求21所述的方法,其中,所述上下文信息指示所述客户端设备上没有安装在所述有效上下文深层链接中所引用的应用,所述方法还包括:
由所述客户端设备根据包括在所述响应中的数据来初始化应用商店应用;
由所述客户端设备的应用商店应用向所述客户端设备的用户提供与由包括在所述响应中的数据所指示的应用相对应的着陆页面;以及
响应于接收到安装所述应用的指示,安装所述应用。
25.根据权利要求21所述的方法,其中,由所述链接数据指示的所述应用的配置包括所述应用内的位置,所述方法还包括:
由所述客户端设备的所述应用向所述客户端设备的用户提供由所述链接数据指示的所述应用内的位置。
26.根据权利要求21所述的方法,其中,所述链接数据通过指示符指示所述应用的配置,所述方法还包括:
由所述客户端设备的所述应用,并且利用所述应用的配置存储设备,基于所述指示符来确定所述应用的配置;以及
由所述客户端设备的所述应用基于所述配置为所述客户端设备的用户配置所述应用。
27.一种系统,包括:
处理器;以及
非暂态计算机可读存储介质,其具有存储于其上的指令,该指令当由所述处理器执行时使得所述处理器:
通过客户端设备将与上下文深层链接相关联的请求发送给服务器,所述上下文深层链接与指示应用的配置的链接数据相关联;
从所述服务器接收根据所述客户端设备的上下文信息的响应;
通过所述客户端设备初始化被存储在所述客户端设备上的所述应用;
响应于初始化所述应用,通过所述客户端设备将所述应用对链接数据的请求发送给所述服务器;
通过所述客户端设备上的所述应用,基于所述客户端设备的多个特性生成所述客户端设备的唯一指纹;
通过所述客户端设备的所述应用,将所述唯一指纹发送给所述服务器;以及
从所述服务器接收与所述上下文深层链接相关联的链接数据;
通过所述客户端设备,根据所述链接数据中指示的配置来配置所述应用。
28.根据权利要求27所述的系统,其中,由第二客户端设备上的第二应用从所述服务器请求所述上下文深层链接,并且其中,所述非暂态计算机可读存储介质还在其上存储有指令,该指令当由所述处理器执行时使得所述处理器:
从所述第二客户端设备接收所述上下文深层链接。
29.根据权利要求27所述的系统,其中,所述链接数据与被存储在所述服务器上的远程指纹相关联,所述远程指纹与由所述应用生成的生成指纹的至少阈值数量的元素相匹配。
30.根据权利要求27所述的系统,其中,所述上下文信息指示所述客户端设备上没有安装在所述有效上下文深层链接中所引用的应用,并且其中,所述非暂态计算机可读存储介质还在其上存储有指令,该指令当由所述处理器执行时使得所述处理器:
通过所述客户端设备,根据包括在所述响应中的数据来初始化应用商店应用;
通过所述客户端设备的应用商店应用,向所述客户端设备的用户提供与由包括在所述响应中的数据所指示的应用相对应的着陆页面;以及
响应于接收到安装所述应用的指示,安装所述应用。
31.根据权利要求27所述的系统,其中,由所述链接数据指示的所述应用的配置包括所述应用内的位置,并且其中,所述非暂态计算机可读存储介质还在其上存储有指令,该指令当由所述处理器执行时使得所述处理器:
通过所述客户端设备的所述应用选择由所述链接数据指示的所述应用内的位置。
32.根据权利要求27所述的系统,其中,所述链接数据通过指示符指示所述应用的配置,并且其中,所述非暂态计算机可读存储介质还在其上存储有指令,该指令当由所述处理器执行时使得所述处理器:
通过所述客户端设备的所述应用,并且利用所述应用的配置存储设备,基于所述指示符来确定所述应用的配置;
通过所述客户端设备的所述应用,基于所述配置为所述客户端设备的用户配置所述应用。
33.一种非暂态计算机可读存储介质,其被配置为存储指令,该指令当由处理器执行时使得所述处理器:
通过客户端设备将与上下文深层链接相关联的请求发送给服务器,所述上下文深层链接与指示应用的配置的链接数据相关联;
从所述服务器接收根据所述客户端设备的上下文信息的响应;
通过所述客户端设备初始化被存储在所述客户端设备上的所述应用;
响应于初始化所述应用,通过所述客户端设备将所述应用对链接数据的请求发送给所述服务器;
通过所述客户端设备的所述应用,基于所述客户端设备的多个特性生成所述客户端设备的唯一指纹;以及
通过所述客户端设备的所述应用将所述唯一指纹发送给所述服务器;以及
从所述服务器接收与所述上下文深层链接相关联的链接数据;
通过所述客户端设备,根据所述链接数据中指示的配置来配置所述应用。
34.根据权利要求33所述的计算机可读存储介质,其中,由第二客户端设备上的第二应用从所述服务器请求所述上下文深层链接,并且其中,所述非暂态计算机可读存储介质还包括存储于其上的指令,该指令当由所述处理器执行时使得所述处理器:
从所述第二客户端设备接收所述上下文深层链接。
35.根据权利要求33所述的计算机可读存储介质,其中,所述链接数据与被存储在所述服务器上的远程指纹相关联,所述远程指纹与由所述应用生成的生成指纹的至少阈值数量的元素相匹配。
36.根据权利要求33所述的计算机可读存储介质,其中,所述上下文信息指示所述客户端设备上没有安装在所述有效上下文深层链接中所引用的应用,并且其中,所述非暂态计算机可读存储介质还包括存储于其上的指令,该指令当由所述处理器执行时使得所述处理器:
通过所述客户端设备,根据包括在所述响应中的数据来初始化应用商店应用;
通过所述客户端设备的应用商店应用向所述客户端设备的用户提供与由包括在所述响应中的数据所指示的应用相对应的着陆页面;以及
响应于接收到安装所述应用的指示,安装所述应用。
37.根据权利要求33所述的计算机可读存储介质,其中,由所述链接数据指示的所述应用的配置包括所述应用内的位置,并且其中,所述非暂态计算机可读存储介质还包括存储于其上的指令,该指令当由所述处理器执行时使得所述处理器:
通过所述客户端设备的所述应用选择由所述链接数据指示的所述应用内的位置。
38.根据权利要求33所述的计算机可读存储介质,其中,所述链接数据通过指示符指示所述应用的配置,并且其中,所述非暂态计算机可读存储介质还包括存储于其上的指令,该指令当由所述处理器执行时使得所述处理器:
通过所述客户端设备的所述应用,并且利用所述应用的配置存储设备,基于所述指示符来确定所述应用的配置;以及
通过所述客户端设备的所述应用,基于所述配置为所述客户端设备的用户配置所述应用。
39.一种方法,包括:
由客户端设备将与上下文深层链接相关联的请求发送给服务器,所述上下文深层链接与指示应用的配置的链接数据相关联;
从所述服务器接收根据所述客户端设备的上下文信息的响应;
由所述客户端设备初始化被存储在所述客户端设备上的所述应用;
响应于初始化所述应用,由所述客户端设备将所述应用对链接数据的请求发送给所述服务器;以及
从所述服务器接收与所述上下文深层链接相关联的所述链接数据;
由所述客户端设备根据所述链接数据中指示的配置来配置所述应用。
40.根据权利要求39所述的方法,其中,所述链接数据通过指示符指示所述应用的配置,所述方法还包括:
由所述客户端设备的所述应用基于所述指示符,并且利用所述应用的配置存储单元,来确定所述应用的配置;以及
由所述客户端设备的所述应用基于所述配置为所述客户端设备的用户配置所述应用。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462079512P | 2014-11-13 | 2014-11-13 | |
US62/079,512 | 2014-11-13 | ||
US201462096833P | 2014-12-24 | 2014-12-24 | |
US62/096,833 | 2014-12-24 | ||
US14/935,301 US10057741B2 (en) | 2014-11-13 | 2015-11-06 | Contextual deep linking of applications |
US14/935,308 US10182324B2 (en) | 2014-11-13 | 2015-11-06 | Contextual deep linking of applications |
US14/935,308 | 2015-11-06 | ||
US14/935,301 | 2015-11-06 | ||
PCT/US2015/060004 WO2016077379A1 (en) | 2014-11-13 | 2015-11-10 | Contextual deep linking of applications |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107003877A true CN107003877A (zh) | 2017-08-01 |
CN107003877B CN107003877B (zh) | 2020-04-28 |
Family
ID=55962941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580061382.1A Active CN107003877B (zh) | 2014-11-13 | 2015-11-10 | 应用的上下文深层链接 |
Country Status (3)
Country | Link |
---|---|
US (3) | US10182324B2 (zh) |
EP (1) | EP3219120B1 (zh) |
CN (1) | CN107003877B (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9619811B2 (en) | 2011-12-20 | 2017-04-11 | Bitly, Inc. | Systems and methods for influence of a user on content shared via 7 encoded uniform resource locator (URL) link |
US9407443B2 (en) | 2012-06-05 | 2016-08-02 | Lookout, Inc. | Component analysis of software applications on computing devices |
US10498847B2 (en) * | 2015-02-11 | 2019-12-03 | Go Daddy Operating Company, LLC | System and method for mobile application deep linking |
US20160239284A1 (en) * | 2015-02-18 | 2016-08-18 | Wesley John Boudville | Deep linking of mobile apps by barcode, sound or collision |
US10425492B2 (en) * | 2015-07-07 | 2019-09-24 | Bitly, Inc. | Systems and methods for web to mobile app correlation |
US10346826B2 (en) * | 2015-07-28 | 2019-07-09 | Wesley John Boudville | Blockchain and deep links for mobile apps |
US9910685B2 (en) | 2015-08-13 | 2018-03-06 | Samsung Electronics Co., Ltd. | System and method for identifying, indexing, and navigating to deep states of mobile applications |
US20170046438A1 (en) | 2015-08-13 | 2017-02-16 | Quixey, Inc. | Cloud-Enabled Caching Architecture for On-Demand Native Application Crawling |
US9983892B2 (en) | 2015-11-06 | 2018-05-29 | Samsung Electronics Co., Ltd. | Deep linking to mobile application states through programmatic replay of user interface events |
US9858094B2 (en) * | 2015-11-10 | 2018-01-02 | Samsung Electronics Co., Ltd. | Monitoring and actuation of view controller parameters to reach deep states without manual developer intervention |
US10120954B2 (en) | 2015-12-31 | 2018-11-06 | Samsung Electronics Co., Ltd. | Transformation and presentation of on-demand native application crawling results |
US10180833B2 (en) * | 2015-12-31 | 2019-01-15 | Samsung Electronics Co., Ltd. | Cooperative web-assisted deep link redirection |
US11226969B2 (en) * | 2016-02-27 | 2022-01-18 | Microsoft Technology Licensing, Llc | Dynamic deeplinks for navigational queries |
CN106899566B (zh) * | 2016-08-12 | 2020-03-24 | 阿里巴巴集团控股有限公司 | 一种认证方法、设备以及认证客户端 |
US10565269B2 (en) * | 2016-08-16 | 2020-02-18 | Wesley John Boudville | App social network of linket and deep link users |
CN106339907A (zh) * | 2016-08-29 | 2017-01-18 | 曾强 | 一种数据追踪交互方法 |
CN106325889A (zh) | 2016-09-30 | 2017-01-11 | 北京奇点机智信息技术有限公司 | 数据处理方法及装置 |
US10146560B2 (en) | 2016-09-30 | 2018-12-04 | Xiaoyun Wu | Method and apparatus for automatic processing of service requests on an electronic device |
WO2018208664A1 (en) | 2017-05-08 | 2018-11-15 | Branch Metrics, Inc. | Matching and attribution of user device events |
US11170380B1 (en) * | 2017-05-26 | 2021-11-09 | Attentive Mobile Inc. | Methods and apparatus for mobile device messaging-based communications using custom-generated deeplinks and based on the hyper text transfer protocol (HTTP) |
US10769364B2 (en) | 2017-06-09 | 2020-09-08 | Branch Metrics, Inc. | Generating custom application links |
US10218697B2 (en) * | 2017-06-09 | 2019-02-26 | Lookout, Inc. | Use of device risk evaluation to manage access to services |
US10691764B2 (en) * | 2017-10-23 | 2020-06-23 | International Business Machines Corporation | Search engine optimization techniques |
US10782951B2 (en) * | 2018-02-23 | 2020-09-22 | Digital Turbine, Inc. | Instant installation of apps |
US11243688B1 (en) * | 2018-12-05 | 2022-02-08 | Mobile Heartbeat, Llc | Bi-directional application switching with contextual awareness |
US11030293B2 (en) * | 2018-12-31 | 2021-06-08 | Beijing Didi Infinity Technology And Development Co., Ltd. | Method and system for configurable device fingerprinting |
JP2020201779A (ja) * | 2019-06-11 | 2020-12-17 | 株式会社ミクシィ | 受信側制御プログラム、リンク情報生成プログラム、情報通信装置、及び情報処理装置 |
US11392589B2 (en) | 2019-06-13 | 2022-07-19 | Branch Metrics, Inc. | Multi-vertical entity-based search system |
US11568421B1 (en) * | 2019-07-24 | 2023-01-31 | Walgreen Co. | Client side diagnostics for enhanced customer care |
US11341141B2 (en) | 2019-08-06 | 2022-05-24 | Branch Metrics, Inc. | Search system using multiple search streams |
US11763427B2 (en) * | 2020-03-31 | 2023-09-19 | Unity IPR ApS | Method and system for intelligent importing and transformation of digital assets |
US11640482B2 (en) * | 2020-06-02 | 2023-05-02 | The Toronto-Dominion Bank | System and method for providing trusted links between applications |
CN111478986B (zh) * | 2020-06-22 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 设备指纹的生成方法、装置、设备及存储介质 |
US12093899B2 (en) * | 2022-04-29 | 2024-09-17 | Shopify Inc. | Method and system for message respeciation |
US11810052B2 (en) | 2021-07-30 | 2023-11-07 | Shopify Inc. | Method and system for message mapping to handle template changes |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101400166A (zh) * | 2007-09-27 | 2009-04-01 | 音乐会技术公司 | 用于基于上下文标记在移动装置中过滤内容的系统和方法 |
CN101689264A (zh) * | 2006-12-28 | 2010-03-31 | 电子湾有限公司 | 上下文相关内容发布系统和方法 |
CN102165439A (zh) * | 2007-08-31 | 2011-08-24 | 杜比实验室特许公司 | 将信息与媒体内容的一部分相关联 |
CN102521317A (zh) * | 2010-12-01 | 2012-06-27 | 微软公司 | 利用流动上下文的自动任务完成 |
CN102902738A (zh) * | 2004-07-29 | 2013-01-30 | 雅虎公司 | 使用内联上下文查询的搜索系统及方法 |
US20140181256A1 (en) * | 2012-12-23 | 2014-06-26 | EVRYTHNG Limited | System, Method and a Tag for Mapping Tagged Objects to Context-Aware Applications |
WO2014096553A1 (en) * | 2012-12-21 | 2014-06-26 | Intellipocket Oy | Generating a customized application |
US20140214916A1 (en) * | 2010-08-04 | 2014-07-31 | Keertikiran Gokul | System, method and apparatus for managing applications, information and services |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9134964B2 (en) | 2011-04-06 | 2015-09-15 | Media Direct, Inc. | Systems and methods for a specialized application development and deployment platform |
US9806942B2 (en) * | 2013-12-02 | 2017-10-31 | Yahoo Holdings, Inc. | Deep linking to mobile applications |
US20160055133A1 (en) * | 2014-08-19 | 2016-02-25 | Adlast, Inc. | Systems and methods for directing access to products and services |
-
2015
- 2015-11-06 US US14/935,308 patent/US10182324B2/en active Active
- 2015-11-06 US US14/935,301 patent/US10057741B2/en active Active
- 2015-11-10 CN CN201580061382.1A patent/CN107003877B/zh active Active
- 2015-11-10 EP EP15858275.9A patent/EP3219120B1/en active Active
-
2018
- 2018-07-23 US US16/042,903 patent/US10667101B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902738A (zh) * | 2004-07-29 | 2013-01-30 | 雅虎公司 | 使用内联上下文查询的搜索系统及方法 |
CN101689264A (zh) * | 2006-12-28 | 2010-03-31 | 电子湾有限公司 | 上下文相关内容发布系统和方法 |
CN102165439A (zh) * | 2007-08-31 | 2011-08-24 | 杜比实验室特许公司 | 将信息与媒体内容的一部分相关联 |
CN101400166A (zh) * | 2007-09-27 | 2009-04-01 | 音乐会技术公司 | 用于基于上下文标记在移动装置中过滤内容的系统和方法 |
US20140214916A1 (en) * | 2010-08-04 | 2014-07-31 | Keertikiran Gokul | System, method and apparatus for managing applications, information and services |
CN102521317A (zh) * | 2010-12-01 | 2012-06-27 | 微软公司 | 利用流动上下文的自动任务完成 |
WO2014096553A1 (en) * | 2012-12-21 | 2014-06-26 | Intellipocket Oy | Generating a customized application |
US20140181256A1 (en) * | 2012-12-23 | 2014-06-26 | EVRYTHNG Limited | System, Method and a Tag for Mapping Tagged Objects to Context-Aware Applications |
Also Published As
Publication number | Publication date |
---|---|
US10057741B2 (en) | 2018-08-21 |
US20160142858A1 (en) | 2016-05-19 |
CN107003877B (zh) | 2020-04-28 |
US20160142859A1 (en) | 2016-05-19 |
EP3219120B1 (en) | 2023-01-04 |
EP3219120A1 (en) | 2017-09-20 |
US10182324B2 (en) | 2019-01-15 |
US20180332453A1 (en) | 2018-11-15 |
EP3219120A4 (en) | 2018-07-25 |
US10667101B2 (en) | 2020-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107003877A (zh) | 应用的上下文深层链接 | |
JP6689389B2 (ja) | ディープラーニングモデルを用いたエンティティの識別 | |
CA3061056C (en) | Customizable router for managing traffic between application programming interfaces | |
US10938927B2 (en) | Machine learning techniques for processing tag-based representations of sequential interaction events | |
US11113745B1 (en) | Neural contextual bandit based computational recommendation method and apparatus | |
JP6145576B2 (ja) | オンライン・ソーシャル・ネットワークにおける大規模ページ推薦 | |
US8615442B1 (en) | Personalized content delivery system | |
CA3116778C (en) | Artificial intelligence engine for generating semantic directions for websites for automated entity targeting to mapped identities | |
US20150169710A1 (en) | Method and apparatus for providing search results | |
US20150378586A1 (en) | System and method for dynamically displaying personalized home screens respective of user queries | |
CN110516173B (zh) | 一种非法网站识别方法、装置、设备及介质 | |
EP2975541A1 (en) | Systems and methods for tracking sharing of web content | |
US10878023B2 (en) | Generic card feature extraction based on card rendering as an image | |
US9646104B1 (en) | User tracking based on client-side browse history | |
US10853470B2 (en) | Configuration of applications to desired application states | |
US20160110061A1 (en) | Mobile application pre-fetching using a state framework | |
US20230034911A1 (en) | System and method for providing an intelligent learning experience | |
US20150302503A1 (en) | System and method to customize user experience based on brand resilience data | |
US20240143698A1 (en) | Electronic information extraction using a machine-learned model architecture method and apparatus | |
US20240012909A1 (en) | Correction of non-compliant files in a code repository | |
US20160042066A1 (en) | Search result precision tool | |
US20150264565A1 (en) | Machine biometrics by the use of dynamic benchmarks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |