Godot Admob Plugin provides Godot SDK integrations for Google Mobile Ads SDK - Android and Google Mobile Ads SDK - iOS.
This plugin has been moved under the umbrella of Godot SDK Integrations organization in Github. Previously, the plugin was placed under three separate repositories: Android, iOS, and addon interface.
Before installing this plugin, make sure to uninstall any previous versions of the same plugin.
If installing both Android and iOS versions of the plugin in the same project, then make sure that both versions use the same addon interface version.
There are 2 ways to install the Admob
plugin into your project:
- Through the Godot Editor's AssetLib
- Manually by downloading archives from Github
Steps:
- search for and select the
Admob
plugin in Godot Editor - click
Download
button - on the installation dialog...
- keep
Change Install Folder
setting pointing to your project's root directory - keep
Ignore asset root
checkbox checked - click
Install
button
- keep
- enable the plugin via the
Plugins
tab ofProject->Project Settings...
menu, in the Godot Editor
When installing via AssetLib, the installer may display a warning that states "[x number of] files conflict with your project and won't be installed." You can ignore this warning since both versions use the same addon code.
Steps:
- download release archive from Github
- unzip the release archive
- copy to your Godot project's root directory
- enable the plugin via the
Plugins
tab ofProject->Project Settings...
menu, in the Godot Editor
- Add
Admob
node to your main scene and populate the ID fields of the node- Debug IDs will only be used when your Godot app is run in debug mode
- Real IDs will only be used when the
is_real
field of the node is set totrue
- register listeners for one or more of the following signals of the
Admob
node:initialization_completed(status_data: InitializationStatus)
banner_ad_loaded(ad_id: String)
banner_ad_failed_to_load(ad_id: String, error_data: LoadAdError)
banner_ad_refreshed(ad_id: String)
banner_ad_clicked(ad_id: String)
banner_ad_impression(ad_id: String)
banner_ad_opened(ad_id: String)
banner_ad_closed(ad_id: String)
interstitial_ad_loaded(ad_id: String)
interstitial_ad_failed_to_load(ad_id: String, error_data: LoadAdError)
interstitial_ad_refreshed(ad_id: String)
interstitial_ad_impression(ad_id: String)
interstitial_ad_clicked(ad_id: String)
interstitial_ad_showed_full_screen_content(ad_id: String)
interstitial_ad_failed_to_show_full_screen_content(ad_id: String, error_data: AdError)
interstitial_ad_dismissed_full_screen_content(ad_id: String)
rewarded_ad_loaded(ad_id: String)
rewarded_ad_failed_to_load(ad_id: String, error_data: LoadAdError)
rewarded_ad_impression(ad_id: String)
rewarded_ad_clicked(ad_id: String)
rewarded_ad_showed_full_screen_content(ad_id: String)
rewarded_ad_failed_to_show_full_screen_content(ad_id: String, error_data: AdError)
rewarded_ad_dismissed_full_screen_content(ad_id: String)
rewarded_ad_user_earned_reward(ad_id: String, reward_data: RewardItem)
rewarded_interstitial_ad_loaded(ad_id: String)
rewarded_interstitial_ad_failed_to_load(ad_id: String, error_data: LoadAdError)
rewarded_interstitial_ad_impression(ad_id: String)
rewarded_interstitial_ad_clicked(ad_id: String)
rewarded_interstitial_ad_showed_full_screen_content(ad_id: String)
rewarded_interstitial_ad_failed_to_show_full_screen_content(ad_id: String, error_data: AdError)
rewarded_interstitial_ad_dismissed_full_screen_content(ad_id: String)
rewarded_interstitial_ad_user_earned_reward(ad_id: String, reward_data: RewardItem)
consent_form_loaded
consent_form_dismissed(error_data: FormError)
consent_form_failed_to_load(error_data: FormError)
consent_info_updated
consent_info_update_failed(error_data: FormError)
- initialize the plugin
- call the
initialize()
method of theAdmob
node - wait for the
initialization_completed
signal
- call the
- use one or more of the following
load_*()
methods to load ads from theAdmob
node:load_banner_ad(ad_request: LoadAdRequest)
load_interstitia_adl(ad_request: LoadAdRequest)
load_rewarded_ad(ad_request: LoadAdRequest)
load_rewarded_interstitial_ad(ad_request: LoadAdRequest)
- the
Admob
node will emit the following signals once ads have been loaded or failed to load:banner_ad_loaded(ad_id: String)
banner_ad_failed_to_load(ad_id: String, error_data: LoadAdError)
interstitial_ad_loaded(ad_id: String)
interstitial_ad_failed_to_load(ad_id: String, error_data: LoadAdError)
rewarded_ad_loaded(ad_id: String)
rewarded_ad_failed_to_load(ad_id: String, error_data: LoadAdError)
rewarded_interstitial_ad_loaded(ad_id: String)
rewarded_interstitial_ad_failed_to_load(ad_id: String, error_data: LoadAdError)
- once ads have been loaded, call corresponding
show_*()
method from theAdmob
node with thead_id
received:show_banner_ad(ad_id: String)
show_interstitial_ad(ad_id: String)
show_rewarded_ad(ad_id: String)
show_rewarded_interstitial_ad(ad_id: String)
- The following methods return the size of a Banner ad:
get_banner_dimension()
get_banner_dimension_in_pixels()
- These methods are not supported for
FLUID
sized ads. For banner ads of sizeFLUID
, theget_banner_dimension()
method will return(-3, -4)
and theget_banner_dimension_in_pixels()
method will return(-1, -1)
.
- Methods:
get_consent_status()
- Returns a consent status value defined inConsentInformation.gd
update_consent_info(params: ConsentRequestParameters)
- To be called ifget_consent_status()
returns status UNKNOWN (0).reset_consent_info()
- To be used only when testing and debugging your application.is_consent_form_available()
load_consent_form()
- To be called ifget_consent_status()
returns status REQUIRED (2) andis_consent_form_available()
returnsfalse
.show_consent_form()
- To be called afterconsent_form_loaded
signal has been emitted oris_consent_form_available()
returnstrue
.
The recommended way to use the Admob Plugin
in a multi-scene Godot project is as follows:
- Create a new scene for managing Ads (ie. named
AdManager
).- Attach a script to the root node
- Add an
Admob
node to the new scene@onready
, link to anadmob_node
variable
- Connect all signals and keep all ad logic in this script
- From Godot Editor's
Project->Project Settings...
menu, select theGlobals
tab- Set this new scene as an
Autoload
- Set this new scene as an
After setting this scene as an Autoload
, the Admob Plugin
methods can be invoked from any scene as shown in the following example:
AdManager.admob_node.show_banner()
Both Android
and iOS
exports require several configuration settings.
In order to enable file-based export configuration, an export.cfg
file should be placed in the addons/AdmobPlugin
directory with the file contents formatted as in the example below:
[General]
is_real = false
[Debug]
app_id = "ca-app-pub-3940256099942544~3347511713"
[Release]
app_id = "ca-app-pub-3940256099942544~3347511713"
[ATT]
att_enabled = true
att_text = "My ATT text."
- note that ATT-related configuration is only relevant on iOS
The is_real
and app_id
configuration items are mandatory and if not found in the export.cfg
file, then the plugin will fall back to node-based configuration.
If export.cfg
file is not found or file-based configuration fails, then the plugin will attempt to load node-based configuration.
During export, the plugin searches for an Admob
node in the scene that is open in the Godot Editor. If not found, then the plugin searches for an Admob
node in the project's main scene. Therefore;
- Make sure that the scene that contains the
Admob
node is selected in the Godot Editor when building and exporting, or - Make sure that your Godot project's main scene contains an
Admob
node