| name | godot-admob-rewarded |
| description | Provides instructions to implement, load, show, and handle callbacks (including user rewards) for Rewarded and Rewarded Interstitial ads in GDScript and C#. Use when integrating rewarded or rewarded interstitial ads. |
| metadata | {"version":"1.0.0","category":"GodotAdMob"} |
Godot AdMob - Rewarded Ads
Assists with implementing Rewarded and Rewarded Interstitial ads using the RewardedAdLoader / RewardedInterstitialAdLoader and handling rewards in Godot 4.x.
Rewarded Ads Workflow
- Instantiate Loader: Set up a
RewardedAdLoader or RewardedInterstitialAdLoader.
- Configure Load Callback: Define success (
on_ad_loaded) and failure callbacks.
- Load the Ad: Call
load() passing the Ad Unit ID, AdRequest, and load callback.
- Configure FullScreenContentCallback: Set up callbacks for show/dismiss/failure events.
- Create Reward Listener: Define
OnUserEarnedRewardListener to receive reward information (amount and type).
- Show the Ad: Call
ad.show(reward_listener).
- Crucial: Destroy the Ad: Call
ad.destroy() inside dismissed or show failure callbacks to free native memory.
Code Examples
=== "GDScript"
```gdscript
var rewarded_ad: RewardedAd
var rewarded_loader := RewardedAdLoader.new()
func load_rewarded_ad() -> void:
var ad_unit_id := "ca-app-pub-3940256099942544/5224354917" # Test ID
var callback := RewardedAdLoadCallback.new()
callback.on_ad_loaded = func(ad: RewardedAd) -> void:
rewarded_ad = ad
print("Rewarded ad loaded.")
setup_rewarded_callbacks()
callback.on_ad_failed_to_load = func(error: LoadAdError) -> void:
print("Rewarded ad failed to load: ", error.message)
rewarded_loader.load(ad_unit_id, AdRequest.new(), callback)
func setup_rewarded_callbacks() -> void:
if not rewarded_ad:
return
var callbacks := FullScreenContentCallback.new()
callbacks.on_ad_dismissed_full_screen_content = func() -> void:
print("Rewarded ad dismissed.")
rewarded_ad.destroy()
rewarded_ad = null
callbacks.on_ad_failed_to_show_full_screen_content = func(error: AdError) -> void:
print("Rewarded ad failed to show: ", error.message)
rewarded_ad.destroy()
rewarded_ad = null
rewarded_ad.full_screen_content_callback = callbacks
func show_rewarded_ad() -> void:
if not rewarded_ad:
print("Rewarded ad not loaded.")
return
var reward_listener := OnUserEarnedRewardListener.new()
reward_listener.on_user_earned_reward = func(rewarded_item: RewardedItem) -> void:
print("Player rewarded! Amount: ", rewarded_item.amount, ", Type: ", rewarded_item.type)
rewarded_ad.show(reward_listener)
```