`(12) Patent Application Publication (10) Pub. No.: US 2016/0142859 A1
`Molinet et al.
`(43) Pub. Date:
`May 19, 2016
`
`US 2016O142859A1
`
`(54) CONTEXTUAL DEEP LINKING OF
`APPLICATIONS
`
`(71) Applicant: Branch Metrics, Inc., Palo Alto, CA
`(US)
`
`(72) Inventors: Michael Charles Molinet, Palo Alto,
`CA (US); Maria Madalina Seghete,
`Palo Alto, CA (US); Alexander John
`Austin, Palo Alto, CA (US); Dmitri
`Gaskin, Albany, CA (US)
`
`(21) Appl. No.: 14/935,308
`
`(22) Filed:
`
`Nov. 6, 2015
`
`O
`O
`Related U.S. Application Data
`(60) Provisional application No. 62/096,833, filed on Dec.
`24, 2014, provisional application No. 62/079,512,
`filed on Nov. 13, 2014.
`
`Publication Classification
`
`(51) Int. Cl.
`H0474/00
`H04L 29/06
`(52) U.S. Cl.
`CPC ............... H04 W4/003 (2013.01); H04L 67/42
`(2013.01)
`
`(2006.01)
`(2006.01)
`
`ABSTRACT
`(57)
`A client device transmits to a server a request associated with
`a contextual deep link, the contextual deep link associated
`with link data indicating a configuration of an application.
`The client device receives a response according to the con
`textual information of the client device. The client device
`initiates the application and transmits a request by the appli
`cation for link data. The application on the client device
`generates a unique fingerprint of the client device based on a
`lurality of characteristics of the client device and transmits
`E. Wi. fingerprint to the server. The client device receives
`the link data associated with the contextual deep link and
`configures the application according to the configuration
`indicated in the link data.
`
`Application Server
`
`- - - - -
`| Client Link
`Module
`122
`- - - - -
`
`Contextual Deep Linking Server
`110
`
`Server Link
`Module
`115
`
`Analysis
`Module
`116
`
`Analytics
`Store
`117
`
`App Store
`140
`
`Client Device
`120A
`
`Application
`121N
`
`Application
`121A
`Client Link
`Module
`122
`
`Client Device
`12OB
`Web Browser
`123
`
`Client Device
`12ON
`
`
`
`
`
`ironSource Exhibit 1005
`
`
`
`Patent Application Publication
`
`May 19, 2016 Sheet 1 of 7
`
`US 2016/O142859 A1
`
`
`
`
`
`
`
`J?SWOJ? qÐNA
`
`
`
`t — — — — —)
`
`
`
`Patent Application Publication May 19, 2016 Sheet 2 of 7
`
`US 2016/O142859 A1
`
`
`
`Link Request
`MOCule
`210
`
`Fingerprint
`Generation
`MOCule
`220
`
`Device
`Information
`MOCule
`230
`
`Link Data
`Retrieval
`MOCule
`240
`
`Application
`Configuration
`MOCule
`250
`
`Deep Link
`Database
`260
`
`Client Link Module 122
`
`FIG. 2
`
`
`
`Patent Application Publication
`
`May 19, 2016 Sheet 3 of 7
`
`US 2016/O142859 A1
`
`
`
`Link
`Generation
`MOCule
`310
`
`COntext
`Detection
`MOCule
`340
`
`Client
`Information
`MOCule
`380
`
`Fingerprint
`Generation
`MOCule
`320
`
`Fingerprint
`Matching
`MOCule
`330
`
`Contextual
`Data Store
`350
`
`Link Data
`Store
`360
`
`Link Data
`MOCule
`370
`
`Server Link Module 11
`FIG. 3
`
`
`
`Patent Application Publication May 19, 2016 Sheet 4 of 7
`
`US 2016/O142859 A1
`
`4 O
`
`
`
`Receive link creation request from the client device with link data
`indicating a particular configuration of an application.
`410
`
`Generate a Contextual deep link including a randomly generated
`identifier.
`420
`
`Store link data in association with generated contextual deep link.
`430
`
`Transmit contextual deep link to the client device.
`440
`
`FIG. 4
`
`
`
`Patent Application Publication May 19, 2016 Sheet 5 of 7
`
`US 2016/O142859 A1
`
`
`
`Receive a request associated with a valid contextual deep link from a client
`device.
`510
`
`Does client device have stored an indicator of a previously generated
`fingerprint?
`520
`
`Generate a unique fingerprint of client device based on a
`plurality of characteristics of the client device.
`530
`
`Retrieve stored contextual information for the client device identified by a
`locally stored fingerprint identified by the indicator.
`540
`
`Determine Contextual information of the request based on a characteristic
`Of the Client device and asSOCiate the Contextual information with the
`generated fingerprint.
`550
`
`Transmit a response to the client device that is selected based on the Context of
`the client device such that the response is operable on the client device.
`560
`
`FIG. 5
`
`
`
`Patent Application Publication May 19, 2016 Sheet 6 of 7
`
`US 2016/O142859 A1
`
`Application
`121
`
`App initiated.
`610
`
`Generate unique fingerprint based on a
`plurality of characteristics of the client
`device.
`620
`
`Link data request + fingerprint 630
`
`Select link data identified by locally stored
`fingerprint matching at least a threshold
`number of elements of the received
`fingerprint.
`640
`
`
`
`
`
`Link data 650
`
`Configure application based on received
`link data, the link data having one or more
`configuration parameters Corresponding to
`a particular configuration of the
`application.
`660
`
`FIG. 6
`
`
`
`Patent Application Publication
`
`May 19, 2016 Sheet 7 of 7
`
`US 2016/O142859 A1
`
`702
`724
`
`PROCESSOR
`
`INSTRUCTIONS
`
`
`
`704
`724
`
`INSTRUCTIONS
`
`7OO
`/1
`
`GRAPHICS
`DISPLAY
`
`710
`
`ALPHA-NUMERIC
`INPUT DEVICE
`
`712
`
`708
`
`
`
`
`
`7O6
`
`STATIC
`MEMORY
`
`CURSOR
`CONTROL
`DEVICE
`
`714.
`
`
`
`
`
`72O
`
`NETWORK
`INTERFACE
`DEVICE
`
`726
`
`MACHINE
`READABLE
`MEDIUM
`
`INSTRUCTIONS
`
`
`
`SIGNAL
`GENERATION | 73
`DEVICE
`
`FIG. 7
`
`
`
`US 2016/O 142859 A1
`
`May 19, 2016
`
`CONTEXTUAL DEEP LINKING OF
`APPLICATIONS
`
`CROSS REFERENCE TO RELATED
`APPLICATION
`0001. This application claims the benefit of U.S. Provi
`sional Application No. 62/096,833, filed Dec. 24, 2014, and
`claims the benefit of U.S. Provisional Application No.
`62/079,512, filed Nov. 13, 2014, both of which are incorpo
`rated by reference in their entirety.
`
`BACKGROUND
`0002 1. Field of Art
`0003. The disclosure generally relates to the field of
`mobile applications, and specifically to contextual deep link
`ing of mobile applications.
`0004 2. Description of Art
`0005. The development of application ecosystems on cli
`ent devices (such as the ecosystem associated with “applica
`tion stores' on Smartphones) has created a system where
`users can easily install new applications and immediately add
`new functionality to their client devices. This is because the
`applications that are provided by the ecosystem are semi
`standardized to provide a unified installation process, and
`may use standardized library functions provided by the eco
`system. However, as the number of applications provided by
`these ecosystems increase, the environment on a user's client
`device becomes less cohesive as unlike with hyperlinks on the
`Internet, each application on the client device is unable to
`easily link to a section of another application on the client
`device through the application installation process. Addition
`ally, users are unable to direct other users to particular sec
`tions of these applications either, especially in the case where
`the other user does not have the application installed on his or
`her client device. This creates a situation where users are
`forced to operate each application in semi-isolation. Hence,
`what was lacking was a method of easily directing users to
`sections within applications and passing data to applications,
`regardless of the type of client device the user and whether the
`application is installed on the client device.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`0006. The disclosed embodiments have advantages and
`features which will be more readily apparent from the
`detailed description, the appended claims, and the accompa
`nying figures (or drawings). A brief introduction of the figures
`is below.
`0007 FIG. 1 illustrates an example system capable of
`contextual deep linking.
`0008 FIG. 2 illustrates the client link module according to
`an embodiment.
`0009 FIG. 3 illustrates the server link module according
`to an embodiment.
`0010 FIG. 4 is a flow chart illustrating an exemplary
`method for generating a contextual deep link according to one
`embodiment.
`0011
`FIG. 5 is a flow chart illustrating an exemplary
`method for responding to a request associated with a contex
`tual deep link with a context based response according to one
`embodiment.
`0012 FIG. 6 is an interaction diagram illustrating an
`exemplary interaction for requesting and transmitting link
`data according to one embodiment.
`
`0013 FIG. 7 is a block diagram illustrating components of
`an example machine able to readinstructions from a machine
`readable medium and execute them in a processor (or con
`troller).
`
`DETAILED DESCRIPTION
`0014. The Figures (FIGS.) and the following description
`relate to preferred embodiments by way of illustration only. It
`should be noted that from the following discussion, alterna
`tive embodiments of the structures and methods disclosed
`herein will be readily recognized as viable alternatives that
`may be employed without departing from the principles of
`what is claimed.
`0015 Reference will now be made in detail to several
`embodiments, examples of which are illustrated in the
`accompanying figures. It is noted that wherever practicable
`similar or like reference numbers may be used in the figures
`and may indicate similar or like functionality. The figures
`depict embodiments of the disclosed system (or method) for
`purposes of illustration only. One skilled in the art will readily
`recognize from the following description that alternative
`embodiments of the structures and methods illustrated herein
`may be employed without departing from the principles
`described herein.
`
`Configuration Overview
`0016 Disclosed by way of example embodiments is a
`system for creating and using contextual deep linking. In an
`embodiment, a client device transmits to a server a request
`associated with a contextual deep link, the contextual deep
`link associated with link data indicating a configuration of an
`application.
`0017. The client device receives from the server a response
`according to the contextual information of the client device.
`The client device initiates the application stored on the client
`device. This application is indicated by the link data.
`0018. The client device, in response to initiating the appli
`cation, transmits to the server a request by the application for
`link data. The application generates a unique fingerprint of
`the client device based on a plurality of characteristics of the
`client device and transmits the unique fingerprint to the
`SeVe.
`0019. The client device receives the link data associated
`with the contextual deep link from the server, and configures
`the application according to the configuration indicated in the
`link data.
`
`Example Contextual Deep Linking System
`0020 FIG. 1 illustrates an example system 100 capable of
`contextual deep linking. The system 100 includes one or more
`client devices 120, an application store 140, an application
`server 130, and a contextual deep linking server 110.
`Although the illustrated system 100 includes the elements
`shown in FIG. 1, in other embodiments the system 100 may
`include different elements. Furthermore, the functionalities
`of each element may be distributed differently among the
`elements in other embodiments.
`0021. The network 150, which can be wired, wireless, or a
`combination thereof, enables communications among the cli
`ent devices 120, the application store 140, the application
`server 130, and the contextual deep linking server 110 and
`may include the Internet, a LAN. VLAN (e.g., with VPN),
`WAN, or other network. In one embodiment, the network 150
`
`
`
`US 2016/O 142859 A1
`
`May 19, 2016
`
`uses standard communications technologies and/or proto
`cols, such as Hypertext transfer Protocol (HTTP), Transmis
`sion Control Protocol/Internet Protocol (TCP/IP), Uniform
`Resource Locators (URLs), and the Doman Name System
`(DNS). In another embodiment, the entities can use custom
`and/or dedicated data communications technologies instead
`of, or in addition to, the ones described above.
`0022. The application store 140 is a component in an
`application ecosystem (e.g., a mobile application ecosystem)
`that provides a centralized location for client devices to sub
`mit requests for applications to be installed on the client
`device 120. The application store 140 provides an interfacing
`application that may be preinstalled on the client devices 120.
`The application store 140 also includes a database of avail
`able applications along with application metadata Such as
`installation requirements, application permissions, and so on.
`The application store 140 receives requests to install applica
`tions from the interfacing application. In response to the
`request, the application store 140 transmits the data used to
`install the application to the client device 120.
`0023 The client devices 120 are electronic devices used
`by users to perform functions such as consuming digital con
`tent, executing software applications, browsing websites
`hosted by web servers on the network 150, downloading files,
`and interacting with the application store 140, the application
`server 130, and the contextual deep linking server 110. For
`example, the client devices 120 may be dedicated e-readers,
`Smartphones, wearables (e.g., Smartwatches or pendants), or
`tablets, laptops, or desktop computers configured similar to
`an exemplary machine (or computing system) described with
`FIG. 7.
`0024. Each client device 120 includes one or more appli
`cations 121 that when executed by the client device 120
`perform various functions as defined by the application devel
`oper. The application 121 may utilize the operating system
`and hardware features of the client device 120, and may
`interface with the user using one or more input/output com
`ponents of the client device 120. Examples of applications
`121 include a navigation application, an online radio appli
`cation, an electronic (e-) commerce application, a local busi
`ness reviews application, and so on.
`0025. In one embodiment, one or more applications 121
`Support contextual deep links. A contextual deep link indi
`cates a particular configuration for an application 121. In
`Some cases, this configuration is simply a reference to a
`location in an application 121. Such as a section within the
`application 121. For example, a particular location in a
`crowd-sourced review application may be a review page for a
`local restaurant. This link to a location in the application 121
`by itselfmay also be known as a deep link. In other cases, this
`configuration includes particular settings, parameters, vari
`ables, and other options for the application 121. For example,
`a particular set of settings for an e-commerce application may
`set a certain referral bonus for a particular user account.
`0026. In one embodiment, the contextual deep link may be
`a Uniform Resource Locator (URL). Furthermore, when a
`client device 120 makes a request associated with a contex
`tual deep link for the application 121, the client device 120
`receives from the contextual deep linking server 110 a
`response that is based on the contextual information of the
`client device 120. The contextual information may include
`the platform of the client device 120 (e.g., mobile or desktop),
`the type and version of the operating system executing on the
`client device 120, whether the application 121 is installed on
`
`client device 120 already, and so on. As the response is con
`textual and not fixed, any client device 120 is able to operate
`on the response. This allows for the use of the contextual deep
`link across all client device platforms.
`0027. As an example, a contextual deep link may be au
`URL in the format of “http://link-provider.com/application
`identifier/unique identifier”. In this example, “link-pro
`vider.com' is the domain name associated with the entity
`performing the operations coordinating the contextual deep
`linking. This may be associated with a specialized server Such
`as a contextual deep linking server as described below. The
`“application identifier is a unique character string identi
`fier that identifies the application in question. The "unique
`identifier is another unique character string identifier that
`identifies the particular link. Note that other embodiments of
`a contextual deep link may have a different combination of
`identifiers in a URL (e.g., the URL may include a query
`string). When a user clicks (or interacts) with the contextual
`deep link, a request is made to the “link-provider.com' server
`which receives the unique identifiers and is able to send a
`contextually valid response to the client device 120 of the
`user. For example, if the user is using a mobile device that
`Supports a mobile application ecosystem, the server may
`detect this contextual information and respond with a redi
`rection to the application store on the user's client device 120
`if the user does not have installed the application referenced
`in the link.
`0028. To support contextual deep linking, in one embodi
`ment, an application 121 includes a client link module 122
`that requests contextual deep links from the contextual deep
`linking server 110 and retrieves link data related to contextual
`deep links from the contextual deep linking server 110. To
`create a contextual deep link to send to a second client device
`120, the first client link module 122 on a first client device 120
`requests the contextual deep link from the contextual deep
`linking server 110. The first client link module 122 also sends
`link data to the contextual deep linking server 110, indicating
`a particular configuration of the application 121. The first
`client link module 122 then receives newly generated contex
`tual deep link from the contextual deep linking server 110.
`0029 When the second client device 120 sends a request
`associated with the contextual deep link (e.g., as a result of
`receiving a tap interaction to the contextual deep link from a
`user), the second client device 120 receives a response from
`the contextual deep linking server 110. If the application 121
`indicated by the link data of the contextual deep link is
`already installed on the second client device 120, then the
`response includes a link that causes the second client device
`121 to open or initiate the application 121 on the second client
`device 120. When the application 121 initiates, the second
`client link module 122 on the application 121 of the second
`client device 120 transmits a request to the contextual deep
`linking server 110 for any link data. The second client link
`module 122 then uses the received link data to configure the
`application 121. If the application 121 indicated by the link
`data of the contextual deep link is not installed on the second
`client device 120, the response includes a link that causes the
`second client device 121 to open or initiate an application that
`interfaces with the application store 140 and which causes the
`application store application to open a landing page of the
`application 121.
`0030. In another embodiment, to create a contextual deep
`link, the client link module 122 does not initially request a
`contextual deep link from the server. Instead, the client link
`
`
`
`US 2016/O 142859 A1
`
`May 19, 2016
`
`module 122 may independently generate a contextual deep
`link according to aparticular format that also includes the link
`data for which the application is configured to associate with
`the contextual deep link. In one embodiment, this format is
`“link-provider.com/key=application identifier?link data.”
`where the “application identifier” represents an identifier of
`the application as described above, and the “link data repre
`sents a query string with the link data that the application is
`configured to associate with the independently generated
`contextual deep link.
`0031 When the second client device 120 sends a request
`associated with the contextual deep link, the request is made
`to the contextual deep linking server 110. The contextual deep
`linking server 110 identifies the link data indicated in the
`independently generated contextual deep link and stores the
`link data. The contextual deep linking server 110 generates a
`new contextual deep link, and associates the newly stored link
`data with the newly generated contextual deep link. The con
`textual deep linking server 110 responds to the request from
`the second client device 120 with this newly generated con
`textual deep link. The second client device 120 is directed to
`the location indicated by the newly generated contextual deep
`link, and receives response data that causes the second client
`device 120 to perform one or more actions as described above
`for the non-independently generated contextual deep link.
`0032. In one embodiment, the responses described above
`are performed in real time by the contextual deep linking
`server 110 such that there is no delay or no delay beyond a
`threshold or user perceptible time period between a request
`made to the contextual deep linking server 110 and a response
`by the contextual deep linking server 110. By having the
`responses be made in real-time or near real-time, the user
`does not easily perceive any delay in determining the context
`or configuring the application based on the link data, thus
`providing a seamless experience.
`0033. In some embodiments, this client link module 122 is
`provided by the developer of the contextual deep linking
`system to the developer of the application 121 as a plug-in or
`library that is inserted into the application 121.
`0034. In some embodiments, the client device 120
`includes a web browser 123 that can transmit requests asso
`ciated with contextual deep links. In Such a case, the contex
`tual deep link takes the form of a Hypertext Markup Lan
`guage (HTML) hyperlink. The web browser 123 displays the
`hyperlink contextual deep link and if a user clicks, taps, or
`interacts with the hyperlink, the web browser 123 submits a
`request to the contextual deep linking server 110 indicated by
`the hyperlink. The web browser 123 then receives a response
`based on the context of the client device 120 that is executing
`the web browser 123.
`0035. The contextual deep linking server 110 generates
`contextual deep links in response to requests from applica
`tions, sends responses to client devices making requests for
`valid contextual deep links, and provides analytics regarding
`the contextual deep links to application owners. As illus
`trated, the contextual deep linking server 110 includes a
`server link module 115, an analysis module 116, and an
`analytics store 117.
`0036. The server link module 115 generates contextual
`deep links in response to requests and transmits responses to
`requests associated with valid contextual deep links that are
`selected based on the context of the client device making the
`request.
`
`0037. In one embodiment, the server link module 115
`receives requests from applications 121 to generate contex
`tual deep links. When the server link module 115 receives
`Such a request, it generates a new contextual deep link and
`associates that link with the information associated with the
`request. The server link module 115 may also receive link
`data along with the request. As described above, this link data
`describes information that the application 121 has requested
`to be associated with the generated contextual deep link and
`can indicate a particular configuration of an application 121.
`The server link module 115 stores this link data and associates
`it with the generated contextual deep link.
`0038. The server link module 115 also responds to
`requests associated with contextual deep links. When the
`server link module 115 receives a request from a client device
`120 associated with a contextual deep link, the server link
`module 115 determines if the client device 120 has stored an
`indicator of a unique fingerprint (e.g., in a cookie). If such an
`indicator of a fingerprint exists, the server link module 115
`retrieves previously stored contextual information about the
`client device 120 based on the fingerprint. If no fingerprint
`exists, the server link module 115 generates one based on
`characteristics of the client device 120 (e.g., network address,
`operating system version, and so on). The server link module
`115 also determines contextual information for the client
`device 120 based on the characteristics of the client device
`120. Based on the contextual information, the server link
`module 115 transmits a response back to the client device 120
`such that the response is operable on the client device 120.
`0039. Additionally, the server link module 115 may
`receive a request for link data from an application 121 on a
`client device 120. The server link module 115 once again
`determines the fingerprint of the client device 120 and
`retrieves any link data that is associated with a contextual
`deep link that has a recently associated request from a client
`device 120 with the same fingerprint. The server link module
`115 sends this link data to the client device 120.
`0040. The analysis module 116 analyzes requests associ
`ated with contextual deep links to provide analytics informa
`tion for an owner of an application. An owner of an applica
`tion may be the developer of the application 121 or an entity
`that owns the legal rights to the application 121. The types of
`analytical information that the analysis module 116 provides
`to the owner may include the client devices 120 that have
`clicked on contextual deep links, known information about
`client devices 120 including characteristics of the client
`devices 120, as well as inferred profile information of the
`users of the client devices based on their contextual deep link
`interaction history.
`0041. The analysis module 116 may also provide informa
`tion to the owner of an application 121 regarding some the
`actions that a user performs in the application 121 that was
`referenced by a contextual deep link. Examples of such
`actions may include the sections in the application that a user
`Subsequently accessed, any sponsored content that the user
`Subsequently consumed in the application 121, and so on. In
`one embodiment, the analysis module 116 provides the infor
`mation described above to the owner via a web interface.
`0042. In one embodiment, the contextual deep linking
`server 110 receives from the owner of the application tagging
`information associated with each contextual deep link. The
`tagging information may be included in the link data or a
`separate tag data for the contextual deep link. The analysis
`module 116 provides the tagging information to the owner for
`
`
`
`US 2016/O 142859 A1
`
`May 19, 2016
`
`each contextual deep link that has been interacted with and
`which has tagging information associated with it. Examples
`of tags include tags indicating campaigns, tags indicating
`referral programs, tags indicating invites, and so on.
`0043. The analytics store 117 stores the data that the
`analysis module 116 uses to provide analytics information to
`the owner. This data may include the data described above
`that is used by the analytics module 116. In one embodiment,
`the data in the analytics store 117 is received from the server
`link module 115.
`0044) The application server 130 provides any server side
`functionality that is needed for one or more of the applications
`121. While a single application server 130 is illustrated, in
`other embodiments more than one application server 130 may
`be used to support different applications 121. Although the
`application server 130 is illustrated with a client link module
`122, in other embodiments the application server 130 also
`includes additional components, such as server-side applica
`tion module to process server-side functions of the applica
`tion 121, a web server, and/or a database to store server-side
`data related to the application 121. As with the functionality
`of the application 121, the functionality of the application
`server 130 is primarily determined by the owner of the appli
`cation 121 itself.
`0045. In one embodiment, the application server 130
`includes a client link module 122 that may perform the same
`functions as the client link module 122 on the application 121.
`The client link module 122 may be used to request a contex
`tual deep link from the contextual deep linking server 110.
`The client link module 122 on the application server 130
`provides this generated contextual deep link to client devices
`120 that connect to the application server 130. For example,
`the application server 130 may include a web server, and the
`application server 130 may receive a web page request from
`a client device 120. In response, the client link module 122 on
`the application server 130 may request a contextual deep link
`and present this to the user of the client device 120 via the web
`SeVe.
`0046. The system 100 described above presents an
`improved method in computer networks of sending a link that
`indicates a particular configuration within an application of
`an application ecosystem based on the contextual information
`of the client device making the request associated with the
`link. Such a system may be used to at least address an issue in
`computer networks of how to identify a client device through
`separate requests to a server in order to send link data asso
`ciated with a contextual deep link to the client device. Addi
`tionally, such a system may be used to at least address an issue
`in computer networks of how to provide access to a deeper
`level of an application, Such as to provide access to a location
`in an application, or to provide access to a configuration of the
`application. An application can request a contextual deep link
`that indicates a particular configuration within the applica
`tion, and a contextual deep linking server responds with the
`newly generated contextual deep link. When a user of a client
`device interacts with the contextual deep link, the contextual
`deep linking server determines the context of the client device
`by determining the characteristics of the client device, and
`transmits a response to the client device that is appropriate
`based on the context. The contextual deep linking server also
`associates the contextual deep link with a fingerprint of the
`client device.
`0047. The response may initiate an application on the
`user's client device, which Submits a request to the contextual
`
`deep linking server for link data associated with any recently
`used contextual deep links. The contextual deep linking
`server matches the fingerprint provided by the application
`with a fingerprint associated with a contextual deep link and
`sends the associated link data to the application, which can
`then be used to configure the application, thus allowing data
`to be passed to cross-application and cross-device.
`Example Client Link Module of an Application
`0048 FIG. 2 illustrates the client link module 122 of FIG.
`1 according to an embodiment. As illustrated, the client link
`module 122 includes a link request module 210, a fingerprint
`generation module 220, a device information module 230, a
`link data retrieval module 240, an application configuration
`module 250, and a deep link database 260. Although the
`illustrated client link module 122 includes the elements
`shown in FIG. 2, in other embodiments the client link module
`122 may include different elements. Furthermore, the func
`tionalities of each element may be distributed differently
`among the elements in other embodiments.
`0049. The deep link database 260 stores indicators of loca
`tions within the application 121 and/or other configuration
`information that are indicated in link data for contextual deep
`links. Locations are pages, sections, content items, and any
`other element in the application that a user can navigate to.
`For example, in an Internet radio application, a location may
`include a particular radio station’s landing page within the
`application. In one embodiment, the deep link database 260
`stores the indications of these locations in a hierarchical tree
`that matches the navigation structure of the application. Thus,
`for each location in the application, the deep link database
`260 may include an indicator of the location itself as well as
`branches to indicators representing the various Subsequent
`locations that can be reached directly from that location. In
`one embodiment, the deep link database 260 includes a map
`ping between an internal set of indicators for a location and
`the external indicator of the location used for the contextual
`deep link.
`0050. In one embodiment, the deep link database 260 also
`stores information regarding discount rates and code