Verify and maintain deep links

Using the Deep links page (Grow > Deep links) in Play Console, you can:

  • Manage your deep links' setup and drive deeper engagement with in-app content. 
  • Check the status of your website-to-app mapping and see where improvements can be made by deep linking your most-visited URLs. 
  • You can use patches to add, turn off, and fix issues with deep links, without releasing a new app version.

If you have a linked Google Ads account, you can check what ads campaigns are deep-linked, gain insights into user reach, and preview deep-linked versions of your landing pages.

Deep links overview

Deep links are URLs of any scheme that take users directly to a specific part of an app rather than a website. Developers can create deep links by adding intent filters to drive users to the right activity in their app.

The Deep links page simplifies the process of creating, maintaining, and validating deep links. The page has two tabs: App configuration and Web URLs. The App configuration tab provides an overview of your app version's setup and associated deep links. You can use this tab to:

  • View a simple yet comprehensive snapshot of your existing deep links configuration for your selected app version.
  • Identify deep link setup issues at a glance, so you can resolve them sooner.
  • Create and publish patches to add, turn off, and fix issues with deep links, without releasing a new app version.

The Web URLs tab displays information relating to your app's performance on the web, such as your most important web-crawled URLs and the most-clicked domains from your linked Google Ads campaigns, and status information. You can use this tab to:

  • See what ads campaigns are deep-linked and gain insights into the deep links' user reach (if you have a linked Google Ads account).
  • Preview deep-linked versions of your landing pages, which can be compared side-by-side with the web version.
  • View a list of your most important web URLs alongside their deep linking status
  • Uncover missed opportunities to deep link your content and further increase user engagement.
The Deep links page also provides a powerful search feature so you can easily check through your full inventory of paths, domains, and custom schemes.​

Deep links page features

The sections below describe the Deep links page's features and functionality.

General features

These are universal features that you can see and use on both tabs on the Deep links page. Click on a section to expand or collapse it.

App picker

You can choose the app version that you want to check deep links for using the app version picker on the top-right of the page. You can select any active app versions on any track (production, open or closed testing, or internal testing). The table(s) will display deep link data based on your selected app version.

Note: You can choose from all your active app versions (that is, app versions that are still being served to users). You might have users with an older version installed that is not being served anymore. Google Play considers these app versions to have been superseded, so you can't choose these versions.

Patches

You can create and publish patches to add, turn off, and fix issues with deep links, without releasing a new app version. After you create a patch, you can choose which active versions of your app it will be applied to. The Create patch button is next to the app version picker on the top-right of the page.

Go to Patch your deep links setup to learn more.

Highlights cards

At the top of the page, you might see some highlight cards with notifications about your deep links. These cards highlight important issues in your deep links setup so you can quickly identify what items need your attention. The highlight cards may have different prompts and actions depending on the content. For example, clicking View domains will filter some of the tables on the page to show, whereas clicking Learn more will take you to specific content in the documentation that will help you get more out of your deep links.

Search and filter

All tables on the Deep links page are searchable and sortable. You can use the search function to find results relating to the full inventory of paths, domains, and custom schemes associated with your app version. The sort function only sorts the data that's currently loaded (either by default or based on your search results).

In the Domains table, you can search for domains (substring search), and can filter by status (OK, Not OK). You can also search for paths and custom schemes in the following ways:

  • Search for scheme (substring search)
  • Search for domains (substring search)
  • Search for path (substring search)
  • Search for activity (substring search)

Note: For the Paths table, if you enter a full URL (for example, http://example.com/someStrangePattern) the dashboard will attempt to pattern-match according to the type of the path. Consider this example:

The path defined in the manifest is a pattern (https://example.com/Some.*Pattern).

In this case, if you type the full URL, this path is returned. You can use this functionality to understand which intent filters and paths will be responsible for handling a URL entered in the search box.

The search functionality ignores query parameters, so you can paste a full URL into the search box without causing problems.

App configuration

The App configuration tab provides an overview of your app version's setup and associated deep links. The sections below describe the two tables that you can see and use on the tab. Click on a section to expand or collapse it.

Domains table

The Domains table is located on the App configuration tab and lists all domains declared in your app manifest. It helps you verify associations between your URLs and your app, creating app links. If your app purposely doesn't make use of App Links, but you still want to rely on web links by having your users set preferences in the settings, this section might not be too relevant to you, as your domains will fail to associate with your app by design.

If there are any issues with your domains, you can hover over the status column to see exactly what checks have failed. You click on a row to view issues in more detail.

If you have issues in your Domains table, here's how you can resolve them:

  1. Use the JSON generator in the overlay to directly copy the contents of your assetlinks file to your domain, which will contain all the necessary information to make your app links work. Note the following:
    • After you've made the required changes to the assetlinks file and uploaded it to your domain, return to the Deep links page and check that the issue has been resolved.
    • The generator is additive, which means it will account for anything that's already in your domain. It's completely safe to take all the contents and paste as they are (or download the file) — it won't break compatibility with other apps you might own. We highlight the proposed changes in green.
  2. Fixing issues with your domain does not guarantee all users will have validated app links. On most versions of Android (pre-Android 12), domain verification occurs during install, so you will need to release a new version of your app if you want old installs to start receiving app links. 
App manifest links table

The App manifest links table is located on the App configuration tab and displays data relating to your app's manifest. Google Play validates your app's intent filters and groups them by path (for web links). If there are any issues, you can click on any row for detailed information on how to fix your app. Clicking on the path will also list all links supported under this path. This will be the combination of schemes (http/https) and domains declared for intent filters that have this path and activity.

Note: To fix any issues listed in the App manifest links table, you must modify the AppManifest.xml file and publish a new version of your app. Your current app version's issues will remain, because they're tied to an app version that's already been published.

Tip: You may find that some Android documentation suggests having a separate intent filter for each <data> tag. However, we recommend keeping all web links that are to be captured by the same path/activity under the same intent filter to facilitate management of your manifest. Having multiple <data> tags is dangerous because they are combined in all permutations of scheme, path and domain. But if you keep the same path for web links (where schemes will always be http/s), this is not a concern.

Web URLs

The Web URLs tab displays your deep links' coverage (an aggregated number showing what percentage of top URLs from your verified domains are deep linked) and other information relating to your app's performance on the web, such as your most important web-crawled URLs and the most-clicked domains from your linked Google Ads campaigns, and status information. The sections below describe the two tables that you can see and use on the tab. Click on a section to expand or collapse it.

Most ad traffic table (linked Google Ads accounts only)

The Most ad traffic table is located on the Web URLs tab and — If you have a linked Google Ads account — ranks the domains from your ads campaigns that received the most clicks with user reach listed as a percentage. User reach is the percentage of users that have your app installed who, upon following a web URL, resolve in-app (or are shown an app picker) vs stay on the web.

You can also view the domain status (Deep linked, Not deep linked, Issues found). If you notice that there are domains that you have not yet deep linked but are receiving lots of clicks, deep linking these domains can be a great opportunity to further increase user engagement by directing users straight to your app.

You can click on any row for detailed information on a specific domain. If your URL is not deep linked, you can follow the on-screen steps to set up your app and verify domain ownership, or view our developer guide for more support. If available, you can also view preview side-by-side screenshots of how your deep linked domain looks on the web and on your app. Finally, you can view a detailed user reach breakdown, which shows the following expected user outcomes for your selected URL across all app versions displayed as a percentage:

  • Users directed to app
  • Users directed to app picker
  • Users directed to web browser
Web crawled URLs

The Web crawled URLs table is located on the Web URLs tab and shows you the most important web-crawled URLs with user reach listed as a percentage. You can also view the domain status (Deep linked, Not deep linked, Issues found). If you notice that there are domains that you have not yet deep linked but are receiving lots of clicks, deep linking these domains can be a great opportunity to further increase user engagement by directing users straight to your app.

You can click on any row for detailed information on a specific domain. If your URL is not deep linked, you can follow the on-screen steps to set up your app and verify domain ownership, or view our developer guide for more support. If available, you can also view preview side-by-side screenshots of how your deep linked domain looks on the web and on your app. Finally, you can view a detailed user reach breakdown, which shows the following expected user outcomes for your selected URL across all app versions displayed as a percentage:

  • Users directed to app
  • Users directed to app picker
  • Users directed to web browser

Patch your deep links setup

You can create and publish patches to add, turn off, and fix issues with deep links, without releasing a new app version. Patches are not retained for your future app versions. You can retain these changes in future app versions by updating your app manifest.

After you create a patch, you can choose which active versions of your app it will be applied to. The Create patch button is next to the app version picker on the top-right of the page.

To create a patch:

  1. Open Play Console and go to the Deep links page (Grow > Deep links).
  2. Near the top-right of the page, click Create patch
    • Note: After you click Create patch, you'll see a message near the bottom of the Deep links page saying "Patch mode on: No changes pending". This status will update as you make changes to your deep links setup.
  3. Select Add web link if you would like to add a new path to your deep links configuration..
    • If you want to use a domain not yet specified in your App Manifest, you must first click Add domain in the domains table. Once your domain is verified in the overlay, it will be available to use when adding new web links. It won't, however, show in the domains table until you publish a patch with it. 
      • Note: Domains added with Add domain will remain part of your setup for all the future versions.
  4. Define URL parameters by providing the required information:
    • Activity: Select an activity using the drop-down menu.
    • Scheme and host: Select a scheme and a host using the drop-down menu.
    • Path: Enter the full URL that you want your new deep link to direct users to.
  5. Click Add to patch draft. After adding to your patch draft, you'll see a message near the bottom of the page saying "Patch mode on: 1 deep link change pending". 
  6. (Optional) If you want to add a patch to other deep links, you can do so by following the same process again. 
  7. If you're ready to publish your patch(es), click Review and publish.

You can also use patches to turn off deep links. When you turn off a deep link, users will not go directly to your app from links associated with this path, but will see the app picker or be directed to the web browser. To turn off a deep link:

  1. Open Play Console and go to the Deep links page (Grow > Deep links).
  2. Near the top-right of the page, click Create patch
    • Note: After you click Create patch, you'll see a message near the bottom of the Deep links page saying "Patch mode on: No changes pending". This status will update as you make changes to your patch.
  3. Next to the path you would like to turn off, click Turn off.
  4. (Optional) If you want to turn off other deep links, you can do so by following the same process again. 

If you're ready to publish your patch(es), click Review and publish. Review and publish your patch to apply changes to the selected app version.

Frequently asked questions

What is user reach?

User reach is defined as the percentage of users that have your app installed who, upon following a web URL, resolve in-app (or are shown an app picker) vs stay on the web. The higher the percentage, the more users are getting an optimal landing experience. The data is refreshed once a day.

What are the web-crawled URLs?

Web-crawled URLs are a list of top URLs we have identified as the most important across your verified domains. These include most visited and referenced pages that we see traffic going to on the web. Deep linking your most important web URLs will ensure higher engagement with your app content. The list of URLs is refreshed once a day.

How do I link my Google Ads account?

To see the deep linking status of landing pages from your Google Ad campaigns, you first need to link your Google Ads account. To do so, follow these steps. Once linked, your ad campaigns’ URLs will appear on the Deep links page in Play Console.

What is deeplinks coverage?

Deeplinks coverage is an aggregated number showing the percentage of top URLs from your verified domains that are deep linked. A higher deeplinks coverage can help you ensure that your users are getting the most optimal experience of your products and services. The coverage is calculated based on the state of your installed users devices and refreshes daily.

What happens when I add a domain?

When you add a verified domain, Play Console will start showing you URLs related to this domain. Note that this doesn't happen instantly; there may be a lag of about a day before you can see any URLs from a domain you just added. Note that there is currently no way to remove verified domains from the list.

I’ve fixed my assetlinks following Play Console recommendations, but coverage is not changing. Why?

Deep link coverage is not based on the current state of your app, but instead on whether users that have your app installed can open a given URL or not. When you change your assetlinks or add new intent filters, it takes time for your installed user base to pick up on these changes. You may see the coverage numbers gradually change as your users receive your updates.

Why is it that only some URLs have screenshots?

We currently test a limited set of the available URLs in the page for screenshots. If you see a message saying the preview is not available, this doesn't mean that there is something wrong with your app. Previews are currently available for a limited set of URLs, but we are working on increasing the coverage of this feature in the future.

How are URLs grouped?

We used an heuristic to determine which URLs should be grouped together. If your app already has intent filters, these will always show up as groups in the UI. Our algorithm only groups URLs that do not match any intent filters.

Was this helpful?

How can we improve it?
Search
Clear search
Close search
Google apps
Main menu
11049706417231153386
true
Search Help Center
true
true
true
true
true
92637