Short answer: when the GAID comes back as 00000000-0000-0000-0000-000000000000, or as a new value after a reset, Android installs lose device-level matching but not click attribution. Google Play click-through installs still attribute through the Install Referrer. View-through installs, network claims that rely on the device ID and reinstall detection are what slip into organic. If zeroed IDs jump on one app version, suspect a dropped AD_ID permission before you blame user opt-outs.
What does a zeroed or reset GAID mean?
Zeroed GAID: an advertising ID request that returns all zeros instead of a real ID, which Android does when the user deleted the ID, limited ad tracking, or the app is missing the AD_ID permission.
Reset GAID: a new advertising ID the user generated in Android settings. Google Play's policy says the new ID must not be linked to the old one without the user's explicit consent, so to your MMP a reset device looks like a different device.
The two look different in your data but cause the same problem: the install cannot be matched to anything the MMP or ad network saw earlier through the advertising ID. For what the GAID is and where it comes from, see the GAID guide.
Why do zeroed GAIDs appear?
Google documents three cases, all from its Play Console Help and Google Play services reference:
| Cause | Since | Looks like in raw data |
|---|---|---|
| User deleted the advertising ID | Android 12 from late 2021, all Play devices from 1 April 2022 | Zeros on that device for every app |
| Limit ad tracking on | Android 12 and later, whatever your target SDK | Zeros, spread evenly across app versions |
App targets API 33 or later without com.google.android.gms.permission.AD_ID | Enforced from 1 April 2022 | Zeros on every install from one app version onwards |
The first two are user choices and grow slowly. The third is a build problem and appears overnight.
What still attributes with a zeroed GAID?
Google Play click-through installs still attribute, because the Install Referrer carries the campaign parameters from the store to the app without any advertising ID. Meta installs can also come through the Meta Install Referrer, which reads campaign data from the Facebook and Instagram apps.
- Play Install Referrer: available for 90 days after install according to Android's documentation, covering same-session click-through installs. See the Play Install Referrer guide.
- Self-attributing network claims: Google and Meta can still claim installs from their own signals, though matching their claim to your SDK's install record is harder without a shared device ID (general practice).
- Deep link and referral parameters: any parameter passed through the referrer string still arrives.
What breaks
- View-through installs. There is no click in the referrer, so matching an impression to an install usually relies on the advertising ID (general practice). With zeros, these become organic.
- Clicks in an earlier session. The Play referrer covers only same-session clicks, so a user who clicked yesterday and installed today needs another way to match.
- Reinstall detection. MMPs commonly spot a returning user by a known GAID. Linkrunner, for example, lists reinstall detection via GAID or IDFA alongside deep link open triggers. A reset or zeroed ID can make a reinstall look like a new install (general practice), the pattern in reinstalls inflate installs.
- Audience and suppression lists. Lists built from advertising IDs miss zeroed devices and treat reset devices as new.
Opt-out or bug? How to tell
- Split zeroed GAIDs by app version. A step change on one release points to the manifest. A slow, even rise across versions points to user settings.
- Split by OS version. Limit ad tracking only zeroes the ID on Android 12 and later, so zeros concentrated there fit an opt-out pattern.
- Open the merged manifest of your release build and search for
AD_ID. A manifest merger rule, a removed dependency or a privacy clean-up can drop it without any build error (general practice). - Compare referrer coverage. If zeroed installs still carry a referrer string with your campaign parameters, click attribution is working and the gap is in view-through and reinstall matching only.
How to fix it
- Restore the AD_ID permission if the release dropped it, and ship a hotfix. Installs from the broken version stay unmatched.
- Read the referrer on first launch, once, and retry on
SERVICE_UNAVAILABLE, so click-through installs never depend on the GAID. The install referrer troubleshooter walks through failures. - Do not try to rebuild the link. Re-linking a reset ID to the old one needs explicit consent under Google Play's policy, which also says not to connect the advertising ID to persistent device identifiers for advertising.
- Accept some organic drift from users who opted out. MMPs that use deterministic signals first and IP plus user-agent matching only as a fallback, as Linkrunner describes its own approach, will still lose some view-through matches; no MMP recovers an ID the user removed.
- Expect re-engagement counts to dip. Reattribution windows only help once the returning device is recognised. Linkrunner's reattribution eligibility window, for instance, defaults to 90 days, but a user whose GAID was reset arrives as a stranger inside that window too.
For the wider version of this problem, see paid installs showing as organic. The Android Install Referrer chapter on App Attribution Guide explains the Play and Meta referrers side by side.
If you are setting up an Android SDK from scratch, Linkrunner's Android SDK documentation is one example of where the advertising ID and referrer reads are configured.