Hello, everyone, and welcome to the I/O 2021 session
about how to drive up engagement with deeplinking.
My name is Ran Mor,
and I’m a product manager at the Mobile App Ads team.
For the past two years, we explored and investigated
the deeplink implementation process.
We wanted to understand the pain points that you and other stakeholders
in your company are having and how to help you validate
and improve your deeplinking coverage.
We discovered deeplinks provide tremendous value for you and your users.
However, many apps either have a small number of deeplinks
or don't have deeplinks at all.
So, today we are super excited to announce two deeplinking tools
that will help you with implementation,
prioritization and validation of the deeplinks.
This will result in a much better user experience,
higher retention and new opportunities to engage your users
and increase traffic to your app.
I really hope you enjoy the session, and let’s get started.
Let’s quickly talk about deeplinks.
So deeplinks are links that can be used to open an app
and send users to a specific piece of content or action inside of the app.
You’re probably asking yourself,
what are the benefits of implementing deeplinks?
First, we know the user experience in an app
is usually much, much better than the user experience on a mobile website.
Second, deeplinks can be used in multiple use cases,
such as marketing, emails, SMS.
And that increases the traffic to your app.
Lastly, deeplinks drive up engagement.
We've seen that users who are directed to apps
are twice as likely to perform actions than users who are directed
to the mobile web version of the same content.
So the ROI is much higher for both you and the users.
Next, let’s talk about the main types of deeplinks you should consider implementing.
The first type, called Custom Schemes, and it usually has four main components.
The scheme, which matches the scheme the app can handle in its manifest,
the host, which identifies the domain for which the link was invoked,
the path, which specifies the location within the app to open and the query string,
which is an optional set of values and parameters you can append to the URL.
Now Custom Schemes are platform specific,
meaning the implementation will be a bit different for iOS and Android.
Also, if other installed apps on the user's device
can handle the same custom scheme, users might not go directly to your app
and they will see the disambiguation dialogue.
This can lead to a potential fraud as other apps can try to open your links.
I’ll talk about the disambiguation dialogue in a bit.
The second and more preferable type of deeplink called App Links,
and they have similar components.
For the scheme though, it always has to be HTTP or HTTPS.
Now how do they work?
When users click on an app link,
if the app’s installed on the user’s device, they will be taken into the app.
And, if not, they will be taken to the mobile website.
Apple has a similar solution called Universal Links.
You can get more information about those on Apple’s Developer website.
Now, you’re probably asking us,
should I implement app links or Custom Schemes?
We highly recommend App Links
and not Custom Schemes for the following reasons:
App Links are more secure and specific,
they use HTTPS URLs that link to a website domain you own.
So no other apps can claim they own the same domain and use your links.
They also provide seamless user experience.
It’s a single HTTP URL for the same content on your website and in your app.
Users that don't have the app installed simply go to your website instead of app.
This behavior doesn’t exist in Custom Schemes
They also let you engage users from Google Search
and it can be used with the Google Assistant actions
and Android Instant Apps
that lets users run your Android app without installing it.
I mentioned disambiguation dialogue before,
that is the dialogue that lets the user select which app should handle the URL.
As you can see here, it’s definitely not ideal in terms of the user experience.
The dialogue usually pops up if the link is a custom scheme
and more than one app can open this URL
or if the link is an App Link but isn’t configured correctly.
So make sure the implementation is correct.
Implementing Custom Schemes or App Links involves two main steps.
First, in your app, you need to create deeplinks in the manifest
and add logic to launch the right content.
Second, on your website,
you need to output a JSON file that proves you’re the owner of the domain.
For Custom Schemes, you only need to implement the first step;
while for App Links, the second step is required as well.
Now let’s go over the actual changes you need to make to implement deeplinks.
Let’s start with your app, specifically at the Android manifest file.
To create the link to your app, you first need to add an intent-filter
to the activity that you want to link to.
Then you need to add the action.VIEW intent action
so that the intent filter can be reached from Google Search.
Then add a data tag that represents the URL format that results to the activity.
Now you can add more than one data tags,
each representing a URL can open the activity.
This is a bit weaker, though, so before you do that,
go over the Android developer guide to verify your implementation.
Next, add the browsable category that is required in order for the intent filter
to be accessible from a web browser
and the default category that allows your app to respond to implicit intents.
So those are the required changes in the manifest.
And here you see another example of an HTTPS link where the scheme is HTTPS
and the host is www.example.com.
Now, in your app, you also need to read the data from incoming intents.
How to do that, simply call the getData and getAction methods
to retrieve data and action associated with the incoming intent.
So those are the changes you need to make to your app.
As I described earlier for App Links,
you also need to add verification that proves you’re the owner of the domain.
Let's see how to do that.
First, a digital asset link JSON file must be published on your website
to indicate the Android apps that are associated with this website.
The JSON file uses the application ID or package name
and the SHA-256 fingerprints to grant link opening rights to the app.
Here in this example is the Conrad example app.
And you can use the keytool command that’s on the screen to generate a SHA-256.
Then you must publish your JSON verification file
at the location we see on the right side of the screen.
Also, make sure the file’s served with the right content-type
accessible over an HTTPS connection and without any redirects
and that you publish a file for each domain you have.
At Android developer guide,
you can also learn how to associate your website with multiple apps
or how to associate multiple websites with a single app.
The last step is to add the autoVerify=“true” statement
to any of the URL intent filters in your app manifest
to ask for verification from the operating system.
Now super important note here is that all your App Links
have to be configured correctly for the verification to work.
So for example, if you have 10 app links in your app
and one of them fails their verification,
all the 10 links are not approved which causes the disambiguation dialogue
to pop up when users click on those links.
Now I do want to talk about a very important process,
the deeplink implementation process.
It is a cycle.
It has three main phases: coverage, implementation, validation.
First, you need to know what deeplinks are missing in your app,
and what is the added value from implementing those deeplinks.
Second, you need to actually implement the deeplinks in your app and website.
Lastly, you need to validate your deeplinks are actually configured correctly.
And this is a cycle because the app, website and URLS
you and your company are using are changing frequently.
You always have to implement and verify new deeplinks in your apps.
Based on feedback we got from developers, marketers, product managers,
support and internal teams,
we developed two deeplinking tools that we are announcing today.
Those will help you validate and increase your deeplink coverage.
So let's deep dive directly into the tools.
The deeplink validation tool lets you validate
either your entire app or specific App Link or custom scheme.
Let's see how this tool works.
First to get to the tool, in AdWords, you click on the tools,
and then App Advertising Hub, under Planning.
To start the validation you need to choose your app,
decide if you want to validate a specific link on the entire app,
and then click on Validate.
Here, in this demo, we validate an entire app.
Then you can see how many of your links won't work
and the app version we validated.
You can also click on the full report button
to download or send the report to other stakeholders in your company.
The tool performs two sets of checks.
The first is a set of website checks for the JSON file on your website,
and the second is a set of app checks inside of the manifest.
Once we validate, at the main table, you’ll have up to three tabs.
One for all the domains that failed website checks.
This tab is based on domains
since a domain can be associated with multiple apps.
The second tab is all the links that failed app checks,
and the third is all the valid links in your app.
Now the domain that failed website checks tab,
you can add filters and download just this table and not the full report.
Now, in the table, you’ll see the list of domains, for each domain,
how many website checks it failed.
By clicking on View Details,
you can see all the checks that we perform on this domain.
Which one passed or failed, and what you need to do to fix each failed check.
Those checks are correlated with deeplink implementation steps
that we mentioned in this session.
Under the same view details page,
you can click on the Links Under Domain tab
and see all the links that are associated with this domain.
Moving to the second tab on the main table,
you can see the list of links that failed app checks.
For each link, whether it was validated as an app link or custom scheme
and how many app checks it failed.
You can also click on the View Details to see detailed view
of all the checks we performed,
which one passed or failed and how to fix the failed ones.
Important note here is, that for App Links,
we are performing more checks than Custom Schemes,
as App Links require a different setup.
The checks are correlated with the implementation steps we discussed.
Lastly, at the Validated Links tab,
you can see all valid links you have in your Android app.
And by clicking on the view link report, you can see a preview and the QR code
for the landing page that this deeplink leads to in the app.
You can also see the related checks that we performed for this link.
The Deeplink Impact Calculator tool provides a list of all the missing web URLs
that you should consider implementing as deeplinks
and the missed opportunity from not implementing those.
To get to the tool, similar to the validator,
you click on the Deeplink Impact Calculator link
at the App Advertising Hub.
On the top right card, you can see what is your current spend
on mobile traffic for your web campaigns.
For example, 29.4% coverage means that 29.4% of your current mobile spend
is flowing through deep links and into your apps;
while the rest of the traffic is directed to the mobile web.
On the top left card, you can see the missed opportunity
from not implementing the missed deeplinks.
In this example, by implementing the top 10 URLs,
you could’ve gotten 2000 to 3000 more conversions
and increase your deeplink coverage by 12.5%.
Similarly, by implementing all of the missed deeplinks,
you could’ve gotten 50 to 70 thousand more conversions.
Now let me briefly explain how this tool works.
At a high level, it pulls all the web URLs from your web campaigns over a period of time
and then checks whether those web URLs are implemented as App Links
or Universal Links in your apps.
This tool also lets you choose the period of time you want to pull the data from.
Using the time picker, you can change the time
which will affect the display data and recommendations.
The bottom table at the tool contains up to three tabs.
The first is the Android non-deeplink URLs.
Those are all the URLs
that you should implement as app links in your Android apps.
You can add filters
to get the most impactful URLs that you should implement,
segment each URL by campaigns and download the table for offline use.
For each URL, you can see the number of mobile clicks,
mobile cost and mobile conversions,
and most importantly, the missed conversions
from not implementing this URL as an App Link.
Specifically for App Links,
you can also further validate this URL using the deeplink validator.
Clicking on segment will let you see a breakdown
based on the campaigns that are using each URL.
The second tab is the iOS non-deeplink URLs.
And similarly to the Android tab, you can view all the URLs
that you should implement as Universal Links in your iOS app.
The last fully deeplink URLs tab provide all the web URLs
that are already implemented as deeplinks.
You can also click on the Download button at the top of the tool
to download the full report that contains all the information and missed URLs.
And lastly, you can filter the data based on Android or iOS
and that will change the information you see all across the tool.
To summarize, currently your deeplink coverage might be low,
some of the deeplinks might not be configured correctly
or you might not have deeplinks at all.
The problem is that your mobile users are not being taken into the app
and their experience is not optimal.
We highly recommend you to implement deeplinks
preferably App Links for Android and Universal Links for iOS.
Use the new impact calculator tool to identify the missing deeplinks
and the new validation tool to fix any existing misconfigurations.
Use those tools frequently
which would increase traffic, retention, engagement
and provide better user experience for your mobile users.
That’s a wrap.
I hope you enjoy this session today.
We are constantly working to improve the tools
and make sure both you and your users are having the optimal experience.
Thanks for joining and see you soon.