Open-source Android SDK

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
9:41
Sample app v412

Install verified

Play-recognized · Licensed
Build 412 (current)

Recent installs today
  • 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.

  1. 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")
  2. 02

    Ship your next build

    Every new install is checked on first launch. Verdicts in seconds.

  3. 03

    Bid on real installs

    See your Trusted rate by source: the share of installs Play vouched for the device on. Bid on verified_install. Bidding steers from about 10 real players a day.

Sample report

Your dashboard on day one

Trusted rate · last 14 days

Play vouched for the device · new installs · Aug 30 to Sep 12 · all networks · existing users excluded

68.5% 353 of 515 new installs
TRUSTED 353 UNVERIFIED 91 SUSPECT 71

TRUSTED: Play verified the app and its license. One in-app behavior flag never downgrades a phone Play recognized and licensed with strong device integrity. UNVERIFIED: one red flag, or Play couldn't confirm it. SUSPECT: red flags from two different checks, such as USB debugging plus no taps on day 0. Excludes Non-Play, existing users and sampled-out installs.

Aug 30Sep 5Sep 12
Day Source Verdict Reason
Sep 12playTRUSTEDPLAY_RECOGNIZED · LICENSED · build 412
Sep 12playUNVERIFIEDVERSION_NOT_PLAY_SERVED
Sep 11unknownSUSPECTADB_ENABLED + NO_INTERACTION_D0
Sep 11playSUSPECTCERT_UNKNOWN + VERSION_NOT_PLAY_SERVED
Sep 10non_playUNVERIFIEDINSTALLER_NOT_PLAY

Existing users

Aug 30 to Sep 12 · never billed

Users sampled
1,240
Trusted of sampled
91.3%

Reconciliation · Aug 30 to Sep 12

Uploaded network reports vs. new installs your app saw

Installs reported by networks
611
New-install first opens
515
Trusted
353
Reported but not Trusted
258 (42.2%)
Never opened
96 (15.7%)

Never opened: reported by networks, never opened.

Privacy

What we never collect

Nothing that identifies a person.

Read the data-safety sheet
  • No package list.
  • No contacts, precise location, or phone permissions.
  • No Android ID. Ad ID only when your app already has it.
  • 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.

Past 1,000 in a month a 14-day grace starts. When it ends, verified_install stops firing until you upgrade or the month resets. Verdicts, reconciliation and evidence packs keep working.

  • Verdicts with reason codes
  • Reconciliation view (CSV upload)
  • Evidence pack export
  • Verified conversion event
Start free
Pro

Pro

$99 /month

Block bots from your conversions and your ads. Agencies get 20% off.

  • Everything in Free
  • Blocking mode: one switch blocks bot conversions and gates ad requests. Server-sent conversions reach Firebase, AppsFlyer and Adjust. No Meta or TikTok yet.
  • 5,000 verified installs, then $0.03 each
Get early access to Pro
Verified installs / monthFlatPast the capMonthly total
800$990 × $0.03$99
5,000$990 × $0.03$99
30,000$9925,000 × $0.03$849
200,000$99195,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?
No. You start in tagged mode, where nothing is blocked. Rooting alone never blocks an install. Play Games on PC is never blocked.
Can I use this for an invalid-traffic claim?
Yes. The evidence pack exports device facts, dates, and click IDs for every flagged install.
What do I set up in Google Cloud?
Link a Cloud project to your app in Play Console and enter its project number in Setup. Enable the Play Integrity API in that project, then grant the service account Setup shows the Play Integrity role. Setup shows both steps before you save.
What does it send home?
Install facts, one Play Integrity token, and tap counts with session length. No personal data or hardware IDs. The advertising ID is sent only for blocking-mode delivery to your own AppsFlyer or Adjust account, and never stored. Every field, with its Android source and how long it is kept: data safety.
Does it slow my launch?
No. It runs off the main thread and adds under 120 KB.
What about my existing users?
They never fire a conversion and never hit your bill.
Does it work with AppsFlyer, Adjust, or Firebase?
In tagged mode, yes, plus Meta and TikTok: your app fires verified_install into whichever one it already uses. Set it as your primary conversion. In blocking mode our server sends it to Firebase, AppsFlyer and Adjust only, and none of the three is tested on a live campaign yet. Meta and TikTok have no server path, so blocking sends them no conversions.
Is it open source?
The SDK, its Flutter and React Native wrappers, and the wire schema are Apache-2.0. Scoring runs on our side.

Stop paying for installs nobody made.

Early access for Android apps buying installs.