OneLink™ 2/4: Sending existing users to open your app

At a glance: Use this guide to create a custom link to retarget your existing app users and send them directly into the app. These users are attributed using retargeting attribution.

Part1_fade_180X408.png Part2_180X408.png Part3_fade_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.


  • For attribution: The AppsFlyer SDK already installed in each of your mobile apps.
  • For iOS Universal Links and Android App Links: A published mobile app. 
  • Completion of OneLink guide 1/4, meaning: 
    • Creation of OneLink template
    • Creation of custom attribution link

Time required

Approximately 1.5 hours, working together with your mobile developers.


During retargeting campaigns, existing app users who click your link are sent directly into the app. Non-users clicking the custom link are redirected to the correct app store per their device.

Clicks (and future in-app events) are correctly attributed using retargeting.


The grocery delivery app Feed Me (from the previous guide's example) has many users who have become inactive for more than 30 days. Mark the marketer would like to encourage these existing app users to return to the app.

Mark decides to reach these existing app users by posting to their Facebook community.

The post includes a link powered by OneLink, configured (with the help of Andrea the Android developer, and Yossi the iOS developer) to:

  • Directly open the app for existing users (who have the app installed). When the app opens, users will arrive at the home screen of Feed Me, not to specific content. (We cover deep linking to specific content in the next guide).
  • Send new users without the app installed to the appropriate app store or landing page, based on their device.


Complete the following procedures to set up a custom link that will send existing iOS or Android app users directly into the app. 


If you completed all three procedures in this article, then well done! You have created a link you can send to existing app users to direct them into your app, and receive retargeting attribution data.




FAQs and Limitations

The following sections contain various FAQs and general explanations about OneLink and the app-launching methods.


URI schemes

Considerations for URI scheme naming

  • Neither Apple or Google enforce unique naming for app schemes. Choose a scheme name unique to your brand to avoid conflicting schemes across different applications. A good scheme name could be your app bundle ID, for example,
  • To enable OneLink to serve both iOS and Android, it is important that the same scheme is defined for both platforms. Here are instructions for iOS and Android.

What workaround is there for the iOS app-launching issue from social media apps?

Facebook and other social media apps sometimes block Universal Links from opening apps.

The recommended solution for app-launching issues from social media apps is Social app landing pages.

If you do not want to use Social apps landing pages, add the af_force_deeplink=true parameter to the URL. (This parameter is automatically enabled for Kakaotalk, Naver, Naver-Blog, Chrome, Weibo, and Twitter.) 

This will attempt to force open the app using the URI scheme 100% of the time the link is clicked. This should be used only when you know the link is being sent to users that have the app. Otherwise, users will receive an error message.


Are URI schemes usable with iOS devices?

The best-supported way to open apps on iOS devices is by using Universal Links. Since 2016, there are considerable built-in OS limitations to using URI schemes as a fallback method for when iOS Universal Links fail to open the app. By default, URI schemes are only used as a fallback on iOS for the following browsers: 

  • Chrome
  • Twitter
  • Kakaotalk
  • Naver
  • Naver-Blog
  • Weibo
  • LINE

For other browsers, including Safari, you can add the af_force_deeplink=true parameter to the URL to use URI schemes as a fallback.


  • URI schemes are unpredictable and therefore not supported by default.
  • af_force_deeplink=true attempts to force open the app using the URI scheme 100% of the time the link is clicked. This should be used only when you know the link is being sent to users that have the app. Otherwise, users will receive an error message.

Are URI schemes usable with Amazon devices?

No. Currently, direct app launching and deep linking via URI schemes are not supported on Amazon devices.

Are URI schemes usable with Windows mobile devices?

No. Currently, direct app launching and deep linking via URI schemes are not supported on Windows mobile devices.

Can I add parameters to af_dp?

Yes, but it's not recommended.
af_dp can contain a URI value, and any parameters can be transferred as part of the path of the URI, e.g. af_dp=greatapp%3A%2F%2Fparam1%2Fparam2 (greatapp://param1/param2).

However, concatenating parameters to the value of af_dp after '?' is NOT recommended. The parameters may be discarded and not be available via conversion data or via other APIs.
Bad example: af_dp=greatapp%3A%2F%2F%3Fparam1%3Da%26param2%3Db (greatapp://?param1=a&param2=b).

The best practice for adding custom parameters is via the custom link setup page


The following characters are not allowed [<>;(){}`']

Universal Links and Android App Links

Opening apps from browsers

Universal Links & Android App Links only work when clicked on. For example, when clicking a link on a web page or email. Pasting the link in the browser address bar doesn't launch the app.
In the past, it used to be supported by the browsers, but is now deprecated due to browser security reasons.
Test by clicking on URLs, not by pasting them in the browser URL box.

Can the OneLink subdomain be changed?

The OneLink subdomain cannot be changed once there are custom links based on the template.

Changing the subdomain causes all the template's existing OneLink URLs to stop working.

As a workaround, we recommend to create a new OneLink template and custom links. Then slowly phase out the old OneLink template and the custom links that depend on it.

OneLink in social network apps

Not all apps, including social networks apps, fully support Universal links & Android App Links. 

As this table shows, basic OneLink redirection for users without your app installed should work with most social apps. However, app-launching and deep-linking require Universal Links or Android App Links and are mostly broken by social apps.

To solve this issue create the social apps landing page per custom link, as described above.

As a further safety method, make sure the custom link has a set URI scheme as a fallback.

Wrapping and shortening OneLink breaks iOS Universal Links and Android App Links

Deep linking with iOS Universal Links and Android App Links requires associating your OneLink domain (for example, within the app's code. This domain is then recognized by the Operating System as a domain that invokes the app when clicked.

Any type of wrapping, shortening, or redirect to the link facing the user will break Universal or App Links. For example: using ESPs,, or non-AppsFlyer branded links. 

To wrap or shorten a link in a way that allows the redirection to work properly: 

Can OneLink work without the AppsFlyer SDK?

Actually, it can, but only partly.
Basic user redirection and app-launching work even if AppsFlyer SDK isn't integrated into the app yet. Smart Banners don't require the SDK either and also work fine without it.

If you need to convert mobile web visitors into mobile users fast and can't integrate the AppsFlyer SDK, it is possible to do so.

However, the absence of the SDK means that clicking users:

  • Can't be deep-linked beyond the initial app launch
  • No attribution data is recorded
  • No user in-app actions are recorded

Do I need to release an app update for Universal Links and Android App Links to launch the app?

Yes. Whenever AndroidManifest.xml or iOS Associated Domains are updated (as they are when you implement Universal Links or Android App Links to open the app for existing users), you need to upload the new version of the app to the relevant app store. For this reason, if you want to minimize app updates, do all the dev-related changes required in this guide—and parts 3 and 4—at one time. 

Android App Links FAQ

Bypassing app selection dialog

If you see the app selection dialog when testing your OneLinks, make sure to sign your app even if it's a debug app. The certificate that you use to sign the app with, is the same certificate that you use to generate the SHA256 fingerprint when configuring OneLink for App Links.

Testing FAQ

How can I A/B test the Social apps landing page?

The Social apps landing page gives users a seamless app-launching experience when using OneLink in social network apps. You may be concerned that adding a step to the funnel decreases conversion rates. But the truth is that without the landing page, conversion rates are very low, as user journeys are mostly broken.

If you're not fully convinced yet, why not test it?

A/B test your custom link in Social media apps, with and without the Social apps landing page.

To A/B test the Social apps landing page:

  1. Create a OneLink custom link (called Link1) to use with social media apps. Don't set the Social apps landing page for this link.
  2. Add the af_adset attribution parameter.
  3. Add the af_ad attribution parameter with the value "no lp". 
  4. Test link1 outside of social media apps, and verify the link works and launches your app correctly.
  5. Duplicate Link1 and call it Link2.
  6. Change the af_ad attribution parameter value to "using lp". 
  7. Create the Social apps landing page for Link2 only.
  8. Publish 2 different posts in the same social media app, using Link1 and Link2.
    Don't worry about the different number of clicks each link produces. The important KPI is the final conversion rate of each link.
  9. Check the A/B test results after enough traffic is created.
    1. Go to the AppsFlyer overview dashboard and scroll down to the Aggregated performance report table.
    2. Link1 and Link2 have the same media source, campaign, and adset name. Drill down to the specific adset.
    3. Compare the conversion rates (and other KPIs) of users that clicked either Link1 or Link2.

Next step

Follow the instructions in guide 3/4 to deep link existing app users to specific content inside your app.

Was this article helpful?