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 shows what each network and campaign cost you per real install.

  • Attested by Play Integrity
  • No personal data collected
  • Free up to 1,000 verified installs/month
AdHedge console, Reconciliation: 474 installs reported by five ad networks, 263 Trusted, 44.5% reported but not Trusted, split into 125 that opened and failed checks and 86 that never opened.

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.

Product

See what every network really delivered.

Cost per real install, by campaign

Upload a network's install report. See reported installs, first opens, Trusted installs and ad spend per Trusted install for every campaign.

Installs that opened and failed checks are counted apart from installs that never opened.

Campaigns table: reported installs, first opens, Trusted installs, never opened, ad spend and ad spend per Trusted install for six campaigns across Google Ads, Unity Ads, AppLovin, TikTok Ads and ironSource.

Every verdict shows its work

Each install lists its reason codes, what they mean and the value measured. Verdict history keeps every revision and the thresholds it used.

Send a network the flagged installs as an evidence pack: a summary PDF and every install as CSV.

Install detail: three negative reason codes with tier and meaning, and a verdict history of three revisions from pending to SUSPECT.

Block when your data says so

Blocking unlocks after six checks pass on your own installs. One is 10 verified installs a day, enough for a campaign to learn from.

Only an app owner can switch it on.

Ad protection checks: six readiness checks, each with its current value and a Pass status.

A bill you can check line by line

Every new install lands on a line: billed, credited or never billed. An install downgraded after billing comes off the bill.

Billing statement: 1,295 new installs, 819 Trusted, 7 credited, 812 billable, with unverified, suspect, reinstalls and pending never billed, and a projected invoice of $99.

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

    Your app fires verified_install only for Trusted installs. Set it as your conversion and bid on it. Bidding steers from about 10 real players a day.

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 owner-only 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.
Who can turn on blocking?
Only an app owner, after typing the package name to confirm.
Can I use this for an invalid-traffic claim?
Yes. The evidence pack exports device facts and dates for every flagged install that opened your app.
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.
Can a contractor see just one app?
Yes. Scope a member to named apps and every other app stays hidden from them.
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.