Loading an Interstitial Ad
The following code shows you how to bind to delegates and load the first interstitial:
-
// UMyWidget.cpp (UMyWidget inherits from UObject to access TimerManager) #include "UMyWidget.h" #include "AppLovinMAX.h" // For retry timer logic #include "Async/Async.h" #include "Engine/World.h" #include "TimerManager.h" const FString InterstitialAdUnitId = TEXT("ad_unit_ID"); int RetryAttempt = 0; FTimerHandle LoadTimerHandle; void UMyWidget::InitializeInterstitialAds() { // Bind member functions to delegates UAppLovinMAX::OnInterstitialAdLoadedDelegate.AddUObject(this, &UMyWidget::OnInterstitialAdLoaded); UAppLovinMAX::OnInterstitialAdLoadFailedDelegate.AddUObject(this, &UMyWidget::OnInterstitialAdLoadFailed); UAppLovinMAX::OnInterstitialAdDisplayFailedDelegate.AddUObject(this, &UMyWidget::OnInterstitialAdDisplayFailed); UAppLovinMAX::OnInterstitialAdHiddenDelegate.AddUObject(this, &UMyWidget::OnInterstitialAdHidden); // Load first interstitial LoadInterstitial(); } void UMyWidget::LoadInterstitial() { UAppLovinMAX::LoadInterstitial(InterstitialAdUnitId); } void UMyWidget::OnInterstitialAdLoaded(const FAdInfo &Aamp;dInfo) { // Interstitial ad is ready to be shown. UAppLovinMAX::IsInterstitialReady(InterstitialAdUnitId) will now return 'true' // Reset retry attempt RetryAttempt = 0; } void UMyWidget::OnInterstitialAdLoadFailed(const FAdInfo &AdInfo, const FAdError &AdError) { // Interstitial ad failed to load // AppLovin recommends that you retry with exponentially higher delays, up to a maximum delay (in this case 64 seconds) RetryAttempt++; AsyncTask(ENamedThreads::GameThread, [this]() { float RetryDelay = FMath::Pow(2.0f, FMath::Min(6, RetryAttempt)); GetWorld()->GetTimerManager().SetTimer(LoadTimerHandle, this, &UMyWidget::LoadInterstitial, RetryDelay, false); }); } void UMyWidget::OnInterstitialAdDisplayFailed(const FAdInfo &AdInfo, const FAdError &AdError) { // Interstitial ad failed to display. AppLovin recommends that you load the next ad. LoadInterstitial(); } void UMyWidget::OnInterstitialAdHidden(const FAdInfo &AdInfo) { // Interstitial ad is hidden. Pre-load the next ad. LoadInterstitial(); }
Showing an Interstitial Ad
To show an interstitial ad, call ShowInterstitial()
:
-
if (UAppLovinMAX::IsInterstitialReady(InterstitialAdUnitId)) { UAppLovinMAX::ShowInterstitial(InterstitialAdUnitId); }