Rewarded Interstitial
Rewarded Interstitial Ads combine the benefits of interstitial and rewarded ads — they appear at natural breaks in gameplay (like level completion or menu transitions) while still granting rewards to the user for viewing them to completion.
Unlike standard rewarded ads, rewarded interstitials do not require explicit user opt-in (e.g. pressing a “Watch Ad” button) and can be triggered automatically at suitable points in your game flow.
These ads are ideal for use cases such as:
- Bonus rewards after level completion
- Daily login incentives
- Post-game multipliers or boosters
Before showing a rewarded interstitial, you must first load it using its Ad Unit ID.
Once loaded, it can be displayed at any time without additional preparation.
Load Rewarded Interstitial
This function loads a rewarded interstitial ad using the provided Ad Unit ID.
It must always be called before attempting to show the ad — if no rewarded ad is loaded, calling Show Rewarded Interstitial will fail immediately.
Parameters
1. Ad Unit ID
Your Rewarded Interstitial Ad Unit ID from the AdMob console.
2. On Loaded
Called when the rewarded interstitial ad has been successfully loaded and is ready to show.
3. On Load Failed
Called if the ad fails to load due to network issues, invalid configuration, or SDK errors.
This callback returns an EAdErrorCode value and an error message for debugging.
Show Rewarded Interstitial
Displays a previously loaded rewarded interstitial ad and grants the user a reward after it finishes successfully.
Before calling this function, make sure that a rewarded interstitial ad has already been loaded using Load Rewarded Interstitial.
Parameters
1. Auto Reload
If enabled, the system will automatically load a new rewarded interstitial ad immediately after the current one is shown and completed.
2. Is Immersive
Enables immersive mode during the ad display — hiding system UI elements (navigation bar, status bar) for a more seamless user experience.
3. On Started
Called when the rewarded interstitial ad starts displaying.
4. On Completed
Called after the ad is fully closed by the user or finishes naturally.
5. On Reward Earned
Triggered when the player successfully earns a reward by watching the ad to completion.
Use this callback to grant in-game currency, bonuses, or other benefits.
6. On Failure
Called if the ad fails to show (for example, if it wasn’t properly loaded or was invalidated).
This callback returns an EAdErrorCode value and an error message for debugging.
7. On Event
Triggered on intermediate ad lifecycle updates — such as when is clicked.
Returns an EFullScreenAdEventType describing the event.
Is Rewarded Interstitial Ready
Checks whether a rewarded interstitial ad has been successfully loaded and is ready to be shown.
Use this before calling Show Rewarded Interstitial to avoid triggering a failed display event.
Return Value
Returns true if a rewarded interstitial ad is successfully loaded and ready to display.
Returns false if no ad is currently loaded.
C++ Usage
All rewarded interstitial Blueprint functions are fully available in C++.
You can load, show, and manage rewarded interstitials directly through static methods of UAdMobCPPLibrary.
LoadRewardedInterstitial
#include "AdMobCPPLibrary.h"
void UMyClass::LoadRewardedInterstitial()
{
FOnRewardedInterstitialLoadedNative OnLoaded;
OnLoaded.BindLambda([]()
{
UE_LOG(LogTemp, Log, TEXT("Rewarded interstitial loaded successfully."));
});
FOnRewardedInterstitialLoadFailedNative OnLoadFailed;
OnLoadFailed.BindLambda([](EAdErrorCode Error, const FString& Message)
{
UE_LOG(LogTemp, Error, TEXT("Failed to load rewarded interstitial: %s (Code: %d)"), *Message, static_cast<int32>(Error));
});
UAdMobCPPLibrary::LoadRewardedInterstitial(TEXT("ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx"), OnLoaded, OnLoadFailed);
}
ShowRewardedInterstitial
#include "AdMobCPPLibrary.h"
void UMyClass::ShowRewardedInterstitial()
{
FOnRewardedInterstitialStartedNative OnStarted;
OnStarted.BindLambda([]()
{
UE_LOG(LogTemp, Log, TEXT("Rewarded interstitial started."));
});
FOnRewardedInterstitialCompletedNative OnCompleted;
OnCompleted.BindLambda([]()
{
UE_LOG(LogTemp, Log, TEXT("Rewarded interstitial completed."));
});
FOnInterstitialRewardEarnedNative OnRewardEarned;
OnRewardEarned.BindLambda([](int32 Amount, const FString& Type)
{
UE_LOG(LogTemp, Log, TEXT("Reward earned: %d %s"), Amount, *Type);
});
FOnRewardedInterstitialShowFailedNative OnFailure;
OnFailure.BindLambda([](EAdErrorCode Error, const FString& Message)
{
UE_LOG(LogTemp, Error, TEXT("Failed to show rewarded interstitial: %s (Code: %d)"), *Message, static_cast<int32>(Error));
});
FOnRewardedInterstitialEventNative OnEvent;
OnEvent.BindLambda([](EFullScreenAdEventType Event)
{
UE_LOG(LogTemp, Log, TEXT("Rewarded interstitial event: %d"), static_cast<int32>(Event));
});
UAdMobCPPLibrary::ShowRewardedInterstitial(true, false, OnStarted, OnCompleted, OnRewardEarned, OnFailure, OnEvent);
}
IsRewardedInterstitialReady
#include "AdMobCPPLibrary.h"
void UMyClass::CheckRewardedInterstitialStatus()
{
bool bIsReady = UAdMobCPPLibrary::IsRewardedInterstitialReady();
UE_LOG(LogTemp, Log, TEXT("Is rewarded interstitial ready? %s"), bIsReady ? TEXT("Yes") : TEXT("No"));
}