Google Play Install Referrer explained

How the Google Play Install Referrer works, what it covers and misses, the response codes to handle, and the timing mistakes that turn Android installs organic.

Short answer: the Google Play Install Referrer tells your app, on first launch, which link sent the user to Google Play. It only exists for Play installs, only covers same-session click-through installs and should be read once, on first launch. Most Android attribution failures come from reading it late, losing it in a redirect or testing outside Play.

What the Install Referrer is

Google Play Install Referrer: referral content that Google Play keeps for each install and hands to the app through the Install Referrer library, so the app can tell which link or campaign led to the install.

Android's documentation lists the current library dependency as com.android.installreferrer:installreferrer version 2.2. The ReferrerDetails object exposes four values:

  • getInstallReferrer: the referrer string with your campaign parameters.
  • getReferrerClickTimestampSeconds: when the referring click happened.
  • getInstallBeginTimestampSeconds: when the install began.
  • getGooglePlayInstantParam: whether the user launched the instant experience.

How long is the referrer available?

Android's documentation says referrer information is available for 90 days and does not change unless the app is reinstalled. Even so, it advises calling the API only once, on the first execution after install, and storing the result.

What the referrer does and does not cover

Install typeCovered by Play referrer
Same-session click, installed from Google PlayYes
View-through installNo
Click in an earlier sessionNo
Install from another Android storeNo
Sideloaded APK or adb debug buildNo

Meta's documentation draws this comparison directly: the Google Play Install Referrer covers only same-session click-through installs, while the Meta Install Referrer also covers view-through and multi-session clicks from Facebook, Instagram and Audience Network. Meta's referrer data is read from the Facebook, Instagram and Facebook Lite apps and should be queried on first launch.

On Meta campaigns, Meta places encrypted campaign data in the Play referrer's utm_content field, using AES-GCM with a key from the App Dashboard. Meta says other parameters such as utm_source should not be used as a sign of a Facebook install.

Response codes to handle

  • OK: the referrer was returned.
  • FEATURE_NOT_SUPPORTED: the API is not available on the current Play Store app on that device.
  • SERVICE_UNAVAILABLE: the Play service could not be reached.

Android's documentation also warns that the connection can drop, for example while the Play Store updates, and that you must call startConnection again. A single attempt with no retry loses referrers on some devices.

Common failure patterns

These are general practice rather than documented rules:

  1. Reading the referrer late. If the SDK waits for login or a later session, a crash or drop-off loses the read.
  2. Testing with adb. Debug builds installed from a computer have no Play referrer, so every test looks organic.
  3. Redirects that strip parameters. Google's older troubleshooting page says referrer parameters must reach Google Play, or attribution fails.
  4. Multiple install referrer receivers. The same older page notes that, with the legacy broadcast method, Google Play only broadcast to the first receiver.
  5. Not decoding Meta's utm_content. Without the decryption key, Meta installs look unlabelled.

How it fits with other Android signals

The Play referrer is the main Android signal, but not the only one:

  • Meta Install Referrer. Meta reads it from the Facebook (v428 and later), Instagram (v296 and later) and Facebook Lite (v411 and later) apps. Its fields include actual_timestamp, is_ct (1 for a click, 0 for a view) and an encrypted install_referrer.
  • Network claims. Self-attributing networks such as Google and Meta claim installs themselves, so a missing referrer does not always mean a lost attribution.
  • Third-party stores. Google Ads records installs from other Android stores on first open and recommends Firebase for them, since there is no Play referrer.
  • Reinstalls. A reinstall resets the referrer, so the same user can bring new referrer data.

How to check your implementation

  1. Install a release build from a Play internal or closed testing track after tapping a test link.
  2. Log the response code, referrer string and click timestamp on first launch.
  3. Confirm the string contains your campaign parameters.
  4. Check that your MMP shows the install against the right campaign.
  5. Kill the Play Store mid-test on a spare device to confirm your retry logic.

Related pages

FAQ

Common questions

When should my app read the Install Referrer?

Once, on the first launch after install, as Android's documentation advises. Store the result so later sessions do not need it.

Why is the Install Referrer empty on my test device?

Usually because the build was installed through adb or as an APK rather than from Google Play. Install from a Play testing track to test attribution.

Does the Play Install Referrer work for view-through installs?

No. It covers only same-session click-through installs. Meta's own Install Referrer covers views and multi-session clicks from Meta's apps.

What does FEATURE_NOT_SUPPORTED mean?

The Install Referrer API is not available on the Play Store app on that device. Those installs need another matching method.

Does the referrer change after a reinstall?

Yes. Android's documentation says referrer information does not change unless the app is reinstalled, so a reinstall brings new referrer data.

What is mobile attribution?

Mobile attribution is the process of crediting each app install or in-app event to the ad, link or channel that drove it. A mobile measurement partner (MMP) does this across all your channels so each install is counted once.