Deep Link
(to the Future)
Akash Gupta
Ashish Tyagi
Brief Overview
● About Deep linking
● Traditional Approach
● Universal Links
● Case Study
● Techniques and Applications
App Stats
The Requirement
What: Implement deep linking to our mobile apps.
Why: So that clicking on an ad can take users to the mobile app.
The Traditional Way
URL Schemes
my-app://com.myapp.fooBarIdentifier
And in the App Delegate:
Advertisement (linked-url)
Mobile Web Page(url-scheme)
App
Installed?
Open
App ?
Yes
No
Mobile App
Yes
No
Action
No
Action
How it works
Universal Links
● Native first, browser second
● Available iOS 9 onwards
Advertisement (linked-url)
Mobile Web Page
App
Installed?
Mobile App
Supports
URL ? Mobile Web Page
Yes
Yes
No
No
How Universal Links Work ?
Entitlements File
App-Site-Association File
{
"applinks": {
"apps": [],
"details": [
{
"appID": "9JA89QQLNQ.com.myOrganisation.myApp",
"paths": [ "/feature1/subFeature/", "/videos/wwdc/2015/*", NOT /about]
},
{
"appID": "ABCD1234.com.myOrganisation.mySecondApp",
"paths": [ "*" ]
}
]
}
}
The Actual Problem
What : Implement deep linking to our mobile apps.
Why : So that business can track which marketing campaigns are generating how
much revenue.
Akash Reacts
Traditional Analytics/App-Stitching
Advertisement (linked-url)
Redirects to mobile safari
UserId
Cookie ?
Yes
No
Generate Cookie(Analytics
Library)
Append cookieId & campaign
id to url-scheme
Open App with updated url
scheme
Limitations of Universal Links
● Difficult to pass any additional parameters in Universal Links.
● Universal Links do not work with redirects.
● The user can also disable universal links altogether by innocently tapping on the
website breadcrumb that is shown on the top.
● Difficult to debug and test because of all the various components involved.
● Deep linking to intercept subdomain.
Universal Links are Frustrating
● A separate domain name for marketing links.
● A server application responsible for routing traffic to the correct platform.
● For desktop browsers, it is a simple matter of routing to the website.
● For mobile browsers, a web page is generated with the deep link to the app.
Looking Towards New Domain Names
Custom web page
with Deep Link to
app
Domain Name just for Deep Linking?
Marketing URL
Custom Redirect
Server
(Track Ad Click)
Display content in
app
Website or App Store
What if the App is not even
installed yet?
Deferred Deep Linking
● Resolve deeplinks immediately after app install from a Universal Link.
● Device fingerprinting by link server before redirect to App Store.
● App reaches out to link server for pending context on first launch.
● Content displayed/action taken based on context.
Deferred Deeplinking Explained
Deeplink URL
Custom Redirect
Server
(Device Fingerprint)
App Not
Installed
App
Installed
App Store
Install Page
Contact Deeplink
Server for pending
context
Exchange deeplink
with server for
context
Display custom
content based on
context
App Opens Directly
Third Party Providers
Let’s Play Some Golf
User Experience with Deferred Deeplinks
● Personalized welcome screen flow
● Redirect to content shown in App Install ad
● Referrals/Invites can be resolved immediately
● Discounts/Offers availed
Harnessing the Power of Universal Links
● Index app activities and content.
○ Native app indexing allows you to provide app content and user activities in Spotlight search.
○ Third party indexing such as that provided by Google can be used to provide deep linking into
your app through Google search.
● Promote content and not just the app.
○ Using the above mentioned indexing tools one can create marketing campaigns that are dynamic
and work across platforms.
Prepared for
the Future!
Questions...
Useful Links
● Deeplink Golf on Github
● Universal Links Documentation
Thank You!

Deep Link (to the Future)

  • 1.
    Deep Link (to theFuture) Akash Gupta Ashish Tyagi
  • 2.
    Brief Overview ● AboutDeep linking ● Traditional Approach ● Universal Links ● Case Study ● Techniques and Applications
  • 3.
  • 4.
    The Requirement What: Implementdeep linking to our mobile apps. Why: So that clicking on an ad can take users to the mobile app.
  • 5.
    The Traditional Way URLSchemes my-app://com.myapp.fooBarIdentifier
  • 6.
    And in theApp Delegate:
  • 7.
    Advertisement (linked-url) Mobile WebPage(url-scheme) App Installed? Open App ? Yes No Mobile App Yes No Action No Action How it works
  • 8.
    Universal Links ● Nativefirst, browser second ● Available iOS 9 onwards
  • 9.
    Advertisement (linked-url) Mobile WebPage App Installed? Mobile App Supports URL ? Mobile Web Page Yes Yes No No How Universal Links Work ?
  • 10.
  • 11.
    App-Site-Association File { "applinks": { "apps":[], "details": [ { "appID": "9JA89QQLNQ.com.myOrganisation.myApp", "paths": [ "/feature1/subFeature/", "/videos/wwdc/2015/*", NOT /about] }, { "appID": "ABCD1234.com.myOrganisation.mySecondApp", "paths": [ "*" ] } ] } }
  • 13.
    The Actual Problem What: Implement deep linking to our mobile apps. Why : So that business can track which marketing campaigns are generating how much revenue.
  • 14.
  • 15.
    Traditional Analytics/App-Stitching Advertisement (linked-url) Redirectsto mobile safari UserId Cookie ? Yes No Generate Cookie(Analytics Library) Append cookieId & campaign id to url-scheme Open App with updated url scheme
  • 16.
    Limitations of UniversalLinks ● Difficult to pass any additional parameters in Universal Links. ● Universal Links do not work with redirects. ● The user can also disable universal links altogether by innocently tapping on the website breadcrumb that is shown on the top. ● Difficult to debug and test because of all the various components involved. ● Deep linking to intercept subdomain.
  • 17.
  • 18.
    ● A separatedomain name for marketing links. ● A server application responsible for routing traffic to the correct platform. ● For desktop browsers, it is a simple matter of routing to the website. ● For mobile browsers, a web page is generated with the deep link to the app. Looking Towards New Domain Names
  • 19.
    Custom web page withDeep Link to app Domain Name just for Deep Linking? Marketing URL Custom Redirect Server (Track Ad Click) Display content in app Website or App Store
  • 20.
    What if theApp is not even installed yet?
  • 21.
    Deferred Deep Linking ●Resolve deeplinks immediately after app install from a Universal Link. ● Device fingerprinting by link server before redirect to App Store. ● App reaches out to link server for pending context on first launch. ● Content displayed/action taken based on context.
  • 22.
    Deferred Deeplinking Explained DeeplinkURL Custom Redirect Server (Device Fingerprint) App Not Installed App Installed App Store Install Page Contact Deeplink Server for pending context Exchange deeplink with server for context Display custom content based on context App Opens Directly
  • 23.
  • 24.
  • 25.
    User Experience withDeferred Deeplinks ● Personalized welcome screen flow ● Redirect to content shown in App Install ad ● Referrals/Invites can be resolved immediately ● Discounts/Offers availed
  • 26.
    Harnessing the Powerof Universal Links ● Index app activities and content. ○ Native app indexing allows you to provide app content and user activities in Spotlight search. ○ Third party indexing such as that provided by Google can be used to provide deep linking into your app through Google search. ● Promote content and not just the app. ○ Using the above mentioned indexing tools one can create marketing campaigns that are dynamic and work across platforms.
  • 27.
  • 28.
  • 29.
    Useful Links ● DeeplinkGolf on Github ● Universal Links Documentation Thank You!