App Deep Linking
App Deep Linking
Blurred Lines
Between web and app
*Google/Verto, U.S. “The Mobile Shopping Journey,” A18+ smartphone users, Oct. 2017.
Proprietary + Confidential
Mobile
Shopping
1 in 2 mobile shopping sessions
include at least one
transition between a
mobile site and an app
Google/Verto, U.S. “The Mobile Shopping Journey,” A18+ smartphone users, Oct. 2017.
Proprietary + Confidential
Consumers
Won’t Wait
For a great mobile experience
Google / Ipsos Connect, Jan. 2018, Playbook Omnibus 2018, n=1,604 US online smartphone users, A18+
Proprietary + Confidential
92%
of all mobile time
is spent in apps
Yet we’ve seen that many customers are not measuring the full value of their
app, with high volumes of in-app conversions being untracked.
Proprietary + Confidential
Thai
Thai food
food nearnear
me me
Proprietary + Confidential
20%
OFF
Proprietary + Confidential
The challenge
Deep link to your in-app content
Proprietary + Confidential
Desktop https://www.website.com
Apps ?
Direct users into your app from ads
Proprietary + Confidential
Search App
Deliver better ad experiences
Proprietary + Confidential
Deliver better campaign results
Proprietary + Confidential
65% 2.3x
YoY app sales app conversion
growth rate
Proprietary + Confidential
Help improve
mobile ROI
New: in May’19 we launched App Deep Linking support Proprietary + Confidential
Implementation
2 main requirements
Proprietary + Confidential
Deep links are a type of URL that takes • App Links (Android) and Universal Links (iOS)
people to specific online content seamlessly send users to the right page in
the app or website
• They use your existing HTTP destination URLs,
such as www.example.com or
www.example.com/product_1234, and take
users who have your app installed to the
in-app content you specify
Before After
Go to website ✓ If app installed: Go to app deep link X If app not installed:
Go to website
App Links Universal Links
About Deep Linking
Proprietary + Confidential
Deep links are a type of URL that take people to specific online content
App Links These links use your existing HTTP destination Visit our developer website ▪ Search
URLs, such as www.example.com or to learn more about App
(Android) ▪ Display
www.example.com/product_1234, and take Links [ ] for Android apps.
▪ Shopping
users who have your Android app installed to
▪ App engagement campaigns
the in-app content you specify.
▪ App dynamic remarketing
campaigns
Universal Links These links use your existing HTTP destination Visit our developer website ▪ Search
URLs, such as www.example.com or to learn more about
(iOS) www.example.com/product_1234, and take Universal Links [ ] for iOS
▪ Display
users who have your iOS app installed to the apps. ▪ Shopping
in-app content you specify. ▪ App engagement campaigns
▪ App dynamic remarketing
campaigns
Required to unlock key features — They are required to use: Demo video showing
the power of Universal
● App Deep Linking - App deep linking & measurement in Search, Shopping, and Display
/ App Links
campaigns
● Firebase App Indexing - Index your app on Google Search (organic), and drive traffic to it
● Actions on Google across Google Assistant, Google Home, Android, etc.
● In-Screen Search on Android
● Google Play Instant (Android Instant Apps)
More secure — No other app can use your links (unlike with Custom Schemes, where
other companies can claim your scheme and use it to send traffic into their own app).
Seamless user experience — Because it uses the same URL as your web links,
users are always gracefully taken to the mSite landing page as a fallback if the app can’t
open (no error pages, unlike with Custom Schemes, where error pages can happen) .
Clarifying what Google supports to deep link your
Proprietary + Confidential
deep links
Tried a search on your mobile device, clicked on your link and saw a dialog asking if you want to open
the app or continue to the browser? While this is common, this means that the App Links have been
incorrectly set up.
If it does, this means there is an issue with the json file (it’s either
missing or it has some incorrect setup).
Please work with your developer to fix this, as you may risk losing
a valuable customer along the journey. An additional step =
friction in the journey. The goal is to provide a seamless
experience, with minimal friction..
Deep linking for developers
Proprietary + Confidential
Web App
Phase 1 (today): plug the leaks using your 3d party provider (AAP)
Phase 2 (through 2020-2021): migrate to GA for Firebase
Report in-app events
Proprietary + Confidential
Step 1
& Link accounts Implement the GA for Firebase SDK
Step 2
Link GA for Firebase and Google Ads accounts
Step 3
Import app conversions into Google Ads — Import into all
Search+PLA+Display accounts all app events equivalent to
those included in conversions in website (optional: import
additional app events)
Step 4
Measure & optimize these app conversions in Google Ads
● Mark them as “Include in conversions” and bid
on them in Search+PLA+Display campaigns
● Ensure Auto-Tagging is enabled for all accounts
Why GA for Firebase?
Proprietary + Confidential
With automated event Will help provide Unified data privacy and Get a more holistic view
setup and standardized additional, standardized user controls will provide of the business across
data, we can provide signals to our models. robust transparency and app and web
robust measurement, control to users (please refer to slides
and our machine learning 25-29 for more info)
algorithms can further
improve performance.
Proprietary + Confidential
Product Roadmap
Product timeline
Proprietary + Confidential
1H’2020 2H’2020
Measure the Full Value Optimize for App Seamlessly Link Unified Measurement
of Web and Apps Destination into Apps across Web and App
● Ad destination ● Enhanced Smart ● In addition to Search, ● Cross-web/app conversion
segment UI reporting bidding (launched on Shopping and Display: tracking
in Ads Search, coming to consistent App deep ● App+web properties in Google
Shopping Ads) linking on YouTube, Analytics
Hotel Ads, Discovery
and Gmail
g
Use new Ad Destination report Comin
Proprietary + Confidential
soon
jcote@
Proprietary + Confidential
Thank You
Proprietary + Confidential
Pros:
Can be defined directly in app without
other registration
youtube:// youtube.com/watch ?v=abc123
Scheme Host Path Query String Cons:
Identifies which Identifies domain for which Specifies the Optional set of values Always tries to go to app even if it’s not
app to open. this link was invoked. location within to provide more user installed
the app to intent to the app.
App needs to Allows to differentiate e.g. open.
register than it can between country specific In this case the Are not unique (clashes with other
handle this versions for youtube to In this case identifier of the video, apps)
scheme. apply language settings the video but could be anything,
etc. watch page. e.g. signup form
entries, a hotel search Potential fraud
query etc.
Required to unlock key features — They are required to use: Demo video showing
the power of Universal
● App Deep Linking - App deep linking & measurement in Search, Shopping, and Display
/ App Links
campaigns
● Firebase App Indexing - Index your app on Google Search (organic), and drive traffic to it
● Actions on Google across Google Assistant, Google Home, Android, etc.
● In-Screen Search on Android
● Google Play Instant (Android Instant Apps)
More secure — No other app can use your links (unlike with Custom Schemes, where
other companies can claim your scheme and use it to send traffic into their own app).
Seamless user experience — Because it uses the same URL as your web links,
users are always gracefully taken to the mSite landing page as a fallback if the app can’t
open (no error pages, unlike with Custom Schemes, where error pages can happen) .
App Links and Universal Links seamlessly send
Proprietary + Confidential
Enabling App Links Advertiser Eng team must map some or all web URLs to in-app pages by making code
changes to the app and adding a JSON file to the site. Web URLs will not change:
& Universal Links
Same URL*
Before enabling links: After enabling links:
https://youtube.com/watch?v=abc123 https://youtube.com/watch?v=abc123
PRO
TIP Test your App Links: Help Center
* IMPORTANT: This is why many marketers are unaware that their web URLs are App Links or Universal Links, because it was enabled by their engineers, without them knowing.
Proprietary + Confidential
Before you start, make sure you have an app and a domain (website) which you are able to manage.
For iOS Universal Link, you can refer to this video for implementation.
Proprietary + Confidential
1. Update the function in ItemViewActivity to be able to extract the product_id from the web URL. Without doing the
following, there will be a disambiguation dialog box that shows when they try to open the http link. The links will
still be openable
2. Create a new file assetlinks.json, which has a fixed format. If they use Android Studio, it has an automated wizard
that auto-generates the assetlinks.json file
1. Create a new file apple-app-site-association, which has a fixed format. (It lists the paths you want to open in the
app and id of the app that opens it)
To enable your app to handle App Links, declare the URI patterns in your App
AndroidManifest file.
Intent filter for App Links must have VIEW action (android.intent.action.VIEW) and
BROWSABLE category (android.intent.category.BROWSABLE).
To enable automatic link handling verification for your app, set the android:autoVerify
attribute to true.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recipe);
String action = getIntent().getAction();
String data = getIntent().getDataString();
Please host your Digital Asset Links JSON file on your domain .well-known location.
The system verifies the JSON file via the encrypted HTTPS protocol. Make sure that your
hosted file is accessible over an HTTPS connection, regardless of whether your app's intent
filter includes https.
}
}
“ERRORS: None” means Validated !!
}
],
"maxAge": "38.430176182s",
"debugString": "********************* ERRORS *********************\n None!\n********************* INFO MESSAGES *********************\n* Info: The
following statements were considered when processing the request:\n\n---\nSource: Web asset with site https://photos.google.com. (which is equivalent to
'https://photos.google.com')\nRelation: delegate_permission/common.handle_all_urls\nTarget: Android app asset with package name com.google.android.apps.photos and
certificate fingerprint 3D:7A:12:23:01:9A:A3:9D:9E:A0:E3:43:6A:B7:C0:89:6B:FB:4F:B6:79:F4:DE:5F:E7:C2:3F:32:6C:8F:99:4A\nWhere this statement came from:\n Origin
of the statement: Web asset with site https://photos.google.com. (which is equivalent to 'https://photos.google.com')\n Include directives followed (in order):\n
\u003cNone\u003e\nMatches source query: Yes\nMatches relation query: Yes\nMatches target query: Yes\n\n--- End of statement list. ---\n\n\n"
} Confidential, Internal Only
[Debug] Verify assetlinks.json (logcat)
You can verify assetlinks.json verification status using 'adb logcat' command like
following. When you install your app, Android system verifies assetlinks json hosted on your
domain. If it doesn’t, please use 'adb shell pm clear com.android.statementservice'
command to clear cache.
Check point:
1. Check your web-server log that your assetlink JSON file was downloaded when you
installed your app.
2. “adb shell dumpsys package d” command helps you to identify App Links.
“Status: always” indicates the domain will be opened without dialog.
Help Center
App Links (Android)
Universal Links (iOS)