Generating deep links for applications based on multi-level reference character data

By generating deep links that combine primary and secondary reference data, the problem of irrelevant content within the application is solved, achieving more efficient content presentation and network resource utilization.

CN114722316BActive Publication Date: 2026-01-30GOOGLE LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210276676.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2017-02-15
Publication Date
2026-01-30
Estimated Expiration
2037-02-15

AI Technical Summary

Technical Problem

In a networked environment, existing technologies struggle to provide context-aware content within applications, resulting in unrelevant content presentation and low efficiency in utilizing network resources.

Method used

By generating deep links and combining primary and secondary reference data, application servers can create more precise content presentation mechanisms, including rendering content interfaces within the application and even providing installation instructions when the application is not installed.

Benefits of technology

It improved the relevance of content presentation, reduced the number of user interactions, enhanced network resource utilization efficiency, and reduced computing resource consumption.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114722316B_ABST
    Figure CN114722316B_ABST
Patent Text Reader

Abstract

This application relates to generating deep links for an application based on multi-level referencer data. Systems and methods for providing referencer data to an application are provided. One method includes receiving a first set of data packets indicating navigation from a first resource to a second resource. The first set of data packets identifies the first resource and second-level referencer data associated with the first resource or a first content item on the first resource. The method includes rendering the second resource and a second content item provided within the second resource. The method includes receiving a selection of the second content item. The method includes generating a second set of data packets including second-level referencer data and primary referencer data associated with the second resource or the second content item. The method includes transmitting the second set of data packets to a server, receiving deep links generated by the server, and rendering a content interface using the deep links.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Divisional

[0002] This application is a continuation of Chinese Patent Application No. 201780002011.5, filed February 15, 2017, which is incorporated by reference in its entirety. BACKGROUND

[0003] In a networked environment, such as the Internet, a first-party content provider can provide information to a user device for rendering on a resource, such as a web page, a mobile application, a document, other application, and / or other resource. Additional third-party content can also be provided by a third-party content provider for rendering on the user device along with the information from the first-party content provider. A publisher can provide first-party content and third-party content on his or her resource.

[0004] In some implementations, the selection of content on a resource can cause an application to open on the user device. For example, the selection of content can cause an application that includes additional content related to the selected content to open. One challenge is to provide content that is contextually relevant within the application. SUMMARY

[0005] One illustrative implementation of the disclosure relates to a method. The method includes receiving, at a computing device, a selection of a first content item on a first resource. The method also includes generating, at the computing device, a set of one or more data packets. The data packets include primary referrer data associated with at least one of the first content item and the first resource and secondary referrer data associated with at least one of a second resource previously viewed by the user on a first application or a second application and a second content item displayed on the second resource. The method also includes transmitting, at the computing device, the set of data packets to a server. The method also includes receiving, from the server of the computing device, a deep link generated by the server using both the primary referrer data and the secondary referrer data. The method also includes rendering, at the computing device, a content interface having content generated according to the deep link within an application indicated by the deep link.

[0006] A set of one or more data packets generated at the computing device may be a second set of one or more data packets. The method may include receiving, via a first application of the computing device, a first set of one or more data packets instructing navigation from a second resource to a first resource. The first set of data packets may identify the first resource and at least one secondary reference data associated with the second resource or a second content item selected on the second resource to generate the first set of data packets. The method may also include rendering the first resource and a first content item provided within the first application of the computing device. Secondary reference data of a second set of one or more data packets may be extracted from the first set of one or more data packets. The first and second applications may be the same application or may be different applications.

[0007] In some implementations, deep links include a Uniform Resource Locator (URL) or Uniform Resource Identifier (URI) that partially includes a referrer field, which includes parameters related to primary and secondary referrer data. These parameters can be either Common Gateway Interface (CGI) parameters or parameters generated from key-value pair mappings.

[0008] In some implementations, rendering a content interface on an application indicated by a deep link includes downloading the application indicated by the deep link from a server. A deep link may include a reference tag that includes parameters representing primary reference data and secondary reference data.

[0009] In some implementations, secondary reference data includes one or more search terms entered by the user. Secondary reference data may include one or more parameters for selecting a second content item to be presented on the second resource.

[0010] The method may also include, at the server: receiving a second set of data packets; analyzing the second set of data packets to identify one or more parameters; determining whether the application indicating the deep link is installed on the computing device; and providing the application indicating the deep link in response to determining that the application indicating the deep link is not installed on the computing device; and determining, based on one or more parameters, the content to be displayed in the application indicating the deep link.

[0011] Another embodiment relates to a system including at least one computing device operatively coupled to at least one memory. The at least one computing device is configured to perform the illustrative methods set forth above. In another embodiment, the at least one computing device is configured to receive, via a first application, a first set of one or more data packets instructing navigation from a first resource to a second resource. The first set of data packets identifies a second resource and second-level reference data associated with at least one of the first resource used to generate the first set of data packets or a first content item selected on the first resource. The at least one computing device is further configured to render the second resource and a second content item provided within the second resource within the first application. The at least one computing device is further configured to receive a selection of the second content item via the first application. The at least one computing device is further configured to generate a second set of one or more data packets in response to the selection of the second content item, the second set of one or more data packets including second-level reference data extracted from the first set of data packets and primary reference data associated with at least one of the second resource or the second content item. The at least one computing device is further configured to transmit the second set of data packets to a server. The at least one computing device is further configured to receive from the server a deep link generated by the server using both the primary reference data and the second-level reference data. At least one computing device is also configured to render a content interface with content generated based on the deep link within a second application indicated by the deep link.

[0012] In some implementations, deep links include a Uniform Resource Locator (URL) or Uniform Resource Identifier (URI) that partially includes a referrer field, which includes parameters related to primary and secondary referrer data. These parameters can be either Common Gateway Interface (CGI) parameters or parameters generated from key-value pair mappings.

[0013] In some implementations, rendering the content interface on the second application includes downloading the second application from a server. Deep links may include reference tags containing parameters representing primary reference data and secondary reference data.

[0014] In some implementations, the second-level reference data includes one or more search terms entered by the user. In some implementations, the second-level reference data includes one or more parameters for selecting a first content item to be presented on the first resource.

[0015] In some implementations, the server is configured to: receive a second set of data packets, parse the second set of data packets to identify one or more parameters, determine whether a second application is installed on a computing device, and provide the second application in response to determining that the second application is not installed on the computing device, and determine the content to be displayed in the second application based on one or more parameters.

[0016] In some implementations, the first set of data packets is received from the resources of a third application.

[0017] Another implementation relates to a method. The method includes receiving, via a first application of a computing device, a first set of one or more data packets instructing navigation from a first resource to a second resource. The first set of data packets identifies a second resource and secondary reference data associated with at least one of the first resource or a first content item selected on the first resource, used to generate the first set of data packets. The method also includes rendering the second resource and a second content item provided within the second resource within the first application of the computing device. The method further includes receiving a selection of the second content item via the first application of the computing device. The method also includes generating, at the computing device, a second set of one or more data packets in response to the selection of the second content item, the second set of one or more data packets including secondary reference data extracted from the first set of data packets and primary reference data associated with at least one of the second resource or the second content item. The method further includes transmitting the second set of data packets to a server at the computing device. The method also includes receiving, at the computing device, a deep link generated by the server using both the primary reference data and the secondary reference data. The method further includes rendering a content interface having content generated according to the deep link within the second application on the computing device indicated by the deep link.

[0018] In some implementations, deep links include a reference field that is either a Uniform Resource Locator (URL) or a Uniform Resource Identifier (URI). This reference field includes parameters related to primary and secondary reference data. The parameters can be either Common Gateway Interface (CGI) parameters or parameters generated from key-value pair mappings.

[0019] In some implementations, rendering the content interface on the second application includes downloading the second application from a server. Deep linking includes reference tags, which contain parameters representing primary reference data and secondary reference data.

[0020] In some implementations, the second-level reference data includes one or more search terms entered by the user. In some implementations, the second-level reference data includes one or more parameters for selecting a first content item to be presented on the first resource.

[0021] In some implementations, the method further includes, at the server: receiving a second set of data packets, parsing the second set of data packets to identify one or more parameters, determining whether a second application is installed on a computing device, and providing the second application in response to determining that the second application is not installed on the computing device, and determining, based on one or more parameters, content to be displayed in the second application.

[0022] In some implementations, the first set of data packets is received from the resources of a third application.

[0023] Another implementation relates to a method. The method includes receiving a set of data packets at a server from a computing device. The set of data packets includes secondary reference data associated with at least one of a first content item provided within a first resource, and primary reference data associated with at least one of a second content item provided within a second resource, after the computing device has navigated from the first resource to the second resource following the selection of the first content item in the first resource. The set of data packets is received at the server in response to the selection of the second content item in the second resource on the computing device. The method further includes parsing the set of data packets to identify one or more parameters. The method further includes determining content to be displayed in an application on the computing device based on one or more parameters. The method further includes generating a deep link based on the content to be displayed in the application. The method further includes transmitting the deep link to the application on the computing device.

[0024] In some implementations, the method further includes determining whether an application to be opened on the computing device is installed on the computing device. In response to determining that the application is not installed on the user's device, the server is configured to provide the application for download on the computing device or to enable an app store to provide the application for download on the computing device.

[0025] In some implementations, deep linking includes one of a Uniform Resource Locator (URL) and a Uniform Resource Identifier (URI), which includes a referrer field containing parameters related to primary and secondary referrer data. The parameters can be either Public Gateway Interface (CGI) parameters or parameters generated from key-value pair mappings. Deep linking may include referrer tags that include parameters representing primary and secondary referrer data. Attached Figure Description

[0026] Details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the following description. Other features, aspects, and advantages of the subject matter will become apparent from the specification, drawings, and claims.

[0027] Figure 1 This is a block diagram of an application server and its associated environment according to an illustrative implementation.

[0028] Figure 2 This is a detailed block diagram illustrating the process of transferring secondary reference data and primary reference data between multiple resources and applications on a user device, according to an illustrative embodiment.

[0029] Figure 3This is a detailed block diagram illustrating the process by which a user equipment provides secondary reference data and primary reference data to an application server according to an illustrative embodiment.

[0030] Figure 4 This is a flowchart, according to an illustrative implementation, of a process for providing secondary reference data and primary reference data to an application.

[0031] Figure 5 This is a flowchart, according to an illustrative embodiment, of a process for providing secondary reference data and primary reference data to an application installed on a user device.

[0032] Figure 6 This is a flowchart, according to an illustrative implementation, of a process for installing an application on a user device and providing the application with secondary reference data and primary reference data.

[0033] Figure 7 It is a block diagram of a computing system according to an illustrative implementation. Detailed Implementation

[0034] The following is a more detailed description of the various concepts and their implementations related to methods, apparatuses, and systems for providing information using computer networks. The concepts described above and discussed in more detail below can be implemented in any of many ways, as the described concepts are not limited to any particular implementation. Examples of specific implementations and applications are provided primarily for illustrative purposes.

[0035] Referring generally to the accompanying drawings, various illustrative systems and methods are described for generating deep links in an application using referencer data at the application server when a user is directed from a content item to the application. More specifically, systems and methods are described for providing second- or third-level referencer data to the application server as part of the referencer data.

[0036] When a user selects a content item offered within an application or another resource (e.g., a webpage), that selection can cause the application associated with that content item to open on the user's device. When the application opens on the user's device, it can receive information that allows it to present relevant content to the user. This information can be provided through deep links received from the application server that cause a specific interface within the application to open (e.g., a customized interface including specific relevant content related to the user's activity). Deep links represent primary referrer data (e.g., information about the webpage displaying the just-selected content item and the content item itself). This allows the application to provide content related to what the user is viewing (in some implementations, the application itself does not need to receive primary referrer data). However, this approach can be limited by the limited amount of information the application server has to create deep links. Primary referrer data may not capture the content that directs the user to the original application or a resource within the application (e.g., a browser page the user links to within the application). For example, suppose a user performs a search (e.g., "country music") within a search engine and clicks on a result on a first webpage leading to a second webpage, then selects a content item on the second webpage that will cause a specific country music video to open within a media player application. When an application server generates deep links that cause a video to open along with additional content within the application, it will not be aware of the search, because there is no mechanism to provide the application server with reference data beyond just the main reference data (data about the second webpage). Therefore, when launching the application with a video, the additional content presented may be less relevant to the user because the deep links are not created using information about the search (or other additional context leading to the selection of content items). In some implementations, instead of providing the main reference data to the application server that generates the deep links in the application, or in addition to providing it to the application server, the main reference data can be provided to the client-side application on the user's device, and the client application can use this data to generate / customize UI elements within the application.

[0037] This disclosure generally relates to providing mechanisms for serving multi-level referential data to an application or application server, thereby allowing the application / application server to generate a more context-relevant user experience within the application (e.g., allowing the application server to provide deep links, which provide a more context-relevant user experience). This allows the application to provide more relevant content to the user and more accurately represent the multiple steps the user takes before opening the application. In some implementations, additional levels of referential data (e.g., second-level referential data) may be served to the application server when a content item is selected.

[0038] Application servers typically receive reference data, including primary and secondary reference data, from a user device when selecting content items to use on the device. In various implementations, different methods may exist for providing deep links to the application on the user device, depending on whether the application to be launched is already installed on the user device. In any case, deep linking technology can be used to relay secondary reference data to the application to be launched. Deep linking technology allows the destination application (or other resource, such as a webpage) to receive information about the referenced resource, thereby accelerating content delivery by the application. In this way, deep linking allows for more efficient navigation to specific resources provided by the destination application by reducing the need to perform additional searches or follow further links within the destination application. Therefore, deep linking can improve the efficiency of reaching user-relevant content and reduce the computational resources on the user device used to reach the desired content, as the content is presented in a single step rather than through a series of user interactions within the application. Furthermore, deep linking can help reduce network utilization and increase available bandwidth by reducing the number of content requests and responses transmitted between the user device and the server in response to multiple user interactions to retrieve the desired content.

[0039] In some implementations, for application servers providing deep links to applications, the application may already be installed on the user's device. The endpoint of the deep link can be constructed by the application server. In some such implementations, for example, using CGI parameters or an intent with key-value pair mappings for parameters, the endpoint is represented by a URL with a custom scheme. The parameter can represent both second-level reference data and primary reference data. The application uses this endpoint to load user-relevant content within the application.

[0040] In some implementations, the application server providing deep links to an application may not need to install the application on the user's device. In such implementations, the application server uses a referrer tag to provide information related to secondary referrer data. The referrer tag can be provided to the application through an app store (e.g., a location where the application can be downloaded by the user's device). The referrer tag can typically be used to identify what activity led to the installation of the application (e.g., the referrer tag can typically include primary referrer data received from the user's device that identifies activities such as selecting a download button). However, as described in this disclosure, additional data, such as secondary referrer data (and, if applicable, additional primary referrer data), can be represented within the referrer tag. The application server can modify the referrer tag to include a representation of secondary referrer data. After the application is installed on the user's device, the application server or app store can deliver the modified referrer tag, and the application can treat the tag as a navigation endpoint when loading content within the application. Alternatively or concurrently, the application server or referrer application can cause the application to be installed on the device, and the application server can subsequently generate a deep link based on the received primary and secondary referrer data and deliver that deep link to the application.

[0041] In either case, after the application receives a navigation endpoint from the application server, that endpoint is used to populate the application with content. The application passes variables from the endpoint to the content server. The content server can use this endpoint to generally identify how the user reached the original application. For example, the content server can typically use the endpoint to identify whether the user reached the original application via a very specific or narrow topic search. The content server can then respond with appropriate content (e.g., content related to a very specific topic the user searched for, or more general content covering a very broad topic search). This can result in several different experiences for different users who select the same content item on the resource. If a user initially searches for a specific music video, the server can provide content related to that specific music video or the artist of the music video. If the user performs a general music video search, the server can provide different music videos from different artists of the same genre.

[0042] In the context of the systems discussed in this paper that collect and / or utilize personal information about users, or situations where personal information may be used, users can be given the opportunity to control whether a program or feature collects personal information (e.g., information about the user's social networks, social actions or activities, user preferences, user's current location, etc.), or to control whether and / or how content that may be more relevant to the user is received from the content management system. Additionally, some data can be anonymized in one or more ways before being stored or used, removing personally identifiable information when generating parameters (e.g., demographic parameters). For example, a user's identity can be anonymized, making it impossible to determine the user's personally identifiable information, or, where location information is available, the user's geographic location can be generalized (e.g., to a city, zip code, or state level), making it impossible to pinpoint the user's specific location. Therefore, users can control how information about them is collected and used by content servers. Furthermore, personal user information itself is not presented to content providers, so content providers cannot identify interactions associated with a specific user.

[0043] Now for reference Figure 1 In general, a block diagram of application server 150 and associated environment 100 is shown according to an illustrative embodiment. Users can use one or more user devices 104 to perform various actions and / or access various types of content, some of which may be provided via network 102 (e.g., the Internet, LAN, WAN, etc.). For example, user device 104 may be used to access web pages (e.g., using an Internet browser), media files, and / or any other type of content. Content management system 108 can be configured to select content for display to the user within resources (e.g., web pages, applications, etc.) and provide content items 112 from content database 110 to user device 104 via network 102 for display within the resources. The content items selected by content management system 108 may be provided by one or more content providers via network 102 using one or more content provider devices 106. In some embodiments, content management system 108 may select one or more content items from one or more content providers from a plurality of content items from multiple content providers. In such an implementation, the content management system 108 may determine, at least in part, the content to be published in one or more content interfaces of resources (e.g., web pages, applications, etc.) displayed on the user device 104 based on metrics or other characteristics of the content items or content providers.

[0044] Application server 150 can be configured to receive referential data from user device 104. Referential data typically includes information related to the user's activity, such as searches performed by the user, the topic or subject of the webpage the user is viewing, etc. Referential data may include primary referential data (e.g., data from the current resource the user is viewing) and secondary referential data (e.g., data related to one or more resources previously viewed by the user before viewing the current resource). Application server 150 generates deep links based on the referential data. Deep links are typically links to specific locations within the application (e.g., specific segments of content and / or content interfaces dispatched by a media application, specific webpages within a browser application, etc.). For example, deep links can be used to identify content to be presented in the application. In some implementations, the identified content may be searchable or indexable by a content resource providing the content. The application then retrieves, formats, and displays the content from the content resource.

[0045] As an example of application server 150 activity, referencing data may relate to user activity involving viewing a country music video on a webpage. Referencing data may identify a song or artist, and may also identify the user's activity that led them to view the country music video (e.g., searching for a specific artist or music video). Application server 150 may receive referencing data and generate deep links referencing a specific music video, song, or artist. Deep links may further reference searches or other activities performed by the user in reaching the country music video. Deep links may be received from application server 150 via an application on user device 104, and the application may use the deep links to access content ultimately related to the original user activity. The content is then formatted and displayed on the application on user device 104. The content may be provided from any resource via network 102.

[0046] For more detailed information, please refer to [link / reference]. Figure 1User equipment 104 and / or content provider equipment 106 can be any type of computing device (e.g., having a processor and memory or other types of computer-readable storage media), such as a television and / or set-top box, mobile communication device (e.g., cellular phone, smartphone, etc.), computer and / or media device (desktop computer, laptop or notebook computer, netbook computer, tablet device, gaming system, etc.) or any other type of computing device. In some embodiments, one or more user devices 104 may be a set-top box or other device for use with a television. In some embodiments, content may be provided via a web-based application and / or an application residing on user equipment 104. In some embodiments, user equipment 104 and / or content provider equipment 106 may be designed to use various types of software and / or operating systems. In various illustrative embodiments, user equipment 104 and / or content provider equipment 106 may be equipped with one or more user input devices (e.g., keyboard, mouse, remote control, touch screen, etc.) and / or one or more display devices (e.g., television, monitor, CRT, plasma, LCD, LED, touch screen, etc.) and / or associated with one or more user input devices (e.g., keyboard, mouse, remote control, touch screen, etc.) and / or associated with one or more display devices (e.g., television, monitor, CRT, plasma, LCD, LED, touch screen, etc.).

[0047] User equipment 104 and / or content provider equipment 106 may be configured to receive data from various resources using network 102. In some embodiments, network 102 may include a computing network (e.g., LAN, WAN, Internet, etc.) to which user equipment 104 and / or content provider equipment 106 can be connected via any type of network connection (e.g., wired, such as Ethernet, telephone line, power line, etc., or wireless, such as WiFi, WiMAX, 3G, 4G, satellite, etc.). In some embodiments, network 102 may include a media distribution network, such as a cable (e.g., coaxial metal cable), satellite, fiber optic, etc., configured to distribute media programs and / or data content.

[0048] Content management system 108 can be configured to select third-party content items to be displayed on resources. For example, content management system 108 can conduct an auction or bidding process. One or more content items from one or more winners of the auction or bidding process can be selected for display on resources. Content management system 108 can further use quality scores (i.e., a measure of how likely a user of user device 104 is to interact with or take a conversion action related to a content item) or other metrics during the content item selection process. In some implementations, content providers can create content campaigns or otherwise provide various settings or guidelines to content management system 108. Such settings or guidelines can govern how content providers participate in the content item selection process (e.g., how much to bid in a given auction, the content provider's total budget (weekly, daily, or other) etc.). Such settings or guidelines can be set based on various metrics of the content items, such as cost per impression or cost per thousand impressions (CPM), cost per click (CPC) or cost per acquisition (CPA) or cost per conversion. Such settings or guidelines can be further set based on the type of platform on which content items should be provided (e.g., mobile, desktop, etc.), what type of resources should be provided on which content items (e.g., search results pages), the geographic location of the user's device displaying the resources, etc.

[0049] Users can interact with content items presented on resources on user device 104. Such interactions can include clicking, double-clicking, touching on a touchscreen, or any other type of interaction that indicates the selection of a content item. In some implementations, selecting a content item can direct user device 104 to open an application on the device. In other implementations, selecting a content item can cause user device 104 to provide referrer data to application server 150 (described below), and the deep link received from application server 150 can cause the application to open on user device 104. The application can then retrieve content related to the user and the content item and display the content within the application. In some implementations, content items can be associated with applications. For example, if a user is currently viewing a webpage related to music, the content item can be associated with an application configured to play music, allowing the user to view a list of songs that can be consumed by the user, and so on.

[0050] As described above, application server 150 is configured to receive reference data from user device 104. When a user selects a content item that causes an application to open on user device 104, application server 150 can receive instructions on the selection of the content item and additional information (e.g., reference data) from user device 104. Application server 150 can generate deep links that can be sent to user device 104 and used by the application to retrieve content relevant to the user.

[0051] Application server 150 is shown to include a referential data subsystem 152. Referential data subsystem 152 can receive referential data from user device 104 and identify data that can be used during deep link generation. For example, if the referential data includes data related to a search performed by the user, referential data subsystem 152 can identify the search terms. As another example, referential data may include information about the webpage on which content items are presented, and referential data subsystem 152 can identify specific content within the webpage that can be used to build deep links.

[0052] Application server 150 is shown to include a deep link generation subsystem 154. Deep link generation subsystem 154 can be configured to generate deep links based on reference data. In some implementations, a deep link can be a Uniform Resource Locator (URL) or Uniform Resource Identifier (URI) with endpoints constructed using reference data. For example, for the URL of a webpage, http: / / www.example.com, an endpoint (e.g., " / path / page") can be constructed for the URL to create a deep link. The endpoint allows a content server to access indexed content associated with that endpoint, thus allowing the relevant content to be presented to the user via the application through the endpoint.

[0053] In some implementations, endpoints can be constructed by the deep link generation subsystem 154 using Common Gateway Interface (CGI) parameters. Using CGI parameters, a web server configured to respond to web page requests from a web browser can serve content (e.g., a new web page with relevant content) based on the identified parameters. In some implementations, endpoints can be constructed using key-value pair mappings. Key-value pairs can typically be linked data sets that include a key (e.g., an identifier) ​​and a value (e.g., the value of an identifier reference data). The web server serving content to the application can use a lookup table with key-value pairs to determine the content to be rendered on the application.

[0054] In some implementations, the application may already be installed on the user device 104 when the user selects a content item to direct the application to open on the user device 104. In such a case, the user device 104 can provide referrer data to the application server 150, and the application can receive deep links in the response from the application server 150. These deep links are then used to retrieve content from the web server for display within the application.

[0055] In some implementations, the application to be opened on the user device may not need to be installed on the user device. In such implementations, the application can be downloaded from application server 150. Application server 150 is shown as including application installation subsystem 156, which is configured to facilitate the installation of application 162 on user device 104. Application 162 can be retrieved from local or remote database 160.

[0056] If an application needs to be downloaded to user device 104, the application server 150 can provide the application with deep links in the form of reference tags. The application server 150 is shown as including a reference tag subsystem 158, which is configured to generate reference tags (or modify existing reference tags). Reference tags are typically tags generated by the application server 150 to indicate information about what caused the application 162 to be installed on user device 104. Reference tags can typically include, for example, primary reference data. However, the reference tag subsystem 158 can be configured to also include secondary reference data received by the application server 150 within the tags. When the application 162 is installed and opened on user device 104, the reference tags can be used to determine the content to be initially presented within the application.

[0057] In various implementations, the activity of application server 150 can be distributed across multiple servers. For example, user device 104 can be configured to download the application to be loaded onto the user device from a resource other than application server 150, but can still receive modified reference tags from application server 150. It should be understood that Figure 1 The configuration shown is not restrictive, and the various activities related to the presentation of the application on user device 104 may be provided to user device 104 by application server 150 or another system connected within environment 100.

[0058] refer to Figure 2According to an illustrative embodiment, a detailed block diagram illustrating the process of relaying second-level reference data from a first resource to a second resource is shown. As described above, second-level reference data, together with main reference data, can be used to generate deep links. The main reference data typically refers to the current resource (e.g., the current webpage the user is currently viewing), while the second-level reference data typically refers to a previous resource (e.g., a previous webpage the user was viewing before reaching the current webpage). See details... Figure 2 It describes in more detail the process of passing second-level reference data from a previous resource to the current resource.

[0059] A user can view a first resource 202 on a first application 204 on user device 104. The first resource 202 may include any number of content items 206, links, images, text, and other content typically found on a resource. User device 104 may receive a selection from the user that causes a second resource 212 on a second application 214 to be presented on user device 104. This selection may be, for example, a selection of content item 206 that causes a new application to open, or a selection of a link that opens a new webpage within the same application. The second resource 212 may be presented on the second application 214, wherein any number of content items 216, links, images, text, and other content may be presented based on the user's selection on the first resource.

[0060] It should be understood that, although the first resource 202 and the second resource 212, as well as the first application 204 and the second application 214, are in Figure 2 While they are distinct from each other, the first resource 202 and the second resource 212 can be the same resource, and the first application 204 and the second application 214 can be the same application. In other words, no new application can be opened or no new resource is loaded after the user makes a selection. Figure 2 The implementation shown is illustrated to distinguish between these two resources and applications for ease of explanation in the case of loading a new resource or application, but the systems and methods described herein are not limited to such cases.

[0061] When navigating from the first resource 202 to the second resource 212, secondary reference data 220 can be passed to the second resource 212 and the second application 214. Secondary reference data 220 typically includes information related to the first resource 202. For example, if the first resource 202 is a search results webpage, and the user's selection is a choice of search results, then secondary reference data 220 can identify the search terms entered by the user that caused the search results to be generated. As another example, if the user's selection is a selection of content item 206, then secondary reference data 220 can include data related to the decision of providing content item 206 for display on the first resource 202. If content item 206 is provided as part of a content item promotion campaign, then secondary reference data 220 can identify information related to the promotion campaign, thereby indicating information that may be relevant to users viewing the first resource 202.

[0062] Secondary reference data 220 is typically used to capture the intent of a user that leads to the loading of a second resource 212 on a second application 214. Using the country music example above, in the first example, the user may have performed a general search for country music and then selected a specific song from the list of songs provided as search results. Secondary reference data 220 can be used to identify that the user performed a general search for country music rather than for a specific song. In the second example, the user may have performed a general search for all types of music and then selected a specific country music song from the list of search results. Generally, secondary reference data 220 can be used to identify that the user is only interested in music. In the third example, the user may have performed a search for a specific song and then selected a link pointing to that song. Secondary reference data 220 can be used to identify the user's interest in a specific song or the artist of a song.

[0063] As another example, a user can shop via first resource 202, and multiple content items related to the items available for purchase can be presented. If the user is shopping (e.g., for a jacket), second-level reference data 220 can identify one or more search parameters entered by the user (e.g., jacket type, jacket color, etc.). When a user selection occurs (e.g., selection of a content item), second-level reference data 220 is generated based on parameters entered by the user to initiate the shopping process.

[0064] Secondary reference data 220 can be further used to identify other information of interest, such as whether the user intends to make a purchase, how the user accesses the first resource 202 and the first application 204, etc. Secondary reference data 220 can be inherited from multiple user selections and navigations; that is, user information can be determined across multiple user selections on multiple resources and applications.

[0065] In various implementations, the second-level reference data 220 can be represented within the second resource 212, the second application 214, and / or the content item 216. For example, if the second resource 212 or the second application 214 is the same as the first resource 202 or the first application 204, the second-level reference data 220 can be stored within the resource or application. As another example, if the resource and / or application changes, the second-level reference data 220 can be associated with the new resource and / or application, or it can be associated with the content item 216.

[0066] Now for reference Figure 3 According to an illustrative embodiment, a detailed block diagram illustrating the process of transmitting second-level reference data and primary reference data to an application server is shown. Figure 3 In this scenario, the user has accessed a second resource 212 on a second application 214. The second resource 212 may include any number of content items 216, links, images, text, and other content typically found on a resource. The user device 104 may receive a selection of content item 216 from the user. The selection of content item 216 may typically cause a third application 224 to open on the user device 104, where a third resource 222 and new content 226 are displayed within the resource.

[0067] Content item 216 can be a content item specifically associated with a third application 224. For example, referring to the shopping example above, content item 216 can be specifically associated with a shopping-based application that allows users to purchase jackets. As another example, referring to the music example above, content item 216 can be specifically associated with a music application configured to play music on user device 104.

[0068] The user's selection of content item 216 can cause a third application 224 to be launched or installed on the user device 104. If the third application 224 is already installed, the application can be launched, and the deep link 232 (described in detail below) received from the application server 150 is used to generate content for display within the application. If the third application 224 is not installed on the user device 104, the application can be downloaded (e.g., from the application server 150 or another server) and installed on the user device 104. The reference tag 234 accompanying the download, provided by the application server 150 or another server, is then used to retrieve the content to be displayed within the application upon its first launch.

[0069] When a user selects content item 216, reference information is provided to application server 150 via user device 104. The reference information includes secondary reference data 220 relayed from previous applications and resources viewed by the user, as described above. The reference information also includes primary reference data 230 directly related to the second resource 212, the second application 214, and the selected content item 216. For example, primary reference data 230 may include information related to the selection of content item 216 for display on the second resource 212. As another example, primary reference data 230 may include information about other content displayed on the second resource 212 (e.g., using a country music example, primary reference data 230 may identify a specific song or the artist of the song being played). As yet another example, primary reference data 230 may identify the type of resource (e.g., a specific webpage link) or application (e.g., a browser) used to view the content.

[0070] As described above, application server 150 receives primary reference data 230 and secondary reference data 220 and can be configured to generate a deep link 232 of third application 224 based on the reference data. In some embodiments, application server 150 can determine whether third application 224 is already installed on user device 104, and if user device 104 has not yet installed the application, it can provide the application for download.

[0071] If user device 104 has a third application 224 installed, application server 150 can be configured to generate deep links 232 by constructing endpoints of URLs or URIs. For example, referring to a shopping example, if the referrer data indicates that the user is buying all types of jackets, the endpoint can refer to jackets (e.g., " / jacket" or " / clothing / jacket"). As another example, referring to a country music example, if the referrer data indicates that the user is interested in a specific song, the endpoint can refer to that specific song. As yet another example, if the referrer data indicates a general interest in music, the endpoint can generally refer to music content without identifying country music as a specific genre. In some implementations, the endpoint can be constructed using CGI parameters. In other implementations, the endpoint can be constructed using key-value pair mappings. In yet another implementation, any method for generating deep links can be used. The third application 224 can receive the deep links 232 and use them to retrieve content relevant to the user.

[0072] If user device 104 does not have the third application 224 installed, application server 150 (or another system) can provide the application for download by the user device. Furthermore, application server 150 can be configured to generate a reference tag 234 for the application (or modify an existing reference tag accompanying the download). Reference tag 234 typically includes information indicating one or more actions that lead to the installation of the application on user device 104. For example, reference tag 234 may identify a specific content item 216 selected by the user to initiate the process. Reference tag 234 may also include information about the selection of content item 216 for display on the second resource 212. In other words, reference tag 234 may include information that is typically included as part of the main reference data 230.

[0073] Application server 150 may further use reference tag 234 to provide information related to secondary reference data 220 to third application 224. For example, reference tag 234 may typically include information about selecting one or more content items 206 in the first resource 202 of the first application 204. Furthermore, reference tag 234 may identify the topic or other content of the first resource 202 or the topic or other content of previously viewed content by the user.

[0074] Application server 150 can transmit reference tag 234 to user device 104. Upon first startup on user device 104, third application 224 can receive reference tag 234 and use it to determine the content to be displayed within the application. Reference tag 234 can be in any format. For example, reference tag 234 can be an HTTP header field.

[0075] The third application 224 can be configured to retrieve content for display on the application upon receiving a deep link 232 or a reference tag 234. The type of content retrieved can vary based on reference data identified via deep link 232 or reference tag 234. For example, using a country music video example, the third application 224 can provide a specific music video as the primary recommendation on the application's homepage. The specific music video can be selected based on one or more specific songs or artists identified by deep link 232 or reference tag 234, or it can be selected based on more general search terms identified by deep link 232 or reference tag 234. As another example, the third application 224 can provide a list of music videos (e.g., a recommended playlist), selecting each music video in the list based on information identified by deep link 232 or reference tag 234. Some items in the list may relate to primary reference data (e.g., a specific artist or song), while other items in the list may relate to secondary reference data (e.g., other country music artists and songs, or songs from other genres that may be associated with country music). As yet another example, the third application 224 can open a channel page that relates to a specific artist or genre.

[0076] Now for reference Figure 4 The diagram illustrates a flowchart of a process 400 for providing secondary reference data and primary reference data to an application. As described above, process 400 can be executed by a user device 104 that transmits information to an application server 150.

[0077] Process 400 includes receiving, at a first application on a user device, a first set of one or more data packets (405) instructing navigation from a first resource to a second resource. The command may identify second resource and secondary reference data associated with at least one of the first resource or first content item selected on the first resource to generate the first set of data packets. For example, the first resource may be a first webpage, and the command may identify the second webpage selected by the user based on the selection of a specific content item or link on the first webpage. In such an example, the secondary reference data may refer to the content of the first webpage and the user's intent when viewing the first webpage. For example, if the user performs a search, the secondary reference data may refer to search terms entered by the user. As another example, if one or more content items are selected for display on the first webpage, the secondary reference data may refer to parameters used to select the content items. The secondary reference data may be passed from the first webpage to the second webpage via any method. In some embodiments, the secondary reference data may be passed via an HTTP header field of an HTTP address used for navigation to the second webpage. In some embodiments, the secondary reference data may be associated with content displayed on the second webpage. In some implementations, second-level reference data can be stored locally on the browser.

[0078] Process 400 includes rendering a second resource and a second content item provided within a second resource (410). The second resource and the second content item may be rendered within a first application on the user's device (e.g., a browser or other user application). The second content item and other content displayed on the second resource may be selected by the user from the first resource. In some implementations, the second content item may be associated with a second application. For example, the second application may be an application such as a media player, browser, communication software, word processor, database software, spreadsheet software, email program, presentation software, database software, etc.

[0079] Process 400 includes receiving a selection of a second content item (415). In various embodiments, the selection of the second content item can be a click, double-click, hover event, touch on a touchscreen, or any other type of event related to a user action on the second content item.

[0080] Process 400 includes generating a second set of one or more data groups (420) in response to the selection of a second content item. The second set of data groups may include secondary reference data identified at box 405 along with primary reference data associated with at least one of the second resource or second content items. The primary reference data may typically identify information, for example, related to the second resource (e.g., specific content displayed on the second resource). The primary reference data may also relate to the selection of a specific second content item for display on the second resource.

[0081] Process 400 includes transmitting a second set of data packets to a server (425). The server can typically be configured to generate deep links based on reference data in the second set of data packets. The server can receive and parse the second set of data packets to identify one or more parameters (e.g., primary reference data and secondary reference data). The server can use these parameters to generate deep links.

[0082] Process 400 includes receiving a deep link generated by a server (430) and rendering a content interface (435) with content generated based on the deep link within a second application on the user's device. The rendered content interface may typically include endpoints using the deep link to retrieve indexed content from a remote resource for display on the second application.

[0083] Now for reference Figure 5 The flowchart illustrates a process 500 for providing secondary referencer data and primary referencer data to an application. Figure 5 In the example, the application is already installed on the user's device. As described above, process 500 can be executed by application server 150.

[0084] Process 500 includes receiving a set of data packets from a user device (505). This set of data packets may include primary reference data and secondary reference data, and may be generated by an application on the user device after selecting content items within the application, as described above. Process 500 includes parsing the set of data packets to identify one or more parameters (510). In various embodiments, the parameters may identify the primary reference data and secondary reference data to be included in the deep link.

[0085] Process 500 further includes determining the application to launch on the user's device based on the user's selection of content items (515). Process 500 also includes determining whether the application is already installed on the user's device (520). After verifying that the application is installed on the user's device, process 500 includes generating a deep link to the application based on one or more parameters (525) and providing the deep link to the user's device (530). The deep link can then be used by the application to retrieve content related to primary reference data and secondary reference data.

[0086] Now for reference Figure 6 The flowchart illustrates a process 600 for providing secondary referencer data and primary referencer data to an application. Figure 6 In this example, the application is not installed on the user's device. As mentioned above, process 600 can be executed by application server 150.

[0087] Process 600 includes receiving a set of data packets from a user device (605). This set of data packets may include primary reference data and secondary reference data, and may be generated by an application on the user device after selecting content items within the application, as described above. Process 600 includes parsing the set of data packets to identify one or more parameters (610). In various embodiments, the parameters may identify the primary reference data and secondary reference data to be included in the deep link.

[0088] Process 600 also includes determining the application to launch on the user's device based on the user's selection of content items (615). Process 600 also includes determining whether the application is already installed on the user's device (620). After verifying that the application is not installed on the user's device, process 600 includes providing the application for download on the user's device (625).

[0089] Process 600 also includes generating a reference tag for the application based on one or more parameters (630) and providing the reference tag to the user device (635). The application can then use the reference tag to retrieve content related to the primary reference data and the secondary reference data.

[0090] Figure 7 The illustration depicts a computing system 700 that can be used, for example, to implement illustrative user device 104, illustrative content management system 108, illustrative content provider device 106, illustrative application server 150, and / or various other illustrative systems described in this disclosure. The computing system 700 includes a bus 705 or other communication components for transmitting information and a processor 710 coupled to the bus 705 for processing information. The computing system 700 also includes a main memory 715, such as random access memory (RAM) or other dynamic storage device, coupled to the bus 705 for storing information and instructions to be executed by the processor 710. The main memory 715 can also be used to store location information, temporary variables, or other intermediate information during the execution of instructions by the processor 710. The computing system 700 may also include a read-only memory (ROM) 1220 or other static storage device coupled to the bus 705 for storing static information and instructions for the processor 710. A storage device 725, such as a solid-state device, disk, or optical disk, is coupled to the bus 705 for persistently storing information and instructions.

[0091] The computing system 700 can be coupled via bus 705 to a display 735, such as a liquid crystal display or an active matrix display, for displaying information to a user. An input device 730, such as a keyboard including alphanumeric keys and other keys, can be coupled to bus 705 for transmitting information and command selections to the processor 710. In another embodiment, the input device 730 has a touchscreen display 735. The input device 730 may include cursor control, such as a mouse, trackball, or cursor arrow keys, for transmitting directional information and command selections to the processor 710 and for controlling cursor movement on the display 735.

[0092] In some embodiments, computing system 700 may include a communication adapter 740, such as a network adapter. Communication adapter 740 may be coupled to bus 705 and may be configured to enable communication with computing or communication network 745 and / or other computing systems. In various illustrative embodiments, communication adapter 740 may be used—e.g., wired (e.g., via Ethernet), wireless (e.g., via…) (etc.), pre-configured, ad-hoc, LAN, WAN, etc.—to achieve any type of networking configuration.

[0093] According to various embodiments, in response to the processor 710 executing an arrangement of instructions contained in the main memory 715, the computing system 700 can implement the processes described herein. Such instructions can be read into the main memory 715 from another computer-readable medium, such as storage device 725. Execution of the arrangement of instructions contained in the main memory 715 causes the computing system 700 to perform the illustrative processes described herein. One or more processors in a multiprocessor arrangement can also be used to execute the instructions contained in the main memory 715. In alternative embodiments, hardwired circuitry can be used instead of or in combination with software instructions to implement the illustrative embodiments. Therefore, the embodiments are not limited to any particular combination of hardware circuitry and software.

[0094] The systems and methods described in this disclosure are feasible for any type of third-party content item (i.e., any type of content item to be displayed on a resource). In one embodiment, the content item may include an advertisement. In one embodiment, the content item may include any text, image, video, story (e.g., news report), social media content, link, or any other type of content provided by a third party for display on a resource provided by a first-party content provider. The types of content items for which the methods described herein are applied are not limiting.

[0095] Although Figure 7An example processing system has been described, but implementations of the subject matter and functional operations described herein may be performed using other types of digital electronic circuitry or in computer software, firmware, or hardware—including the structures disclosed herein and their equivalents—or in a combination of one or more of them.

[0096] The embodiments of the subject matter and operations described herein may be implemented or performed in a combination of digital electronic circuits or computer software implemented on tangible media, firmware, or hardware—including the structures disclosed herein and their structural equivalents. Embodiments of the subject matter described herein may be implemented as one or more computer programs, i.e., one or more subsystems of computer program instructions encoded on one or more computer storage media for execution by or control of the operation of a data processing apparatus. Alternatively or additionally, the program instructions may be encoded on artificially generated propagated signals—e.g., machine-generated electrical, optical, or electromagnetic signals—that are generated to encode information for transmission to a suitable receiver device for execution by the data processing apparatus. The computer storage medium may be or may be included therein: a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of these. Furthermore, although the computer storage medium is not a propagated signal, it may be a source or destination of computer program instructions encoded in artificially generated propagated signals. The computer storage medium may also be or be included therein as one or more separate components or media (e.g., multiple CDs, discs, or other storage devices). Therefore, computer storage media are both tangible and non-temporary.

[0097] The operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.

[0098] The terms "data processing apparatus" or "computing device" encompass all types of apparatus, devices, and machines used for processing data, including, for example, one or more programmable processors, computers, systems-on-a-chip, or combinations thereof. The apparatus may include special-purpose logic circuitry, such as FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits). In addition to hardware, the apparatus may also include code that creates an execution environment for the computer program in question, such as code constituting processor firmware, protocol stacks, database management systems, operating systems, cross-platform runtime environments, virtual machines, or combinations thereof. The apparatus and execution environment can implement various computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.

[0099] Computer programs (also referred to as programs, software, software applications, scripts, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and can be deployed in any form, including as standalone programs or as modules, components, subroutines, objects, or other units suitable for use in a computing environment. A computer program may, but does not necessarily, correspond to a file in a file system. A program may be stored as part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinating files (e.g., a file storing one or more subsystems, subroutines, or code portions). Computer programs can be deployed to execute on one or more computers, located at a single site or distributed across sites and interconnected by a communications network.

[0100] The processes and logic flows described in this specification can be executed by one or more programmable processors, which execute one or more computer programs to perform actions by manipulating input data and generating output. The processes and logic flows can also be executed by special-purpose logic circuitry—such as FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits)—and the devices can also be implemented as special-purpose logic circuitry.

[0101] By way of example, processors suitable for executing computer programs include both general-purpose and special-purpose microprocessors, as well as any one or more processors in any type of digital computer. Typically, a processor receives instructions and data from read-only memory or random access memory, or both. The basic components of a computer are a processor for performing actions according to instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more mass storage devices for storing data—such as magnetic disks, magneto-optical disks, or optical disks—or operatively coupled to receive data from or transfer data to, or both. However, a computer does not necessarily have such devices. Furthermore, a computer can be embedded in another device, such as a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive). Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and storage devices, including, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM discs. Processors and memory can be supplemented by dedicated logic circuits or incorporated into dedicated logic circuits.

[0102] To provide interaction with the user, the subject matter described in this specification can be implemented on a computer having: a display device such as a CRT (cathode ray tube), plasma, or LCD (liquid crystal display) monitor for displaying information to the user; and a keyboard and pointing device, such as a mouse or trackball, through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including sound, speech, or tactile input. Additionally, the computer can interact with the user by sending and receiving documents from the device used by the user; for example, by transmitting a webpage to a web browser on the user's client device in response to a request received from a web browser.

[0103] Implementations of the subject matter described in this specification can be performed using a computing system that includes backend components—such as a data server—or middleware components—such as an application server—or frontend components—such as a client computer having a graphical user interface or web browser through which its users can interact with implementations of the subject matter described in this specification—or one or more such combinations of backend, middleware, or frontend components. The components of the system can be interconnected through any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include local area networks (“LANs”) and wide area networks (“WANs”), inter-network networks (e.g., the Internet), and peer-to-peer networks (e.g., self-organizing peer-to-peer networks).

[0104] A computing system may include clients and servers. Clients and servers are typically geographically separated and usually interact via a communication network. The relationship between clients and servers is generated by computer programs running on separate computers that have a client-server relationship with each other. In some implementations, the server transmits data (e.g., HTML pages) to the client device (e.g., for the purpose of displaying data to a user interacting with the client device and receiving user input from that user). Data generated at the client device (e.g., the result of user interaction) may be received at the server from the client device.

[0105] In some illustrative embodiments, the features disclosed herein can be implemented on a smart TV module (or connected TV module, hybrid TV module, etc.), which may include processing circuitry configured to integrate an internet connection with more traditional television program sources (e.g., via cable, satellite, over-the-air, or other signal reception). The smart TV module may be physically integrated into a television set or may include a separate device such as a set-top box, Blu-ray or other digital media player, game console, hotel TV system, and other accompanying devices. The smart TV module may be configured to allow viewers to search for and find videos, movies, photos, and other content on the web, on local cable TV channels, on satellite TV channels, or stored on a local hard drive. A set-top box (STB) or set-top unit (STU) may include an information appliance that may contain a tuner and connect to the television set and an external signal source to tune the signal into content, which is then displayed on the television screen or other display device. The smart TV module may be configured to provide a main or top-level screen with icons for multiple different applications—such as web browsers and multiple streaming services, connected cable or satellite media sources, other web “channels,” etc. The smart TV module can also be configured to provide users with an electronic program guide. Accompanying applications for the smart TV module can operate on mobile computing devices to provide users with additional information about available programming, allowing users to control the smart TV module, etc. In alternative implementations, the features can be implemented on laptops or other personal computers, smartphones, other mobile phones, handheld computers, tablets, or other computing devices.

[0106] Although this specification contains numerous specific details of implementation, these should not be construed as limiting any invention or the scope that may be claimed, but rather as descriptions of features specific to particular embodiments of a particular invention. Certain features described in this specification in the context of individual embodiments may also be combined or implemented in a single embodiment. Conversely, individual features described in the context of a single embodiment may also be implemented in multiple embodiments, individually or in any suitable sub-combination. Furthermore, while features may be described above as functioning in certain combinations and even initially claimed, one or more features from a claimed combination may be removed from that combination in some cases, and the claimed combination may be for sub-combinations or variations thereof. Additionally, features described with respect to a particular heading may be used in combination with and / or with illustrative embodiments described under other headings; the headings provided are included merely for readability purposes and should not be construed as limiting any features provided with respect to those headings.

[0107] Similarly, although operations are described in a specific order in the accompanying drawings, this should not be construed as requiring that such operations be performed in the specific order shown or sequentially, or that all shown operations be performed to achieve the desired result. In some cases, multitasking and parallel processing can be advantageous. Furthermore, the separation of the various system components in the above embodiments should not be construed as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products implemented on tangible media.

[0108] Therefore, specific embodiments of the subject matter have been described. Other embodiments are within the scope of the appended claims. In some cases, the actions listed in the claims can be performed in a different order and still achieve the desired result. Furthermore, the processes depicted in the drawings do not necessarily require the specific order or sequence shown to achieve the desired result. In some embodiments, multitasking and parallel processing can be advantageous.

Claims

1. A method for providing reference data to an application, comprising: selecting, by a computing device, a first content item within a first resource of a first application; responsive to selecting the first content item within the first resource of the first application, generating, at the computing device, a set of data packets comprising first reference data associated with the first resource rendered by the computing device and second reference data associated with a second resource rendered by the computing device prior to rendering the first resource, the first content item comprising data for causing the computing device to navigate from the first application to a second application associated with the first content item; responsive to generating the set of data packets, transmitting, by the computing device, the set of data packets comprising the first reference data and the second reference data to a server; receiving, at the computing device, the first reference data and the second reference data included in the set of data packets from the server at the second application; and providing, by the computing device, a content interface for display within the second application on the computing device, the content interface comprising a second content item selected using the first reference data and the second reference data.

2. The method of claim 1, wherein, the first resource and the second resource comprise at least one of a webpage, a third content item, a keyword, or an interface, wherein the first application and the second application comprise at least one of a browser, a media player, software, or a program.

3. The method of claim 1, further comprising: transmitting, by the computing device, the set of data packets comprising the first reference data and the second reference data to the server to generate a deep link; and receiving, by the computing device, the deep link generated by the server using the first reference data and the second reference data from the server. receiving the first reference data and the second reference data comprises:

4. The method of claim 3, wherein, receiving, at the computing device, the second content item selected using the first reference data and the second reference data included in the set of data packets from the server at the second application; and providing the content interface comprising the second content item selected using the first reference data and the second reference data for display within the second application on the computing device.

5. The method of claim 1, further comprising downloading the second application at the computing device from a second server.

6. The method of claim 1, further comprising: receiving, at the computing device, an indication from the server to install the second application on the computing device; installing the second application on the computing device; responsive to installing the second application, receiving, at the computing device, the first reference data and the second reference data included in the set of data packets from the server at the second application.

7. The method of claim 1, further comprising: ​ receiving, at the computing device from the server, a deep link generated using the first referrer data and the second referrer data included in the set of data packets, the deep link indicating the second application on the computing device; responsive to receiving the deep link, launching, by the computing device, the second application on the computing device; and responsive to launching the second application, receiving, at the computing device from the server at the second application, the first referrer data and the second referrer data included in the set of data packets.

8. The method of claim 1, wherein, the second content item includes at least one of a link, an image, text, or a media item based on the selection of the first content item within the first resource of the first application, wherein the first referrer data and the second referrer data include at least one of a search term entered at the computing device and a parameter used to select the first content item presented on the first resource.

9. The method of claim 1, wherein, the second referrer data is generated at the computing device responsive to selecting a third content item within a second resource of a third application, wherein the computing device accesses the first resource of the first application responsive to selecting the third content item within the second resource of the third application.

10. The method of claim 1, wherein, receiving the first referrer data and the second referrer data further includes: receiving, at the computing device from the server at the second application, a referrer tag generated by the server, the referrer tag including the first referrer data and the second referrer data included in the set of data packets and historical data for a plurality of computing devices, the historical data identifying performance metrics for the second content item.

11. A system for providing referrer data to an application, comprising: a computing device operatively coupled to at least one memory and configured to: select a first content item within a first resource of a first application; responsive to selecting the first content item within the first resource of the first application, generate a set of data packets including first referrer data associated with the first resource rendered by the computing device and second referrer data associated with a second resource rendered by the computing device prior to rendering the first resource, the first content item including data for causing the computing device to navigate from the first application to a second application associated with the first content item; responsive to generating the set of data packets, transmit the set of data packets including the first referrer data and the second referrer data to a server; receive, at the second application from the server, the first referrer data and the second referrer data included in the set of data packets; and provide a content interface for display within the second application, the content interface including a second content item selected using the first referrer data and the second referrer data.

12. The system of claim 11, wherein, The first resource and the second resource include at least one of a webpage, a third content item, a keyword, or an interface, wherein the first application and the second application include at least one of a browser, a media player, software, or a program.

13. The system of claim 11, wherein, The computing device is further configured to: transmit the set of data packets including the first referrer data and the second referrer data to the server to generate a deep link; and receive, from the server, the deep link generated by the server using the first referrer data and the second referrer data.

14. The system of claim 13, wherein, To receive the first referrer data and the second referrer data, the computing device is further configured to: receive, at the second application from the server, the second content item selected using the first referrer data and the second referrer data included in the set of data packets; and provide the content interface including the second content item selected using the first referrer data and the second referrer data for display within the second application.

15. The system of claim 11, wherein, The computing device is further configured to download the second application from the server to provide the content interface for display.

16. The system of claim 11, wherein, The computing device is further configured to: receive, from the server, an indication to install the second application on the computing device; retrieve the second application via the server installation; in response to installing the second application, receive, at the second application from the server, the first referrer data and the second referrer data included in the set of data packets.

17. The system of claim 11, wherein, The computing device is further configured to: receive, from the server, a deep link generated using the first referrer data and the second referrer data included in the set of data packets, the deep link indicating the second application on the computing device; in response to receiving the deep link, launch the second application on the computing device; and in response to launching the second application, receive, at the second application from the server, the first referrer data and the second referrer data included in the set of data packets.

18. The system of claim 11, wherein, The second content item includes at least one of a link, an image, text, or a media item based on the selection of the first content item within the first resource of the first application, wherein the first referrer data and the second referrer data include at least one of a search item entered at the computing device and a parameter used to select the first content item presented on the first resource.

19. The system of claim 11, wherein, The second referrer data is generated at the computing device in response to selecting a third content item within a second resource of a third application, wherein the computing device accesses the first resource of the first application in response to selecting the third content item within the second resource of the third application.

20. The system of claim 11, wherein, The computing device is further configured to receive, at the second application from the server, a reference tag generated by the server, the reference tag including the first reference data and the second reference data contained in the set of data packets and historical data for a plurality of computing devices, the historical data identifying performance metrics for the second content item.

Citation Information

Patent Citations

  • Determining a correlation between presentation of a content item and a transaction by a user at a point of sale terminal

    CN104508700A

  • Link routing method, electronic system, and electronic equipment and server thereof

    CN105450516A