激励广告能够向与广告交互的用户提供各种应用内物品作为奖励,如继续游戏、虚拟货币等。这样,用户在广告互动中投入时间后就能获得切实的价值,从而达到推动交互的效果。
以下各节将向您介绍如何加载和显示激励广告。
以下代码展示了如何绑定委托以及加载第一则激励广告:

// 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 RewardedAdUnitId = TEXT("«ad-unit-ID»");
int RetryAttempt = 0;
FTimerHandle LoadTimerHandle;
void UMyWidget::InitializeRewardedAds(){
// Bind member functions to delegates
UAppLovinMAX::OnRewardedAdLoadedDelegate.AddUObject(this, &UMyWidget::OnRewardedAdLoaded);
UAppLovinMAX::OnRewardedAdLoadFailedDelegate.AddUObject(this, &UMyWidget::OnRewardedAdLoadFailed);
UAppLovinMAX::OnRewardedAdDisplayFailedDelegate.AddUObject(this, &MyWidget::OnRewardedAdDisplayFailed);
UAppLovinMAX::OnRewardedAdHiddenDelegate.AddUObject(this, &UMyWidget::OnRewardedAdHidden);
UAppLovinMAX::OnRewardedAdReceivedRewardDelegate.AddUObject(this, &UMyWidget::OnRewardedAdReceivedReward);
// Load first rewarded ad
LoadRewardedAd();
}
void UMyWidget::LoadRewardedAd(){
UAppLovinMAX::LoadRewardedAd(RewardedAdUnitId);
}
void UMyWidget::OnRewardedAdLoaded(const FAdInfo &AdInfo){
// Rewarded ad is ready to be shown. UAppLovinMAX::IsRewardedAdReady(RewardedAdUnitId) will now return 'true'
// Reset retry attempt
RetryAttempt = 0;
}
void UMyWidget::OnRewardedAdLoadFailed(const FAdInfo &AdInfo, const FAdError &AdError){
// Rewarded 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::LoadRewardedAd, RetryDelay, false);
});
}
void UMyWidget::OnRewardedAdDisplayFailed(const FAdInfo &AdInfo, const FAdError &AdError){
// Rewarded ad failed to display. AppLovin recommends that you load the next ad.
LoadRewardedAd();
}
void UMyWidget::OnRewardedAdHidden(const FAdInfo &AdInfo){
// Rewarded ad is hidden. Pre-load the next ad.
LoadRewardedAd();
}
void UMyWidget::OnRewardedAdReceivedReward(const FAdInfo &AdInfo, const FAdReward &Reward){
// Rewarded ad was displayed and user should receive the reward
}要显示激励广告,请调用 ShowRewardedAd():

if (UAppLovinMAX::IsRewardedAdReady(RewardedAdUnitId))
{
UAppLovinMAX::ShowRewardedAd(RewardedAdUnitId);
}您可以通过货币服务器接收回传。 要了解操作方法,请参阅 MAX S2S Rewarded Callback API 指南。 随后,在Edit Ad Unit页面更新Server Side Callback URL。
要设置激励广告的金额和币种,请按照下列步骤操作:

