Skip to content
AdsAnalyzer

The Google Play install referrer, explained

Android has something iPhone does not: a reliable, permission-free way to know which click produced an install. It is called the install referrer, and it is the backbone of Android attribution.

How it works

A Play Store link can carry a referrer parameter:

https://play.google.com/store/apps/details?id=com.example.app&referrer=click_id%3Dab3xk9

Google Play keeps that value with the install. When the app first runs, the Play Install Referrer library asks the Play Store for it, and the app gets the string back. If a tracking link put a click ID in there, the app can now report exactly which click led to the install.

No permission, no advertising ID, no guessing. The Play Store carried the evidence across the gap.

What comes with it

The API returns more than the string:

  • installReferrer — the parameter itself.
  • referrerClickTimestampSeconds — when the ad or link was clicked.
  • installBeginTimestampSeconds — when the download began.

Those timestamps are quietly valuable. A click recorded after the download began cannot have caused the install. That pattern — a fraudulent partner firing clicks at the moment a device starts an install, to steal credit for organic users — is called click injection, and the timestamps expose it. Our SDK sends both times so the server can reject those claims.

When it is missing

  • Installs from other stores. Samsung Galaxy Store, Huawei AppGallery and others have their own referrer systems. A Google Play referrer is Play only.
  • Sideloaded builds. An APK installed directly has no referrer.
  • A first launch more than 90 days after install. Google Play keeps the referrer for 90 days.
  • The user deleted their advertising ID. The referrer still works; what breaks is matching by advertising ID, which some ad networks rely on instead of links.

In those cases the install is organic unless another signal identifies it.

Reading it at the right moment

The SDK reads the referrer at first launch, and must handle the Play Store being slow or briefly unavailable — ours retries up to three times within ten seconds, then sends the install without it rather than making the user wait.

It also has to survive a first launch with no network. The install, referrer and all, is written to disk before any attempt to send it, and goes when the connection returns — even if the app is never opened again, because Android can run a job for it once there is a network.

That is the whole mechanism, and it is why Android attribution is exact while iPhone attribution is a mix of exact and aggregated. More on that in iOS attribution after App Tracking Transparency.

Measure this for your own app

Add the SDK, connect your ad accounts, and see where your installs really come from.