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.
| Device state | Result |
|---|---|
| Full app installed | Opens the installed app, as normal |
| Not installed, instant build covers the URL | Streams and runs the Instant App |
| Not installed, no instant build | Opens the web page, or the Play listing |
| Not installed, verification failing | Web page — the fallback chain takes over |
<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.jsoncovers 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.
| Instant App session | Installed app session | |
|---|---|---|
| Sees the original URL | Yes — via the intent | Only if it was launched by a link |
| Reads the install referrer | No | Yes |
| Shares storage with the other | No | No |
| Can hand off state | Via Instant App cookie or your server | Reads what was handed off |
| Counts as an install | No | Yes |
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.
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.
- 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.
- 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.
- On the installed app's first launch, read the install referrer and check
googlePlayInstantParambefore deciding the install is organic. - Report Instant App sessions as a distinct event type — they are engagement, not installs, and merging them makes conversion rates meaningless.
- 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 Clip — An 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 Link — An 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 Referrer — The 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 working — Android 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 Links — Digital 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.