godot-admob-plugin

This repository is for Godot's Addons to integrate natively AdMob to your Game Project without much configurations and directly inside Godot Editor!

MIT License

Stars
312
Committers
6

Godot AdMob Plugin

This addon provides an easy and beautiful way to configure AdMob directly through the editor. Supports godot-admob-android and godot-admob-ios.

Installation

Godot Asset Library (recommended)

  1. Find the AdMob plugin by poing.studios
  2. Click Download and Install
  3. Enable in ProjectProject SettingsPlugins.
  4. Download godot-admob-android and/or godot-admob-ios in ProjectToolsAdMob Download ManagerAndroid/iOSLatestVersion.
  5. To know how to deploy, check the README.md of godot-admob-android and/or godot-admob-ios.
  1. Pick a specific version from tags
  2. Download and extract as a .zip or .tar.gz
  3. Copy the extracted addons/admob folder into res://addons on your project
  4. Download godot-admob-android and/or godot-admob-ios in ProjectToolsAdMob Download ManagerAndroid/iOSLatestVersion.
  5. To know how to deploy, check the README.md of godot-admob-android and/or godot-admob-ios.

How to use

After installation, all the methods will be available for use in any .gd script.

Examples

func _ready() -> void:
	#just need to call once
	MobileAds.initialize()

Banner Ads

# button signal on scene
func _on_load_banner_pressed() -> void:
	var unit_id : String
	if OS.get_name() == "Android":
		unit_id = "ca-app-pub-3940256099942544/6300978111"
	elif OS.get_name() == "iOS":
		unit_id = "ca-app-pub-3940256099942544/2934735716"

	var ad_view := AdView.new(unit_id, AdSize.BANNER, AdPosition.Values.TOP)
	ad_view.load_ad(AdRequest.new())

Interstitial Ads

var interstitial_ad : InterstitialAd
var interstitial_ad_load_callback := InterstitialAdLoadCallback.new()
func _ready():
	interstitial_ad_load_callback.on_ad_failed_to_load = on_interstitial_ad_failed_to_load
	interstitial_ad_load_callback.on_ad_loaded = on_interstitial_ad_loaded

# button signal on scene
func _on_load_interstitial_pressed() -> void:
	var unit_id : String
	if OS.get_name() == "Android":
		unit_id = "ca-app-pub-3940256099942544/1033173712"
	elif OS.get_name() == "iOS":
		unit_id = "ca-app-pub-3940256099942544/4411468910"

	InterstitialAdLoader.new().load(unit_id, AdRequest.new(), interstitial_ad_load_callback)

func on_interstitial_ad_failed_to_load(adError : LoadAdError) -> void:
	print(adError.message)

func on_interstitial_ad_loaded(interstitial_ad : InterstitialAd) -> void:
	self.interstitial_ad = interstitial_ad
# button signal on scene
func _on_show_pressed():
	if interstitial_ad:
		interstitial_ad.show()

Rewarded Ads

var rewarded_ad : RewardedAd
var rewarded_ad_load_callback := RewardedAdLoadCallback.new()

func _ready():
	rewarded_ad_load_callback.on_ad_failed_to_load = on_rewarded_ad_failed_to_load
	rewarded_ad_load_callback.on_ad_loaded = on_rewarded_ad_loaded

# button signal on scene
func _on_load_interstitial_pressed() -> void:
	var unit_id : String
	if OS.get_name() == "Android":
		unit_id = "ca-app-pub-3940256099942544/5224354917"
	elif OS.get_name() == "iOS":
		unit_id = "ca-app-pub-3940256099942544/1712485313"

	RewardedAdLoader.new().load(unit_id, AdRequest.new(), rewarded_ad_load_callback)

func on_rewarded_ad_failed_to_load(adError : LoadAdError) -> void:
	print(adError.message)
	
func on_rewarded_ad_loaded(rewarded_ad : RewardedAd) -> void:
	self.rewarded_ad = rewarded_ad
# button signal on scene
func _on_show_pressed():
	if rewarded_ad:
		rewarded_ad.show()

Rewarded Interstitial Ads

var rewarded_interstitial_ad : RewardedInterstitialAd
var rewarded_interstitial_ad_load_callback := RewardedInterstitialAdLoadCallback.new()

func _ready():
	rewarded_interstitial_ad_load_callback.on_ad_failed_to_load = on_rewarded_interstitial_ad_failed_to_load
	rewarded_interstitial_ad_load_callback.on_ad_loaded = on_rewarded_interstitial_ad_loaded

# button signal on scene
func _on_load_interstitial_pressed() -> void:
	var unit_id : String
	if OS.get_name() == "Android":
		unit_id = "ca-app-pub-3940256099942544/5354046379"
	elif OS.get_name() == "iOS":
		unit_id = "ca-app-pub-3940256099942544/6978759866"
	
	RewardedInterstitialAdLoader.new().load(unit_id, AdRequest.new(), rewarded_interstitial_ad_load_callback)

func on_rewarded_interstitial_ad_failed_to_load(adError : LoadAdError) -> void:
	print(adError.message)
	
func on_rewarded_interstitial_ad_loaded(rewarded_interstitial_ad : RewardedInterstitialAd) -> void:
	self.rewarded_interstitial_ad = rewarded_interstitial_ad
# button signal on scene
func _on_show_pressed():
	if rewarded_interstitial_ad:
		rewarded_interstitial_ad.show(on_user_earned_reward_listener)

Useful links:

Documentation

For a complete documentation of this Plugin including how to mediation: check here.

Alternatively, you can check the docs of AdMob itself of Android and iOS.

Support

If you find our work valuable and would like to support us, consider contributing via these platforms:

Your support helps us continue to improve and maintain this plugin. Thank you for being a part of our community!

Getting help

Star History

If you appreciate our work, don't forget to give us a star on GitHub!

Badges
Extracted from project README
Version Download Asset Library Android iOS Patreon Ko-fi Paypal DISCUSSIONS DISCORD