throbber
1111111111111111 IIIIII IIIII 111111111111111 111111111111111 IIIII IIIII IIIII IIIIII IIII IIII IIII
`US 20160142858Al
`
`(19) United States
`02) Patent Application Publication
`Molinet et al.
`
`(JO) Pub. No.: US 2016/0142858 Al
`May 19, 2016
`(43) Pub. Date:
`
`(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,301
`
`(22) Filed:
`
`Nov. 6, 2015
`
`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 Classific.ation
`
`(5 1) Int. Cl.
`H04W4/00
`H04L 29106
`
`(2006.01)
`(2006.01)
`
`(52) U.S. CL.
`CPC ............... H04W 41003 (2013.01 ); H04L 67142
`(2013.01)
`
`(57)
`
`ABSTRACT
`
`A contextual deep linkingse1ver receives a request associated
`with a valid cQoiextual deep link from a client device, the
`contextual deep link associated with link data indicating a
`particular configuration of an application. TI1e server also
`receives, after determining that the client device has stored a
`previously generated fingerprint, ~tored contexnial informa(cid:173)
`tion for the client device identified by a locally stored finger(cid:173)
`print that matches the previously generated fingerprint. The
`server then generates, after determining that the client device
`does not have the previously generated tingerp1int. a unique
`fingerprint of the client device based on a plurality of char(cid:173)
`acteristics of the client device and detem1iniog w ntextual
`information of the request based on a characteristic of the
`client device. The server also traJlsmits a response to the client
`device that is selected based on the contextual infonnation of
`the client device such that the response is operable on the
`client device.
`
`Application Server
`nQ
`
`I
`I Client Link I
`I Module 1
`I
`122
`I
`L ____ J
`
`Contextual Deep Linking Server
`110
`
`SeN er Link
`Module
`ill
`
`Analysis
`Module
`11§_
`
`Analytics
`Store
`ill
`
`App Store
`HQ
`
`Network
`w
`
`Client Device
`120B
`Web Browser
`ill
`
`Client Device
`.1.WJ.
`
`Client Device
`.12.QA
`
`Application
`121N
`
`Application
`12.1A
`
`Client Link
`Module
`122
`
`001
`
`POSTSCRIPT 1009
`
`

`

`.1QQ.
`
`App Store
`140
`
`Application Server
`nQ
`
`,-----,
`
`I Client Link I
`I Module
`I
`I
`122
`I
`L ____ J
`
`Contextual Deep Linking Server
`11.Q
`
`Server Link
`Module
`1.15.
`
`Analysis
`Module
`.112
`
`Analytics
`Store
`117
`
`Network
`~
`
`Client Device
`120B
`Web Browser
`m
`
`Client Device
`.1.2QN
`
`Client Device
`120A
`
`Application
`121 N
`
`Application
`121A
`
`Client Link
`Modu le
`122
`
`FIG. 1
`
`002
`
`

`

`Patent Application Publication May 19, 2016 Sheet 2 of 7
`
`US 2016/0142858 Al
`
`Link Request
`Module
`£1.Q
`
`Fingerprint
`Generation
`Module
`220
`
`Device
`Information
`Module
`~
`
`Link Data
`Retrieval
`Module
`240
`
`Application
`Configuration
`Module
`2fill
`
`Deep Link
`Database
`2.fill
`
`Client Link Module 122
`
`FIG. 2
`
`003
`
`

`

`Patent AJ>plication Publication May 19, 2016 Sheet 3 of 7
`
`US 2016/0142858 Al
`
`Link
`Generation
`Module
`310
`
`Context
`Detection
`Module
`340
`
`Client
`Information
`Module
`380
`
`Fingerprint
`Generation
`Module
`320
`
`Fingerprint
`Matching
`Module
`330
`
`Contextual
`Data Store
`350
`
`Link Data
`Store
`360
`
`Link Data
`Module
`370
`
`Server Link Module ill
`FIG. 3
`
`004
`
`

`

`Patent AJ>plication Publication May 19, 2016 Sheet 4 of 7
`
`US 2016/0142858 Al
`
`400
`
`Receive link creation request frorn the client device with link data
`indicating a particular configuration of an application.
`ill
`
`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.
`~
`
`FIG. 4
`
`005
`
`

`

`Patent AJ>plication Publication May 19, 2016 Sheet 5 of 7
`
`US 2016/0142858 Al
`
`Receive 8 request ,::issoci,::ited with a v,::ilid contextu8I deep link from a client
`device.
`510
`
`500
`
`Does client device have stored an indicator of a previously generated
`fingerprint?
`520
`
`No
`!
`Generate a unique fingerprint of client device based on a
`plurality of characteristics of the client device.
`530
`
`Yes
`
`\
`
`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 b;:ised on 8 characteristic
`of the client device and associate the contextual information with the
`generated fingerprint.
`550
`
`l
`
`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.
`~
`
`FIG. 5
`
`006
`
`

`

`Patent AJ>plication Publication May 19, 2016 Sheet 6 of 7
`
`US 2016/0142858 Al
`
`Server
`11Q
`
`600
`
`Applicalion
`121
`
`App initiated.
`filQ
`
`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.
`.Q.iQ
`
`Link data 650
`
`Configure application based on received
`link data, the link data having one or more
`configuration parameters corresponding to
`a parlicular configuration of the
`application.
`660
`
`FIG. 6
`
`007
`
`

`

`Patent Application Publication May 19, 2016 Sheet 7 of 7
`
`US 2016/0142858 Al
`
`702
`
`724
`
`PROCESSOR
`
`INSTRUCTIONS
`
`("'700
`
`708
`
`GRAPHICS
`DISPLAY
`
`710
`
`704
`724
`
`MAIN MEMORY
`
`INSTRUCTIONS
`
`ALPHA-NUMERIC
`1 4 - - - ~ INPUT DEVICE
`
`712
`
`706
`
`STATIC
`MEMORY
`
`BUS
`
`CURSOR
`CONTROL
`DEVICE
`
`714
`
`720
`
`NETWORK
`INTERFACE
`DEVICE
`
`726
`
`STORAGE UNIT
`MACHINE-
`READABLE
`MEDIUM
`
`INSTRUCTIONS
`
`716
`
`722
`
`724
`
`SIGNAL
`GENERATION
`DEVICE
`
`718
`
`FIG. 7
`
`008
`
`

`

`US 2016/0142858 Al
`
`May 19, 2016
`
`CONTEXTUAL DEEP LINKING OF
`APPLICATIONS
`
`CROSS REFERENCE TO RELATED
`APPLICATION
`[0001] This application claims the benefit of U.S. Provi(cid:173)
`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(cid:173)
`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(cid:173)
`ing of mobile applications.
`[0004] 2. Description of Art
`[0005] The development of application ecosystems on cli(cid:173)
`ent devices (such as the ecosystem associated with "applica(cid:173)
`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(cid:173)
`standardized to provide a unified installation process, and
`may use standardized library functions provided by the eco(cid:173)
`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(cid:173)
`ally, users are unable to direct other users to particular sec(cid:173)
`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(cid:173)
`nying figures ( or drawings). A briefintroduction 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(cid:173)
`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 read instructions from a machine(cid:173)
`readable medium and execute them in a processor (or con(cid:173)
`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(cid:173)
`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 ofillustration 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 contextual deep linking server receives a
`request associated with a valid contextual deep link from a
`client device. The contextual deep link is associated with link
`data indicating a particular configuration of an application.
`[0017] The server retrieves, in response to determining that
`the client device has stored an indicator of a previously gen(cid:173)
`erated fingerprint, stored contextual information for the client
`device identified by a locally stored fingerprint that matches
`the previously generated fingerprint as detern1ined by the
`indicator stored on the client device. This contextual infor(cid:173)
`mation is stored on the contextual deep linking server. Oth(cid:173)
`erwise, the contextual deep linking server generates, in
`response to determining that the client device does not have
`an indicator of a previously generated fingerprint, a unique
`fingerprint of the client device based on characteristics of the
`client device and determining contextual infonnation of the
`request based on a characteristic of the client device. These
`characteristics may include the IP address, operating system
`version, hardware identifier, operating system provided iden(cid:173)
`tifier, and other characteristics that when combined may cre(cid:173)
`ate a unique fingerprint for the client device.
`[0018] The contextual deep linking server then transmits a
`response to the client device that is selected based on the
`contextual information of the client device such that the
`response is operable on the client device. For example, if the
`contextual information indicates that the client device sup(cid:173)
`ports an application ecosystem, the response can cause the
`client device to open the application specified in the link data
`of the contextual deep link. Otherwise, if the client device
`does not support an application ecosystem, the response can
`cause the client device to open a landing page on a web
`browser with more information about the application. As
`another example, if the application is not installed, the
`response can cause the client device to open an application
`
`009
`
`

`

`US 2016/0142858 Al
`
`May 19, 2016
`
`2
`
`that interfaces with an application store where the user may
`download and install the application.
`
`Example Contextual Deep Linking System
`
`[0019] 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 ftmctionalities
`of each element may be distributed differently among the
`elements in other embodiments.
`[0020] The network 150, which can be wired, wireless, or a
`combination thereof, enables communications among the cli(cid:173)
`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
`uses standard co111111unications technologies and/or proto(cid:173)
`cols, such as Hypertext transfer Protocol (HTTP), Transmis(cid:173)
`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 co111111tmications technologies instead
`of, or in addition to, the ones described above.
`[0021] 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(cid:173)
`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(cid:173)
`able applications along with application metadata such as
`installation requirements, application permissions, and so on.
`The application store 140 receives requests to install applica(cid:173)
`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.
`[0022] The client devices 120 are electronic devices used
`by users to perform functions such as consuming digital con(cid:173)
`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.
`[0023] Each client device 120 includes one or more appli(cid:173)
`cations 121 that when executed by the client device 120
`perform various functions as defined by the application devel(cid:173)
`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(cid:173)
`ponents of the client device 120. Examples of applications
`121 include a navigation application, an online radio appli(cid:173)
`cation, an electronic ( e-) conllllerce application, a local busi(cid:173)
`ness reviews application, and so on.
`[0024]
`In one embodiment, one or more applications 121
`support contextual deep links. A contextual deep link indi(cid:173)
`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 itself may also be known as a deep link. In other cases, this
`configuration includes particular settings, parameters, vari(cid:173)
`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.
`[0025]
`In one embodiment, the contextual deep link may be
`a Uniform Resource Locator (URL). Furthennore, when a
`client device 120 makes a request associated with a contex(cid:173)
`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 inforniation 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(cid:173)
`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 platfonns.
`[0026] 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(cid:173)
`vider.com" is the domain name associated with the entity
`perfonning 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(cid:173)
`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(cid:173)
`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.
`[0027] To support contextual deep linking, in one embodi(cid:173)
`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(cid:173)
`tual deep link from the contextual deep linking server 11 0.
`[0028] 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. Ifthe application 121
`
`010
`
`

`

`US 2016/0142858 Al
`
`May 19, 2016
`
`3
`
`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.
`[0029]
`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
`module 122 may independently generate a contextual deep
`link according to a particular 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(cid:173)
`sents a query string with the link data that the application is
`configured to associate with the independently generated
`contextual deep link.
`[0030] 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(cid:173)
`textual deep linking server 110 responds to the request from
`the second client device 120 with this newly generated con(cid:173)
`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.
`[0031]
`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.
`[0032]
`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.
`[0033]
`In some embodiments, the client device 120
`includes a web browser 123 that can transmit requests asso(cid:173)
`ciated with contextual deep links. In such a case, the contex(cid:173)
`tual deep link takes the fonn of a Hypertext Markup Lan(cid:173)
`guage (HTML) hyper link. 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.
`[0034] The contextual deep linking server 110 generates
`contextual deep links in response to requests from applica(cid:173)
`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(cid:173)
`trated, the contextual deep linking server 110 includes a
`server link module 115, an analysis module 116, and an
`analytics store 117.
`[0035] 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.
`In one embodiment. the server link module 115
`[0036]
`receives requests from applications 121 to generate contex(cid:173)
`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 infonnation 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.
`[0037] 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 infonnation 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.
`[0038] 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.
`[0039] The analysis module 116 analyzes requests associ(cid:173)
`ated with contextual deep links to provide analytics informa(cid:173)
`tion for an owner of an application. An owner of an applica(cid:173)
`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 infomiation 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
`
`011
`
`

`

`US 2016/0142858 Al
`
`May 19, 2016
`
`4
`
`devices 120, as well as inferred profile information of the
`users of the client devices based on their contextual deep link
`interaction history.
`[0040] The analysis module 116 may also provide informa(cid:173)
`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(cid:173)
`mation described above to the owner via a web interface.
`[0041]
`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
`each contextual deep link that has been interacted with and
`which has tagging infomrntion associated with it. Examples
`of tags include tags indicating campaigns, tags indicating
`referral programs, tags indicating invites, and so on.
`[0042] 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.
`[0043] The application server 130 provides any server side
`functionality that is needed for one or more of the applications
`121. W11ile 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(cid:173)
`tion module to process server-side functions of the applica(cid:173)
`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(cid:173)
`cation 121 itself.
`[0044]
`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(cid:173)
`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 userof the client device 120 via the web
`server.
`[0045] 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(cid:173)
`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, orto provide access to a configuration of the
`application. An application can request a contextual deep link
`that indicates a particular configuration within the applica(cid:173)
`tion, and a contextual deep linking server responds with the
`newly generated contextual deep link. Wllen a user of a client
`device interacts with the contextual deep link, the contextual
`deep linking server detem1ines the context of the client device
`by determining the characteristics of the cli

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket