At a glance: Enable new users to get a similar deep linking experience as existing users when clicking on a custom link.
![]() |
![]() |
![]() |
![]() |
Related reading: Deferred deep linking with SRNs
Scope of work
Who's involved
Note: This guide indicates when and how the marketer needs to involve the developers. |
Prerequisites
|
Time required Approximately 1.5 hours, working together with your mobile developers. |
Outcome Using the same custom link explained in OneLink 3/4, new users who click it are sent first to the correct app store to download and install your app. With the first launch, new users are served with specific content (or a specific experience) in the app. These users are attributed by the click/install to your defined owned media sources. |
Example
Mark's email campaign (from the previous guide's example) about healthy fruits successfully deep linked existing app users to the fruit pages inside Feed Me's app.
However, Mark knows that many people reading the email don't yet have the app installed. He wants these potential users to enjoy the same campaign offering as existing users do, to increase conversions and user satisfaction.
With the help of Andrea the Android developer, and Yossi the iOS developer, Mark adds deferred deep linking ability to Feed Me's apps. New app users who click the OneLink in the email and install, go straight to the fruit page when they open the app for the first time.
Procedures
Deferred deep linking for new users is enabled by using parameters and values from the custom attribution link. When a user clicks your custom link, AppsFlyer parses and delivers the attribution data to your app's internal code.
Inside the 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.
Note
Deep linking existing app users with Apple Universal Links, Android App Links, and URI schemes opens the mobile app. However, to serve users with specific content in the app, developers must access the deep link information using the AppsFlyer SDK.
Deferred deep linking is very similar. When launching the app for the first time, developers access the deep link information using an AppsFlyer SDK method. Using this information, developers can direct new users to personalized content.
Complete the following procedures to achieve these goals.
Implementing deferred deep linking
The user experience and customized redirection of deferred deep linking is accomplished with the following parameters:
- deep_link_value
- [optional] deep_link_sub1-10
To implement deferred deep linking:
- Custom attribution link setup.
- If you use the same custom link you created using the previous guide, you don't need to set a new deep_link_value, deep_link_sub1-10 (or other new parameters). You can use the same deep_link_value and deep_link_sub1-10 parameters already configured.
- If you want to create new parameters, follow the instructions in the previous guide.
- Contact your iOS and Android developers.
- Agree on the deep_link_value, deep_link_sub1-10 (and other parameters and values) to be used after getting the attribution data from the SDK on the first launch. If you followed the instructions in the previous guide, then you already have it agreed, and now just need to implement the same logic for new users. See parameter name limitations.
- 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.
- Unified deep linking (UDL) for Android and iOS: For deep linking AND deferred deep linking new or existing users, with or without your app.
- Make sure to receive confirmation from the developers that the app behaves according to the selected parameters and values.
Deferred deep linking with iOS Private Relay
With the launch of iOS 15, Apple provides iCloud+ users with a feature called Private Relay, which gives them the option to encrypt their web-browsing traffic and hide their exact location, IP address, and the contents of their browsing traffic. If users opt-in to Private Relay, this could interfere with attribution and deferred deep linking. Meaning, once a new user without the app goes to the App Store, and installs and launches the app, Private Relay could prevent them from being sent to a specific page in the app.
To ensure that deferred deep linking (DDL) continues to work as expected, you need to implement one of the following AppsFlyer solutions:
- [Recommended] App Clip-based solution: Create an App Clip that gives you user attribution data, and directs users to a customized App Clip experience similar to the one you want DDL to achieve. The app clip can also include a flow to direct users from your App Clip to your full app.
- Clipboard-based solution: Create a web landing page that copies the deferred deep linking data from the URL and correctly redirects the user to the app. Note: This solution does not help with attribution.
App Clip-based solution
This solution combines OneLink short URLs with the App Clips technology available on iOS, and allows you to send users to specific flows in your product without the need to install the full app. The OneLink short URL gives you user attribution data, and directs users to a customized App Clip experience similar to the one you want DDL to achieve. The app clip can also include a flow to direct users from your App Clip to your full app. Note: If users reinstall the full app from the App Clip-based solution, it may be reported in AppsFlyer as an organic install.
Flow
The flow of the App Clip-based DDL solution is as follows:
- The advertiser creates an App Clip and adds it to a OneLink template for users with Private Relay turned on.
- The user taps the OneLink URL.
- AppsFlyer web handler checks whether the:
- Device is using iOS 15+
- Browser is Safari
- User has Private Relay turned on.
- Once AppsFlyer confirms the above, and the user is prompted to either click Play App Clip or View in Safari.
- If the user clicks Play App Clip, an App Clip card displays to the user.
- If the user clicks View in Safari, a landing page opens, prompting them to open the App Clip.
- The user opens the App Clip.
- The App Clip opens and provides the user with the experience decided by the app marketer and developer.
- If the App Clip includes a flow to direct users to the full app, the users are sent to the App Store to download the full app. Upon app launch, they get the user experience defined by the developer.
Prerequisites: AppsFlyer SDK V6.4.0+
To set up the App Clip-based DDL solution:
- Tell the developer to follow the App Clip-based solution dev hub instructions. and create an App Clip that provides the desired user experience. This can also include a flow to direct users from your App Clip to your full app.
- Create or edit a OneLink template with Universal Links and deferred deep linking.
- In the OneLink template, turn on Display App Clip if user has Private Relay. Don't turn this on unless you have an App Clip.
Note: When making changes to a OneLink template with Universal Links, such as adding (or removing) App Clip capability, it may take several hours for the AASA file to update. Therefore, the links you create based on the template may not have the updated functionality right away. - Create a custom link based on the OneLink template.
- In App Store Connect, go to the App Clip Experience section, scroll down to App URLs, and enter either your OneLink template URL (domain + template ID. For example:
yourbrand.onelink.me/GrbZ
), or a specific OneLink custom link short URL.
Note: If you enter a OneLink custom link, the App Clip-based solution will only work for users tapping that specific link; other links created based off the OneLink template will not work.
Clipboard-based solution
Flow
The flow of the clipboard-based DDL solution is as follows:
- The advertiser creates a deferred deep link that contains the parameter
af_cp_lp=true
. - The user taps the deferred deep link.
- AppsFlyer checks whether the:
- Device is using iOS 15+
- Browser is Safari
- User has Private Relay turned on.
- Link contains the parameter
af_cp_lp=true
.
- Once AppsFlyer confirms the above, the web landing page loads, containing the app icon, image, and a CTA to get the app from the App Store. The user also sees a message that explains the process: that the URL is copied to ensure the best user experience that will send them to the specific page in the app.
- The user taps Get the app.
- The user is sent to the App Store to install the app. Then, at first launch, they are sent to the specific app page.
Requirements
The copy/paste landing page DDL solution requires:
- The user to be browsing the web on Safari.
- The deferred deep link to include the
af_cp_lp=true
parameter. - AppsFlyer iOS SDK V6+.
- Your iOS app developer to implement code that pastes the deferred deep link data in the URL from the clipboard. This is not part of the AppsFlyer SDK.
- The end-user to keep the checkbox ticked (default). If it is unchecked, the URL is not copied and deferred deep linking doesn't work.
Setup
To set up the clipboard-based DDL solution:
- Tell your iOS developer to:
- Follow the dev hub instructions and integrate the required code in the AppsFlyer SDK.
- Implement code that pastes the deferred deep link data in the URL from the clipboard. This is not part of the AppsFlyer SDK.
- Add the
af_cp_lp=true
parameter to your links.
You can do so by adding a custom parameter in the AppsFlyer OneLink custom link UI or simply append the parameter to any of your links.
Testing
Prerequisites:
- An Android and/or iOS device without the app installed.
Deferred deep linking is for new app installs, so any version of the app must be removed. - The testing device must be registered.
If the device is not registered, repeated installs can't be attributed (even if you're correctly redirected into the app). Note: If you are testing retargeting functionality, enable retargeting, and don't register the test device. - Find various conversion data response scenarios here.
To test your link:
- In the AppsFlyer dashboard, go to Experiences & deep linking > OneLink.
- 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.
It should redirect you to the app store to download the app. Don't download! - Install the new app version created by your developer.
- Open the app.
It should open to the specific page or personalized experience you chose. - In the AppsFlyer Overview dashboard look for a new install.
Look for a new click and install under media source (for example, test) and the campaign name you set in the custom link. Note: If you are testing retargeting functionality, a new re-attribution should be recorded.
Link not behaving as expected? Check out our troubleshooting guide.
If you completed the procedures in this article, then congratulations! You have implemented deferred deep linking for all your potential users, who would get campaign-specific content in the app the first time the app opens.