Godot Admob
A Godot plugin that provides a unified GDScript interface for integrating Google Mobile Ads SDK on Android and iOS.
Install / Use
npx skills add godot-sdk-integrations/godot-admobInstalls into whichever agent you are using.
README

<img src="https://raw.githubusercontent.com/godot-sdk-integrations/godot-admob/main/addon/src/main/icon.png" width="24"> 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
<a name="installation"></a>
<img src="https://raw.githubusercontent.com/godot-sdk-integrations/godot-admob/main/addon/src/main/icon.png" width="20"> 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.
<a name="quick-start"></a>
<img src="https://raw.githubusercontent.com/godot-sdk-integrations/godot-admob/main/addon/src/main/icon.png" width="20"> 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 |
<a name="documentation"></a>
<img src="https://raw.githubusercontent.com/godot-sdk-integrations/godot-admob/main/addon/src/main/icon.png" width="24"> Documentation
Explore the plugin documentation for a deep dive into features:
<br><a name="video-tutorials"></a>
<img src="https://raw.githubusercontent.com/godot-sdk-integrations/godot-admob/main/addon/src/main/icon.png" width="24"> Video Tutorials
| Tutorial For Android | Consent Management | Displaying Ads on Android | | :---: | :---: | :---: | | by UnderGamer | by Code Artist | by Code Artist | | <img src="https://img.youtube.com/vi/BqPo_t4v0lw/0.jpg" width="280" alt="Admob Plugin on Android"> | <img src="https://img.youtube.com/vi/MrLcPdoH-yU/0.jpg" width="280" alt="Consent Management with the Admob Plugin"> | <img src="https://img.youtube.com/vi/K13xFyOYySk/0.jpg" width="280" alt="Admob Plugin on Android"> |
| Displaying Ads on Android | | :---: | | by 16BitDev | | <img src="https://img.youtube.com/vi/V9_Gpy0R3RE/0.jpg" width="280" alt="Admob Plugin on Android"> |
<br><a name="all-plugins"></a>
<img src="https://raw.githubusercontent.com/godot-sdk-integrations/godot-admob/main/addon/src/main/icon.png" width="24"> All Plugins
| ✦ | Plugin | Android | iOS | Latest Release | Downloads | Stars | | :--- | :--- | :---: | :---: | :---: | :---: | :---: | | <img src="https://raw.githubusercontent.com/godot-sdk-integrations/godot-admob/main/addon/src/main/icon.png" width="20"> | Admob | ✅ | ✅ | <a href="https://github.com/godot-sdk-integrations/godot-admob/releases"><img src="https://img.shields.io/github/release-date/godot-sdk-integrations/godot-admob?label=%20" /><img src="https://img.shields.io/github/v/release/godot-sdk-integrations/godot-admob?label=%20" hspace="4" /></a> | <a href="#"><img src="https://img.shields.io/github/downloads/godot-sdk-integrations/godot-admob/latest/total?label=latest" /><img src="https://img.shields.io/github/downloads/godot-sdk-integrations/godot-admob/total?label=total" hspace="4" /></a> | <a href="https://github.com/godot-sdk-integrations/godot-admob/stargazers"><img src="https://img.shields.io/github/stars/godot-sdk-integrations/godot-admob?style=plastic&label=%20" /></a> | | <img src="https://raw.githubusercontent.com/godot-mobile-plugins/godot-connection-state/main/addon/src/icon.png" width="20"> | Connection State | ✅ | ✅ | <a href="https://github.com/godot-mobile-plugins/godot-connection-state/releases"><img src="https://img.shields.io/github/release-date/godot-mobile-plugins/godot-connection-state?label=%20" /><img src="https://img.shields.io/github/v/release/godot-mobile-plugins/godot-connection-state?label=%20" hspace="4" /></a> | <a href="#"><img src="https://img.shields.io/github/downloads/godot-mobile-plugins/godot-connection-state/latest/total?label=latest" /><img src="https://img.shields.io/github/downloads/godot-mobile-plugins/godot-connection-state/total?label=total" hspace="4" /></a> | <a href="https://github.com/godot-mobile-plugins/godot-connection-state/stargazers"><img src="https://img.shields.io/github/stars/godot-mobile-plugins/godot-connection-state?style=plastic&label=%20" /></a> | | <img src="https://raw.githubusercontent.com/godot-mobile-plugins/godot-deeplink/main/addon/src/main/icon.png" width="20"> | Deeplink | ✅ | ✅ | <a href="https://github.com/godot-mobile-plugins/godot-deeplink/releases"><img src="https://img.shields.io/github/release-date/godot-mobile-plugins/godot-deeplink?label=%20" /><img src="https://img.shields.io/
Related Skills
node-connect
385.6kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
blender-python-addon
40.5kBlender Python add-on rules for operators, panels, properties, registration, testing, and API-safe scripting
flutter-development-guidelines-cursorrules-prompt-file
40.5kCursor rules for Flutter development with MVVM architecture, Riverpod state management, Material widgets, and Dart style guidelines.
commit-push-pr
140.7kCommit, push, and open a PR
