CN113168427A - 经由用于应用组件的深层链接传递数据 - Google Patents

经由用于应用组件的深层链接传递数据 Download PDF

Info

Publication number
CN113168427A
CN113168427A CN202080006293.8A CN202080006293A CN113168427A CN 113168427 A CN113168427 A CN 113168427A CN 202080006293 A CN202080006293 A CN 202080006293A CN 113168427 A CN113168427 A CN 113168427A
Authority
CN
China
Prior art keywords
application
identifier
request
client device
resource
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.)
Pending
Application number
CN202080006293.8A
Other languages
English (en)
Inventor
邱联晓
沙贝尔·扎鲁尔
汉·特兰
吉列尔梅·普利亚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN113168427A publication Critical patent/CN113168427A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/828Allocation of resources per group of connections, e.g. per group of users
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Abstract

本文提供了经由资源的资源标识符传递数据的系统和方法。数据处理系统可以响应于与呈现在第一资源上的内容项的交互而从客户端设备接收第一请求。内容项可以包括资源标识符,该资源标识符引用经由要安装的应用可访问的第二资源。第一请求可以包括资源标识符和设备标识符。数据处理系统可以响应于执行已安装的应用,从客户端设备接收第二请求。第二请求可以包括设备标识符和应用标识符。数据处理系统可以确定该应用将接收请求标识符。数据处理系统可以提供资源标识符以引导该应用访问第二资源以经由该应用呈现。

Description

经由用于应用组件的深层链接传递数据
相关申请的交叉引用
本申请要求于2019年8月20日提交的美国专利申请序列号No.16/546,196的优先权,其全部内容通过引用合并于此。
背景技术
在诸如因特网的计算机联网环境中,内容提供者可以提供要插入到由在客户端设备上执行的应用(例如,网络浏览器)处理和渲染的信息资源(例如,网页)中的内容项。
发明内容
技术问题
至少一个方面针对一种经由资源标识符传递数据的方法。具有一个或多个处理器的数据处理系统可以响应于与呈现在客户端设备上的第一资源上的内容项的交互,从所述客户端设备接收对内容的第一请求。所述内容项可以包括资源标识符,所述资源标识符引用可经由将要安装在所述客户端设备上的应用访问的第二资源。所述第一请求可以包括所述资源标识符和与所述客户端设备相对应的设备标识符。所述数据处理系统可以响应于执行安装在所述客户端设备上的应用,从所述客户端设备接收对内容的第二请求。所述第二请求可以包括与所述客户端设备相对应的设备标识符和与所述应用相对应的应用标识符。所述数据处理系统可以响应于接收到所述第二请求,基于包括在所述第一请求中的所述设备标识符和所述资源标识符以及包括在所述第二请求中的所述设备标识符和所述应用标识符,确定安装在所述客户端设备上的应用将接收所述第一请求中包括的请求标识符。所述数据处理系统可以响应于确定所述应用将接收所述请求标识符,提供所述资源标识符,以引导所述应用访问可经由所述资源标识符访问的第二资源,以经由所述应用进行呈现。
在一些实施方式中,在接收到所述第一请求和所述第二请求之前,所述数据处理系统可以从所述客户端设备接收对内容的第三请求以呈现在所述第一资源上。所述第三请求可以包括与所述客户端设备相对应的设备标识符。在一些实施方式中,所述数据处理系统可以通过使用所述设备标识符访问数据库,确定所述应用未被安装在所述客户端设备上。所述数据库可以通过安装在相应客户端设备上的应用来维护所述设备标识符。在一些实施方式中,所述数据处理系统响应于确定所述应用未被安装在所述客户端设备上,从多个内容项中选择所述内容项,以提供给所述客户端设备以在不同于所述应用的第二应用中在所述第一资源上显示。
在一些实施方式中,所述数据处理系统可以响应于接收到所述第一请求,基于包括在所述第一请求中的所述资源标识符来识别与要安装在所述客户端设备上的应用相对应的应用标识符。在一些实施方式中,所述数据处理系统可以将所述设备标识符和所述应用标识符与所述资源标识符关联地存储在数据库上。在一些实施方式中,所述数据处理系统可以响应于从所述客户端设备接收到所述第二请求,从所述数据库中识别所述设备标识符和所述应用标识符。在一些实施方式中,确定所述应用将接收所述资源标识符可以包括:确定包括在所述第一请求中的所述设备标识符与包括在所述第二请求中的所述设备标识符相匹配,并且响应于接收到所述第一请求识别的所述应用标识符与包括在所述第二请求中的所述应用标识符相匹配。
在一些实施方式中,所述数据处理系统可以响应于接收到所述第一请求,基于包括在所述第一请求中的所述设备标识符和与包括在所述第一请求中的所述资源标识符相对应的所述应用标识符,生成第一事件标识符。在一些实施方式中,所述数据处理系统可以响应于接收到所述第二请求,基于包括在所述第二请求中的所述设备标识符和所述应用标识符来生成第二事件标识符。在一些实施方式中,确定所述应用将接收所述资源标识符可以包括:通过确定根据所述第二请求生成的所述第二事件标识符与根据所述第一请求生成的所述第一事件标识符相匹配,确定所述应用将接收所述资源标识符。
在一些实施方式中,所述数据处理系统可以从所述客户端设备接收响应于执行所述客户端设备上安装的应用而生成的对内容的第三请求。所述第二请求可以包括与包括在所述第一请求中的资源标识符相对应的、与所述设备标识符不同的第二设备标识符以及与所述应用标识符不同的第二应用标识符中的至少一个。在一些实施方式中,所述数据处理系统可以响应于接收到所述第三请求,基于确定所述第二设备标识符与所述设备标识符不匹配以及确定所述第二应用标识符与所述应用标识符不匹配中的至少一项来确定所述应用将不接收所述资源标识符。在一些实施方式中,所述数据处理系统可以响应于确定所述应用将不接收所述资源标识符,限制将所述资源标识符提供给所述客户端设备以使所述应用呈现初始界面。
在一些实施方式中,所述数据处理系统可以响应于确定所述应用将接收所述资源标识符,确定引用所述第二资源以经由所述应用访问的所述资源标识符无效。在一些实施方式中,所述数据处理系统可以响应于确定所述资源标识符无效,限制将所述资源标识符提供给所述客户端设备以使所述应用呈现初始界面。
在一些实施方式中,所述数据处理系统可以响应于接收到所述第一请求,基于提供给所述客户端设备的内容项,识别与要安装在所述客户端设备上的应用相对应的应用标识符。在一些实施方式中,所述数据处理系统可以将来自对内容的第一请求的设备标识符和应用标识符与包括在提供给所述客户端设备的内容项中的资源标识符相关联。
在一些实施方式中,所述数据处理系统可以确定接收所述第一请求与接收所述第二请求之间的时长满足时限。在一些实施方式中,确定所述应用将接收所述资源标识符进一步包括:响应于确定时间延迟满足所述时限,确定所述应用将接收所述资源标识符。
在一些实施方式中,接收对内容的第一请求可以包括响应于与呈现在所述第一资源源上的内容项的交互,接收所述第一请求,该第一资源源被呈现在与所述客户端设备上的应用不同的第二应用上。与所述内容项的交互可以使得所述客户端设备响应于确定所述应用未被安装在所述客户端设备上而启动应用检索接口以安装所述应用。在一些实施方式中,接收对内容的第二请求可以包括响应于由所述应用启动的、用于检索所述资源标识符的预配置函数调用,接收由所述应用生成的所述第二请求。
至少一个方面针对一种用于通过资源标识符传递数据的系统。该系统可以包括数据处理系统。该数据处理系统可以包括一个或多个处理器。所述数据处理系统可以响应于与呈现在客户端设备上的第一资源上的内容项的交互,从所述客户端设备接收对内容的第一请求。所述内容项可以包括资源标识符,所述资源标识符引用可经由将要安装在所述客户端设备上的应用访问的第二资源。所述第一请求可以包括资源标识符和与所述客户端设备相对应的设备标识符。所述数据处理系统可以响应于执行安装在所述客户端设备上的所述应用,从所述客户端设备接收对内容的第二请求。所述第二请求可以包括与所述客户端设备相对应的设备标识符和与所述应用相对应的应用标识符。所述数据处理系统可以响应于接收到所述第二请求,基于包括在所述第一请求中的所述设备标识符和所述资源标识符以及包括在所述第二请求中的所述设备标识符和所述应用标识符,确定安装在所述客户端设备上的应用将接收所述第一请求中包括的请求标识符。所述数据处理系统可以响应于确定所述应用将接收所述请求标识符,提供所述资源标识符,以引导所述应用访问可经由所述资源标识符访问的所述第二资源,以经由所述应用进行呈现。
在一些实施方式中,所述数据处理系统在接收到所述第一请求和所述第二请求之前,从所述客户端设备接收对内容的第三请求以呈现在所述第一资源上。所述第三请求可以包括与所述客户端设备相对应的设备标识符。在一些实施方式中,所述数据处理系统可以通过使用所述设备标识符访问数据库,确定所述应用未被安装在所述客户端设备上。所述数据库可以通过安装在相应客户端设备上的应用来维护所述设备标识符。在一些实施方式中,所述数据处理系统响应于确定所述应用未被安装在所述客户端设备上,从多个内容项中选择所述内容项,以提供给所述客户端设备以在不同于所述应用的第二应用中在所述第一资源上显示。
在一些实施方式中,所述数据处理系统可以响应于接收到所述第一请求,基于包括在所述第一请求中的所述资源标识符来识别与要安装在所述客户端设备上的应用相对应的应用标识符。在一些实施方式中,所述数据处理系统可以将所述设备标识符和所述应用标识符与所述资源标识符关联地存储在数据库上。在一些实施方式中,所述数据处理系统可以响应于从所述客户端设备接收到所述第二请求,从所述数据库中识别所述设备标识符和所述应用标识符。在一些实施方式中,数据处理系统可以确定包括在所述第一请求中的所述设备标识符与包括在所述第二请求中的所述设备标识符相匹配,并且响应于接收到所述第一请求识别的所述应用标识符与包括在所述第二请求中的所述应用标识符相匹配。
在一些实施方式中,所述数据处理系统可以响应于接收到所述第一请求,基于包括在所述第一请求中的所述设备标识符和与包括在所述第一请求中的所述资源标识符相对应的所述应用标识符,生成第一事件标识符。在一些实施方式中,所述数据处理系统可以响应于接收到所述第二请求,基于包括在所述第二请求中的所述设备标识符和所述应用标识符来生成第二事件标识符。在一些实施方式中,数据处理系统可以通过确定根据所述第二请求生成的所述第二事件标识符与根据所述第一请求生成的所述第一事件标识符相匹配,确定所述应用将接收所述资源标识符。
在一些实施方式中,所述数据处理系统可以从所述客户端设备接收响应于执行所述客户端设备上安装的应用而生成的对内容的第三请求。所述第二请求可以包括与包括在所述第一请求中的资源标识符相对应的、与所述设备标识符不同的第二设备标识符以及与所述应用标识符不同的第二应用标识符中的至少一个。在一些实施方式中,所述数据处理系统可以响应于接收到所述第三请求,基于确定所述第二设备标识符与所述设备标识符不匹配以及确定所述第二应用标识符与所述应用标识符不匹配中的至少一项来确定所述应用将不接收所述资源标识符。在一些实施方式中,所述数据处理系统可以响应于确定所述应用将不接收所述资源标识符,限制将所述资源标识符提供给所述客户端设备以使所述应用呈现初始界面。
在一些实施方式中,所述数据处理系统可以响应于确定所述应用将接收所述资源标识符,确定引用所述第二资源以经由所述应用访问的所述资源标识符无效。在一些实施方式中,所述数据处理系统可以响应于确定所述资源标识符无效,限制将所述资源标识符提供给所述客户端设备以使所述应用呈现初始界面。
在一些实施方式中,所述数据处理系统可以响应于接收到所述第一请求,基于提供给所述客户端设备的内容项,识别与要安装在所述客户端设备上的应用相对应的应用标识符。在一些实施方式中,所述数据处理系统可以将来自对内容的第一请求的设备标识符和应用标识符与包括在提供给所述客户端设备的内容项中的资源标识符相关联。
在一些实施方式中,所述数据处理系统可以确定接收所述第一请求与接收所述第二请求之间的时长满足时限。在一些实施方式中,数据处理系统可以响应于确定时间延迟满足所述时限,确定所述应用将接收所述资源标识符。
在一些实施方式中,数据处理系统可以响应于与呈现在所述第一资源源上的内容项的交互,接收所述第一请求,该第一资源源被呈现在与所述客户端设备上的应用不同的第二应用上。与所述内容项的交互可以使得所述客户端设备响应于确定所述应用未被安装在所述客户端设备上而启动应用检索接口以安装所述应用。在一些实施方式中,数据处理系统可以响应于由所述应用启动的、用于检索资源标识符的预配置函数调用,接收由所述应用生成的所述第二请求。
这些和其他方面以及实施方式将在下面详细讨论。前述信息和以下详细描述包括各个方面的说明性示例和实施方式,并且提供了用于理解所要求保护的方面和实施方式的性质和特征的概述或框架。附图提供了对各个方面和实施方式的说明和进一步的理解,并且被并入本说明书中并构成本说明书的一部分。
附图说明
附图不旨在按比例绘制。在各个附图中,相同的附图标记和名称指示相同的元件。为了清楚起见,在每个附图中并非标记了每个组件。
在图中:
图1是描绘根据说明性实施方式,用于经由用于应用组件的资源标识符来传递数据的系统的框图;
图2是描绘根据说明性实施方式,用于经由用于应用组件的资源标识符传递数据的系统中的数据处理系统、内容发布者、内容提供者以及客户端设备的框图;
图3是描绘根据说明性实施方式,在用于经由用于应用组件的资源标识符传递数据的系统中,调用应用分发界面的数据处理系统、应用分发服务和客户端设备的框图;
图4是描绘根据说明性实施方式,在用于经由用于应用组件的资源标识符传递数据的系统中,调用应用的链接请求器的数据处理系统和客户端设备的框图;
图5是描绘根据说明性实施方式,在用于经由用于应用组件的资源标识符传递数据的系统中,调用应用的组件的数据处理系统和客户端设备的流程图;
图6A和图6B是描绘根据说明性实施方式,经由用于应用组件的资源标识符传递数据的方法的流程图;以及
图7是根据说明性实施方式,可用于实施本文描述和图示的系统元件和方法的计算机系统的总体架构的框图。
具体实施方式
以下是与经由应用组件的资源标识符传递数据的方法、装置和系统有关的各种概念及其实施方式的更详细描述。由于所描述的概念不限于任何具体的实施方式,所以可以以多种方式中的任何一种来实现上面介绍的以及下面将更详细讨论的各种概念。
资源标识符(例如,统一资源标识符(URI))可以经由在客户端设备上运行的一个或多个应用来引用针对资源的特定位置。资源标识符可以从客户端设备引用网络位置上的资源,诸如用于由可经由web浏览器访问的、互联网上的web服务器所托管的网页的网址(例如,统一资源定位符(URL))。用于网络位置上托管的资源的资源标识符可以包括协议的方案名称、服务器的域名以及特定网页的路径名(例如,“https://www.example.com/dir1/index.html”)。客户端设备上的web浏览器可以使用此类资源标识符来从web服务器请求和检索网页。资源标识符还可以引用客户端设备本地的应用的资源,诸如用于应用的应用内组件的深层链接。客户端设备上的操作系统可以使用此类资源标识符来启动和执行应用以访问应用内组件。
使用这些资源标识符,可以跨同一客户端设备上的应用访问不同应用的信息资源。客户端设备上的一个应用(例如,网页浏览器)可以呈现包含具有资源标识符的内容项的信息资源(例如,网页)。内容项的资源标识符(例如,超链接)可以引用另一个应用的应用内组件。客户端设备本地的资源的资源标识符可以包括用于应用的应用标识符(例如“example_app”)和特定应用内组件(例如“example_app://foo”)的路径名(例如“//foo”)。在检测到操作客户端设备的用户与资源标识符的交互时,客户端设备上的操作系统可以启动已经安装在客户端设备上的应用。一旦启动,操作系统可以使应用打开资源标识符所引用的应用内组件。
但是,资源标识符引用的应用可能尚未下载或安装在客户端设备上。在这种情况下,如果没有适当的配置,响应于对资源标识符的交互资源标识符可能导致不采取任何动作,或者导致客户端设备上运行的操作系统方面的错误。缺少任何特定动作可能导致偏离用户期望的在客户端设备上运行的应用的行为,从而劣化了用户与应用之间的人机交互(HCI)。此外,该偏离还可能导致用户与资源标识符重复交互或在客户端设备上手动搜索应用。结果,这可能导致计算处理资源和内存的不必要和过多的消耗。
解决这种情况的一种方法可以包括延迟的深层链接。在这种技术下,当确定尚未安装应用时,操作系统可以启动内容交付平台以提示用户安装该应用。一旦安装,内容交付平台可以向用户呈现启动和执行应用的提示。尽管延迟的深层链接可以促进在客户端设备上安装应用,但该技术可能无法使应用打开由资源标识符引用的应用内的应用内组件。这样,可能迫使用户手动地搜索最初由资源标识符引用的应用内组件。此外,由于手动搜索,延迟的深层链接方法仍可能导致用户与应用之间的HCI劣化以及计算资源的额外消耗。
为了解决使用资源标识符访问应用内组件的挑战,可以经由网络环境上的深层链接异步地传递数据。数据处理系统可以提供内容项,该内容项被配置为与打开内容交付平台同时地发送具有资源标识符的异步请求。该请求可以包括要在客户端设备上安装的应用的应用内组件的资源标识符和与该客户端设备相对应的设备标识符。在接收到请求之后,数据处理系统可以解析该请求,并且可以将资源标识符与设备标识符相关联地记录,以存储在数据库中。在发送请求的同时,客户端设备上的操作系统可以使内容交付平台提示用户安装该应用。一旦安装,内容交付平台可以向用户呈现启动和执行应用的提示。
通过经由内容交付平台的提示执行,现在安装的应用可以生成对资源标识符的请求并将其发送到数据处理系统,以确保在客户端设备上呈现该应用的应用内组件。应用发送的请求可以包括与应用本身相对应的应用标识符和与客户端设备相对应的设备标识符。一旦接收,数据处理系统可以确定对与资源标识符相对应的应用,接收到的请求和先前接收到的请求的设备标识符是否匹配。如果确定设备标识符匹配,则数据处理系统可以将资源标识符返回给应用。应用进而可以打开并呈现由资源标识符引用的应用内组件。
通过以这种方式配置内容项和应用,从初始应用上呈现的信息资源到要安装的应用的应用内组件可以进行更无缝的过渡。通过消除手动安装应用和搜索以访问应用内组件,可以减少客户端设备的用户的交互次数。交互数量的减少可以导致改善用户和客户端设备之间的HCI以及减少计算资源的消耗。
现在参考图1,描绘的是描绘用于经由用于应用组件的资源标识符传递数据的计算机联网环境或系统100的一种实施方式的框图。总的来说,系统100可以包括用于在系统100的组件之间进行通信的至少一个网络105。系统100可以包括至少一个数据处理系统110,以处理经由网络105传送的请求。系统100可以包括提供内容项的至少一个内容提供者115。系统100可以包括提供信息资源(例如,网页)的至少一个内容发布者120。系统100可以包括提供安装应用的安装包的至少一个应用分发服务125。系统100可以包括经由网络105进行通信的至少一个客户端设备130。可以使用本文结合图7详述的计算系统700的组件来实现系统100的每个组件(例如,网络105、数据处理系统100及其组件、内容提供者115及其组件、内容发布者120及其组件、应用分发服务125及其组件,以及客户端设备130及其组件)。
更详细地,系统100的网络105可以使数据处理系统110、内容提供者115、内容发布者120、应用分发服务125和客户端设备130彼此通信地耦合。系统100的数据处理系统110、内容提供者115、内容发布者120和应用分发服务125分别可以包括可经由网络105彼此可通信耦合的、位于至少一个数据中心或服务器场中的多个服务器。数据处理系统110可以经由网络105与内容提供者115、内容发布者120、应用分发服务125和客户端设备130进行通信。内容提供者115可以经由网络105与数据处理系统110、内容发布者120、应用分发服务125和客户端设备130进行通信。内容发布者120可以经由网络105与数据处理系统110、内容发布者120、应用分发服务125和客户端设备130进行通信。应用分发服务125可以经由网络105与数据处理系统110、内容提供者115、内容发布者120和客户端设备130进行通信。客户端设备130可以经由网络105与数据处理系统110、内容提供者115、内容发布者120和应用分发服务125进行通信。
内容提供者115可以包括由内容提供者实体操作的服务器或其他计算设备,以提供内容项以在客户端设备130处显示信息资源。内容提供者115提供的内容可以采用任何方便的形式。例如,第三方内容可以包括与其他显示内容有关的内容,并且可以是例如与所显示的内容有关的网站的页面。内容可以包括第三方内容项或创意(例如,广告)以在信息资源——诸如包括由内容发布者120提供的主要内容的信息资源——上显示。内容项也可以显示在搜索结果网页上。例如,内容提供者115可以提供内容项的来源或者是内容项的来源,该内容项显示在信息资源的内容位(slot)(例如,内嵌框架元素)——诸如公司的网页中,其中网页的主要内容由公司提供,或显示在由搜索引擎提供的搜索结果登录页面上。与内容提供者115相关联的内容项可以显示在网页之外的信息资源上,诸如作为执行智能手机或其他客户端设备130上的应用的一部分而显示的内容。
内容发布者120可以包括由内容发布实体操作的服务器或其他计算设备,以经由网络105提供包括主要内容的信息资源以显示。例如,内容发布者120可以包括提供主要内容以在信息资源上显示的网页运营商。信息资源可以包括除由内容发布者120提供的内容以外的内容,并且信息资源可以包括被配置为显示来自内容提供者115的内容项的内容位。例如,内容发布者120可以运营公司的网站,并且可以提供有关该公司的内容以在网站的网页上显示。网页可以包括被配置显示由内容提供者115或由内容发布者120本身提供的内容项的内容位。
在一些实施方式中,内容发布者120包括运营搜索引擎网站的搜索引擎运营商的搜索引擎计算设备(例如服务器)。搜索引擎网页的主要内容(例如,结果或登录网页)可以包括搜索结果以及显示在信息资源的内容位中的第三方内容项,诸如来自内容提供者115的内容项。
在一些实施方式中,内容发布者120可以包括用于提供视频内容的一个或多个服务器。
数据处理系统110可以包括由内容投放实体运营的服务器或其他计算设备,以选择或标识要经由网络105插入到信息资源的内容位中的内容项。在一些实施方式中,数据处理系统110可以包括内容投放系统(例如,在线广告服务器)。数据处理系统110可以维护内容项的清单,以从中选择以通过网络105提供以插入到信息资源的内容位中。清单可以在数据处理系统110可访问的数据库上被维护。内容项或内容项的标识符(例如,地址)可以由内容提供者115提供。
应用分发服务125(在本文中有时被称为数字分发服务、内容交付服务或电子软件分发服务)可以包括由应用分发实体运营的服务器或其他计算设备,以为要安装在客户端设备130上的应用提供安装包。应用分发服务125可以管理对安装在客户端设备130上的应用的更新。更新可以影响应用的子组件中的至少一个。应用分发服务125还可以管理用于促进在客户端设备130上安装应用的服务。可以经由网络105来传送由应用分发服务125提供的应用和相关服务。在一些实施方式中,应用分发服务125可以与(例如,如所示的)数据处理系统110分开。在一些实施方式中,应用分发服务125可以至少部分或完全是数据处理系统110的一部分。
每个客户端设备130可以是经由网络105进行通信以显示数据的计算设备。所显示的数据可以包括如由数据处理系统110标识的、内容发布者120提供的内容(例如,信息资源)和内容提供者115提供的内容(例如,用于在信息资源的内容位中显示的内容项)。客户端设备130可以包括台式计算机、膝上型计算机、平板计算机、智能手机、个人数字助理、移动设备、消费者计算设备、服务器、客户端、数字录像机、电视机的机顶盒、视频游戏控制台或被配置为经由网络105进行通信的任何其他计算设备。客户端设备130还可以经由网络105进行通信以接收安装包以在其上安装应用。
现在参考图2,描绘的是描绘在系统100中,经由网络105进行通信的数据处理系统110、内容提供者115、内容发布者120和客户端设备130的框图。总的来说,数据处理系统110可以包括至少一个内容选择器200,以向客户端设备130提供内容。数据处理系统110可以包括至少一个数据库205,用于存储和维护一个或多个内容项230A-N(在下文中,通称内容项230)。客户端设备130可以包括在其上安装并执行的至少一个应用210A,以经由网络105进行通信来请求和接收内容。
更详细地,在客户端设备130上执行的应用210A(有时在本文中通称为第一应用210A)可以经由网络105进行通信以接收用于在客户端设备上呈现(例如,显示或回放)的内容。应用210A包括例如因特网浏览器、移动应用或能够解释、执行或以其他方式调用经由网络105提供给客户端设备130的计算机可执行指令以在客户端设备130上呈现的任何其他计算机程序。应用210A可能已经预先安装在客户端设备130上。例如,应用210A可能已经经由网络105下载并安装,或者可能已经预先安装在客户端设备130上。可以通过在客户端设备130上运行的操作系统促进应用210A的安装和执行。
应用210A可以经由网络105,从内容发布者120接收至少一个信息资源215(例如,网页)。信息资源215可以是一种类型的资源,可以通过经由网络105的通信来促进对其的访问。信息资源215的接收可以响应于由应用210A向内容发布者120发送的对信息资源215的请求。信息资源215可以对应于脚本、逻辑、标记或指令(例如,超文本标记语言(HTML)、可扩展超文本标记语言(XHTML)、可扩展标记语言(XML)、级联样式表(CSS)和JavaScript或它们的任意组合)。信息资源215可以包括至少一个主要内容(例如,网页的主体、文本和图像)和至少一个内容位220(例如,网页的嵌入式框架)。主要内容可以对应于由内容发布者120提供的信息资源215的一部分。信息资源215的内容位220可以用于从内容提供者115或数据处理系统110接收内容。要插入到信息资源215的内容位220中的内容可以具有与信息资源215的主机名不同的主机名。
通过接收或访问信息资源215,应用210A可以解析信息资源215以识别内容位220。内容位220可以包括脚本、逻辑、标记或指令(例如,广告标签)以生成对要经由网络105传输的内容的请求。在解析信息资源215的内容位220时,应用210A可以生成对内容的请求225,以插入到内容位220中以传输到数据处理系统110(或内容提供者115)。对内容的请求225可以包括目的地地址(例如,统一资源定位符(URL)或网际协议(IP)地址),该目的地地址引用数据处理系统110,该数据处理系统110将提供要插入到内容位220中的内容。在一些实施方式中,对内容的请求225可以包括源地址(例如,诸如IP地址的网络地址)或将客户端设备130引用为发送者的设备标识符。设备标识符可以是一组字母数字字符或数字值,以唯一地标识客户端设备130。设备标识符可以(例如,通过在其上运行的操作系统)在客户端设备130上维护。在一些实施方式中,引用客户端设备130的源地址可以用作客户端设备130的设备标识符。在生成时,应用210A可以经由网络105将对内容的请求225传输到数据处理系统110。
在数据处理系统110上执行的内容选择器200可以经由网络105从客户端设备130接收对内容的请求225。基于所接收的对内容的请求225,内容选择器200可以从在数据库205上维护的内容项230的集合中识别或以其他方式选择至少一个内容项230。内容项230的选择可以根据内容投放过程(例如,由内容交换执行的实时竞价(RTB))。每个内容项230可以包括要嵌入、插入或以其他方式添加到信息资源215的内容位220的对象或元素(例如,文档模型树对象)。
内容选择器200要选择的内容项230中的至少一个可以包括至少一个资源标识符235。资源标识符235可以引用经由与传输对内容的请求225的应用210A不同的至少一个应用210B可访问的资源。应用210B可能尚未被接收、下载或安装在客户端设备130上(如所描绘的虚线所示)。与资源标识符235相对应的资源可以包括组件240A-N的集合中的一个(在下文中通常称为组件240)。资源标识符235可以包括唯一地标识应用210B和应用210B的组件240的一组字母数字字符。在一些实施方式中,资源标识符235还可以标识要传递给组件240的一个或多个参数。
用于资源标识符235的字母数字字符集可以根据诸如URL或统一资源标识符(URI)的已定义语法。资源标识符235可以包括引用应用210B的子字符串、引用可以经由应用210B访问的特定组件240的子字符串,以及用于要传递给组件240的参数的子字符串。在该语法上,用于应用210B的子字符串可以对应于资源标识符235的方案或主机。用于组件240的子字符串可以对应于资源标识符235的路径名。用于要传递给组件240的参数的子字符串可以对应于资源标识符235的查询。例如,资源标识符235可以是深层链接,并且包括用于应用210B的子字符串“example_app”和用于具有参数的特定组件240的子字符串“//component_X?param=xyz”,组合成字符串“example_app://component_X?param=xyz”。
每个组件240(在本文中有时也称为应用组件、应用内内容或应用内功能)可以是一种类型的资源,可以通过经由网络105的通信来方便地访问该资源。在一些实施方式中,应用210B可以定义可通过应用210B访问的每个组件240的呈现。例如,应用210B可以具有或定义用于通过应用210B本身可访问的每个组件240的特定图形用户界面(GUI)。组件240的定义不同于信息资源215之处可以在于应用210A可以不具有用于信息资源215的特定GUI。在一些实施方式中,信息资源215可以对应于已安装的应用210A的组件之一。在一些实施方式中,具有资源标识符235的内容项230可以具有脚本,以促进对由资源标识符235所引用的组件240的访问。将在下文详述具有这种资源标识符235的内容项230的功能。
相反,要由内容选择器200选择的内容项230中的至少一个可以缺少对尚未安装在客户端设备130上的应用210B的组件240之一的资源标识符235。替代地,内容项230可以具有引用另一个信息资源(例如,网页或组件)的目的地标识符(例如URL),该信息资源将经由传输对内容的请求225的同一应用210A进行访问。根据诸如URI或URL的已定义的语法,目的地标识符可以是字母数字字符的集合。具有这样的目的地标识符的内容项230可以包括脚本,以使得应用210A响应于检测到内容项230上的交互而使用目的地标识符来发送请求。这样的内容项230的脚本可能缺乏与访问应用210B的组件240的请求相关的任何便利。
在运行内容投放过程以从内容项230的集合中进行选择时,内容选择器200可以导致选择具有或不具有资源标识符235的内容项230。在一些情况下,被内容选择器200选择为内容投放过程的结果的内容项230可能缺少资源标识符235。所选择的内容项230可以包括引用要经由第一应用210A访问的另一资源的目的地地址。在其他情况下,选择为内容投放过程的结果的内容项230可以包括引用应用210B的组件240的资源标识符235。在这样的情况下,内容选择器200可以确定脚本是否便于访问由资源标识符235所引用的组件240。通过选择内容项230,内容选择器200可以将内容项230经由网络105传输到客户端设备130。在所描绘的示例中,传输到客户端设备130的内容项230可以包括资源标识符235。在一些实施方式中,内容选择器200可以将传输到客户端设备130的内容项230记录到数据库205上。
为了在传输之前确定是否包括用于资源标识符235的脚本,内容选择器200可以基于对内容的请求225来识别或确定哪些应用(例如,应用210A)被安装在客户端设备130上。对内容项230中的每个标识符235,内容选择器200可以确定应用210B是否被安装在客户端设备130上。在一些实施方式中,内容选择器200可以使用对内容的请求225中包括的设备标识符,访问安装在由相应的设备标识符索引的客户端设备130上的应用的列表。在一些实施方式中,应用列表可以在由应用分发服务125维护的至少一个数据库上维护。在一些实施方式中,应用列表可以在可由数据处理系统110访问的数据库205上维护。
当应用列表指示客户端设备130上时,内容选择器200可以确定应用210B尚未安装在客户端设备130上。此外,在一些实施方式中,内容选择器200可以包括或插入脚本以促进对由资源标识符235所引用的应用210B的组件240的访问。在一些实施方式中,插入的脚本本身可以包括资源标识符235。另一方面,当应用列表指示应用210B被安装在客户端设备130上,则内容选择器200可以确定应用210B被安装在客户端设备130上。由于应用210B可能已经被安装在客户端设备130上,因此,内容项230可能缺少脚本以促进访问由资源标识符235所引用的组件240。
应用210A可以经由网络105从数据处理系统110接收内容项230。利用所接收的内容项230,应用210A可以将内容项230嵌入、插入或以其他方式包括在信息资源215的内容位220中。在插入内容项230后,应用210A可以将内容项230呈现或显示到信息资源215的内容位220中。在一些实施方式中,内容项230中的资源标识符235或目的地标识符可见(例如,作为内容项230内的链接)。在一些实施方式中,内容项230可以包括资源标识符235或目的地标识符,作为另一组成视觉元素的一部分(例如,作为与信息资源215上的内容项230相对应的渲染图像)。
现在参考图3,描绘的是描绘在系统100中,经由网络105进行通信的数据处理系统110、应用分发服务125和客户端设备130的框图。总的来说,数据处理系统110可以具有至少一个初始请求处理器300(在本文中有时被称为异步请求处理器)以处理来自客户端设备130的请求。应用210A可能已经将内容项230插入内容位220中以在信息资源215上呈现。客户端设备130还可以包括至少一个应用检索接口305(在本文中也被称为数字分发平台、内容交付平台或应用商店程序)以促进对应用210B的组件240的访问。
更详细地,应用210A可以监视与信息资源215上呈现的内容项230的至少一个交互。在一些实施方式中,应用210A可以监视与内容项230的子组件(例如,如果包括的话,为资源标识符235本身)的交互。可以经由用于内容项230的事件处理器或事件侦听器来执行对交互的监视。由应用210A监视的交互可以包括例如点击事件、触摸屏事件、按键事件和语音命令事件等。利用检测与内容项230的交互,应用210A可以解析并执行内容项230中包括的指令。
使用内容项230中包括的目的地标识符,应用210A可以响应于交互而生成并传输对内容的至少一个请求。应用210A可能已经接收到具有用于经由同一应用210A可访问的另一资源的目的地标识符的内容项230。该资源可以是另一个信息资源215,诸如内容项230的登录页面。目的地标识符可以引用托管要访问的资源的另一个内容发布者120。对应于目的地标识符的内容发布者120可以不同于提供初始信息资源215的内容发布者120。在读取内容项230时,应用210A可以生成对包括目的地标识符的内容的请求。应用210A可以经由网络105向内容发布者120发送对内容的请求。随后,应用210A可以经由网络105从内容发布者120接收由目的地标识符引用的资源。应用210A可以由初始信息资源215引导,并且可以在客户端设备130上呈现新接收到的资源。
使用内容项230中包括的资源标识符235,应用210A可以响应于交互而生成并传输对内容的至少一个请求。应用210A可能已经接收到具有资源标识符235的内容项230,该资源标识符235引用已经安装在客户端设备130上的应用210B的组件240之一(例如,与描绘相反)。这样的内容项230可能缺少促进访问由资源标识符235所引用的组件240的脚本。在这种情况下,应用210A可以读取并解析内容项230中包括的资源标识符235。由于资源标识符235引用了已经安装在客户端设备130上的应用210B,应用210A(或客户端设备130的操作系统)可以调用应用210B以访问组件240。作为响应,客户端设备130可以呈现由资源标识符235所引用的应用210B的组件240。
应用210A可以响应于在内容项230上的交互而生成并传输对内容的至少一个初始请求310(例如,如所描绘的)。应用210A可能已经接收到具有引用尚未安装在客户端设备130上的应用210B的组件240之一的资源标识符235的内容项230。在一些实施方式中,这样的内容项230可以包括脚本以促进对由资源标识符235所引用的组件240的访问。内容项230的脚本可以包括用于应用210A使用内容项230中包括的资源标识符235来生成和发送初始请求310的指令。
将由应用210A传输的初始请求310可以包括与内容项230中包括的资源标识符235相对应的资源标识符235。在一些实施方式中,应用210A可以识别与内容项230的交互相对应的资源标识符235以包括在初始请求310中。例如,应用210A可以检测对包括资源标识符235的内容项230上的超链接之一的触摸事件,并且识别要包括在初始请求310中的资源标识符235。在从内容项230中识别资源标识符235后,应用210A可以将该资源标识符235插入或包括在初始请求310中。
此外,要由应用210A传输的初始请求310可以包括引用客户端设备130的至少一个设备标识符315(例如,如前所述的设备标识符)。设备标识符315是数字值或字母数字字符的集合以唯一地标识客户端设备130。设备标识符315可以(例如,通过在其上运行的操作系统)在客户端设备130上维护。应用210A可以识别在客户端设备130上维护的设备标识符315,以插入到初始请求310中。在一些实施方式中,设备标识符315可以是网络105中引用客户端设备130的网络地址(例如,IP地址)。应用210A可以将网络地址识别为要插入初始请求310中的设备标识符315。类似于对内容的初始请求225,初始请求310还可以包括引用数据处理系统110的目的地地址,并且可以包括引用客户端设备130的源地址。在生成后,应用210A可以将初始请求310经由网络105传输至数据处理系统110(例如,如所描绘的)。
在数据处理系统110上执行的初始请求处理器300可以经由网络105从客户端设备130接收初始请求310。初始请求处理器300可以解析初始请求310以识别内容。在解析中,初始请求处理器300可以从初始请求310中识别引用客户端设备130的设备标识符315。在一些实施方式中,初始请求处理器300可以从初始请求310中识别与客户端设备130相对应的源地址(例如,IP地址)。通过该识别,初始请求处理器300可以将与客户端设备130相对应的源地址用作设备标识符315。
另外,初始请求处理器300可以从初始请求310中识别资源标识符325。使用该资源标识符325,初始请求处理器300可以生成、确定或识别与由资源标识符325引用的应用210B相对应的至少一个应用标识符320。应用标识符320可以是数字值或字母数字字符的集合,以唯一地标识要安装在客户端设备130上的应用210B。如前所讨论的,资源标识符325可以包括用于应用210B的子字符串、用于组件240的子字符串和用于参数的子字符串。在一些实施方式中,初始请求处理器300可以从资源标识符235中识别用于应用210B的子字符串,作为应用标识符320。
在一些实施方式中,初始请求处理器300可以使用资源标识符235的应用210B的子字符串来标识应用标识符320。例如,初始请求处理器300可以将子字符串(例如,“example_app”)对完整的应用名(例如“App Example”)的映射用在标识应用标识符320中。在一些实施方式中,初始请求处理器300可以基于先前提供给客户端设备130的内容项230,确定或标识应用标识符320。内容项230可以与应用标识符320相关联。如先前所讨论的,内容选择器200可能已经记录了内容项230被传输到客户端设备130。基于该记录,初始请求处理器300可以识别提供给内容设备130的内容项230。初始请求处理器300可以识别与所标识的内容项230相关联的应用标识符320。
在一些实施方式中,初始请求处理器300可以使用初始请求310来确定或生成至少一个事件标识符(在本文中有时也称为请求标识符、交互标识符或点击标识符)。事件标识符可以是数字值或字母数字字符的集合以唯一地标识初始请求310或与初始请求310的内容相关联。在一些实施方式中,初始请求处理器300可以基于应用标识符320(或资源标识符235)和设备标识符315来生成事件标识符。生成可以基于应用标识符320和设备标识符315的任意组合,诸如串联、哈希函数、指纹函数等。在一些实施方式中,初始请求处理器300可以识别初始请求310的接收时间以与其中的内容相关联。
利用这些标识,初始请求处理器300可以将资源标识符235、设备标识符315和应用标识符320相互关联。例如,来自初始请求310的资源标识符235和设备标识符315可以与应用标识符320相关联。初始请求处理器300还可以在数据库205上存储和维护资源标识符235、设备标识符315和应用标识符320以指示标识符之间的关联。在一些实施方式中,初始请求处理器300还可以将事件标识符与其他标识符一起存储。在一些实施方式中,初始请求处理器300可以使用资源标识符235、设备标识符315和应用标识符320来生成或创建至少一个请求条目325,以存储到数据库205上。请求条目325可以包括资源标识符235、设备标识符315和应用标识符320以指示标识符之间的关联。在一些实施方式中,请求条目325还可以包括使用设备标识符315和应用标识符320生成的事件标识符。资源标识符235、设备标识符315、应用标识符320或事件标识符可以被用来索引在数据库205上存储和维护的请求条目325。在一些实施方式中,请求条目325可以进一步包括相应的初始请求310的接收时间。
结合初始请求310的生成和传输,应用210A(或客户端设备130上的操作系统)可以调用在客户端设备130上执行的应用检索接口305。应用检索接口305可以是客户端设备130上的至少一个例程、程序或另一个应用,以促进将应用210B安装到客户端设备130上。应用210A(或操作系统)可以确定由资源标识符235引用的应用210B未安装在客户端设备130上。例如,应用210A可以访问由客户端设备130维护的文件管理器,该文件管理器列出了安装在客户端设备130上的应用。响应于该确定,应用210A可以调用应用检索接口305以安装应用210B。当引用未安装的应用(例如,应用210B)时,应用210A可能已经被配置为调用应用检索接口305。
在调用时,应用检索接口305可以呈现用于将应用210B安装到客户端设备130上的至少一条提示。使用该提示,客户端设备130的用户可以请求安装或者可以拒绝安装应用210B。在一些实施方式中,该提示可以包括在客户端设备130上显示的至少一个图形用户界面(GUI)。该提示可以包括请求安装应用210B的至少一个用户界面元素(例如,带有文字“安装(Install)”的命令按钮)和拒绝安装应用210B的至少一个用户界面元素(例如,带有文字“取消(Cancel)”的命令按钮)。在一些实施方式中,该提示可以包括在客户端设备130上播放的至少一条音频消息。音频消息包括请求安装的至少一个选项和拒绝安装应用210B的至少一个选项。
应用检索接口305可以监视与用于安装应用210B的提示的至少一个交互。交互可以包括例如点击事件、触摸屏事件、按键事件和语音命令事件等。应用检索接口305可以检测与拒绝安装应用210B相对应的交互。例如,客户端设备130的用户可以点击GUI上的用于提示的取消按钮,或者点击以最小化应用检索接口305。作为响应,应用检索接口305可以不执行与安装应用210B相关联的进一步动作。另一方面,应用检索接口305可以检测与安装应用210B的请求相对应的交互。例如,客户端设备130的用户可能已经按下GUI上的用于安装提示的命令按钮或产生安装应用210B的语音命令。作为响应,应用检索接口305可以生成用于安装应用210B的至少一个应用请求330。应用请求330可以包括用于应用210B的至少一个标识符。该标识符可以是与应用210B相对应的字母数字字符的集合,并且可以与由数据处理系统110所使用的应用标识符320相同或不同。在生成之后,应用检索接口305可以将应用请求330传输到应用分发服务125。
进而,应用分发服务125可以经由网络105,从客户端设备130接收应用请求330。一旦接收,应用分发服务125可以解析应用请求330以识别应用210B的标识符。使用该标识符,应用分发服务125可以识别用于安装应用210B的至少一个安装包335。安装包335可以由应用分发服务125在一个或多个数据库上维护,并且可以由应用210B的应用开发人员提供。安装包335可以包括一个或多个文件,该文件包含用于在客户端设备210B上安装应用210B的资源、资产、元数据和程序代码。利用该标识,应用分发服务125可以经由网络105向客户端设备130提供或传输安装包335。
现在参考图4,描绘的是在系统100中,客户端设备130经由网络105请求数据处理系统110的框图。总的来说,数据处理系统110可以包括至少一个链接请求处理器405(在本文中有时被称为同步请求处理器)以处理来自客户端设备130的请求。客户端设备130上的应用210B可以包括至少一个链接请求器400,以处理对数据处理系统110的请求。
更详细地,应用检索接口305可以经由网络105从应用分发服务125接收用于安装应用210B的安装包335。在接收到之后,应用检索接口305可以使用安装包335来在客户端设备130上安装应用210B。例如,应用检索接口305可以提取或解压缩安装包335中的一个或多个文件以将应用210B安装在客户端设备上。在完成安装后,应用检索接口305可以呈现至少一个提示以执行应用210B。应用检索接口305可以监视与该提示的交互。响应于检测到交互,应用检索接口305可以调用应用210B以在客户端设备130上执行。在一些实施方式中,应用检索接口305可以调用现在安装的应用210B以执行而无需呈现提示。一旦被调用,客户端设备130就可以初始化并开始执行应用210B。客户端设备130可以将前台过程从应用210A或应用检索接口305转移到现在安装的应用210B。
在安装在客户端设备130上后,应用210B可以调用(invoke)、唤出(call)或以其他方式执行链接请求器400。链接请求器400可以对应于配置到应用210B中的一个或多个例程、进程或其他功能。在一些实施方式中,链接请求器400的功能和操作可以经由应用分发服务125或数据处理系统110的管理员提出的应用编程接口(API)来定义。可以使链接请求器400的API可用于应用210B的应用开发者和数据处理系统110的管理员。在一些实施方式中,应用210B可以在初始化或执行应用210B本身期间唤出(call)或调用(invoke)链接请求器400。例如,链接请求器400可以是在客户端设备130上运行时由应用210B调用的第一进程之一。在一些实施方式中,链接请求器400可以在使用安装包335解压缩或安装应用210B期间,由客户端设备130调用。
在客户端设备130上执行的应用210B的链接请求器400可以生成并传输至少一个链接请求410(在本文中有时被称为同步请求),以检索先前提供给客户端设备130的资源标识符235。生成链接请求410可以根据为该链接请求者400定义的API的至少一个函数。可以为链接请求者400提供用于生成链接请求410的信息。该信息可以以包括在应用200B中的数据结构或元数据的形式。该信息可以包括与应用210B相对应并且由数据处理系统100使用以引用数据库205上的应用210B的应用标识符320'。该信息可以缺少先前与内容项230一起提供给客户端设备130的资源标识符235。
要发送到数据处理系统110的链接请求410可以包括与应用210B相对应的应用标识符320'。在一些实施方式中,链接请求器400可以从包括在应用200B中的信息中识别应用标识符320'。在识别之后,链接请求器400可以将应用标识符320'包括或插入到链接请求410中(例如,如所描绘的)。在一些实施方式中,链接请求器400可以识别用于由应用分发服务125使用的应用210B的标识符。应用210B所包括的信息可以包括用于应用210B的标识符,而不包括由数据处理系统110用来维护数据库205的应用标识符320'。利用该标识,链接请求器400可以将用于应用210B的标识符包括在链接请求410中。
另外,链接请求410可以包括设备标识符315'。链接请求器400对设备标识符315'的标识可以类似于如先前所述的由应用210A对相同标识符的标识。在一些实施方式中,链接请求器400可以识别在客户端设备130上维护的设备标识符315'以插入到链接请求410中。在一些实施方式中,链接请求器400可以将引用客户端设备130的网络地址识别为设备标识符315'以插入到链接请求410中。类似于对内容的请求225,链接请求410还可以包括引用数据处理系统110的目的地地址,并且可以包括引用客户端设备130的源地址。一旦生成,链接请求器400可以经由网络105将链接请求410传输到数据处理系统110。
在数据处理系统110上执行的链接请求处理器405可以经由网络105从客户端设备130接收链接请求410。链接请求处理器405相对于链接请求410可以具有与如前所述的请求处理器300相对于初始请求310所具有的许多相同的功能。链接请求处理器405可以解析链接请求410以识别内容。解析链接请求410可以根据用于生成链接请求410的API。在解析中,链接请求处理器405可以从链接请求410中识别引用客户端设备130的设备标识符315'。在一些实施方式中,链接请求处理器405可以从链接请求410中识别与客户端设备130相对应的源地址(例如,IP地址)以用作设备标识符315'。
另外,链接请求处理器405可以解析链接请求410以识别应用标识符320'。在一些实施方式中,链接请求处理器405可以识别包括在链接请求410中的用于应用210B的标识符。使用从链接请求410解析的标识符,链接请求处理器405可以识别与应用210B相对应的应用标识符320'。例如,在识别应用标识符320'时,链接请求处理器405可以使用由应用分发服务125使用的标识符的映射。
在一些实施方式中,链接请求处理器405可以使用链接请求410确定或生成至少一个事件标识符。使用链接请求410生成事件标识符可以类似于初始请求处理器300使用初始请求310生成事件标识符。事件标识符可以是数字值或字母数字字符的集合,以唯一地标识链接请求410的内容或与之相关联。在一些实施方式中,链接请求处理器405可以基于应用标识符320'和设备标识符315'来生成事件标识符。该生成可以基于应用标识符320'和设备标识符315'的任意组合,诸如串联、哈希函数、指纹函数等。在一些实施方式中,链接请求处理器405可以识别链接请求410的接收时间。
现在参考图5,描绘的是在系统100中,数据处理系统110经由网络105响应客户端设备130的框图。总的来说,数据处理系统110可以包括至少一个应用验证器500以对现在安装在客户端设备130上的应用210B进行认证。在数据处理系统110上执行的应用验证器500可以确定客户端设备130上的应用210B是否要接收资源标识符235。该确定可以基于从客户端设备130接收到初始请求310和链接请求410。在一些实施方式中,该确定可以响应于链接请求处理器405对链接请求410的解析以识别设备标识符315'和应用标识符320'。
为了确定,应用验证器500可以将从链接请求410解析的设备标识符315'和应用标识符320'与在数据库205上维护的设备标识符315和应用标识符320进行比较。在一些实施方式中,应用验证器500可以使用设备标识符315'来在数据库205中搜索或查找具有匹配的设备标识符315的请求条目325。在一些实施方式中,应用验证器500可以使用利用链接请求410生成的事件标识符来执行搜索。在执行搜索时,应用验证器500可以遍历数据库205上维护的请求条目325。当没有找到匹配请求条目320时,应用验证器500可以确定链接请求410的设备标识符315'不与数据库205上维护的任何设备标识符315匹配。应用验证器500还可以确定不允许客户端设备130上的应用210B接收用于访问应用210B的组件240的任何资源标识符235。
相反,当找到至少一个匹配请求条目325时,应用验证器500可以执行加法比较。匹配请求条目325可以具有与从链接请求410解析的设备标识符315'匹配的设备标识符315。在一些实施方式中,使用初始请求310生成的匹配请求条目325的事件标识符可以与使用链接请求410所生成的事件标识符匹配。应用验证器500可以将应用标识符320'与应用标识符320进行比较。当应用标识符320'与应用标识符320不同时,应用验证器500可以使用设备标识符315'搜索数据库205以寻找另一个请求条目325。应用验证器500可以重复该搜索,直到没有找到具有设备标识符315'(或事件标识符)的请求条目325为止。在遍历数据库205之后,应用验证器500可以确定不允许应用210B接收用于访问应用210B的组件240的任何资源标识符235。相反,当应用标识符320'与应用标识符320匹配时,应用验证器500可以确定允许应用210B接收资源标识符235以访问组件240。
应用验证器500可以使用其他因素来确定不允许应用210B接收资源标识符235。该确定可以是不论是否找到了被确定为分别与设备标识符315'和应用标识符320'匹配的具有设备标识符315和应用标识符320的请求条目325。在一些实施方式中,应用验证器500可以计算或确定接收初始请求310与接收链接请求410之间的时长。确定该时长可以基于接收初始请求310的时间和接收链接请求410的时间(例如,时间差)。利用该确定,应用验证器500可以将时长与时限进行比较。该时限可以对应于期望客户端设备130的用户请求安装和启动执行应用210B的时间量。该时限可以表示界定何时允许应用210B接收资源标识符235的截止时长。当确定该时长满足时限(例如,小于或等于)时,应用验证器500可以维持应用210B将要接收资源标识符235的确定。否则,当确定时长不满足时限(例如,大于)时,应用验证器500可以推翻该确定。
当确定应用210B不允许接收资源标识符235时,应用验证器500可以限制向客户端设备130上的应用210B提供资源标识符235。在一些实施方式中,应用验证器500可以响应于链接请求410而不对客户端设备210B提供响应。在一些实施方式中,应用验证器500可以经由网络105向客户端设备130提供或传输没有任何资源标识符235的响应。该响应可以指示确定在客户端设备130上运行的应用210B被限制接收任何资源标识符235。
相反,当确定应用210B被允许接收资源标识符235时,应用验证器500可以识别包括匹配请求条目325的资源标识符235。在一些实施方式中,应用验证器500可以确定资源标识符235是否有效。确定资源标识符235的有效性可以根据定义的语法(例如,用于URI或深层链接的语法规则)。例如,确定为无效的资源标识符235可以具有不正确的语法,诸如:缺少到应用210B的任何特定组件240的路径名、到组件240的不正确的路径名或用于引用应用210B的不正确的方案。
如果资源标识符235被确定为无效,则应用验证器500可以推翻允许应用210B接收资源标识符235的确定。此外,应用验证器500可以限制提供资源标识符235,并且可以响应于该确定执行如上所述的功能。另一方面,如果资源标识符235被确定为有效,则应用验证器500可以保持允许应用210B接收资源标识符235的确定。应用验证器500还可以标识资源标识符235以响应于链接请求410。
利用资源标识符235的标识,应用验证器500可以经由网络105将资源标识符235提供或传输给应用210B。在一些实施方式中,资源标识符235可以被包括为至少一个响应505的一部分。应用验证器500可以生成包括从在数据库205上维护的请求条目325识别的资源标识符235的响应505。在生成后,应用验证器500可以经由网络105将具有资源标识符235的响应505传输给客户端设备130。
在传输链接请求410之后,链接请求器400可以等待来自数据处理系统110的响应505。在一些实施方式中,链接请求器400可以保持计时器以对自将链接请求410传输到数据处理系统110以来经过的时间进行计数。链接请求器400可以将经过的时间与用于接收资源标识符235(或包括资源标识符235的响应505)的时限进行比较。当经过的时间变得大于时限时,链接请求器400可以确定应用210B没有接收到任何请求标识符325。此外,链接请求器400使得或调用应用210B来呈现应用210B的初始界面。初始界面可以是将由应用210默认呈现的图形用户界面(GUI)(例如,启动(launch)屏幕或初始(splash)画面)。
另一方面,应用210B的链接请求器400可以经由网络105从数据处理系统110接收资源标识符235。接收资源标识符235可以在用于接收的期限内。资源标识符235可以被包括为响应505的一部分。链接请求器400可以解析响应505以识别资源标识符235。在识别之后,链接请求器400可以经由从数据处理系统110接收到的资源标识符235,引导、导致或调用应用210B来访问组件(一种形式的资源)240。一旦被调用,应用210B可以在客户端设备130上呈现由资源标识符235所引用的组件240(例如,用于显示或经由音频输出)。在一些实施方式中,应用210B可以基于经由资源标识符235传递的参数来调用组件240(或者通常是应用210B)的一个或多个功能。在一些实施方式中,应用210B还可以经由网络105进行通信以请求呈现组件240中的数据和其他资源。在呈现组件240中由应用210B所访问的资源可以托管在管理应用210B的一个或多个服务器上,诸如另一内容发布者120。
以这种方式,可以以更无缝的方式,由客户端设备130执行从在应用210A上呈现的信息资源215到最初未被安装或不可用的应用210B的组件240的过渡。通过如所述发出初始请求310和链接请求410,可以消除手动搜索以安装应用210B然后在应用210B中找到特定组件240。这种消除可以减少在客户端设备130上执行的交互次数、减少客户端设备130上的计算资源的消耗以及网络105上的网络带宽。此外,交互次数的减少可以导致改进用户与客户端设备130的人机交互(HCI)。特别地,可以改善与由应用210A和应用210的组件240呈现的信息资源215和内容项230的HCI。
现在参考图6A和6B,描绘的是描绘经由用于应用组件的资源标识符传递数据的方法600的实施方式的流程图。本文关于方法600描述的功能可以由图1-5所示的系统100或如图7所示的计算系统700实现或以其他方式执行。总的来说,数据处理系统可以提供内容项(602)。客户端设备可以接收内容项(604)。客户端设备可以监视与内容项的交互(606)。如果检测到交互,则客户端设备可以生成第一请求(608)。客户端设备可以发送第一请求(610)。数据处理系统可以接收第一请求(612)。数据处理系统可以识别资源标识符(614)。数据处理系统可以识别设备标识符(616)。数据处理系统可以存储标识符(618)。客户端设备可以安装应用(620)。客户端设备可以执行应用(622)。客户端设备可以生成第二请求(624)。客户端设备可以发送第二请求(626)。数据处理系统可以接收第二请求(628)。
数据处理系统可以识别设备标识符(630)。数据处理系统可以识别应用标识符(632)。数据处理系统可以确定应用是否被验证(634)。如果验证不成功,则数据处理系统可以终止(636)。否则,如果验证成功,则数据处理系统可以检索资源标识符(638)。数据处理系统可以发送资源标识符(640)。客户端设备可以接收资源标识符(642)。客户端设备可以访问组件(644)。
更详细地,数据处理系统(例如,数据处理系统110)可以提供内容项(例如,内容项230)(602)。内容项230可以包括资源标识符(例如,资源标识符235),以访问经由尚未安装在客户端设备上的另一应用(例如,应用210B)可用的资源(例如,组件240)。客户端设备(例如,客户端设备130)可以接收内容项(604)。客户端设备可以经由应用(例如,应用210A)在资源(例如,信息资源215)上呈现内容项。
客户端设备可以监视与内容项的交互(606)。该交互可以是与内容项中包括的资源标识符。如果检测到交互,则客户端设备可以生成第一请求(例如,初始请求310)(608)。第一请求可以包括最初包括在内容项中的设备标识符(例如,设备标识符315)和资源标识符。客户端设备可以发送第一请求(610)。
数据处理系统可以接收第一请求(612)。数据处理系统可以解析第一请求。数据处理系统可以识别资源标识符(614)。资源标识符可能已经被包括在经由客户端设备在信息资源中呈现的内容项中。数据处理系统可以使用资源标识符来识别与要安装在客户端设备上的应用相对应的应用标识符(例如,应用标识符320)。数据处理系统可以识别设备标识符(616)。设备标识符可以对应于客户端设备。数据处理系统可以存储标识符(618)。数据处理系统可以将设备标识符与应用标识符和资源标识符两者相关联(例如,作为请求条目325)以存储在数据库(例如,数据库205)上。
客户端设备可以安装应用(例如,应用210B)(620)。客户端设备可以调用应用检索接口(例如,应用检索接口305)以请求该应用。应用检索接口可以向应用分发服务(例如,应用分发服务125)发送对应用的请求(例如,应用请求330)。应用分发服务125进而可以提供用于安装该应用的安装包(例如,安装包335)。一旦接收,客户端设备可以使用该安装包来安装该应用。
客户端设备可以执行应用(622)。该应用可以具有根据应用编程接口(API)(例如,链接请求器400)的脚本或指令。客户端设备可以生成第二请求(例如,链接请求410)(624)。第二请求可以包括与客户端设备相对应的设备标识符(例如,设备标识符315')以及与现在安装的应用相对应的应用标识符(例如,应用标识符320')。客户端设备可以发送第二请求(626)。
数据处理系统可以接收第二请求(628)。数据处理系统可以解析第二请求。数据处理系统可以识别设备标识符(630)。数据处理系统可以识别应用标识符(632)。数据处理系统可以确定应用是否被验证(634)。使用设备标识符,数据处理系统可以在数据库中搜索对具有匹配设备标识符的的条目的请求。如果验证不成功,则数据处理系统可以终止(636)。客户端设备上的应用还可以呈现初始界面。
否则,如果验证成功,则数据处理系统可以检索资源标识符(638)。数据处理系统可以识别与第二请求中的设备标识符和应用标识符相关联的资源标识符。数据处理系统可以发送资源标识符(640)。资源标识符可以作为对第二请求的响应(例如,响应505)的一部分被发送。客户端设备可以接收资源标识符(642)。客户端设备可以访问资源(例如,组件240)(644)。客户端设备可以使用资源标识符来引导应用访问资源。
图7示出了根据一些实施方式,可以用来实现本文所讨论的任何计算机系统(包括数据处理系统110及其组件、内容提供者115、内容发布者120、应用分发服务125及其组件以及客户端设备130)的示例性计算机系统700的总体架构。计算机系统700可以被用来经由网络730提供信息以供显示。计算机系统700包括通信地耦合到存储器725的一个或多个处理器720、通信地耦合到至少一个网络730(例如,网络105)的一个或多个通信接口705,以及一个或多个输出设备710(例如,一个或多个显示单元)和一个或多个输入设备715。
处理器720可以包括微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等或其组合。存储器可以包括但不限于电子、光学、磁性或能够向处理器提供程序指令的任何其他存储或传输设备。存储器725可以包括任何计算机可读存储介质,并且可以存储诸如用于对各个系统实现本文所述的各种功能的处理器可执行指令之类的计算机指令,以及与其相关、由此产生或经由通信接口或输入设备(如果有的话)接收的任何数据。存储器725可以包括软盘、CD-ROM、DVD、磁盘、存储芯片、ASIC、FPGA、只读存储器(ROM)、随机存取存储器(RAM)、电可擦除ROM(EEPROM)、可擦除可编程ROM(EPROM)、闪存、光学介质或处理器可以从中读取指令的任何其他合适的存储器。指令可以包括来自任何合适的计算机编程语言的代码。
图7所示的处理器720可以被用来执行存储在存储器725中的指令,并且在这样做时,还可以从存储器中读取或向存储器写入根据指令的执行而处理和/或生成的各种信息。与存储器725耦合的处理器720(在本文中统称为处理单元)可以被包括在系统100的组件中,诸如数据处理系统110(以及内容提供者115、内容发布者120,应用分发服务125及其组件以及客户端设备130)。例如,数据处理系统110可以包括作为数据库205的存储器725。与存储器725耦合的处理器720(在本文中统称为处理单元)可以被包括在内容提供者115中。例如,内容提供者115可以包括存储内容项225的存储器725。与存储器725耦合的处理器720(在本文中统称为处理单元)可以被包括在内容发布者120中。例如,内容发布者120可以包括用于存储信息资源215的存储器725。与存储器725耦合的处理器720(在本文中统称为处理单元)可以被包括在应用分发服务125中。例如,应用分发服务125可以包括存储安装包330的存储器725。与存储器725耦合的处理器720(在本文中统称为处理单元)可以被包括在客户端设备130中。例如,客户端设备130可以包括存储器725以存储应用210A和210B以及应用检索接口305。
计算机系统700的处理器720还可以通信地耦合到通信接口705或使处理器720控制通信接口705以根据指令的执行来传输或接收各种信息。例如,通信接口705可以耦合到有线或无线网络、总线或其他通信装置,并且因此可以允许计算机系统700向其他设备(例如,其他计算机系统)传输信息或从其他设备(例如,其他计算机系统)接收信息。尽管在图1-5或7的系统中没有明确示出,一个或多个通信接口促进系统700的组件之间的信息流。在一些实施方式中,可以(例如,经由各种硬件组件或软件组件)将通信接口配置为以提供网站,作为计算机系统700的至少一些方面的访问门户。通信接口705的示例包括用户接口(例如,应用210A、信息资源215、内容项230、应用210B和组件240),用户可以通过该用户接口与系统100的其他设备进行通信。
可以提供图7所示的计算机系统700的输出设备710,以允许结合指令的执行来查看或以其他方式感知各种信息。可以提供输入设备715,例如以允许用户在指令执行期间,进行手动调整、进行选择、输入数据或以各种方式的任何一种与处理器交互。本文中进一步提供了与可以用于本文所讨论的各种系统的通用计算机系统架构有关的附加信息。
网络730可以包括诸如互联网、局域网、广域网、城域网或其他区域网的计算机网络、内联网、卫星网络、诸如语音或数据移动电话通信网络的其他计算机网络及其组合。网络730可以是在系统100的组件——诸如数据处理系统110及其组件、内容提供者115、内容发布者120、应用分发服务125及其组件以及客户端设备130——之间中继信息的任何形式的计算机网络。例如,网络730可以包括互联网和/或其他类型的数据网络,诸如局域网(LAN)、广域网(WAN)、蜂窝网络、卫星网络,或其他类型的数据网络。网络730还可以包括被配置为在网络730内接收和/或传输数据的任何数量的计算设备(例如,计算机、服务器、路由器、网络交换机等)。网络730可以进一步包括任意数量的硬布线和/或无线连接。客户端设备130可以与(例如,经由光纤电缆、CAT5电缆等)硬布线到网络730中的其他计算设备的收发器(例如,经由WiFi、蜂窝、无线电等)无线地通信。
本说明书中描述的主题和操作的实施方式可以在数字电子电路中或者以有形介质、固件或硬件,包括本说明书中公开的结构及其结构等同物,或者它们中的一个或多个的组合实现。本说明书中描述的主题可以实现为一个或多个计算机程序——即,编码在计算机存储介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。程序指令可以编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以编码信息以便传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是或包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备,或者它们的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以包括在人工生成的传播信号编码的计算机程序指令的源或目的地。计算机存储介质也可以是或包括在一个或多个单独的物理组件或介质(例如,多个CD、磁盘或其他存储设备)中。
本文公开的特征可以在智能电视模块(或连接的电视模块、混合电视模块等)上实现,该智能电视模块可以包括被配置为将互联网连接与(例如,经由有线、卫星、无线或其他信号接收的)更传统的电视节目源集成在一起的处理模块。智能电视模块可以物理地合并到电视机中,或者可以包括单独的设备,诸如机顶盒、蓝光或其他数字媒体播放器、游戏机、酒店电视系统以及其他配套设备。智能电视模块可以被配置为允许观众搜索和查找web上、本地有线电视频道上、卫星电视频道或存储在本地硬盘上的视频、电影、照片和其他内容。机顶盒(STB)或机顶单元(STU)可以包括信息家电设备,其可以包含调谐器并连接到电视机和外部信号源,将信号调谐为内容,然后将该内容显示在电视屏幕或其他显示设备上。智能电视模块可以被配置为提供主屏幕或上层屏幕,其包括用于多个不同应用——诸如web浏览器和多个流媒体服务、连接的有线或卫星媒体源、其他web“频道”等等——的图标。智能电视模块可以进一步被配置成向用户提供电子节目指南。智能电视模块的配套应用可以在移动计算设备上操作,以向用户提供有关可用节目的其他信息,以允许用户控制智能电视模块等。在一些实施例中,可以在膝上型计算机或其他个人计算机、智能手机、其他移动电话、手持计算机、平板电脑或其他计算设备上实现这些功能部件。在一些实施方式中,本文公开的功能部件可以在可穿戴设备或组件(例如,智能手表)上实现,其可以包括被配置为集成(例如,与另一计算设备或网络630的)互联网连接性的处理模块。
本说明书中描述的操作可以被实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收到的数据执行的操作。术语“数据处理装置”、“数据处理系统”、“用户设备”或“计算设备”涵盖用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机、片上系统或多个芯片,或上述的组合。该装置可以包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所述的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型基础结构,诸如web服务、分布式计算和网格计算基础结构。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明或过程语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适用于计算环境的其他单元。计算机程序可以但不必须对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)中、存储在专用于所述的程序的单个文件中,或者存储在多个协调文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。可以部署计算机程序以在一个计算机上或在位于一个站点上或分布在多个站点上并通过通信网络互连的多个计算机上执行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适合于执行计算机程序的处理器包括例如通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或计算机可操作地耦合以从大容量存储设备读取数据或向其传递数据,或两者均可。然而,计算机不必具有此类设备。此外,计算机可以被嵌入到另一个设备——例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器)。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;和CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施方式可以在具有用于向用户显示信息的显示设备——例如,CRT(阴极射线管)、等离子体、或者LCD(液晶显示器)监视器——和用户通过其为计算机提供输入的键盘与定点设备——例如鼠标和轨迹球——的计算机上实现。其它类型的设备也可以被用来提供与用户的交互。例如,提供给用户的反馈可以包括任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈,以及可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档以及从用户使用的设备接收文档,例如通过响应于从web浏览器接收到的请求,将网页发送到用户客户端设备上的web浏览器,来与用户进行交互。
本说明书描述的主题的实施方式可以在包括后端组件——例如作为数据服务器、或者包括中间件组件——例如应用服务器、或者包括前端组件——例如,具有通过其用户可以与本说明书中描述的主题的实施方式进行交互的图形用户界面或网络浏览器的客户端计算机、或者一个或多个这样的后端、中间件或前端组件的任意组合的计算系统中实现。系统的组件可以通过任何形式或介质的数字数据通信——例如通信网络——互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、网络间(例如,互联网)和对等网络(例如,ad hoc对等网络)。
诸如系统700或系统100的计算系统可以包括客户端和服务器。例如,系统100的数据处理系统110及其组件、内容提供者115、内容发布者120和应用分发服务125及其组件可以分别包括一个或多个数据中心或服务器场中的一个或多个服务器。客户端(例如客户端设备130)和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而生成。在一些实施方式中,服务器将数据(例如,HTML页面)传输到客户端设备(例如,为了向与客户端设备交互的用户显示数据或从其接收用户输入的目的)。可以在服务器处,从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
尽管本说明书包含许多具体的实施细节,但是这些不应当被解释为对任何发明或可要求保护的范围的限制,而应当被解释为对本文所述的系统和方法的具体实施方式特定的特征的描述。在本说明书中在单独的实施方式的上下文中描述的某些特征也可以在单个实施方式中组合实施。相反,在单个实施方式的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施方式中来实施。而且,尽管上文可以将特征描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下,可以从组合中删除所要求保护的组合中的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变体。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应当理解为要求以所示的特定顺序或以连续的顺序执行这样的操作,或者执行所有图示的操作以实现期望的结果。在一些情况下,可以以不同的顺序执行权利要求中引用的动作,并且仍然实现期望的结果。另外,附图中描绘的过程不一定要求所示的特定顺序或连续顺序来实现期望的结果。
在某些情况下,多任务和并行处理可能是有利的。此外,在上述实施方式中的各种系统组件的分离不应当被理解为在所有实施方式中都需要这种分离,并且应当理解到,所描述的程序组件和系统通常可以被一起集成在单个软件产品中或打包成多个软件产品。例如,内容选择器200、初始请求处理器300、链接请求处理器405、应用验证器500和数据库205可以是数据处理系统110的一部分、单个模块、具有一个或多个处理模块的逻辑设备、一个或多个服务器。
对于本文讨论的系统收集有关用户的个人信息或利用个人信息的情况,可以为用户提供机会来控制程序或功能部件是否可以收集个人信息(例如,有关用户的社交网络、社交行为或活动、用户的偏好或用户的位置的信息),或控制是否或如何从内容服务器或可能与用户有关的其他数据处理系统接收内容。另外,某些数据在被存储或使用之前,可以以一种或多种方式匿名化,以便当生成参数时,移除个人标识信息。例如,用户的身份可能会被匿名化,从而无法确定该用户的任何个人标识信息,或者可以概括获得位置信息的用户的地理位置(诸如到市、邮政编码或州级),使得无法确定用户的具体位置。因此,用户可以控制如何收集有关他或她的信息以及内容服务器如何使用这些信息。
现在已经描述了一些示例性实施方式,显而易见的是,前述内容是示例性的而非限制性的,已经通过示例呈现。特别地,尽管本文呈现的许多示例涉及方法动作或系统元件的特定组合,但是这些动作和那些元件可以以其他方式组合以实现相同的目标。仅结合一个实施方式讨论的动作、元件和特征不旨在从其他实施方式中的类似角色中排除。
本文使用的措辞和术语是出于描述的目的,不应当被视为限制。使用“包括”、“包含”、“具有”、“含有”、“涉及”、“特征在于”、“表征为”及其变形意味着涵盖其后列出的项目、其等同物和附加项目,以及由其后列出的项目组成的替代实施方式。在一个实施方式中,本文描述的系统和方法包括一个、多于一个的每个组合或所有所描述的元件、动作或组件。
以单数形式提及的对本文的系统和方法的实施方式、元件或动作的任何引用也可以涵盖包括多个这些元件的实施方式,并且对本文的任何实施方式、元件或动作的以复数形式的任何引用也可以涵盖仅包括一个元件的实施方式。以单数或复数形式的引用并不旨在将当前公开的系统或方法、它们的组件、动作或元件限定到单个或多个配置。对基于任何信息、动作或元件的任何动作或元件的引用可以包括动作或元件至少部分地基于任何信息、动作或元件的实施方式。
本文公开的任何实施方式可以与任何其他实施方式组合,并且对“实施方式”、“一些实施方式”、“替代实施方式”、“各种实施方式”、“一个实施方式”等的引用不一定是相互排斥的并且旨在指示结合实施方式描述的特定特征、结构或特性可以包括在至少一个实施方式中。本文使用的这些术语不一定都指的是相同的实施方式。任何实施方式可以以与本文公开的方面和实施方式一致的任何方式包含或排他地与任何其他实施方式组合。
对“或”的引用可以被解释为包含性的,使得使用“或”描述的任何术语可以指示单个、多于一个和所描述的术语中的任何一个。
在附图、详细说明或任何权利要求中的技术特征之后是附图标记的情况下,包括附图标记的唯一目的是提高附图、详细说明和权利要求的可理解性。因此,附图标记和它们的缺失都不会对任何权利要求要素的范围具有任何限制作用。
在不脱离其特性的情况下,本文描述的系统和方法可以以其他特定形式实现。尽管本文提供的示例涉及经由用于应用组件的资源标识符传递数据,但是本文描述的系统和方法可以包括应用于其他环境。前述实施方式是示例性的而不是限制所描述的系统和方法。因此,本文描述的系统和方法的范围由所附权利要求而不是前面的描述指示,并且在此涵盖在权利要求的等同物的含义和范围内的变化。

Claims (20)

1.一种经由资源标识符传递数据的方法,包括:
由具有一个或多个处理器的数据处理系统响应于与呈现在客户端设备上的第一资源上的内容项的交互,从所述客户端设备接收对内容的第一请求,所述内容项包括资源标识符,所述资源标识符引用可经由将要安装在所述客户端设备上的应用访问的第二资源,所述第一请求包括所述资源标识符和与所述客户端设备相对应的设备标识符;
由所述数据处理系统响应于执行安装在所述客户端设备上的所述应用,从所述客户端设备接收对内容的第二请求,所述第二请求包括与所述客户端设备相对应的设备标识符和与所述应用相对应的应用标识符;
由所述数据处理系统响应于接收到所述第二请求,基于包括在所述第一请求中的所述设备标识符和所述资源标识符以及包括在所述第二请求中的所述设备标识符和所述应用标识符,确定安装在所述客户端设备上的应用将接收所述第一请求中包括的请求标识符;以及
由所述数据处理系统响应于确定所述应用将接收所述请求标识符,提供所述资源标识符,以引导所述应用访问可经由所述资源标识符访问的所述第二资源,以经由所述应用进行呈现。
2.根据权利要求1所述的方法,进一步包括:
在接收到所述第一请求和所述第二请求之前,由所述数据处理系统从所述客户端设备接收对内容的第三请求以呈现在所述第一资源上,所述第三请求包括与所述客户端设备相对应的设备标识符;
由所述数据处理系统通过使用所述设备标识符访问数据库,确定所述应用未被安装在所述客户端设备上,所述数据库通过安装在对应客户端设备上的应用来维护所述设备标识符;以及
响应于确定所述应用未被安装在所述客户端设备上,由所述数据处理系统从多个内容项中选择所述内容项,以提供给所述客户端设备以在不同于所述应用的第二应用中在所述第一资源上显示。
3.根据权利要求1所述的方法,进一步包括:
由所述数据处理系统响应于接收到所述第一请求,基于包括在所述第一请求中的所述资源标识符来识别与要安装在所述客户端设备上的应用相对应的应用标识符;
由所述数据处理系统将所述设备标识符和所述应用标识符与所述资源标识符关联地存储在数据库上;以及
由所述数据处理系统响应于从所述客户端设备接收到所述第二请求,从所述数据库中识别所述设备标识符和所述应用标识符,并且
其中,确定所述应用将接收所述资源标识符进一步包括:确定包括在所述第一请求中的所述设备标识符与包括在所述第二请求中的所述设备标识符相匹配,并且响应于接收到所述第一请求识别的所述应用标识符与包括在所述第二请求中的所述应用标识符相匹配。
4.根据权利要求1所述的方法,进一步包括:
由所述数据处理系统响应于接收到所述第一请求,基于包括在所述第一请求中的所述设备标识符和与包括在所述第一请求中的所述资源标识符相对应的所述应用标识符,生成第一事件标识符;以及
由所述数据处理系统响应于接收到所述第二请求,基于包括在所述第二请求中的所述设备标识符和所述应用标识符来生成第二事件标识符,并且
其中,确定所述应用将接收所述资源标识符进一步包括:通过确定根据所述第二请求生成的所述第二事件标识符与根据所述第一请求生成的所述第一事件标识符相匹配,确定所述应用将接收所述资源标识符。
5.根据权利要求1所述的方法,进一步包括:
由所述数据处理系统从所述客户端设备接收响应于执行所述客户端设备上安装的应用而生成的对内容的第三请求,所述第二请求包括与包括在所述第一请求中的资源标识符相对应的、与所述设备标识符不同的第二设备标识符以及与所述应用标识符不同的第二应用标识符中的至少一个;
由所述数据处理系统响应于接收到所述第三请求,基于以下中的至少一项来确定所述应用将不接收所述资源标识符:确定所述第二设备标识符与所述设备标识符不匹配以及确定所述第二应用标识符与所述应用标识符不匹配;以及
由所述数据处理系统响应于确定所述应用将不接收所述资源标识符,限制将所述资源标识符提供给所述客户端设备以使所述应用呈现初始界面。
6.根据权利要求1所述的方法,进一步包括:
由所述数据处理系统响应于确定所述应用将接收所述资源标识符,确定引用所述第二资源以经由所述应用访问的所述资源标识符无效;以及
由所述数据处理系统响应于确定所述资源标识符无效,限制将所述资源标识符提供给所述客户端设备以使所述应用呈现初始界面。
7.根据权利要求1所述的方法,进一步包括:
由所述数据处理系统响应于接收到所述第一请求,基于提供给所述客户端设备的内容项,识别与要安装在所述客户端设备上的应用相对应的应用标识符;以及
由所述数据处理系统将来自对内容的第一请求的设备标识符和应用标识符与包括在提供给所述客户端设备的内容项中的资源标识符相关联。
8.根据权利要求1所述的方法,进一步包括:
由所述数据处理系统确定接收所述第一请求与接收所述第二请求之间的时长满足时限;以及
其中,确定所述应用将接收所述资源标识符进一步包括:响应于确定时间延迟满足所述时限,确定所述应用将接收所述资源标识符。
9.根据权利要求1所述的方法,其中,接收对内容的第一请求进一步包括响应于与呈现在所述第一资源源上的内容项的交互,接收所述第一请求,所述第一资源源被呈现在与所述客户端设备上的应用不同的第二应用上,与所述内容项的交互使得所述客户端设备响应于确定所述应用未被安装在所述客户端设备上而启动应用检索接口以安装所述应用。
10.根据权利要求1所述的方法,其中,接收对内容的第二请求进一步包括响应于由所述应用启动的、用于检索所述资源标识符的预配置函数调用,接收由所述应用生成的所述第二请求。
11.一种用于经由资源标识符传递数据的系统,包括:
具有一个或多个处理器的数据处理系统,所述数据处理系统被配置为:
响应于与呈现在客户端设备上的第一资源上的内容项的交互,从所述客户端设备接收对内容的第一请求,所述内容项包括资源标识符,所述资源标识符引用可经由将要安装在所述客户端设备上的应用访问的第二资源,所述第一请求包括所述资源标识符和与所述客户端设备相对应的设备标识符;
响应于执行安装在所述客户端设备上的所述应用,从所述客户端设备接收对内容的第二请求,所述第二请求包括与所述客户端设备相对应的设备标识符和与所述应用相对应的应用标识符;
响应于接收到所述第二请求,基于包括在所述第一请求中的所述设备标识符和所述资源标识符以及包括在所述第二请求中的所述设备标识符和所述应用标识符,确定安装在所述客户端设备上的应用将接收所述第一请求中包括的请求标识符;以及
响应于确定所述应用将接收所述请求标识符,提供所述资源标识符,以引导所述应用访问可经由所述资源标识符访问的所述第二资源,以经由所述应用进行呈现。
12.根据权利要求11所述的系统,其中,所述数据处理系统进一步被配置为:
在接收到所述第一请求和所述第二请求之前,从所述客户端设备接收对内容的第三请求以呈现在所述第一资源上,所述第三请求包括与所述客户端设备相对应的设备标识符;
通过使用所述设备标识符访问数据库,确定所述应用未被安装在所述客户端设备上,所述数据库通过安装在对应客户端设备上的应用来维护所述设备标识符;以及
响应于确定所述应用未被安装在所述客户端设备上,从多个内容项中选择所述内容项,以提供给所述客户端设备以在不同于所述应用的第二应用中在所述第一资源上显示。
13.根据权利要求11所述的系统,其中,所述数据处理系统进一步被配置为:
响应于接收到所述第一请求,基于包括在所述第一请求中的所述资源标识符来识别与要安装在所述客户端设备上的应用相对应的应用标识符;
将所述设备标识符和所述应用标识符与所述资源标识符关联地存储在数据库上;
响应于从所述客户端设备接收到所述第二请求,从所述数据库中识别所述设备标识符和所述应用标识符;以及
确定包括在所述第一请求中的所述设备标识符与包括在所述第二请求中的所述设备标识符相匹配,并且响应于接收到所述第一请求识别的所述应用标识符与包括在所述第二请求中的所述应用标识符相匹配。
14.根据权利要求11所述的系统,其中,所述数据处理系统进一步被配置为:
响应于接收到所述第一请求,基于包括在所述第一请求中的所述设备标识符和与包括在所述第一请求中的所述资源标识符相对应的所述应用标识符,生成第一事件标识符;
响应于接收到所述第二请求,基于包括在所述第二请求中的所述设备标识符和所述应用标识符来生成第二事件标识符;以及
通过确定根据所述第二请求生成的所述第二事件标识符与根据所述第一请求生成的所述第一事件标识符相匹配,确定所述应用将接收所述资源标识符。
15.根据权利要求11所述的系统,其中,所述数据处理系统进一步被配置为:
从所述客户端设备接收响应于执行所述客户端设备上安装的应用而生成的对内容的第三请求,所述第二请求包括与包括在所述第一请求中的资源标识符相对应的、与所述设备标识符不同的第二设备标识符以及与所述应用标识符不同的第二应用标识符中的至少一个;
响应于接收到所述第三请求,基于以下中的至少一项来确定所述应用将不接收所述资源标识符:确定所述第二设备标识符与所述设备标识符不匹配以及确定所述第二应用标识符与所述应用标识符不匹配;以及
响应于确定所述应用将不接收所述资源标识符,限制将所述资源标识符提供给所述客户端设备以使所述应用呈现初始界面。
16.根据权利要求11所述的系统,其中,所述数据处理系统进一步被配置为:
响应于确定所述应用将接收所述资源标识符,确定引用所述第二资源以经由所述应用访问的所述资源标识符无效;以及
响应于确定所述资源标识符无效,限制将所述资源标识符提供给所述客户端设备以使所述应用呈现初始界面。
17.根据权利要求11所述的系统,其中,所述数据处理系统进一步被配置为:
响应于接收到所述第一请求,基于提供给所述客户端设备的内容项,识别与要安装在所述客户端设备上的应用相对应的应用标识符;以及
将来自对内容的第一请求的设备标识符和应用标识符与包括在提供给所述客户端设备的内容项中的资源标识符相关联。
18.根据权利要求11所述的系统,其中,所述数据处理系统进一步被配置为:
确定接收所述第一请求与接收所述第二请求之间的时长满足时限;以及
响应于确定时间延迟满足所述时限,确定所述应用将接收所述资源标识符。
19.根据权利要求11所述的系统,其中,所述数据处理系统进一步被配置为响应于与呈现在所述第一资源源上的内容项的交互,接收所述第一请求,所述第一资源源被呈现在与所述客户端设备上的应用不同的第二应用上,与所述内容项的交互使得所述客户端设备响应于确定所述应用未被安装在所述客户端设备上而启动应用检索接口以安装所述应用。
20.根据权利要求11所述的系统,其中,所述数据处理系统进一步被配置为响应于由所述应用启动的、用于检索所述资源标识符的预配置函数调用,接收由所述应用生成的所述第二请求。
CN202080006293.8A 2019-08-20 2020-07-30 经由用于应用组件的深层链接传递数据 Pending CN113168427A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/546,196 US10826967B1 (en) 2019-08-20 2019-08-20 Passing of data via deep links for application components
US16/546,196 2019-08-20
PCT/US2020/044270 WO2021034473A1 (en) 2019-08-20 2020-07-30 Passing of data via deep links for application components

Publications (1)

Publication Number Publication Date
CN113168427A true CN113168427A (zh) 2021-07-23

Family

ID=72087279

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080006293.8A Pending CN113168427A (zh) 2019-08-20 2020-07-30 经由用于应用组件的深层链接传递数据

Country Status (4)

Country Link
US (2) US10826967B1 (zh)
EP (1) EP3864529A1 (zh)
CN (1) CN113168427A (zh)
WO (1) WO2021034473A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7815748B2 (en) 2007-06-15 2010-10-19 Gamajet Cleaning Systems, Inc. Apparatus for cleaning stacked vessels with low head clearance

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150215383A1 (en) * 2014-01-30 2015-07-30 Lei Sun Methods for Exchanging Data Amongst Mobile Applications Using Superlinks

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140020068A1 (en) * 2005-10-06 2014-01-16 C-Sam, Inc. Limiting widget access of wallet, device, client applications, and network resources while providing access to issuer-specific and/or widget-specific issuer security domains in a multi-domain ecosystem for secure personalized transactions
US9753746B2 (en) * 2008-12-19 2017-09-05 Paul Krzyzanowski Application store and intelligence system for networked telephony and digital media services devices
US10841839B2 (en) * 2009-01-28 2020-11-17 Headwater Research Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US9363337B2 (en) * 2010-08-09 2016-06-07 Yahoo! Inc. Conversion tracking and context preserving systems and methods
US8866701B2 (en) * 2011-03-03 2014-10-21 Citrix Systems, Inc. Transparent user interface integration between local and remote computing environments
US8769651B2 (en) * 2012-09-19 2014-07-01 Secureauth Corporation Mobile multifactor single-sign-on authentication
KR102209814B1 (ko) * 2013-12-13 2021-02-01 삼성전자주식회사 데이터 처리 방법 및 이를 지원하는 전자 장치
US9608870B1 (en) * 2014-02-28 2017-03-28 Google Inc. Deep link verification for native applications
US9420087B2 (en) * 2014-09-02 2016-08-16 Apple Inc. Notifications with custom user interface
US9985953B2 (en) * 2014-11-10 2018-05-29 Amazon Technologies, Inc. Desktop application fulfillment platform with multiple authentication mechanisms
US10089676B1 (en) * 2014-11-11 2018-10-02 Amazon Technologies, Inc. Graph processing service component in a catalog service platform
US10069832B2 (en) * 2014-11-14 2018-09-04 Google Llc Ephemeral applications
US10423954B2 (en) * 2015-01-26 2019-09-24 International Business Machines Corporation Resource account application management
US10498847B2 (en) * 2015-02-11 2019-12-03 Go Daddy Operating Company, LLC System and method for mobile application deep linking
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
CN105162785B (zh) * 2015-09-07 2019-01-04 飞天诚信科技股份有限公司 一种基于认证设备进行注册的方法和设备
US10365909B2 (en) * 2016-04-21 2019-07-30 Data Accelerator Ltd. Method and system for deploying virtualized applications
US10437577B2 (en) * 2018-02-02 2019-10-08 Verizon Patent And Licensing Inc. Systems and methods for mobile application installation
US10782951B2 (en) * 2018-02-23 2020-09-22 Digital Turbine, Inc. Instant installation of apps
US10592225B2 (en) * 2018-05-11 2020-03-17 Slack Technologies, Inc. Method, apparatus, and computer program product for installing third party applications requiring variable host address identification in a group-based communication system
US10937029B2 (en) * 2018-06-29 2021-03-02 Alegeus Technologies, Llc Manage remote procedure calls in centralized processing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150215383A1 (en) * 2014-01-30 2015-07-30 Lei Sun Methods for Exchanging Data Amongst Mobile Applications Using Superlinks

Also Published As

Publication number Publication date
US20210058446A1 (en) 2021-02-25
EP3864529A1 (en) 2021-08-18
US10826967B1 (en) 2020-11-03
US11089085B2 (en) 2021-08-10
WO2021034473A1 (en) 2021-02-25

Similar Documents

Publication Publication Date Title
US11907360B2 (en) Systems and methods for deploying countermeasures against unauthorized scripts interfering with the rendering of content elements on information resources
EP3278246B1 (en) In-domain webpage editing
CN108140196B (zh) 使用客户端生成的点击标识符减少内容项交互的时延的系统和方法
US9959192B1 (en) Debugging interface for inserted elements in a resource
US10705897B1 (en) Data driven API conversion
US10970139B2 (en) Controlling the triggering of function calls from content items
US10257251B1 (en) Systems and methods for using a uniform resource locator to call for different types of content
US20210352150A1 (en) Maintaining session identifiers across multiple webpages for content selection
US11947377B2 (en) Systems and methods for dynamically restricting the rendering of unauthorized content included in information resources
US20220141208A1 (en) Passing authentication information via parameters
US20130002540A1 (en) Operation information generation device
CN106796695B (zh) 应用安装的转化和识别
US10049170B1 (en) Methods and systems for selectively preventing third-party content from being displayed using undefined publisher identifier
US11089085B2 (en) Passing of data via deep links for application components
CN108738362B (zh) 基于多层级引用符数据生成应用的深度链接

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