A drop-in Android SDK with built-in ad serving and 6-digit PIN verification. Three lines of code. One admin dashboard.
API Keys
12
Active Ads
48
Impressions
2.4M
CTR
3.2%
Features
Drop-in library. Three lines to initialize. Supports interstitial, banner, and native ad formats out of the box.
6-digit PINs tied to device IDs. One-time use, per-device binding. Integrates with any CPA network or link shortener.
Create, rotate, and revoke keys per app. Enable or disable with one click from the admin dashboard.
Track impressions, clicks, CTR, and PIN usage across all your apps. Live dashboard with daily breakdowns.
Per-device PIN binding prevents sharing. Configurable max attempts, custom error messages, per-app settings.
Full REST API with Basic auth. Deploy the server, grab an API key, patch your APK, and you're live.
How it works
Add the adverify module to your Android project — or patch any APK with MT Manager using just 3 lines of smali.
Set up verification rules in the dashboard. Connect your link shortener URL for PIN generation.
Users complete an action on your shortener, receive a unique 6-digit PIN, and enter it in the app to unlock.
Once verified, ads are served automatically. Track impressions, clicks, and CTR in real-time.
# ── Step 1: Add to onCreate after invoke-super ──
const-string v0, "YOUR_API_KEY"
const-string v1, "https://api.yoursite.com"
invoke-static {p0, v0, v1},
Lcom/adverify/sdk/AdVerify;->start(...)V
# That's it. 3 lines. SDK handles everything else.
# PIN dialog → verification → ad serving → trackingDeveloper Experience
1. Add dependency
implementation project(':adverify')
2. Initialize
AdVerify.init(context, "YOUR_API_KEY", "https://api.yoursite.com");
3. Show ads
AdVerify.showAd(activity, callback);
All admin endpoints use HTTP Basic Auth. SDK endpoints use x-api-key header.