Deferred Deep Linking

Deferred deep linking remembers where a link was meant to go while someone installs your app, then opens that screen on the first launch. On Android, Google Play hands the app the original referrer string through the Install Referrer API. Apple offers no matching install referrer, so iOS apps usually restore the destination through sign-in or a code.

Ordinary vs deferred deep link
Ordinary deep linkDeferred deep link
App already installedOpens the screenOpens the screen
App not installedWeb page or store onlyStore, then the screen after install
Needs data kept across the installNoYes

Updated

Picture a shop that emails a discount link for one product. People who already have the app land on the product. People who do not are sent to the store, install, open the app and see the home screen: the product, and the reason they came, are lost. Deferred deep linking is the set of techniques that carries the destination through the install. Use the simulator below to follow each path.

Follow the link

What happens, step by step

  1. The person taps https://shop.example/product/42 in an email.
  2. Your web page sends the person to your Play listing with a campaign referrer attached.
  3. The person installs the app from the store.
  4. They open the app for the first time; it lands on the home screen.
  5. On first launch the app calls the Install Referrer API and reads the referrer string back.
  6. The app routes /product/42 to the product screen.

Reading the install referrer on Android

Add Google's Play Install Referrer library, version 2.2, to your app's Gradle dependencies (the line is at the top of the example), then connect once on first launch.

Read the referrer and close the connection

Store a flag after the first successful read so the call is not repeated on later launches.

// build.gradle.kts: implementation("com.android.installreferrer:installreferrer:2.2")
val client = InstallReferrerClient.newBuilder(context).build()
client.startConnection(object : InstallReferrerStateListener {
    override fun onInstallReferrerSetupFinished(code: Int) {
        if (code == InstallReferrerClient.InstallReferrerResponse.OK) {
            val details = client.installReferrer
            val referrer = details.installReferrer          // e.g. "route=/product/42"
            val clickedAt = details.referrerClickTimestampSeconds
            openRouteFromReferrer(referrer)
        }
        client.endConnection()
    }
    override fun onInstallReferrerServiceDisconnected() {}
})

Smart App Banner on your web page

Smart App Banner meta tag

Replace the numbers with your App Store ID. app-argument reaches the app only when it is already installed.

<meta name="apple-itunes-app" content="app-id=123456789, app-argument=https://shop.example/product/42">

Key facts (as of October 2026)

Platform facts for deferred linking
FactDetail
Android referrer lifetime90 days, unchanged unless the app is reinstalled
Play Store app version with the API8.3.73 or later
Firebase Dynamic LinksShut down August 25th, 2025; links return 404
iOS install referrerNone documented by Apple

The privacy limit

Deferred linking only works if something remembers the person between the web click and the first app launch. Store-provided data, like Android's referrer, is the clean way. Guessing who someone is from their device details, called fingerprinting, is unreliable and raises privacy questions, so avoid building it yourself.

Start with ordinary deep links

Deferred linking sits on top of normal Universal Links and App Links. Set those up and confirm they work for installed users before adding the install path.

How it works

  1. Choose a platform and whether the app is already installed.
  2. Read the steps. Each one names the piece that does the work, such as the store, the referrer or your own server.
  3. Compare the paths to decide what your app has to build: usually a referrer read on Android and a sign-in or code based restore on iOS.

Tips

Frequently asked questions

Did Firebase Dynamic Links shut down?

Yes. Firebase's FAQ says Dynamic Links shut down on August 25th, 2025, and that every link clicked now returns an HTTP 404 status to the visitor.

How does Android know where the user came from?

The Google Play Store app exposes the Install Referrer API. Your app reads the referrer URL of the install, plus click and install timestamps, through the Play Install Referrer Client Library.

Is there an install referrer on iOS?

Apple's universal links documentation describes opening installed apps and falling back to the browser, not passing data through an App Store install. Most iOS apps restore the destination after the person signs in, or by asking for a short code shown on the web page.

What does a Smart App Banner's app-argument do?

Apple describes app-argument as an optional URL that gives your app context. If the person already has the app, they can jump from your web page to the matching place in it. Apple does not say it survives a fresh install.

Do I need a paid linking service?

Not for the basics. Verified links plus the Android referrer cover many small apps. Paid services add cross-platform matching and reports; check each one's privacy terms before use.

Related: What is deep linking, Mobile app testing checklist, Progressive web app guide, UTM builder.

Start for free or see all free tools. We.Inc is free to start, with no card needed. AI building is on paid plans from $20 a month.

More in Guides

We.Inc is an AI-powered website builder you can resell under your own brand. Launch a branded client dashboard, bill on Stripe Connect, and deliver AI-generated websites in minutes. White-label plans start at $99 a month for 25 client sites, with a 7-day free trial and no per-site fees.

Product

Who It's For

Features

Resources

Company

View Sitemap