Stop paying for bot installs.
AdHedge checks every Android install with Play Integrity. Your AI tool sets it up and tells you what each ad network cost per real install.
claude mcp add --transport http adhedge https://api.adhedge.io/mcpThen run /mcp in Claude Code, choose adhedge and sign in with your email.
https://api.adhedge.io/mcpIn Claude, open Customize, then Connectors, then Add custom connector. Paste the address and sign in with your email.
Or add https://api.adhedge.io/mcp to .cursor/mcp.json. Sign in with your email.
codex mcp add adhedge --url https://api.adhedge.io/mcpCodex opens the sign-in page. Sign in with your email.
- Attested by Play Integrity
- No Android ID, IMEI or runtime permissions
- Free up to 1,000 verified installs/month
❯ What did each campaign cost me per real install, Sep 4 to 17?⏺ Called adhedge 2 times⏺ Five networks reported 474 installs. 263 are Trusted.211 are not Trusted: 125 opened and failed checks, 86 never opened the app.Ad spend per Trusted install is $4.94. Per reported install it reads $2.74.By campaign, per Trusted install:Google Ads, Tier 2 $3.18 ironSource $5.10 Google Ads, US $5.11 Unity Ads $8.23 AppLovin $9.68 TikTok Ads $12.51❯ ? for shortcuts
What did each campaign cost me per real install, Sep 4 to 17?
Five networks reported 474 installs. 263 are Trusted.
211 are not Trusted: 125 opened and failed checks, 86 never opened the app.
Ad spend per Trusted install is $4.94. Per reported install it reads $2.74.
| Campaign | Per Trusted install |
|---|---|
| Google Ads, Tier 2 | $3.18 |
| ironSource | $5.10 |
| Google Ads, US | $5.11 |
| Unity Ads | $8.23 |
| AppLovin | $9.68 |
| TikTok Ads | $12.51 |
Cost per real install
What did each campaign cost me per real install, Sep 4 to 17?
Worked for 6s
Five networks reported 474 installs. 263 are Trusted.
211 are not Trusted: 125 opened and failed checks, 86 never opened the app.
Ad spend per Trusted install is $4.94. Per reported install it reads $2.74.
| Campaign | Per Trusted install |
|---|---|
| Google Ads, Tier 2 | $3.18 |
| ironSource | $5.10 |
| Google Ads, US | $5.11 |
| Unity Ads | $8.23 |
| AppLovin | $9.68 |
| TikTok Ads | $12.51 |
› What did each campaign cost me per real install, Sep 4 to 17?• Called└ adhedge.status({"app_id":"app_Xk3vT9qLwE2nB7hRc0JdZg","view":"reconciliation","query":"from=2026-09-04&to=2026-09-17"}){"from":"2026-09-04","to":"2026-09-17","network":null,"campaign":null,"networks":["AppLovin",…• Five networks reported 474 installs. 263 are Trusted.211 are not Trusted: 125 opened and failed checks, 86 never opened the app.Ad spend per Trusted install is $4.94. Per reported install it reads $2.74.By campaign, per Trusted install:Google Ads, Tier 2 $3.18 ironSource $5.10 Google Ads, US $5.11 Unity Ads $8.23 AppLovin $9.68 TikTok Ads $12.51› Ask Codex to do anything? for shortcuts100% context left
Apps running Install Trust
- Pulse
- Quartra
- Sift
In your AI tool
Every job is one prompt.
Set up
Your agent registers the app, adds the SDK to your build and writes the verdict listener.
Add Install Trust to this app
❯ Add Install Trust to this app⏺ Called adhedge 3 times⏺ Update(settings.gradle.kts)⎿ Added 1 line 14 +maven("https://maven.adhedge.io")⏺ Update(app/build.gradle.kts)⎿ Added 1 line 52 +implementation("io.adhedge:install-trust:0.5.0")⏺ Update(app/src/main/AndroidManifest.xml)⎿ Added 3 lines 18 +<meta-data 19 + android:name="io.adhedge.installtrust.ROUTING_KEY" 20 + android:value="itk_7dQ2mXw9LrT4kVbN0sYc" />⏺ Update(app/src/main/java/com/tilerush/game/App.kt)⎿ Added 9 lines 23 +InstallTrust.addVerdictListener { verdict, isFinal ->⏺ Install Trust is in your build. Three steps are yours:1. Pick how Play Integrity tokens are decoded.2. Register your signing certificate from Play Console.3. Set verified_install as your campaign's conversion.❯ ? for shortcuts
Read any verdict
Ask why an install failed. The answer names the checks and the value each one measured.
Why weren't TikTok's installs verified?
TikTok installs
Why weren't TikTok's installs verified?
Worked for 8s
TikTok Ads reported 40 installs for Sep 4 to Sep 17.
- •21 never opened the app.
- •13 opened it and are Trusted.
- •6 opened it and failed checks.
Of those six, four ran a build Play stopped serving. Two opened once, with zero taps, and never came back.
You paid $162.60 for 13 Trusted installs: $12.51 each.
Reconcile a network
Hand over a network's install report. Nothing counts until you confirm what was read.
Bring in unity-september.csv
› Bring in unity-september.csv• Called└ adhedge.network_report({"app_id":"app_Xk3vT9qLwE2nB7hRc0JdZg","action":"upload","network":"Unity Ads","currency":"USD","csv":"Day,Campaign,Installs,Cost…"}){"status":"ready",…• I read 13 days, Sep 4 to Sep 17: 67 installs and $205.76 of spend. One totals line was dropped. Count it?› Yes• Called└ adhedge.network_report({"app_id":"app_Xk3vT9qLwE2nB7hRc0JdZg","action":"confirm","id":"…"}){"status":"active",…• Called└ adhedge.status({"app_id":"app_Xk3vT9qLwE2nB7hRc0JdZg","view":"reconciliation","query":"from=2026-09-04&to=2026-09-17&network=Unity Ads"}){"from":"2026-09-04","to":"2026-09-17","network":"Unity Ads",…• Unity Ads reported 67. 35 opened the app and 25 are Trusted: $8.23 per Trusted install.› Ask Codex to do anything? for shortcuts100% context left
Send the report
Reported, opened and Trusted installs with ad spend per Trusted install, as figures and as a branded PDF.
Write the client report for Sep 4 to Sep 17
Write the client report for Sep 4 to Sep 17
Tile Rush, Sep 4 to Sep 17
| Reported installs | 474 |
| First opens | 388 |
| Trusted installs | 263 |
| Reported but not Trusted | 211 (44.5%) |
| Never opened | 86 |
| Ad spend per Trusted install | $4.94 |
Installs verified by AdHedge with the Google Play Integrity API.
The branded PDF is ready. Want it attached?
Control
It asks. You confirm.
- Changes wait for you.
- Pausing the SDK, registering a signing certificate and counting a report each need your tick, in your own client.
- Keys stay out of the chat.
- A secret is typed into a page on AdHedge. Your agent never sees it.
- Sign in with your email.
- Your tool opens a sign-in page and you click the link we send. No token to copy.
- Install data is data.
- Referrers and campaign names are written by strangers. Your agent is told to quote them and never act on them.
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. Hand your agent their report to see the gap.
Your funnel
Already optimizing on revenue?
- Every rate you trust is divided by installs.
- Fix the denominator and your install-to-paid, D1 and ARPI change.
- Your bidder funds placements before your revenue event fires.
- A verified install is the earliest signal that starves a farmed placement. Bidding steers from about 10 real players a day.
- Half of fraud lands in organic.
- Your paid lift is measured against a baseline that isn't real. Organic installs get a verdict too.
- Show ads? Those installs are also your invalid traffic.
- Same devices, same ad account. Every install carries its verdict, so you can count them.
Install-to-paid
2.1%
reported, on 474 installs
3.8%
on 263 Trusted installs
Say 10 of the installs in the answer at the top paid. Same 10 people, two denominators.
Organic share of fraudulent installs, 52%: AppsFlyer, State of Fraud for Marketers 2026.
How it works
One server. One prompt. One listener.
-
01
Add AdHedge to your AI tool
One address, and an email link to sign in. The line for your tool.
https://api.adhedge.io/mcp -
02
Ask it to add Install Trust
It adds a repository, a dependency, a routing key and the listener. Link a Cloud project in Play Console, then ship. Every step.
maven("https://maven.adhedge.io") implementation("io.adhedge:install-trust:0.5.0") -
03
Keep your revenue goal
Your listener fires
verified_installon a final TRUSTED verdict for a new install. Add it as a conversion your bidder learns from. Bidding steers from about 10 real players a day.
- No package list.
- No contacts, precise location, or phone permissions.
- No Android ID or advertising 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, reconciliation and evidence packs keep working past it.
- Verdicts with reason codes
- Network report reconciliation
- Evidence pack export
- A verdict for your conversion event
Pro
$99 /month per app
For apps past 1,000 verified installs a month. Agencies get 20% off.
- Everything in Free
- 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, per app. You never pay for unverified installs, existing users, or reinstalls.
FAQ
Questions we get
Which AI tools does it run in?
Do I need a dashboard?
Can my agent change things without me?
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?
isNewInstall().Does it work with AppsFlyer, Adjust, or Firebase?
verified_install through whichever SDK it already ships. Set it as your primary conversion. How.Can a contractor see just one app?
Is it open source?
Stop paying for installs nobody made.
Add AdHedge to your AI tool. Free up to 1,000 verified installs a month.
claude mcp add --transport http adhedge https://api.adhedge.io/mcpThen run /mcp in Claude Code, choose adhedge and sign in with your email.
https://api.adhedge.io/mcpIn Claude, open Customize, then Connectors, then Add custom connector. Paste the address and sign in with your email.
Or add https://api.adhedge.io/mcp to .cursor/mcp.json. Sign in with your email.
codex mcp add adhedge --url https://api.adhedge.io/mcpCodex opens the sign-in page. Sign in with your email.
Want to talk first?
Tell us about your app and we'll reply within a day.