Godot Admob Plugin
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
Installation
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.
Quick Start
1. Add the Admob node
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.
2. Initialize
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()
3. Load an ad
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()
4. Show the 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()
Key signals
| 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 |
Documentation
Explore the plugin documentation for a deep dive into features:
Video Tutorials
| Tutorial For Android | Consent Management | Displaying Ads on Android |
|---|---|---|
| by UnderGamer | by Code Artist | by Code Artist |
![]() |
![]() |
![]() |
| Displaying Ads on Android | ||
| by 16BitDev | ||
![]() |
All Plugins
| ✦ | Plugin | Android | iOS | Latest Release | Downloads | Stars |
|---|---|---|---|---|---|---|
| Admob | ✅ | ✅ | ||||
| Connection State | ✅ | ✅ | ||||
| Deeplink | ✅ | ✅ | ||||
| Firebase | ✅ | ✅ | ||||
| In-App Review | ✅ | ✅ | ||||
| Native Camera | ✅ | ✅ | ||||
| Notification Scheduler | ✅ | ✅ | ||||
| OAuth 2.0 | ✅ | ✅ | ||||
| QR | ✅ | ✅ | ||||
| Share | ✅ | ✅ | ||||
| Vision | ✅ | ✅ |
Credits
Developed by Cengiz
Based on Godot Mobile Plugin Template v7
Original repository: Godot Admob Plugin
Contributing
See our guide if you would like to contribute to this project.
💖 Support the 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. |
⭐ Star History
Changelog for version v7.0-Multi
No changelog provided for this version.



