Open-source Android SDK

Know which installs were people.

Ad networks bill you for every install. They don't tell you which ones were bots. AdHedge checks each install with Play Integrity on first launch and fires your conversion only for the 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 the reason behind it.

Stale builds
Installs running a build Play stopped serving. It's the signature of a farm replaying a saved APK.
Sideloads dressed as Play
The installer says Google Play. Play's license check says it never happened.
Emulators and test rigs
No device integrity, ADB enabled, test-keys builds. Flagged on first launch.
Sessions with nobody in them
Opened once, zero taps, never came back. The verdict updates as behavior comes in.
Reinstall churn
The same device reinstalling inside 90 days counts once and bills once.
Installs that never opened
Your ad network reported the install and your app never saw it. Reconciliation shows that gap by day and campaign.

How it works

Live on your next build.

  1. 01

    Add the SDK

    One Gradle line, or have your coding agent add it through our MCP server. Nothing to set up in Cloud Console.

    implementation("io.adhedge:install-trust:1.0.0")
  2. 02

    Ship your next build

    Every new install is checked against Play Integrity on first launch. Verdicts land in seconds.

  3. 03

    Bid on real installs

    See your real-human rate by day and campaign. Then make verified_install the conversion your campaigns bid on.

Sample report

Your dashboard on day one

Real-human rate · last 14 days

New installs · all networks

68.5% 353 of 515
TRUSTED 353 UNVERIFIED 91 SUSPECT 71
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

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%)

Installs your ad networks counted that never opened your app.

Privacy

What we never collect

Nothing that identifies a person, so your Play data-safety form stays short.

Read the data-safety sheet
  • 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.

A flat monthly price up to a cap, then $0.03 per verified install. Unverified installs cost nothing.

Free

$0 /month

SDK, verdicts, dashboard, and evidence pack for up to 1,000 verified installs a month. No card.

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

Pro

$99 /month

Keep bots out of your conversions and your ad inventory. 5,000 verified installs included, then $0.03 each. Agencies get 20% off across every app.

  • Everything in Free
  • Conversion gate, blocking mode
  • Ad request gate
  • 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. Unverified installs, existing users, and reinstalls within 90 days are never billed.

FAQ

Questions we get

Does this block real users?
No. Every app starts in tagged mode: installs are labeled and nothing is blocked. Rooted phones and Play Games on PC get their own label and are never blocked.
Can I use this for an invalid-traffic claim?
Yes. The evidence pack exports device-level facts, dates, and click IDs for every flagged install, ready to attach to an invalid-traffic claim with any ad network.
Does it need my Cloud project?
No. Attestation runs on our Google Cloud project. There's nothing to set up in Cloud Console.
What does it send home?
Install facts: installer, license status, build number, signing certificate, and API level. A Play Integrity token, decoded once and discarded. First-session activity as counts. No personal data, no advertising ID, no hardware IDs.
Does it slow my launch?
No. All work runs off the main thread, and the SDK adds under 120 KB.
What about my existing users?
They get their own dashboard row, never fire a conversion, and never count toward your bill.
Does it work with AppsFlyer, Adjust, or Firebase?
Yes. verified_install shows up in Firebase, AppsFlyer, Adjust, Meta, and TikTok with no extra setup.
Is it open source?
The Android SDK, its Flutter and React Native wrappers, and the wire schema are open source under Apache-2.0. Scoring and the MCP server run on our platform.

Stop paying for installs nobody made.

Early access is open for Android apps running paid installs.