Short answer: the app is usually deciding where to send the user before the deferred link data has arrived. Wait for the SDK's deferred deep link callback before routing on first open. On Android, check that the Play referrer is read; on Meta iOS SKAN campaigns, deferred deep linking is not available.
Why deferred deep links fail on first open
Deferred deep link: a link that remembers the destination through the install, so a new user opens the app on the linked content rather than the home screen.
Deferred deep linking is not an operating system feature. It relies on the Play referrer or on your MMP matching the install to the click, which takes a moment after first launch (general practice).
Is it a timing problem or a matching problem?
Log the SDK callback on a fresh install. If the callback arrives with the right link after the home screen has loaded, it is timing. If the callback arrives with no link, the install was not matched to the click.
Likely causes
- Routing before the SDK callback. The first screen renders before the link data arrives (general practice).
- Play referrer not read on Android. Without it, the link may not be recovered. See the Play Install Referrer guide.
- Meta iOS 14+ SKAN campaigns. Meta's developer docs say deferred deep linking is not available for new iOS 14+ SKAdNetwork campaigns.
- The install was not matched. If the install shows as organic, there is no link to recover. See paid installs showing as organic.
- Testing with an adb or APK install. These have no Play referrer.
How to confirm it
- Delete the app, tap a test deep link and install from the store.
- Log the time of first render and the time of the SDK's deferred link callback.
- Check the callback's payload for the expected destination.
- Check how the install was attributed in your MMP.
- For Meta campaigns on iOS, check whether the campaign uses SKAdNetwork attribution.
MMPs such as Linkrunner, Kochava or Airbridge publish deferred deep linking guides that explain when the link data reaches the app; follow that timing rather than routing on first render.
How to fix it
- Hold first-open routing until the SDK callback returns or a short timeout passes.
- Show a neutral loading state rather than the home screen while waiting.
- Read the Play referrer on first launch on Android.
- For Meta iOS SKAN campaigns, design the onboarding to work without the deferred link.
- Test with store installs, not adb builds.
| Callback result | Meaning |
|---|---|
| Right link, after home screen | Routing too early |
| No link | Install not matched to click |
| No callback | SDK not started on first open |
Deep links that open the browser or store for users who already have the app are a different problem: Apple's universal links need a valid apple-app-site-association file served over HTTPS without redirects, and Android App Links need a verified assetlinks.json. The install referrer troubleshooter covers the Android matching side.