A drop-in Android SDK with built-in ad serving and 6-digit PIN verification. Three lines of code. One dashboard.
Verify your device to continue
Exit
Enter the PIN from your browser
Invalid PIN. Try again.
2 attempts remaining
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 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 to unlock the app.
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);
Admin endpoints use HTTP Basic Auth. SDK endpoints use x-api-key header.
Pricing
Locked price for first 20 members · increases after
Everything included
Server PIN only · Custom Ads as add-on
Includes
Billed monthly. Cancel anytime. Early bird price locked for the duration of your subscription.