Deeplinkly

Glossary/Android platform

Android Instant App

Definition

An Android Instant App is a small subset of an Android app that Google Play streams and runs directly from a URL, without the user installing the full app first.

It is Android's counterpart to the App Clip, and it predates it by several years. The routing is ordinary App Links — the same verified URL, resolved against the same assetlinks.json — which means an Instant App is not a separate linking mechanism to support so much as an extra destination your existing links can reach. The attribution, however, has a genuine edge case: one user journey now produces two sessions in two different binaries.

How an Instant App is reached

There is no separate URL scheme. A verified App Link that would open the installed app opens the Instant App when the app is not installed and an instant-enabled build covers that URL.

What one verified URL does in each state.
Device stateResult
Full app installedOpens the installed app, as normal
Not installed, instant build covers the URLStreams and runs the Instant App
Not installed, no instant buildOpens the web page, or the Play listing
Not installed, verification failingWeb page — the fallback chain takes over
AndroidManifest.xml — an instant-enabled activity
<manifest xmlns:dist="http://schemas.android.com/apk/distribution" ...>
  <dist:module dist:instant="true" />

  <application>
    <activity android:name=".ProductActivity" android:exported="true">
      <intent-filter android:autoVerify="true">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="https"
              android:host="shop.example.com"
              android:pathPrefix="/product" />
      </intent-filter>
    </activity>
  </application>
</manifest>
  • The same assetlinks.json covers both builds — Digital Asset Links statements are per package name, and the instant build shares it.
  • android:autoVerify="true" is required; an unverified domain gets the disambiguation dialog or the browser, never the Instant App.
  • There is a hard download size limit for the instant build, in the low single-digit megabytes. It is the binding constraint on what the experience can contain.
  • Instant builds cannot use every API — background services, and several permission-gated capabilities, are unavailable.

Google Play Instant is in maintenance, not growth

Google has narrowed its investment in Instant Apps over the years, and adoption is modest. It is still supported and still works, but treat it as an optimisation for a high-value entry point rather than a platform direction — and make sure the web fallback is genuinely good, because that is what the majority of your users will get.

The two-session attribution problem

A user clicks an ad, runs the Instant App, likes it, and installs the full app. That is one acquisition and two first-launch events in two binaries that share a package name but not a storage sandbox.

What each session can and cannot see.
Instant App sessionInstalled app session
Sees the original URLYes — via the intentOnly if it was launched by a link
Reads the install referrerNoYes
Shares storage with the otherNoNo
Can hand off stateVia Instant App cookie or your serverReads what was handed off
Counts as an installNoYes

The join between them is a field on the install referrer that most integrations never read: googlePlayInstantParam. It tells the installed app that this user previously ran the Instant App, which is what stops you counting the install as an unattributed organic acquisition.

Detecting an install that came via the Instant App
val details = client.installReferrer

if (details.googlePlayInstantParam) {
    // The user ran the Instant App before installing. The referrer string
    // still carries the original click's parameters, so the campaign
    // credit belongs to that click — not to an organic install.
    attributeToInstantAppJourney(
        referrer = details.installReferrer,
        clickTime = details.referrerClickTimestampSeconds
    )
} else {
    attributeNormally(details)
}

Do not double-count, and do not zero-count

Reporting the Instant App session as an install inflates your numbers; ignoring the handoff entirely makes a paid install look organic and understates the campaign that paid for it. Count the installed app's first launch as the install, and use googlePlayInstantParam plus the referrer to assign it to the original click.

  1. Instrument the Instant App with the same link handling as the full app, so the entry URL and its click ID are captured on the first session.
  2. Persist that click ID server-side against a token you can hand forward, rather than relying on device-local storage the installed app cannot read.
  3. On the installed app's first launch, read the install referrer and check googlePlayInstantParam before deciding the install is organic.
  4. Report Instant App sessions as a distinct event type — they are engagement, not installs, and merging them makes conversion rates meaningless.
  5. Test the full journey on a device with the app uninstalled, since the Instant path only exists in that state.

If the Instant App is not opening at all, the cause is almost always ordinary App Links verification rather than anything instant-specific — start with why Android App Links are not working and confirm the domain verifies before investigating the instant build.

Deep link debugger

An Instant App that will not open is nearly always an App Links verification problem. Our debugger checks the domain's assetlinks.json, the fingerprint and the hosting behaviour, which is where to confirm before suspecting the instant build.

Open the deep link debugger

Frequently asked questions

What is an Android Instant App?
It is a small subset of an Android app, typically limited to a few megabytes, that Google Play streams and runs directly from a URL without the user installing anything. It is reached through the same verified App Link that would open the installed app, so no separate linking mechanism is required to support it.
Do Instant Apps use the same deep links as the full app?
Yes. Routing uses ordinary Android App Links verified against the same assetlinks.json file and the same package name, so one URL opens the installed app when it is present and the Instant App when it is not. The intent filter must set autoVerify to true, or the link falls through to the browser instead.
How do I attribute an install that came from an Instant App?
Read the Play install referrer on the installed app's first launch and check the googlePlayInstantParam field, which is true when the user previously ran the Instant App. The referrer string still carries the original click's parameters, so the campaign credit belongs to that click rather than being recorded as an organic install.
Does an Instant App session count as an install?
No. Nothing is installed, so the install event is the full app's first launch. Reporting the Instant App session as an install inflates install counts and distorts conversion rates, so track it as a distinct engagement event and reserve the install event for the point where the user actually installs the app.
Is Google Play Instant still supported?
Yes, though Google has narrowed its investment in Instant Apps over time and adoption is modest. It still functions and remains a reasonable optimisation for a single high-value entry point, but the web fallback deserves more attention, since most users on most links will receive that rather than the instant experience.

Related terms

  • App ClipAn App Clip is a lightweight portion of an iOS app that a user can launch from a URL, code, or NFC tag without installing the full app from the App Store.
  • Android App LinkAn Android App Link is an HTTPS URL that opens an Android app directly, without a chooser dialog, because the system has verified through a file on the domain that the app is authorised to handle it.
  • Play Install ReferrerThe Play Install Referrer is a Google Play API that lets a newly installed Android app read the referrer string and click timestamps recorded when the user arrived at its Play Store listing.
  • Android App Links not workingAndroid App Links fail when the system cannot verify that a domain and an app belong to the same owner, at which point tapped links open in the browser instead of the app with no error shown to the user.
  • Digital Asset LinksDigital Asset Links is an open protocol for publishing verifiable statements in which one digital asset, such as a website, grants a specific permission to another, such as a mobile app identified by its package name and signing certificate fingerprint.