Know which installs were people.
Ad networks bill you for bot installs too. AdHedge verifies every install with Play Integrity and fires your conversion only for real ones.
- Attested by Play Integrity
- No personal data collected
- Free up to 1,000 verified installs/month
Install verified
Play-recognized · Licensed
Build 412 (current)
-
Pixel 8 · play TRUSTED
-
Galaxy A14 · play UNVERIFIED
build not served by Play
-
unknown · unknown SUSPECT
sideloaded + no first-session input
Product
What it catches
Every install gets a verdict and a reason.
- Stale builds
- Installs running a build Play stopped serving. Farms replay old APKs.
- Sideloads dressed as Play
- Installer says Google Play. Play's license check says no.
- Emulators and test rigs
- No device integrity, ADB on, test-keys builds.
- Sessions with nobody in them
- Opened once. Zero taps. Never back.
- Reinstall churn
- Same device inside 90 days. Billed once.
- Installs that never opened
- The network counted it. Your app never saw it. Upload their report to see the gap.
How it works
Live on your next build.
-
01
Add the SDK
One Gradle line, or let your coding agent add it. One Play Console setting.
implementation("io.adhedge:install-trust:1.0.0") -
02
Ship your next build
Every new install is checked on first launch. Verdicts in seconds.
-
03
Bid on real installs
See your real-human rate by campaign. Bid on
verified_install.
Sample report
Your dashboard on day one
Real-human rate · last 14 days
New installs · all networks
TRUSTED passed every check. UNVERIFIED couldn't be confirmed. SUSPECT has two or more red flags. You pay for trusted installs only.
| Day | Source | Verdict | Reason |
|---|---|---|---|
| Sep 12 | play | TRUSTED | PLAY_RECOGNIZED · LICENSED · build 412 |
| Sep 12 | play | UNVERIFIED | VERSION_NOT_PLAY_SERVED |
| Sep 11 | unknown | SUSPECT | ADB_ENABLED + NO_INTERACTION_D0 |
| Sep 11 | play | SUSPECT | CERT_UNKNOWN + VERSION_NOT_PLAY_SERVED |
| Sep 10 | non_play | UNVERIFIED | INSTALLER_NOT_PLAY |
Existing users
never billed
- Sampled
- 1,240
- Trusted
- 91.3%
Reconciliation · Sep 12
Ad networks vs. installs your app saw
- Reported by ad networks
- 611
- First opens seen by SDK
- 515
- Gap
- 96 (15.7%)
Counted by networks. Never opened.
- No package list.
- No contacts, location, or phone state.
- No advertising ID or Android ID.
- No IMEI, serial, MAC, or SSID.
- No touch coordinates.
- No tracking across apps.
- No stored Play Integrity tokens.
- No keystrokes or screen content.
Pricing
Bots are free. You pay for the people.
Flat price up to a cap, then $0.03 per verified install. Everything else is free.
Free
$0 /month
Up to 1,000 verified installs a month. No card.
- Verdicts with reason codes
- Reconciliation view (CSV upload)
- Evidence pack export
- Verified conversion event
Pro
$99 /month
Block bots from your conversions and your ads. Agencies get 20% off.
- Everything in Free
- Blocking mode
- Ad request gate
- 5,000 verified installs, then $0.03 each
| Verified installs / month | Flat | Past the cap | Monthly total |
|---|---|---|---|
| 800 | $99 | 0 × $0.03 | $99 |
| 5,000 | $99 | 0 × $0.03 | $99 |
| 30,000 | $99 | 25,000 × $0.03 | $849 |
| 200,000 | $99 | 195,000 × $0.03 | $5,949 |
Pro pricing. You never pay for unverified installs, existing users, or reinstalls.
FAQ
Questions we get
Does this block real users?
Can I use this for an invalid-traffic claim?
What do I set up in Google Cloud?
What does it send home?
Does it slow my launch?
What about my existing users?
Does it work with AppsFlyer, Adjust, or Firebase?
verified_install shows up in whichever one your app already uses. Set it as your primary conversion.Is it open source?
Stop paying for installs nobody made.
Early access for Android apps buying installs.