About the Deep Link Validator

The Deep Link Validator lets you validate deep links for either your entire Android app, or a specific App Link or Custom Scheme within your app. Using the tool you can see, send, and download a detailed report that contains all the checks the tool performed on your link, and how the missed configurations should be fixed. Learn more about deep links

Note: The instructions below are part of a new Google Ads user experience that will launch for all advertisers in 2024. If you’re still using the previous version of Google Ads, review the Quick reference map or use the Search bar in the top navigation panel of Google Ads to find the page you’re searching for.

To access the Deep Link Validator:

  1. In your Google Ads account, click the Tools icon Tools Icon.
  2. Click the Planning drop down in the section menu.
  3. Click App advertising hub.
  4. You’ll find the Deep Link Validator on the menu.

How to use the Deep Link Validator

Deep links provide tremendous value for you and your users: better user experience, higher retention, and new opportunities to engage your users and increase traffic to your app.

Use the Deep Link Validator tool to:

  • Validate your entire mobile app or a specific link.
  • Understand the fixes you need to make so all your links are configured correctly.
  • Download or send the report for easier documentation and sharing with relevant stakeholders in your organization.
  • Make the necessary changes in your app and website.

Validate an entire app or a specific link

Using the tool you can validate your entire app, provide a full report of all the links found in your manifest file, and check whether each link is configured correctly. Alternatively, you can choose to validate a specific link to make sure it’s usable and working as intended.

App validation

To validate all the deep links in your app:

  1. Choose your app from the app picker.
  2. Choose the Validate all deeplinks option under the drop down menu.
  3. Select Validate.

Once you do, the scan pulls all the deep links found in your app, and performs the relevant checks on each link.

Overall report and download functionality

You’ll 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 organization.

Detailed app verification table

Note: If all your links are valid, a list of all the valid links will be shown.

Once we validate, you’ll see up to 3 tabs on the validation table.

Domains that failed website checks tab:

  • This tab is based on domains since a domain can be associated with multiple apps, and vice versa.
  • In the table, you’ll see the list of domains that failed website checks, how many website checks failed for each domain.
  • By clicking on "View Details", you can see all the checks performed on this domain, which ones passed and failed, and what you need to do to fix each failed check.
  • Under the same "View Details" page, you can click on the “links under domain” tab to see all the links that are associated with this domain.

Note: If one or more of the domains in your app fails website checks, all the App Links in your app will not work as intended. When clicking on those links, the app may still open, but the dialog which allows the user to select which app will open the link will show.

Links that failed app checks tab:

  • In the table, you can see the list of links that failed app checks per link, and whether it was validated as an App Link or Custom URL Scheme, and how many app checks it failed.
  • You can click on "View Details" to see a detailed view of all the checks performed, which ones passed or failed, and how to fix the failed ones.
Any link check other than a Custom URL Schemes check will require a different setup.

Valid links tab:

  • In the table, you can see the list of links that failed app checks per link, and whether it was validated as an App Link or Custom URL Scheme.
  • You can click on "View Link Report" to see a preview (if available) and a QR code for the landing page that this deep link leads to in the app as well as all the related checks that we performed for this link.

Filtering

To help you prioritize the data, you can filter the domains and links in the tables based on the number of checks that failed or the type of checks that failed.

Specific link validation

To validate a specific link:

  1. Choose your app from the app picker.
  2. Choose the Validate a deep link option from the drop down menu.
  3. Enter the link you want to validate.
  4. Click Validate.

Once you click on "Validate", the relevant checks on your link are performed.

Verification results

Once validated, you’ll see the checks that the tool performed on your link, how many passed and failed, whether the link was validated as an App Link or Custom URL Scheme, and the app version validated. It’s important to note that any link check other than a Custom URL Schemes check will require a different setup.

You can also click on the "full report" button to download or send the report to other stakeholders in your organization.

If the deep link is not configured correctly, you’ll see the list of app and/or website checks we performed, which ones passed or failed, and how to fix the failed ones.

If the link you validated is a valid link, you’ll see a preview (if available) and a QR code for the landing page that this deep link leads to in the app, and all the related checks that the tool performed for this link. However, the deep link preview may not always accurately reflect the content of the app, especially if the access to the app is restricted (for example, if it requires a login or needs to be accessed from a specific location). Therefore, use the QR code to test the deep link on your own device.

How the Deep Link Validator works

Types of deep link validations

The tool validates 2 types of deep links: App Links and Custom URL Scheme.

  • Every link that has the HTTP or HTTPS scheme is validated as an App Link.
  • App Links that failed one or more website checks but passed all app checks (other than the “Android system verification” check) might still open the app, but also open a disambiguation dialog, which allows the user to select one of the multiple apps (including yours) that can handle the given URL. This also creates more friction in the user journey, hence it is highly recommended to fix all App Links to seamlessly drive your users directly into your app.

App Link validation

To implement App Links you need to make changes in both your app and your website.

  • First, in your app manifest, you need to create intent filters and configure your app to use data from the intents to send users to the right content in your app.
  • Second, you need to add a verification for your deep links by publishing a Digital Asset Links JSON file on your websites to verify ownership. Then, you need to configure your app to request verification of App Links. Learn more about App Links implementation

To validate an App Link, we perform the following set of app and website checks.

Custom URL Scheme validation

To implement Custom URL Schemes you only need to make changes in your app. More specifically, in your app manifest, you need to create intent filters and configure your app to use data from the intents to send users to the right content in your app. Learn more about Custom URL Scheme implementation

To validate a Custom URL Scheme, we perform the following set of app checks.

Type of checks the tool performs

Based on the type of the link, the tool performs checks on your app and/or website.

App checks

<data> tag

What does this check mean?

This test checks for a <data> tag that includes the android:scheme attribute. The <data> tag ensures the app can open the URL.

How to fix this check?

Make sure that the following elements exist in the manifest file of your app:

  • A <data> tag that includes the android:scheme and android:host attributes (optional) to the intent filter for this URL.
  • A "/" to the beginning of the android:path attribute in the <data> tag. The attribute might also be android:pathPrefix or android:pathPattern.

Check the official Android developer guide.

ACTION_VIEW attribute

What does this check mean?

This test checks for an ACTION_VIEW intent action attribute, which ensures the URL can be reached from Google Search.

How to fix this check?

Add an ACTION_VIEW intent action attribute to the intent filter in the manifest of your app.

Check the official Android developer guide.

DEFAULT category attribute

What does this check mean?

This test checks for a DEFAULT category as an attribute, which ensures the app can be accessed by web browsers.

How to fix this check?

Add a DEFAULT category as an attribute to the intent filter in the manifest of your app.

Check the official Android developer guide.

BROWSABLE category attribute

What does this check mean?

This test checks for a BROWSABLE category as an attribute, which is required for the app to be opened.

How to fix this check?

Add a BROWSABLE category as an attribute to the intent filter in the manifest of your app.

Check the official Android developer guide.

Android system verification

Note that this check is only performed for App Links verification.

What does this check mean?

This test checks for a Digital Asset Links JSON file in the domain of the app’s website, which is used by the Android system to verify the app. This check also verifies ownership of the app.

How to fix this check?

Add an android:autoVerify=”true” attribute to the intent filter in the manifest of your app.

Check the official Android developer guide.

Non-redirect URL

What does this check mean?

This test checks for redirect URLs, which are not supported by Google Ads. Your deep link must take users directly to the app. It cannot redirect users to external servers or third-party deep links.

How to fix this check?

Replace your URL with one that takes users directly to the app.

Website checks

Host attribute formed properly

What does this check mean?

This test checks that your android:host attribute has a valid domain URL pattern.

How to fix this check?

Make sure the host is a properly formed web address such as google.com or www.google.com.

Link to the official Android developer guide.

Digital Asset Links JSON file failed

What does this check mean?

This test checks your website for a Digital Asset Links JSON file, which is used to verify ownership of the app.

How to fix this check?

Add a Digital Asset Links JSON file to all of the failed website domains at the following location:

https://[domain.name]/.well-known/assetlinks.json

Also, ensure the file is accessible by bots, and that your robots.txt allows crawling.

Link to the official Android developer guide.

Domain non-redirect

What does this check mean?

This test checks that your domain is accessible without redirects. This domain must be directly accessible to verify ownership of the app.

How to fix this check?

Ensure your domain is accessible without any redirects for all of the failed website domains.

Link to the official Android developer guide.

HTTPS accessibility

What does this check mean?

This test tries to access your Digital Asset Links JSON file over an HTTPS connection, which must be accessible to verify ownership of the app.

How to fix this check?

Ensure your Digital Asset Links JSON file is accessible over an HTTPS connection for all of the failed website domains (even if the app’s intent filter declares HTTP as the data scheme).

Link to the official Android developer guide.

JSON content type

What does this check mean?

This test checks your Digital Asset Links JSON file for content type validation, which defines the format of the JSON file. This allows the mobile device to verify ownership of the app.

How to fix this check?

Ensure the content-type is “application/json” for all of the failed website domains.

Link to the official Android developer guide.

Package name

What does this check mean?

The test checks your Digital Asset Links JSON file for package name validation, which the mobile device uses to verify ownership of the app.

How to fix this check?

Ensure your Digital Asset Links JSON file declares the correct package name with the "android_app" namespace for all of the failed website domains. Also, confirm that the app is available in the Google Play Store.

Link to the official Android developer guide.

Fingerprint validation

What does this check mean?

This test checks your Digital Asset Links JSON file for sha256 fingerprint validation, which the mobile device uses to verify ownership of the app.

How to fix this check?

Add sha256_cert_fingerprints to the Digital Asset Links JSON file for all of the failed website domains. If the fingerprint has already been added, make sure it's correct and that the "android_app" namespace is declared on it.

Link to the official Android developer guide.

Related links

Was this helpful?
How can we improve it?

Need more help?

Sign in for additional support options to quickly solve your issue

Search
Clear search
Close search
Google apps
Main menu
Search Help Center
true
true
true
true
true
73067
false