The present application is directed to the automatic launching of apps in a mobile computing environment using wrapped deep links.
Mobile device operating systems, such as iOS from Apple, Inc. (Cupertino, Calif.) or the Android operating system from Google, Inc. (Mountain View, Calif.), allow individuals to follow URL links to open particular applications (apps) operating on the mobile device. In iOS, these links to applications are known as “universal links.” In Android, these links are called App Links. Such links are also referred to as deep links, as it is possible to link to particular content or features in an app by specifying this destination within the URL of the deep link. The links generally take the form of https formatted links. These links are allowed to open within an app only if data authorizing the link is found in app data stored on the mobile device and also found on the web server identified by that link. The data on the app identifies the web server's domain name, while the web server for that identified domain provides the identifier for the app running on the mobile device. If there is a match between this data, then the operating system will trust that the app can receive certain URLs that would otherwise be directed to the domain's web server. The data stored on the web server can specify paths and files that are available for handling at the app, thereby allowing some URLs at the domain to be processed by the app and other URLs to be handled by the web server through a browser operating on the user's mobile device.
If the user does not have the app downloaded on their mobile device, the URL will be handled by a browser on the mobile device in communication with the domain's web server. The web server may, however, link the user to the application store operating on the user's mobile device in order to download the app. Some third party service providers, such as Branch Metrics, Inc. (Redwood City, Calif.), provide services to allow the content specified by the deep link (the exact location within the app that is desired) to be maintained during the app download process, so that when the user has downloaded and installed the app, the correct content will be displayed by the newly downloaded app.
If a user selects a deep link, the operating system will normally determine how to handle this selection. If the operating system can identify an associated and verified app from the link, the operating system will pass the link to that app for it to handle. If the operating system cannot identify an app, the link will be passed to the browser for handling by the web server identified in the URL.
Some social media services interfere with the ability to perform this type of deep linking. Twitter (provided by Twitter, Inc. of San Francisco, Calif.), for instance, is a microblogging social networking site that will automatically wrap any links found in messages into a Twitter URL wrapper, which frequently has the following format: t.co/12345ABC. These wrapped links are frequently shorter than the original link, and therefore serve to reduce the character count of any links in the social media message. Twitter also implements a malware screening process, making these reformatted links arguably safer than the original links entered into the messages on the social media platform.
However, this automatic wrapping of links disrupts the functioning of deep links.
This message 120 sent by the sender device 110 includes a deep link 122 to a particular app operating on the user computing device 100, namely second app 180. The message 120 may have been sent through a separate instance of the second app 118 operating on the sender device 110. The message 120 and its deep link 122 are received and processed by a social media server 140. This server 140 then makes the message 120 available to other social media users, including the user that is operating device 100. When the user receives the message 120, it is received and displayed inside a social networking app 160 operating on the device 100. Furthermore, when the user receives the message 120, the original deep link 122 has been replaced with a wrapped link 124 created by the social media server 140. When a user within the social networking app 160 selects this wrapped link 124, it points to URL shortener web domain used by the server 140 to wrap the link. If the social media server 140 operates the Twitter service, the URL shortener web domain will be t.co.
The social networking app 160 uses an embedded browser 162 that forms part of the app 160 to open the wrapped link 124. This embedded browser 162 is separate from an independent browser app 170 operating on the user device 100. The independent browser 170 might be Chrome (by Google) or Safari (by Apple). If the original deep link 122 were sent to the independent browser 170, the operating system 106 could identify this as a deep link, ensure that the second app 180 is available and authorized to handle this link, and then send the deep link 122 directly to the second app 180. Instead, when link 124 is opened from within the social networking app 160, the embedded browser 162 receives the wrapped and shortened link 124. The browser 162 contacts the URL shortener web domain to obtain the original link. Once the original link is obtained, the browser 162 will directly access the website server for the expanded URL without ever processing the link 124 as a potential deep link.
As a result, a deep link 122 to a second app 180 that is sent within this type of social media message 120 will never open the second app 180. Rather, the social networking server 140 and app 160 work together to frustrate these deep linking attempts. In this way, the social networking app 160 is able to keep the user within the embedded browser 162, which can be customized to help ensure that users will stay within the social networking app 160 as long as possible.
In this case, however, the original link 222 included in the message 220 links to a web page 230 provided by a server 240. This server 240 is operated for the purpose of aiding in the creation of a deep link to the second app 180. In furtherance of this purpose, this web page 230 is specifically designed to obtain the email address for the user of device 100.
The web page 230 provided by the second app server 240 searches for the existence of this cookie 300. If found, the web page 230 will provide the email address 232 provided by this cookie 300 back to the second app server 240 (as shown in
In the preferred embodiment, the server 240 is able to maintain data that is associated with one another. In
If the embedded browser 162 cannot provide the email address 232 by finding a valid cookie 300 containing this information, the web page 400 shown in
After the email 250 is sent over the network 150, it is received by an email app 260 operating on the computing device 100. In most mobile device operating systems 106, the receipt of email 250 will trigger a notification to the user (although this behavior can be modified through settings set by the user).
At this point, activation of the deep link 252 can be handled by the operating system 106 of the user computing device 100 as normal. If the second app 180 is found on the device, the operating system 106 will submit this link to the second app 180, and the second app 180 will open directly to the deep link location 270 identified by link 252.
In one embodiment, the deep link 252 is the same as the link 222 for the web page 230. As explained above, a deep link 252 is generally an https URL link. Although the embedded browser 162 that receives the web page link 222 (deep link 252 in this embodiment) will not pass along the link to the second app 180, it will attempt to open the link and present any web page found at that web location. In system 20, web page 230 provided by server 240 can be found on network 150 at the deep link location 252. This web page 230 will then provide email address 232 back to the server 240. Once the server 240 receives the email address, it already knows the deep link 252 because it served the web page 230 based on that link 252. Thus, it is a simple matter for the second app server 240 to generate the email 250 containing the deep link 252.
In other embodiments, the link 222 for the web page 230 is different than the deep link 252. The version of the second app 118 operating on the message sender device 110 knows that the link 222 it includes will be wrapped by the social media server 140. As a result, there is no need to format this web page link 222 as the actual deep link 252. Rather, the provided link 222 simply identifies the web address for web page 230. This link 222 can, however, include enough detail so that the second app server 240 can generate the actual deep link 252 based on the request for web page 230.
One benefit for maintaining a distinction between web page link 222 and the actual deep link 250 becomes apparent if the second app 180 is not currently found on the user computing device 100. In this case, the deep link 252 to the second app 180 will be analyzed by operating system 106 and, in the absence of app 180, the link will be provided to the general browser 170. This is shown by the dashed-line arrows on
In yet another embodiment, the email message 250 received by the user takes the form of email message 700 as shown in
One benefit of verifying the email address in this manner is that the second app server 240 will have more confidence that the email address 232 that is stored at the server 240 is the true email for the user. The email 232 is stored in association with the deep link 252 and its associated content 272. As a result, it is possible for a user to newly install the app 180 from the app store 280 and still make it to deep link location 270 even in the absence of the Branch service or other similar services. In this case, the user would download the app 180 and then log into the app using their email address. When they have logged into their existing account or created a new account based on this email address, the second app 180 will communicate with the second app server 240 to determine whether any deep link locations have been stored for this email address 232. If so, the second app 180 will receive this location from server 240 and then automatically open that deep link location 270 once the log in process is completed.
A method 900 for implementing the present invention is shown in
The web link 222 is preferably generated by an instance of the second app 118 running on the message sender device 110 in conjunction with the second app server 240. The second app server 240 must be able to generate the web page 230 at the location of the web link 222. Furthermore, the second app server 240 will associate any content 272 found at the deep link location 270 and the deep link 252 itself with this particular web link location 222. Thus, in one embodiment, the second app 118 creates some content or schedules some performance or event that is made available through the second app server 240. In particular, this content or schedule is made available to others at a deep link location 270 in the second app 180. The connection between the web link 222 and the deep link location 270 is then established by either the second app 118 or the second app server 240 and is stored at the server 240. After this connection is established, the web link 222 is made available to the instance of the second app 118 at the sender device 110.
Next, this web link 222 is embedded in a social media message 220 at step 910. This message 220 will then be received by the social media server 150, the link will be wrapped according to the requirements of the social media server 150, and the original message 220 with the now wrapped web link 224 will then be received at a customer device at step 915.
At step 920, the user that is operating device 100 examines the message 220 in their social networking app 160 and then selects the wrapped web link 224. This link is then opened as a web page 230 in the embedded browser 162 at step 920. This web page 230 is served by second app server 240. If the web page 230 has access to the email address 232 of the user (as determined by step 925), the web page 230 will return that address 232 to the server 240 at step 935. The web page 230 may have access to the email address 232 through stored data accessible by the embedded browser 162, such as through cookie 300. If step 925 determines that the web page 230 does not have immediate access to the email address 232, the page 230 will request that this address 232 be input by the user (step 930). The address 232 can then be stored in cookie 300 in case it is needed later, and also returned to the server 240 at step 935.
At step 940, an email message 250 is created at the server 240 that contains a deep link 252 to the second app 180. This email message 250 is then sent to the user computing device 100 at step 945, and then opened by the user within their email app 260 at step 950. At step 955, the user activates (selects) the deep link 252 within their email app 260. This will cause the operating system 106 of the user device 100 to examine this deep link 252 to identify a selected and authorized application (second app 180) that is able to handle this deep link 252 (step 960). If this identified app 180 is found on the device 100 (as determined by step 965), then the second app 180 will be opened at the appropriate deep link location 270 specified by this link 252 at step 975, and the method 900 will end at step 980.
If the operating system 106 does not identify second app 180 as being able to handle this deep link 252 at step 960, this is likely because the second app 180 has yet to be installed onto the user computing device 100. As a result, step 965 will indicate that the app 180 is not available. In this case, the deep link 252 will be treated like a normal web link. The non-embedded browser 170 will attempt to open the link 252, and the second app server 240 (or a third party server such as one operated under the Branch service) will respond with a link causing the user device to open the app store 280 at the appropriate location for downloading the second app 180. The user can then download the second app 180 (step 970) and proceed to identify themselves to the app 180 (such as by logging into the app 180 or by establishing a new account on the app 180). Once completed, the service provided by Branch can ensure that the second app 180 will open at deep link location 270 at step 975, and the method 900 will end at 980.
An alternative method 1000 is presented through the flow chart shown on
Consequently, it is seen that method 1000 is the same as method 900 up until the email address 232 is returned to the second app server 240 at step 935. At this point, step 1040 will create an email message 700 that includes a verification code 710, such as that shown in
The user then activates the verification link 720 (step 1052). This causes a request to be sent to the second app server 240, which responds with a verification web page 800 that will open in the non-embedded web browser 170 (step 1054). As shown in
The deep link URL 252 will then be presented to the non-embedded browser 170 at step 1058. This will cause the operating system 106 to examine this link 252 at step 960 and determine whether app 180 is available to handle this link 252. If not, the second app 180 is downloaded from the app store 280 at step 970. Once the user has logged into this app 180, they will identify their email address 232 at step 1072. The second app 180 will then communicate with the second app server 240 and determine whether this email address 232 has been saved in association with a deep link location 270. The server 240 will examine its saved data, and then identify and return the deep link location 270. This occurs at step 1074. At this point, the newly installed copy of the second app 180 will open at deep link location 270, and the method 1000 will end at step 1080.
The related applications describe a system and method utilizing an app to facilitate multiple party communications over an app operating on a mobile device. In one embodiment, the second app 180 described herein comprises the multi-party communications app described in these related applications. For example, U.S. Pat. No. 10,819,758 (the '758 patent) describes a meet now process. In FIG. 26 of the '758 patent, a social media message 2600 is shown that includes a link 2520 to start a “meet now stream” form of multi-party communications. This link may take the form of a deep link 252 to an application 180 for connecting to the meet now stream on a user device 100. The deep link 252 can link the user directly to the meet now interface of the app 180, including, for example, the payment interface 3100 shown on FIG. 31 of the '758 patent.
The many features and advantages of the invention are apparent from the above description. Numerous modifications and variations will readily occur to those skilled in the art. Since such modifications are possible, the invention is not to be limited to the exact construction and operation illustrated and described. Rather, the present invention should be limited only by the following claims.
The present application claims the benefit of U.S. provisional patent application 62/934,575, filed on Nov. 13, 2019, which is hereby incorporated by reference in its entirety. The present application is also related to U.S. Ser. No. 16/862,339, filed on Apr. 29, 2020; U.S. Ser. No. 16/862,357, filed on Apr. 29, 2020; and U.S. Ser. No. 16/862,372, filed on Apr. 29, 2020 and issued as U.S. Pat. No. 10,819,758 on Oct. 27, 2020. These related applications are also incorporated herein by reference in their entireties.
Number | Date | Country | |
---|---|---|---|
62934575 | Nov 2019 | US |