OneLink is a deep linking technology from AppsFlyer that combines deep links with attribution of installs and actions in mobile applications. Unlike regular deep links, OneLink retains traffic source information even after app reinstallation and at all stages of the user journey. According to AppsFlyer (2025), OneLink is used in 85% of mobile attribution campaigns among platform clients.
Key Takeaways
OneLink is a smart deep link technology from AppsFlyer that allows attribution parameters to be passed through a link and links user actions to a specific ad source. It solves the key problem of mobile marketing: connecting a click on an ad to an app install.
A regular deep link opens the app and can pass basic parameters but loses traffic source information when going through the app store. OneLink uses a combination of URL parameters, device ID, and fingerprinting technology to restore attribution after installation. This allows marketers to see which campaign, creative, and channel led to a conversion — registration, purchase, or other target event.
OneLink works on all platforms: iOS (Universal Links), Android (App Links), web browsers, and even desktop apps. Links are generated through the AppsFlyer dashboard or programmatically via REST API, making it possible to dynamically set parameters for each campaign in real time.
The principle of OneLink operation is based on three sequential stages: link click, app install, and event matching. At each stage, OneLink retains and passes attribution data, using a combination of methods to accurately determine the traffic source.
A OneLink link has a special format that includes the AppsFlyer domain, app ID, and campaign parameters. The standard template looks like https://app.onelink.me/{app-id}?pid={source}&c={campaign}&af_dp={deeplink}. The pid parameter (media source) indicates the traffic source, c is the campaign name, af_dp is the deep link inside the app.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
AppsFlyerLib.getInstance()
.start(this, "YOUR_DEV_KEY")
}
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
AppsFlyerLib.getInstance()
.onNewIntent(this, intent)
}
}
The af_dp parameter specifies the deep link the user will follow if the app is already installed. For new users, the deferred deep linking mechanism kicks in: after installation and first launch, the SDK determines the saved parameters and directs the user to the desired screen. The af_click_lookback parameter sets the attribution window — the period during which a click is considered to have led to an install.
After clicking a OneLink link, AppsFlyer records the click and associates it with a unique click ID. When the user installs and opens the app, the AppsFlyer SDK sends a request to the server with the device ID (IDFA on iOS, GAID on Android). The server matches the click ID with the install and determines the traffic source.
If an exact ID match is not found (for example, the user disabled the advertising ID), fingerprinting is used — analysis of IP address, device model, OS version, and timestamp. According to AppsFlyer, fingerprinting provides attribution accuracy of 92–95% on iOS and 95–97% on Android even without an advertising ID. The combination of deterministic (IDFA/GAID) and probabilistic (fingerprinting) methods provides the most complete picture of traffic sources.
The key difference between OneLink and a regular deep link lies in the ability to preserve attribution throughout the user journey. A regular deep link (e.g., myapp://screen) opens the app but cannot determine where the user came from if they just installed the app from the store.
| Parameter | OneLink | Regular Deep Link |
|---|---|---|
| Install attribution | Yes, by click to source | No |
| Deferred deep linking | Yes, after install | No |
| Parameter persistence | Through reinstall | Session only |
| Retargeting | Return tracking | Open only |
| End-to-end analytics | Full funnel | No |
OneLink uses its own SDK to track events inside the app and automatically link them to attribution data. This enables reports across the entire funnel from ad impression to purchase, refund, or user retention on day 7. Regular deep links do not provide this capability — they work solely as a navigation mechanism, without an analytics and marketing attribution layer.
OneLink is used in a wide range of marketing scenarios where precise linking of user actions to ad sources is required. Key areas include acquiring new users, re-engaging existing ones, and measuring the effectiveness of each channel.
When running install ads (UA campaigns), OneLink links are placed in ads on Facebook Ads, Google Ads, TikTok, Snapchat, and other platforms. The pid parameter uniquely identifies the platform, and the additional c (campaign) parameter identifies the specific campaign. AppsFlyer automatically matches clicks to installs and provides reports on CPI (cost per install), CR (conversion rate), and ROAS (return on ad spend) for each source.
For users who already have the app installed, OneLink supports retargeting campaigns. When an existing user clicks a link, OneLink opens the app and passes promo parameters such as a personal discount or bonus. AppsFlyer distinguishes new users from returning ones using the is_retargeting flag and builds separate reports for each traffic type — important for correct LTV (lifetime value) calculation.
OneLink is used not only in paid campaigns but also for organic traffic: links in email newsletters, SMS, QR codes, and social networks. If the user has not installed the app, OneLink directs them to the App Store or Google Play, and after installation — to the target screen: product page, article, profile, or promo offer. Deferred deep linking is critical for conversion as it removes friction between the user's desire to take action and the need to manually find the right section.
OneLink supports generating unique links for each partner or influencer. The af_sub1 parameter can contain the partner ID, af_sub2 — the post or video name. This allows marketers to see which content generates the most installs and conversions and optimize budget based on data rather than guesswork.
For OneLink to work correctly, the AppsFlyer SDK must be integrated into the mobile app. The process includes installing the SDK, configuring the OneLink domain, and handling incoming deep links through the platform's system mechanisms — Universal Links on iOS and App Links on Android.
The SDK is installed through standard dependency managers. On Android, add the dependency in Gradle; on iOS, via CocoaPods or Swift Package Manager. After installation, the SDK is initialized with a dev key obtained from the AppsFlyer dashboard and automatically begins tracking installs and events.
https://app.onelink.me/A1b2C3d4?pid=facebook&c=summer_campaign&af_dp=myapp://promo/summer2026&af_click_lookback=7d
In the example above, the SDK is initialized in the onCreate method of the main Activity using the dev key. The onNewIntent method is required for handling deep links if the app is already running. Without this call, attribution for repeat opens from OneLink links will not be recorded, distorting retargeting campaign statistics.
For iOS, Universal Links must be configured: add entitlements with the OneLink domain (app.onelink.me) and place the apple-app-site-association file on the server. AppsFlyer automatically generates this file when setting up OneLink in the dashboard; the developer only needs to add the entitlement and handle incoming links in the AppDelegate.
import AppsFlyerLib
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(
_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: Any?
) -> Bool {
AppsFlyerLib.shared()
.continue(userActivity, restorationHandler: nil)
return true
}
}
The continue userActivity method is called by the system when following a Universal Link. Inside it, AppsFlyerLib.shared().continue is called, which extracts attribution parameters from the link and sends them to the server. A similar approach is used on Android with Intent Filter and auto-verify for App Links.
After integration is complete, OneLink links can be generated through the AppsFlyer dashboard or API for each ad campaign. It is important to test links on all platforms: on a freshly installed app (deferred), on an already installed app (direct), and on a web page if the app is not installed. Testing is done using the AppsFlyer Test Link tool, which simulates behavior on all platforms without needing to publish to stores.
When working with OneLink, it is important to consider platform limitations: on iOS, after the introduction of App Tracking Transparency (ATT), access to IDFA requires explicit user consent, which reduces the accuracy of deterministic attribution. Google also restricts GAID usage on Android 14+ and above, requiring user confirmation. Under these conditions, fingerprinting becomes the primary attribution method, and its accuracy directly depends on data quality — the more signals the SDK collects, the higher the probability of correctly matching a click to an install.
Frequently Asked Questions
OneLink has built-in attribution: it tracks the click source, retains parameters through app reinstallation, and supports deferred deep linking — directing the user to the target screen after installation. A regular deep link simply opens the app without linking to an ad source.
OneLink uses a combination of methods: a unique identifier is created on click, which is matched with the device's IDFA/GAID on install. If the advertising ID is unavailable, fingerprinting is applied using IP, device model, and timestamp. Accuracy reaches 95–97% on Android.
Deferred deep linking is a mechanism that remembers the target screen after a OneLink click and directs the user to it after app installation. Without it, a new user would land on the home screen after installation instead of the advertised product page or promotion.
No, OneLink is a proprietary technology from AppsFlyer that only works with the AppsFlyer SDK. For deep link attribution through other platforms, there are alternatives: Branch Universal Ads and Adjust Deep Linking, but their link format and capabilities differ.
AppsFlyer provides a Test Link tool in the dashboard. It simulates link behavior on iOS, Android, and web: shows which screen will open, what parameters will be passed, and how the source will be determined. Testing should be done on all platforms and scenarios — new device, reinstall, and already installed app.
Summary
We will develop a mobile application turnkey
IT Sectr creates iOS and Android applications for startups and businesses since 2017. We will advise you and propose the best solution.
Read also