OneLink™ 3/4: Deep linking existing users to specific pages

At a glance: Use this guide to create a link to retarget your existing app users and send them directly into a specific experience (for example, a specific page) within your app, without being directed to the app store or app home page first. These users are attributed using retargeting attribution.

Part1_fade_180X408.png Part2_fade_180X408.png Part3_180X408.png Part4_fade_180X408.png

Scope of work

Who's involved

Note: This guide indicates when and how the marketer needs to involve the developers.


Time required

Approximately 3 hours (depending on the supported use cases), working together with your mobile developers.


In OneLink 2/4 you created a custom link, that sends existing users to open your app. OneLink 3/4 covers how to send existing app users who click your link directly to specific content in your app. To do this, you will use the deep linking data from AppsFlyer's SDK.
This applies to ALL deep linking methods: Universal Links, Android App Links, and URI scheme. 


Mark the marketer's Facebook post (from the previous guide's example) had mild success in getting existing users to return to the app. However, not many users who click the link and open the app actually convert to place an order.

Mark decides to increase conversion by offering a free bag of peaches, apples, or avocados with every purchase. For this, Mark creates a smooth, deep-linking experience for existing users. He sends his user base a detailed email stressing the benefits of these 3 healthy fruits. 

For each fruit mentioned in the email, Mark includes a deep link powered by OneLink, configured (with the help of mobile developers) to:

  • Take existing app users (regardless of platform) straight to the relevant fruit page.
  • Direct new users without the app installed to the appropriate app store or landing page, based on their device.

Mark can then create many more links without any additional developer work, deep linking to any product page in any given link.


To create a custom link, you must choose parameters and values. When a user clicks your custom link, AppsFlyer delivers the parameters and values to your app's internal code. 

Inside your app, the code written by the mobile developer receives the parameter information via the AppsFlyer SDK (if integrated) and makes the app do something specific, for example, navigate to a particular page.

Complete the following procedures to set up a custom link (with parameters and values) that sends existing iOS or Android app users directly to specific content within the app. 


If you completed the procedures in this article, then congratulations! You have created a link you can send to existing app users to direct them straight to specific content (or get a personalized experience) in your app and receive retargeting attribution data. 




Deep linking FAQs

What app-launching methods should be implemented?

If your OneLink template contains both Android and iOS apps, we highly recommend implementing all three of the following methods:

  • Universal Links: Covers close to 100% of iOS users. If your template contains an iOS app, implement Universal Links.
  • Android App Links: Covers at least 85% of Android users, as it's available from Android 6.0. If your template contains an Android app, implement Android App Links.
  • URI scheme:
    • Covers less than 15% of Android users, who have Android OS versions prior to 6.0, and therefore can't use Android App Links.
    • Should be implemented for users with Android OS versions prior to 6.0, and as a fallback for Universal Links and Android App Links users.
    • Can be used for all Android users if Android App Links isn't implemented, but this is not recommended due to security and performance issues.

All these methods are used for direct app-launching for existing users, but they don't actually deep link users (sending them to specific content within the app). 

What deep linking methods should be implemented?

Your mobile developers are required to implement just one deep linking method per platform.

Universal Links and Android App Links are app-launching methods, which don't actually deep link users (sending them to specific content within the app). The URI scheme method can launch the app and deep link users (via the af_dp custom link parameter), but it should only be configured for app-launching. Its main usage is as a fallback method for UL and AAL, and for app-launching users with Android OS versions prior to 6.0.

After the app is launched using any of these methods, the AppsFlyer SDK supplies the deep linking value specified in the custom attribution link. This value should be delivered to the single deep linking method implemented by the mobile developers.

URI scheme example

The URI scheme value is placed with the af_dp custom link parameter. It should only contain the base URI of the app, which is needed for app-launching. Deep linking values should be placed with other parameters, for example, af_sub1.

Good example: af_dp=greatapp%3A%2F%2F&af_sub1=param1%2Fparam2 (af=greatapp://&af_sub1=param1/param2)

Bad example: af_dp=greatapp%3A%2F%2Fparam1%2Fparam2 (af=greatapp://param1/param2)

Can URI scheme (af_dp parameter) be used for deep linking?

Ideally, you should use the deep_link_value for deep linking, and the URI scheme as a fallback method to launch the app (via the af_dp custom link parameter) without deep linking. However, if you already have the URI scheme set up to deep link, there is no need to change your existing configuration or code; it will work.

iOS 14 and deep linking

There is no user experience impact to iOS 14 users who deep link from campaigns on ad networks and owned media.

For attribution/reporting purposes, AppsFlyer uses IDFA or IDFV when available. If there is no IDFA or IDFV, Probabilistic modeling may be used. Starting iOS 14.5+ probabilistic modeling is limited to the context of owned media, cross-promotion, and consented web-to-app flows.

Next step

What if NEW users click on your custom link? 

Follow the instructions in OneLink 4/4 to give new users the same deep linking experience existing users get by using deferred deep linking. This will take new users first to the app store, and then directly to specific content inside your app. 

Was this article helpful?