A 95% match rate sounds impossible if your mental model is still IDFA-based attribution. It isn't. The publishers we work with hit that number consistently, and they do it without a single line of code that touches a user who has not granted consent.
Stop conflating identifier match with user match
Match rate is the percentage of installs you can tie back to a specific ad impression. That tie does not have to be a device identifier. SKAdNetwork postbacks, deterministic install-time signals, and probabilistic timing windows all contribute. The trick is to give the attribution engine more than one signal and let it pick.
The four signals that matter
- SKAdNetwork postback (iOS) or Play Install Referrer (Android) — always available, always free
- Hashed install-time identifiers — only when consent is explicit
- First-party identifiers your app already collects — email, account ID, cross-device sign-in
- Deterministic timing match against the impression log — works without any identifier at all
Why consent prompts hurt match rate less than people think
Apps that ask for tracking consent at the right moment — after the user has experienced value, never on first launch — see opt-in rates between 35% and 60%. That tier of consenting users carries the deterministic match. The remaining users still attribute through SKAN and timing, just with a longer postback window.
The match rate suffers most when teams skip the consent prompt entirely, because they lose the deterministic tier without gaining anything in return. Asking, politely and at the right time, is the highest-leverage privacy decision you will make this year.
ATT prompt timing: the playbook
There is no universally best ATT prompt time, but there is a universally worst one: the first screen of the first session. Opt-in rates below 18% are almost always teams who ship on cold start. Teams that defer until the user has experienced clear value see opt-in rates that are double or triple that.
- Games: after the first tutorial level, on the screen that explains rewarded video
- Content apps: after the user has saved or favourited their first item
- Utilities: after the first successful task, never on the empty state
- Social apps: after the first message sent or post viewed end-to-end
SKAdNetwork 4: a conversion-value schema you can ship
SKAN 4 gives you three postback windows and coarse plus fine conversion values. Most teams either ignore the schema and ship the network default, or over-engineer it into something they cannot maintain. The version we ship to new accounts encodes three things into the 6-bit fine value: monetization tier, retention milestone, and feature engagement.
Bits 0–2 encode revenue tier (0: no revenue, 1: ad-supported, 2: low IAP, 3: mid IAP, 4–7: increasing LTV bands). Bits 3–4 encode retention milestone (Day 1 / Day 3 / Day 7). Bit 5 encodes a single high-value feature engagement. That schema produces enough signal for campaign optimization without painting yourself into a maintenance corner.
Android Privacy Sandbox: what changes, what doesn't
Privacy Sandbox on Android is the framework Google is shipping over 2025–2026 to replace per-app advertising IDs with topic-based and protected-audience APIs. Match rates will not collapse the way they did on iOS — Play Install Referrer remains, and the migration is gradual — but the deterministic tier will shrink. The four-signal model above is designed to absorb that.
The single action item today is to make sure your SDK reads from Topics API and Attribution Reporting API when available, and degrades gracefully when they are not. Apps Kit SDK ships both adapters behind a feature flag so you can turn them on per app version.
Troubleshooting a sub-90% match rate
- Check SKAN postback ingestion — half of all match-rate complaints are missing postbacks, not missing identifiers
- Confirm the ATT prompt is firing on a real device in a real session, not just in unit tests
- Validate event mapping with the MMP — a typo in 'install' kills attribution silently
- Audit the impression log retention window — if it is shorter than the postback window, timing match fails
- Check Play Install Referrer integration on Android — it is free and constantly the most-skipped step
What to do this week
Run the troubleshooting checklist top to bottom against your current setup. The median account we audit recovers 4–7 points of match rate from that exercise alone, before touching the prompt timing or SKAN schema.


