AdMob Monitor Dashboard

AdMob Monitor Dashboard

Read-only AdMob dashboard for earnings, impressions, CTR, match rate, and mediation — on your phone, widgets, and notifications.

About

AdMob Monitor Dashboard is a read-only Android client for the Google AdMob API. It surfaces eight key publishing metrics — earnings, impressions, clicks, CTR, requests, match rate, RPM, and eCPM — on your phone, home screen widgets, and notifications. The app uses the official AdMob API with the admob.readonly and admob.report OAuth scopes, so it cannot create, modify, or delete ad units, campaigns, or any account configuration. A compile-time guard (BuildConfig.ENABLE_WRITE_API=false) permanently blocks any write API call in release builds.

OAuth tokens are encrypted on-device with Tink AEAD bound to the Android Keystore and stored via Jetpack DataStore. The app does not run any servers operated by Sia Makerlab — all network traffic goes directly to Google over HTTPS.

This app is not affiliated with, endorsed by, or sponsored by Google LLC. Google AdMob is a trademark of Google LLC.

Features

  • Dashboard with 8 core metrics (earnings, impressions, clicks, CTR, requests, match rate, RPM, eCPM), 5 preset ranges (today / yesterday / 7d / 30d / this month), and 7-day sparkline trends on every metric and Top Apps card
  • Per-app screen with search, sort, filter, status badges, and a 4-tab app detail (Overview with sparkline / Ad Units / Countries / Mediation)
  • Advanced section: API coverage map, mediation group / ad source / adapter / ad unit mapping, campaign report, and a read-only stub for write APIs
  • Three home screen widgets via Jetpack Glance: 1×1 today earnings, 2×1 earnings with day-over-day delta, and 2×2 key metrics
  • Five notification types: daily summary, earnings drop, match-rate drop, zero impressions, and sync failure
  • Cache-first design: 30-day preload at startup covers all five preset ranges; preset switching is an instant cache hit (0 network, 0 flicker). WorkManager auto-registers a 1-hour periodic sync after login and updates widgets in the background
  • Top-bar manual refresh forces an immediate sync (TTL bypass) and updates the widgets right after
  • Safe sign-out: a single SignOutUseCase cancels WorkManager, deletes the entire local database (accounts / apps / ad units / reports / mediation / widget configs / API logs), resets LAST_SYNC_AT, clears OAuth tokens and Credential Manager state, and re-renders widgets to an empty state — so signing in with another Google account never exposes the previous user's data
  • Read-only OAuth scopes (admob.readonly + admob.report) — the app cannot edit ad units, campaigns, or any AdMob configuration
  • Tokens encrypted with Tink AEAD + Android Keystore, stored only on your device; allowBackup=false blocks Android Auto Backup
  • HTTPS only via NetworkSecurityConfig; no cleartext traffic; no analytics; no servers operated by Sia Makerlab

Ads & Consent

To sustain free distribution, the app displays Google AdMob ads in three placements: an adaptive bottom banner (a single shared instance that adapts to foldables and multi-window widths), an app-open ad shown at most once every 15 minutes on cold/warm resume, and native ads woven into the Apps list (5th and 10th cards). Users in the European Economic Area, the United Kingdom, and Switzerland are prompted with a Google Play UMP SDK consent form before personalized ads are loaded; if consent is declined, the app falls back to non-personalized ads. The app uses Google Mobile Ads SDK and Android's Advertising ID for ad personalization where permitted.