At a glance: Use this guide to create a link to retarget your existing app users and send them directly into a specific experience (e.g. 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
Note: This guide indicates when and how the marketer needs to involve the developers.
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.
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 need to 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, e.g. 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:
- The developers implement the desired behavior of the parameter in the code.
Contact your iOS and Android developers to plan parameter names and values to set on your links. Share this guide with the developers to understand the technical flow and see examples.
There are two options for naming parameters and values to pass data to your app:
Parameter/value naming method
Use AppsFlyer official subscriber parameters.
Subscriber parameters are parsed by AppsFlyer and have their own columns in attribution data and raw data reports.
Parameter names can't be changed
Up to 5 such parameters available
Create custom parameters.
You can choose any parameter name.
Requires parsing in order to analyze the attribution and raw data.
The marketer and developers need to decide together on the best long term system for naming parameters to minimize additional app updates.
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 parameter fruit_name 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.
- 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 Attribution tab, enter the parameters and values according to what you decided with the developers.
- Recommended - consider entering the same deep linking data in attribution parameters, such as Ad set name, or Ad name. This will help you analyze the success of different offerings to your users. For example, entering the relevant fruit name in Ad set name (in addition to af_sub3) enables Mark to see the success of apples, peaches, and avocados ad sets in the Fruit campaign.
- Click Update link.
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
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 (e.g. test) and the campaign name you put in the URL.
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, 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)
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.