A Godot plugin that provides a unified GDScript interface for integrating Google Mobile Ads SDK on Android and iOS.
Key Features:
- All ad formats — Banner (fixed, adaptive, inline-adaptive, collapsible), Interstitial, Rewarded, Rewarded Interstitial, App Open, and Native ads
- Rich signal coverage — signals for load, impression, click, open, close, dismiss, reward, and failure events across all ad types
- Node-based configuration — all ad settings (position, size, content rating, volume, COPPA/TFUA tags, personalization state) configurable directly in the Godot Inspector
- Ad caching — built-in cache management with configurable cache sizes per ad type
- Mediation support — AdMob by default, with support for up to 15 additional ad networks
- UMP consent flow — built-in support for Google's User Messaging Platform for GDPR/privacy compliance
- iOS tracking authorization — handles ATT prompts and emits
tracking_authorization_granted/tracking_authorization_deniedsignals - Flexible export configuration — configure your AdMob app IDs via Inspector node or config files
- Debug/production mode — separate debug and real ad unit IDs; toggle with a single
is_realflag
Before installing: uninstall any previous version of this plugin. If installing both Android and iOS versions in the same project, ensure both use the same addon interface version.
Via AssetLib (recommended)
- Search for
Admobin the Godot Editor's AssetLib and click Download. (AssetLib Links: Android, iOS) - In the install dialog, keep the default install folder (project root) and Ignore asset root checked, then click Install.
- Enable the plugin under Project → Project Settings → Plugins.
If the installer warns about conflicting files when adding a second platform, you can safely ignore it — both platforms share the same addon code.
Manually
- Download the release archive from GitHub and unzip it into your project's root directory.
- Enable the plugin under Project → Project Settings → Plugins.
Add an Admob node to your main scene. In the Inspector:
- Enter your Android/iOS application IDs (debug and real).
- Enter your ad unit IDs for each format you plan to use. Debug IDs are pre-filled with Google's test IDs.
- Set
is_real = trueonly when releasing to production. Leave itfalseduring development.
func _ready() -> void:
$Admob.initialization_completed.connect(_on_admob_initialized)
$Admob.initialize()
func _on_admob_initialized(status_data: InitializationStatus) -> void:
print("AdMob ready: ", status_data)
_load_ads()func _load_ads() -> void:
$Admob.banner_ad_loaded.connect(_on_banner_loaded)
$Admob.banner_ad_failed_to_load.connect(_on_banner_failed)
var request := LoadAdRequest.new()
$Admob.load_banner_ad(request)Available load methods: load_banner_ad(), load_interstitial_ad(), load_rewarded_ad(), load_rewarded_interstitial_ad(), load_app_open_ad(), load_native_ad()
Once the load signal fires, call the corresponding show method with the ad_id from the received AdInfo:
func _on_banner_loaded(ad_info: AdInfo, response_info: ResponseInfo) -> void:
$Admob.show_banner_ad(ad_info.get_ad_id())Available show methods: show_banner_ad(ad_id), show_interstitial_ad(ad_id), show_rewarded_ad(ad_id), show_rewarded_interstitial_ad(ad_id), show_app_open_ad()
| Signal | When it fires |
|---|---|
initialization_completed(status_data) |
SDK initialized |
*_ad_loaded(ad_info, response_info) |
Ad ready to show |
*_ad_failed_to_load(ad_info, error_data) |
Load failed |
*_ad_impression(ad_info) |
Ad became visible |
*_ad_clicked(ad_info) |
User tapped the ad |
*_ad_dismissed_full_screen_content(ad_info) |
Full-screen ad closed |
rewarded_ad_user_earned_reward(ad_info, reward_data) |
Reward granted |
consent_info_updated / consent_form_dismissed |
UMP consent flow events |
tracking_authorization_granted / tracking_authorization_denied |
iOS ATT result |
Explore the plugin documentation for a deep dive into features:
| Tutorial For Android | Consent Management | Displaying Ads on Android |
|---|---|---|
| by UnderGamer | by Code Artist | by Code Artist |
![]() |
![]() |
![]() |
| Displaying Ads on Android |
|---|
| by 16BitDev |
![]() |
| ✦ | Plugin | Android | iOS | Latest Release | Downloads | Stars |
|---|---|---|---|---|---|---|
| Admob | ✅ | ✅ | ||||
| Connection State | ✅ | ✅ | ||||
| Deeplink | ✅ | ✅ | ||||
| Firebase | ✅ | ✅ | - | - | ||
| In-App Review | ✅ | ✅ | ||||
| Native Camera | ✅ | ✅ | ||||
| Notification Scheduler | ✅ | ✅ | ||||
| OAuth 2.0 | ✅ | ✅ | ||||
| QR | ✅ | ✅ | ||||
| Share | ✅ | ✅ |
Developed by Cengiz
Based on Godot Mobile Plugin Template
Original repository: Godot Admob Plugin
See our guide if you would like to contribute to this project.
If this plugin has helped you, consider supporting its development! Every bit of support helps keep the plugin updated and bug-free.
| ✦ | Ways to Help | How to do it |
|---|---|---|
| ✨⭐ | Spread the Word | Star this repo to help others find it. |
| 💡✨ | Give Feedback | Open an issue or suggest a feature. |
| 🧩 | Contribute | Submit a PR to help improve the codebase. |
| ❤️ | Buy a Coffee | Support the maintainers on GitHub Sponsors or other platforms. |





