Debugging Deferred Deep Links

Deferred Deep Link Not Firing After Install?

Complete troubleshooting guide for deferred deep link failures. Learn about SDK initialization, clipboard access, Play Install Referrer, real device testing, and dashboard debugging.

Problem diagnosis

Why deferred deep links fail after installation

Link opens but deep link data is not passed

If your app opens but doesn't navigate to the intended deep link destination, the attribution data failed to transmit from the link to your app on install.

Deferred deep links require data to survive the app install process. This depends on SDK initialization timing, platform-specific referral mechanisms, clipboard access, and proper handling in your app code.

SDK Init

SDK must initialize before the app renders. Delayed init can cause referral data to be lost.

Referrer Source

iOS uses clipboard; Android uses Play Install Referrer. Both must be properly configured.

Callback Handler

App must listen for and handle deep link data callbacks from the SDK.

How to fix

Step-by-step troubleshooting

1

Initialize SDK at app startup

SDK must initialize before any views render or callbacks are registered.

  • Call Redirectly.init() or equivalent SDK method in your main app widget/activity
  • For Flutter: Call in main() before runApp(). For React Native: Call in App.js before rendering.
  • For native iOS: Call in AppDelegate application(_:didFinishLaunchingWithOptions:)
  • For native Android: Call in MainActivity onCreate() or Application onCreate()
  • Verify init is not deferred by loading screens, state managers, or async operations
2

Request clipboard permission on iOS

Redirectly uses clipboard to pass deferred link data. Request permission in Info.plist.

  • Add to Info.plist: NSPasteboardUsageDescription or NSPrivacyAccessedAPITypes entry
  • Include purpose: "To detect and attribute app installs from links"
  • User will see permission prompt on first app open
  • Without permission, fallback mechanisms still work but attribution may be limited
  • Grant permission when prompted for best results
3

Enable Play Install Referrer on Android

Android needs Google Play Services for referral data. Configure your build.gradle.

  • Add to build.gradle: implementation 'com.google.android.gms:play-services-ads:...' or play-services-basement
  • Redirectly SDK will automatically use Play Install Referrer API
  • Verify referrer is passed: Check Redirectly dashboard logs
  • Test on real device with Google Play Store installed
  • Emulator with Play Services may not properly simulate referrer behavior
4

Test on real device with proper flow

Emulators do not properly simulate deferred deep link behavior. Real devices required.

  • Fully delete your app from the device (Settings > Apps > Uninstall)
  • Open a link from Safari (iOS) or Chrome (Android) pointing to your Redirectly link
  • If prompted, choose "App Store" / "Play Store" - do NOT open the link yet
  • Install your app from App Store or Play Store
  • Launch the app - if configured correctly, you should see the deferred deep link data
5

Monitor with Redirectly dashboard and app logs

Verify link tracking and data delivery via logs and dashboard analytics.

  • Go to Redirectly dashboard and create a test link
  • Enable debug logging in your app (check SDK documentation)
  • Add console.log or print statements in your deep link callback handler
  • View log output to see if data is received from SDK
  • Check Redirectly dashboard for link clicks, installs, and conversion events
Common issues

Common causes of deferred deep link failures

SDK not initialized at startup

Cause: Init called too late or after app views render

Fix: Move SDK init to app entry point before any UI rendering

No callback handler registered

Cause: App not listening for deep link data from SDK

Fix: Register deep link callback handler in your SDK init or setup code

Testing on emulator/simulator

Cause: Emulators do not simulate referrer APIs or clipboard correctly

Fix: Always test on real device. Emulator may show false negatives.

No clipboard permission on iOS

Cause: User denied or app did not request clipboard access

Fix: Request UIPasteboard permission in Info.plist and prompt user

Play Install Referrer not configured on Android

Cause: Google Play Services not included in app dependencies

Fix: Add Google Play Services to build.gradle and rebuild

Testing by re-opening the app (not install from store)

Cause: Deferred deep links only fire on fresh install, not app update

Fix: Fully delete and reinstall app from App Store or Play Store

Deep link data callback throws error

Cause: Callback handler has syntax errors or crashes

Fix: Check app logs for exceptions in deep link handler

Deep link bundle ID or app ID incorrect in Redirectly

Cause: Configuration in Redirectly dashboard does not match app

Fix: Verify bundle ID in Redirectly matches exactly your app bundle ID

Quick reference

Deferred deep link fix checklist

SDK initialization called at app startup before any views render
Clipboard permission requested on iOS (Info.plist configured)
Deep link callback handler is registered with the SDK
Callback handler has no syntax errors or exceptions
Google Play Services included in Android build.gradle
Testing on real device (not emulator or simulator)
App completely deleted before each test install
Link clicked from Safari (iOS) or Chrome (Android)
App installed fresh from App Store or Play Store
Deep link data expected after first app launch
Redirectly dashboard shows link clicks and install events
App logs show deep link data callbacks executing
App bundle ID matches Redirectly dashboard configuration
No network or permission restrictions blocking Redirectly API calls

Debug deferred deep links with Redirectly

Use Redirectly's dashboard to track link clicks, app installs, and verify deferred deep link delivery:

FAQ

Frequently asked questions

Why does deferred deep link work in development but not in production?

Ensure your production app is signed with the same key as your development build. Different signing keys result in different bundle/package identifiers that Redirectly cannot recognize.

Can I test deferred deep links on the same device?

Not really - deferred deep links require the app to be completely uninstalled. Testing on the same device requires full delete and reinstall from app store, which is slow. Use multiple test devices.

What if my app handles deep links correctly but Redirectly does not show conversions?

Check Redirectly dashboard for link clicks and install events. If clicks show but installs do not, the referrer mechanism may not be working. Verify Play Install Referrer on Android or clipboard on iOS.

How long does deferred deep link data persist?

Deferred link data typically persists for 24-48 hours after app install. After that window, the link data expires and the app will not receive deep link information.

Can I use deferred deep links with user login?

Yes. Store the deep link data in your app state or preferences. After user logs in, navigate to the saved deep link destination. This is useful for onboarding flows.

Try Redirectly Free

Test your deferred deep links with Redirectly's dashboard analytics and debug tools.