You've seen app.onelink.me links everywhere. They're AppsFlyer's default format for smart links URLs that detect a user's device and whether they have your app installed, then route them to the right place (App Store, Play Store, or a specific screen inside the app).
Marketers rely on this behavior constantly. But you don't actually need a full Mobile Measurement Partner (MMP) contract to get it. Here’s what OneLink is actually doing under the hood, and how you can replicate it.
What OneLink Actually Does
It’s a routing tool. You get one URL that works for everyone. Click it on an iPhone, it goes to the App Store (or opens the app if it's already there). Click it on Android, it goes to the Play Store.
Before smart links existed, you had to build your own redirect logic or pick one platform to advertise. OneLink automated this. It also stuffs the click with campaign parameters (source, medium, ad set) so AppsFlyer can attribute the install later. It is a tracking link first, a short link second.
The Branding Cost of onelink.me
If you don't configure a custom domain in AppsFlyer, your links default to onelink.me. It works, but it looks generic.
Because thousands of apps use that same root domain, your links don't look like yours. A fintech app asking users to trust a onelink.me URL for a signup bonus looks sketchy compared to one using its own domain. AppsFlyer allows custom domains, but the setup is often enough of a hurdle that teams skip it. Smler's custom domains and branding feature is built for this exact scenario getting branded links without the MMP overhead.
Under the Hood: The Routing Logic
The "smart" part is all server-side redirection.
- The Click: A user hits the link from an ad or email.
- Detection: The server reads the user agent to determine iOS vs. Android.
- State Check: It tries to open the app via Universal Link or App Link.
- Fallback: If the app isn't there, it redirects to the store.
- The Match: After install, the attribution SDK looks for a match to that original click to send the user to the right screen.
This relies on standard infrastructure like deep linking. The matching part is complex. On Android, the app calls the Install Referrer API to retrieve the original payload from Google Play. On iOS, which lacks a similar API, this process can rely on alternative mechanisms such as temporary clipboard-based attribution.
Where You See These Links
| Use Case | Why it matters |
|---|---|
| Paid UA | One URL for Facebook, Google, and TikTok ads. |
| Referral Programs | Deferred deep linking drops the new user into the referrer's flow. |
| Email Campaigns | Opens the app if installed; store if not. |
| Influencer Bios | One link per creator, trackable, no messy variants. |
Attribution is the real selling point for growth teams. Being able to tie a specific click to a specific creative is how you calculate ROAS. It’s a key lever for improving app conversion rate, because broken or confusing links destroy conversion.
A Simpler Alternative: Smler
If you just want the routing and branding without the full MMP suite, Smler handles the core smart link features device detection, deferred deep linking, and analytics on your own domain.
| Feature | AppsFlyer OneLink | Smler |
|---|---|---|
| Custom branded domain | Available (complex setup) | Native custom domains |
| Device-based routing | Yes | Yes (deep linking) |
| Deferred deep linking | Yes | Yes (guide) |
| Click analytics | Full MMP dashboard | Link-level analytics |
| Bulk link creation | Limited | Bulk shortening via CSV |
| Full MMP attribution | Yes | No (focused on links) |
For teams migrating off Firebase Dynamic Links or building custom routing, checking the React Native deep linking docs is a good reality check on how the tech actually works before you wire up production campaigns.
Owning Your Link Infrastructure
Building this yourself starts with your own domain.
- Connect the domain (DNS changes required).
- Define iOS, Android, and desktop destinations.
- Turn on deferred deep linking for post-install context.
- Pipe click data to your own systems via webhooks if needed.
- Monitor performance.
The underlying tech (Universal Links on iOS, App Links on Android) is standard regardless of the vendor. You can see the implementation patterns in the documentation hub.
