Deep link FAQs
Various factors could affect your deep link behavior. If you are experiencing unexpected results from your deep links either in testing or production, read through this article to find a solution. If your issue still persists, contact support@adjust.com.
General problems
Is my URL syntax and encoding correct?
If your deep link is not directing you to the specified destination or returning an HTTP 404 error, first check your URL syntax and encoding.
URLs typically use this syntax: scheme://host:port/path?query-string#fragment-id
Each part of a URL performs a different function and uses specific characters to identify and separate values. The scheme and host are not case-sensitive but the path and query-string are case-sensitive. A mistake in the composition of your URL will prevent it from opening as it should.
When setting up your deep link, pay attention to these conditions:
- If you add an Adjust parameter to a URL query string already containing query parameters, use an
&
. Otherwise, any information after the second?
in a URL is dropped.- Correct example:
https://abcd.adj.st/my?path=location&client=name&adjust_t=klm012
- Incorrect example:
https://z9pm.adj.st/my?path=location&client=name?adjust_t=klm012
- Correct example:
- If your query string is encoded, start it with a
/
or ensure it is part of adeeplink
parameter.
If your app is not already installed and these conditions are not met, the adjust_t
parameter is dropped by the browser. Adjust needs this parameter to locate the source of the click; without it, we will return the HTTP 404 error URL not found
.
Examples
Depending upon how your URL is set up, your deep link can have the following behaviors:
Deep link setup | Example link URL | Behavior |
---|---|---|
Link URL + deep_link parameter | https://app.adjust.com/r40ncx7?deep_link=adjust%3A%2F%2F%3Fpath | Opens the app on the specified in-app page |
Universal link | https://abcd.adj.st/%3Fpath?adjust_t=r40ncx7 | Opens the app on the specified in-app page |
Universal link | https://abcd.adj.st/?path&adjust_t=r40ncx7 | Opens the app if it is already installed, but cannot reach the specified in-app page. |
Universal link | https://abcd.adj.st%3Fpath?adjust_t=r40ncx7 | Is invalid and returns an error |
Why can't I see my attribution data and/or campaign levels?
If your attribution data or campaign levels from your deep link URL are not available, it is likely due to a setup problem. Check that device ID parameters and campaign parameters (as applicable) are not being cut off due to encoding errors in fallbacks or callbacks. For instance, there are no spaces in the URL or invalid characters.
Why am I directed to the store even though my app is installed?
Typically this behavior means that your deep link has failed to open the app, and we have redirected to the store as a fallback. To test this, follow these steps:
- Follow our testing instructions as an existing user for universal links and links with the deep_link parameter.
- If your test is successful and the app opens, consider what environment the deep link was clicked from when it failed. Then check to see if any additional parameters are required for that instance.
- For example: if a JSR universal link is clicked from Slack, the
adjust_deeplink_js=1
flag should be present. This helps load the scheme before redirecting to the store. If your link does not work even with theadjust_deeplink_js
flag present, then your App Scheme may be incorrectly entered in Campaign Lab.
- For example: if a JSR universal link is clicked from Slack, the
- Ensure there are no encoding errors to your fallbacks or callbacks in the link URL that might break it. This will cause parameters to be dropped. Dropped parameters will result in the complete link to not work as intended.
Why doesn't my deep link open in the correct place in the app?
If your link does not open in the right place but it opens your app, check whether it is your link or app setup causing the problem.
- Host the universal link domain (
https://abcd.adj.st/
) or scheme (myapp://
) on a web environment and click it from there. - Contact your developer to make sure the paths within the app are set up correctly.
Adjust receives incoming click data for deep links with an Adjust link or Adjust parameters appended. A direct deep link with just a domain that is specific to your app will not return any data to Adjust.
Sends click data:
myapp://welcome?adjust_t=abc123&adjust_campaign=re-engage_my_users&adjust_adgroup=apac&adjust_creative=promo1
https://z9pm.adj.st/welcome?adjust_t=abc123&adjust_campaign=re-engage_my_users&adjust_adgroup=apac&adjust_creative=promo1
Doesn't send click data:
myapp://welcome
To receive click data for apps that are already installed and for deep link reattribution, make sure to implement the SDK click within the Adjust SDK iOS; Android.
Deep links that trigger an SDK click are reported as clicks in Datascape. They are also visible in your raw data using the click
callback. For a granular view of which clicks resulted from a deep link SDK click, include the {is_deeplink_click}
parameter.
Troubleshooting deep links with links + deep_link parameter
Why isn't my deep link working from a Facebook post?
Campaigns run through Facebook posts have to use an Adjust link URL with a deeplink
parameter appended. In addition, the deeplink
parameter must have a path appended to it, or the user will be taken to the store (even if the app is installed). The path provided does not need to be valid.
Example of a parameter with appended path: https://app.adjust.com/abc123?deeplink=adjust%3A%2F%2Fsuch_path
Troubleshooting deferred deep links
Why doesn't my deferred deep link open the app in the correct place after install?
When your deferred deep link does not take you to the right path within the app after install, first check to see whether this path actually exists. Host the scheme (myapp://
) on a web environment and click it from there to test whether it is your link or app setup causing the problem. Contact your developer to make sure the paths within the app are set up correctly.
If you are taken to the correct path as an existing user, but not as a new user, inspect your device via the Testing Console and make sure you were attributed to the click. If you were not, forget the device via the Testing Console and try again.
If you were attributed to the click, inspect your device to check if it includes a deeplink
parameter. If it does not, make sure there are no encoding issues or special characters that are cutting off the URL before the deeplink
parameter.
Finally, if a deeplink
parameter is included, then make sure the path is present. If the path is not present, it has been cut off for some reason. Reach out to support@adjust.com for further assistance.
Why doesn't my deferred deep link work after forgetting the device?
Sometimes when testing, the deferred deep link is persisted for some time after the click - even after forgetting the device via the Testing Console.
If this happens, your test may look like this:
- You clicked the deep link, installed the app, and opened it.
- You uninstalled the app.
- You forget the device via the Testing Console.
- You run another test (click, install, open) and the deferred deep link does not work.
In this situation, uninstall the app again, forget your device via the Testing Console, and then rerun the test. After doing this, the deferred deep link should work as expected.