codingstairs
NotesEDULifeContact
⌕Search⌘K
koen

Navigation

  • Intro
  • Blog
  • Life

Get in touch

Send without signing in. Add your email if you'd like a reply.

  • Leave a message anonymously →
  • ✉ warragon112@gmail.com
  • KakaoTalk Open Chat ↗

© 2026 codingstairs

  • Notes
  • EDU
  • Search
  • Life
  • Contact
  • Legal
  • RSS
  • GitHub
EDU›Tauri 2 — desktop · mobile in one codebase›Step 7

Step 7

AdMob + shipping

0 views

AdMob + shipping

Monetisation + store submission. More process than engineering at this stage.

1. AdMob basics

  • Register an app on Google AdMob, get unit IDs
  • Banner, interstitial, rewarded types
  • Test ad IDs during dev, real IDs only on release

2. AdMob in Tauri 2 Android

No official Tauri plugin yet, so write a thin native plugin or bridge via postMessage.

Typical route:

  1. Add Google Play services ads to src-tauri/gen/android/app/build.gradle.kts
  2. MobileAds.initialize() + a banner view in Kotlin
  3. Expose Tauri commands show_banner / hide_banner
  4. Call invoke("show_banner") from React

If that's too much, a WebView adsbygoogle.js path is possible with caveats.

3. Privacy policy

Google Play requires it.

  • Link from an in-app Settings menu
  • Host publicly (Notion · GitHub Pages · your site)
  • Declare what you collect, why, whether shared, retention

With AdMob you must disclose advertising IDs and device info.

4. Store assets

  • 2–8 localized screenshots
  • Icon 512x512 PNG
  • Feature graphic 1024x500 PNG
  • Short (80 char) + full (4000 char) descriptions
  • Data safety questionnaire

5. Common rejection reasons

  • Permission rationale unclear
  • Broken privacy policy link
  • Screenshots include competitors' branding
  • com.example identifier still present

Fix identifier to com.yourdomain.appname and rebuild.

6. Release checklist

  • Identifier final (you cannot change it)
  • Signing key safely backed up
  • Privacy policy URL
  • Real AdMob IDs
  • minSdkVersion ≥ 24 · current targetSdkVersion
  • 64-bit (aarch64)
  • Screenshots, icon, description
  • Data safety answered
  • Prefer App Bundle (AAB) format

7. Staged rollout

Internal test → Closed test (100) → Open test → Production

Each stage 1–3 days. Crashes surface early.

8. Updates

  • Build with the same key + bump versionCode (integer, monotonic)
  • tauri.conf.json version and Android versionCode are separate numbers

9. Gotchas

  • Lost signing key → new app listing only
  • AdMob policy violations (self-clicks, forced clicks) → account bans
  • minSdkVersion too low → policy rejection
  • Competitor trademark in description → rejection

Closing

Most of the bottleneck is policy and docs, not engineering. Treat the first app as "2–3 rejections are normal"; stress drops.

Next

  • agent-tooling/06-claude-code-skills
  • frontend/11-sqlite-local

← Step 6

OCR / STT / TTS

🎉 You finished Tauri 2 — desktop · mobile in one codebase

What's next? Pick another course below.

Next: Testing strategy and quality gates →Browse all courses