激励广告
激励广告能够向与广告交互的用户提供各种应用内物品作为奖励,如继续游戏、虚拟货币等。这样,用户在广告互动中投入时间后就能获得切实的价值,从而达到推动交互的效果。
以下各节将向您介绍如何加载和显示激励广告。
加载激励广告
以下代码展示了如何绑定委托以及加载第一则激励广告:
// 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);}
S2S 激励回传
您可以通过货币服务器接收回传。 要了解操作方法,请参阅 MAX S2S Rewarded Callback API 指南。 随后,在Edit Ad Unit页面更新Server Side Callback URL。
设置激励广告的金额和币种
要设置激励广告的金额和币种,请按照下列步骤操作:
- 在 Edit Ad Unit 页面点击Add S2S Reward Callback:
- 添加 Server Side Callback URL、Reward Amount和 Rewarded Currency Name: