Module Admob for Godot engine
Branch: master
Clone or download
Pull request Compare This branch is 90 commits ahead of Mavhod:master.
Latest commit 23fd4d9 Feb 13, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
admob Changed UIViewController to NSObject Feb 5, 2019
examples Updated for Godot 3 Mar 12, 2018
templates Update Oct 22, 2016
.gitignore Updated for Godot 3 Mar 12, 2018
LICENSE Add license Nov 4, 2016 Update Feb 13, 2019 Issue template added. Apr 17, 2018


This is the AdMob module for Godot Engine (

  • Android & iOS
  • Banner
  • Interstitial
  • Rewarded Video

How to use


Drop the "admob" directory inside the "modules" directory on the Godot source.

Recompile the android export template (For documentation: * If you don't want or can't build the template by yourself, you can find a precompiled template with this module here.

In Example project goto Export > Target > Android:

	Custom Package:
		- place your apk from build
	Permissions on:
		- Access Network State
		- Internet


Configuring your game


To enable the module on Android, add the path to the module to the "modules" property on the [android] section of your engine.cfg file (Godot 2) or project.godot (Godot 3). It should look like this:


If you have more separate by comma.


Follow the exporting to iOS official documentation.

Godot 2

Just make sure you're using your custom template (compiled in the previous step), for that rename it to "godot_opt.iphone" and replace the file with same name inside the Xcode project.

Godot 3

  • Export your project from Godot, it'll create an Xcode project;
  • Copy the library (.a) you have compiled following the official documentation inside the exported Xcode project. You must override the 'your_project_name.a' file with this file.
  • Copy the GoogleMobileAds.framwork inside the exported Xcode project folder and link it using the "Link Binary with Libraries" option;
  • Add the following frameworks to the project:
    • StoreKit
    • GameKit
    • CoreVideo
    • AdSupport
    • MessageUI
    • CoreTelephony
    • CFNetwork
    • MobileCoreServices
    • SQLite

API Reference (Android & iOS)

The following methods are available:

# Init AdMob
# @param bool isReal Show real ad or test ad
# @param int instance_id The instance id from Godot (get_instance_ID())
init(isReal, instance_id)

# Init AdMob with additional Content Rating parameters (Android Only)
# @param bool isReal Show real ad or test ad
# @param int instance_id The instance id from Godot (get_instance_ID())
# @param boolean isForChildDirectedTreatment If isForChildDirectedTreatment is true, maxAdContetRating will be ignored (your maxAdContentRating would can not be other than "G")
# @param String maxAdContentRating It's value must be "G", "PG", "T" or "MA". If the rating of your app in Play Console and your config of maxAdContentRating in AdMob are not matched, your app can be banned by Google.
initWithContentRating(isReal, instance_id, isForChildDirectedTreatment, maxAdContentRating)

# Banner Methods
# --------------

# Load Banner Ads (and show inmediatly)
# @param String id The banner unit id
# @param boolean isTop Show the banner on top or bottom
loadBanner(id, isTop)

# Show the banner

# Hide the banner

# Resize the banner (when orientation change for example)

# Get the Banner width
# @return int Banner width

# Get the Banner height
# @return int Banner height

# Callback on ad loaded (Banner)

# Callback on ad network error (Banner)

# Interstitial Methods
# --------------------

# Load Interstitial Ads
# @param String id The interstitial unit id

# Show the interstitial ad

# Callback for interstitial ad fail on load

# Callback for interstitial loaded

# Callback for insterstitial ad close action

# Rewarded Videos Methods
# -----------------------

# Load rewarded videos ads
# @param String id The rewarded video unit id

# Show the rewarded video ad

# Callback for rewarded video ad left application

# Callback for rewarded video ad closed 

# Callback for rewarded video ad failed to load
# @param int errorCode the code of error

# Callback for rewarded video ad loaded

# Callback for rewarded video ad opened

# Callback for rewarded video ad reward user
# @param String currency The reward item description, ex: coin
# @param int amount The reward item amount
_on_rewarded(currency, amount)

# Callback for rewarded video ad started do play

Known Issues

  • You can't use Rewarded Video and any other ad type (Banner and/or Interstitial) at same time on iOS or your app will crash with the error Multiple locks on web thread not allowed when the Reward is closed. To fix this, we need help from an iOS developer as I don't have any Apple hardware to do it by myself. You can see more details about this issue here.


  • First of all, please make sure you're able to compile the custom template without the Admob module, this way we can isolate the cause of the issue.

  • Using the Xcode debug console for iOS and logcat for Android is the best way to troubleshoot most issues. You can filter Godot only messages with logcat using the command: adb logcat -s godot

  • ERROR_CODE_NO_FILL is a common issue with Admob, but out of the scope to this module. Here's the description on the API page: ERROR_CODE_NO_FILL: The ad request was successful, but no ad was returned due to lack of ad inventory.


Based on the work of:


MIT license