Godot AdMob - Rewarded Ads
SkillDev toolsProvides 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.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Godot AdMob - Rewarded Ads skill
What this skill tells your AI
The instructions your AI receives, as published by poingstudios/godot-admob-plugin in platforms/godot_editor/addons/admob/skills/godot-admob-rewarded/SKILL.md and read by ahel’s review.
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
RewardedAdLoaderorRewardedInterstitialAdLoader. - 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
OnUserEarnedRewardListenerto 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)
```
=== "C#"
```csharp
using Godot;
using PoingStudios.AdMob.Api;
using PoingStudios.AdMob.Api.Listeners;
using PoingStudios.AdMob.Api.Core;
private RewardedAd _rewardedAd;
private RewardedAdLoader _rewardedLoader = new RewardedAdLoader();
public void LoadRewardedAd()
{
string adUnitId = "ca-app-pub-3940256099942544/5224354917"; // Test ID
var callback = new RewardedAdLoadCallback();
callback.OnAdLoaded = (RewardedAd ad) => {
_rewardedAd = ad;
GD.Print("Rewarded ad loaded.");
SetupRewardedCallbacks();
};
callback.OnAdFailedToLoad = (error) => {
GD.Print($"Rewarded ad failed to load: {error.Message}");
};
_rewardedLoader.Load(adUnitId, new AdRequest(), callback);
}
private void SetupRewardedCallbacks()
{
if (_rewardedAd == null) return;
var callbacks = new FullScreenContentCallback();
callbacks.OnAdDismissedFullScreenContent = () => {
GD.Print("Rewarded ad dismissed.");
_rewardedAd.Destroy();
_rewardedAd = null;
};
callbacks.OnAdFailedToShowFullScreenContent = (error) => {
GD.Print($"Rewarded ad failed to show: {error.Message}");
_rewardedAd.Destroy();
_rewardedAd = null;
};
_rewardedAd.FullScreenContentCallback = callbacks;
}
public void ShowRewardedAd()
{
if (_rewardedAd == null) return;
var rewardListener = new OnUserEarnedRewardListener();
rewardListener.OnUserEarnedReward = (rewardedItem) => {
GD.Print($"Player rewarded! Amount: {rewardedItem.Amount}, Type: {rewardedItem.Type}");
};
_rewardedAd.Show(rewardListener);
}
```
Signals
- GitHub stars
- 616
- Forks
- 50
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
godot-admob-rewarded- Source
- github.com/poingstudios/godot-admob-plugin