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.
![]() |
![]() |
![]() |
![]() |
Scope of work
Who's involved
Note: This guide indicates when and how the marketer needs to involve the developers. |
Prerequisites
|
Time required Approximately 3 hours (depending on the supported use cases), working together with your mobile developers. |
Outcome 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. |
Example
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.
Procedures
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.
1. Creating a custom deep link
To create a custom deep link:
- Contact your iOS and Android developers to plan the deep_link_value to set on your links.
- The deep_link_value is the value name for the specific in-app content that users will be directed to. The developers implement the desired behavior of the deep_link_value in the code.
- The developers implement the desired behavior in the code. Share the guide so they understand the technical flow and see examples:
- Unified deep linking (UDL) for Android and iOS: For deep linking AND deferred deep linking new or existing users, with or without your app.
Considerations for unified deep linking: 1. Requires SDK V6.1 or later. 2. SRN campaigns not supported. 3. af_dp parameter can launch the app via URI scheme, but is not available in API response. - Note: Customers already using OneLink may be using the legacy methods for Android and iOS, instead of UDL.
Tip
The marketer and developers must decide together on the best long-term system for the deep_link_value (and any other parameters/values) to minimize additional app updates.
The deep_link_value can be based on a SKU, post ID, path, or anything else. We strongly recommend agreeing with your developers on a system that allows for you to enter dynamic values on your chosen parameter, so you can generate many different deep links that go to different content within the app, without any further changes to the app code by the developers.
See the following URL examples. The deep_link_value of a fruit type was chosen by the marketer and developer together. And the developers made the values dynamic, so the marketer could enter any fruit without the need for further work by the dev team.
https://onelink-sample-app.onelink.me/H5hv?pid=Email&c=fruit_of_the_month&deep_link_value=apples...
https://onelink-sample-app.onelink.me/H5hv?pid=Email&c=fruit_of_the_month&deep_link_value=bananas...
https://onelink-sample-app.onelink.me/H5hv?pid=Email&c=fruit_of_the_month&deep_link_value=peaches...
- Unified deep linking (UDL) for Android and iOS: For deep linking AND deferred deep linking new or existing users, with or without your app.
- After receiving confirmation from the developers that the app behaves according to the selected parameters and values, in the AppsFlyer dashboard, go to Engagement & deep linking > OneLink Custom Links.
- Click the link you created in the previous guide.
The Custom attribution link page opens. - In the Deep linking & redirections tab, enter the deep_link_value according to what you decided with the developers.
- [Optional] If your deep linking requires more than one in-app experience (for example, you want to direct users to a product, and separately offer them a discount), you can deep_link_sub1 to the deep linking data payload.
- Contact your iOS and Android developers to plan the values.
- The developers implement the desired behavior in the code. Share this guide with the developers to understand the technical flow and see examples.
- In the Attribution tab, enter deep_link_sub1 and values according to what you decided with the developers.
- Click Update link.
Note
Once parameters and dynamic values are implemented by the developers, the marketer can use OneLink API to automatically generate thousands of custom links. Learn more
2. Testing
Prerequisites:
An Android and/or iOS device with the app installed. Make sure it is the app source and version where the developer(s) made changes.
To test your link:
- In the AppsFlyer dashboard, go to Engagement & deep linking > OneLink Custom Links.
- Hover over the Actions icon of the link you want to test and click Get URL.
- Send the short or long URL to your phone. You can either:
- Scan the QR code with your phone camera or QR scanner app.
- Email or WhatsApp yourself the link, and open it on your phone.
Note: Do not paste into iOS notes, or directly into a mobile browser. Often, the mobile operating system intentionally will not open the app in this context.
- Click the link on your mobile device.
The app should open to the specific content you specified in the link parameters. - Go to the AppsFlyer Retargeting dashboard.
Look for a new click and re-engagement (app open) under your link's media source (for example, test) and the campaign name you put in the URL.
Link not behaving as expected? Check out our troubleshooting guide.
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.
- Continue to the next step
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 is used.
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.