Set up deep linking

You can create deep links to take users to specific pages in your app. The Adjust SDK uses different logic depending on if the user already has your app installed on their device:

  • Direct deep linking occurs if the user already has your app installed. The link takes the user to the page specified in the link.
  • Deferred deep linking occurs if the user does not have your app installed. The link takes the user to a storefront to install your app first. After the user installs the app, it opens to the page specified in the link.

The SDK can read deep link data after a user opens your app from a link URL.

Set up deep linking

If a user has your app installed, it opens when they interact with a URL containing a deep link. The Adjust SDK contains tools to parse deep link information for use throughout your app.

You need to set up deep linking on an app level. Follow the instructions linked below to set up deep linking on your target platform:

Reattribution using deep links

Adjust enables you to run re-engagement campaigns with usage of deep links. For more information, see our guide to appending attribution data to a deep link.

To reattribute your user, you need to make an extra call to the Adjust SDK within your app. Add a call to the appWillOpenUrl(Uri, Context) method when the app receives deep link content. The Adjust SDK will then look for new attribution data within the deep link. If the SDK finds new information, it will forward it to the Adjust backend for reattribution.

iOS

Android

Deferred deep linking

Disable deferred deep linking

The SDK opens deferred deep links by default. You can configure this by setting the launchDeferredDeeplink property on your config object to true.

Dart
AdjustConfig adjustConfig = new AdjustConfig('{YourAppToken}', AdjustEnvironment.Sandbox);
//...
adjustConfig.launchDeferredDeeplink = true;
//...
Adjust.start(adjustConfig);

Set up a deferred deep link callback

You can configure the Adjust SDK to call a function when it receives a deferred deep link. This function receives the deep link as a string argument.

Dart
AdjustConfig adjustConfig = new AdjustConfig(yourAppToken, environment);
adjustConfig.deferredDeeplinkCallback = (String uri) {
  print('[Adjust]: Received deferred deeplink: ' + uri);
};
Adjust.start(adjustConfig);

Example

Enable LinkMe

The Adjust SDK lets you copy deep link information from the device pasteboard. When combined with Adjust’s LinkMe solution, this feature enables deferred deep linking on devices running iOS 15 and above.

Important:
The Adjust SDK checks the pasteboard when a user opens the app for the first time. The device displays a dialog asking if the user wants to allow the app to read the pasteboard.

When a user clicks on a LinkMe URL they have the option to copy the link information to their system pasteboard. You can use the Adjust SDK to read the system pasteboard for deep link information. If deep link information is present, the SDK forwards the user to the correct page in your app.

To enable pasteboard checking in your app, set the value of the linkMeEnabled property on your config object to true:

Dart
AdjustConfig adjustConfig = new AdjustConfig('{YourAppToken}', AdjustEnvironment.Sandbox);
//...
adjustConfig.linkMeEnabled = true;
//...
Adjust.start(adjustConfig);