This project is a Crossbow Plugin that allows showing AdMob ads from Rust. Without worrying about the building, just download and use.
| Ad Format | Available | | ---- | ----------- | | Banner | ❌ (probably doesn't work with NativeActivity) | | Interstitial | ✅ | | Rewarded | ✅ | | Rewarded Interstitial | ✅ | | Native | ❗ |
✅ = Works and tested — 🆗 = Works but may contain bugs — 🛠 = Under development — 📝 = Planned - ❌ = Not working - ❗ = Not planned to be implemented
Just add Rust dependencies like this:
toml
[dependencies]
crossbow = "0.2.3"
[target.'cfg(target_os = "android")'.dependencies]
admob-android = "0.2.3"
And finally, add this to your Crossbow Android configuration:
toml
[package.metadata.android]
plugins_remote = ["com.crossbow.admob:admob:0.2.3"]
That's it, now you can start using AdMob ads!
If you want to publish or share your application to show real ads - configure custom APPLICATION_ID through Cargo.toml
file:
```toml
[[package.metadata.android.manifest.application.metadata]]
name = "com.google.android.gms.ads.APPLICATIONID"
value = "
```
First step is plugin initialization. In your rust project, you will need to initialize Crossbow
instance and then get Android plugin:
```rust
use crossbow::android::*; let crossbow = CrossbowInstance::new(); let admob: admobandroid::AdMobPlugin = crossbow.getplugin()?; // Initialize AdMob Service admob.initialize(true, "G", false, true).unwrap(); ```
To show Interstitial Ad, use following code (remember, currently there's no async API for this plugin - so load
and show
functions should be called as soon as Sinals
received or is_initialized()/is_interstitial_loaded()
checked):
rust
admob.load_interstitial("ca-app-pub-3940256099942544/1033173712").unwrap();
admob.show_interstitial().unwrap();
The result will be like this:
To read signals:
rust
if let Ok(signal) = admob.get_receiver().recv().await {
println!("Signal: {:?}", signal);
}
Complete documentation you can find here.
This Plugin was initially inspired by godot-admob-android.