AppLovinMax_Unity_RewardedAds - imobile/app-mediation GitHub Wiki

Rewarded Ads

Related Content: “What are Rewarded Video Ads?” from AppLovin’s Blog.

Loading a Rewarded Ad

The following code shows you how to attach listeners and load the first rewarded ad:

string adUnitId = "YOUR_AD_UNIT_ID";
int retryAttempt;

public void InitializeRewardedAds()
{
    // Attach callback
    MaxSdkCallbacks.Rewarded.OnAdLoadedEvent += OnRewardedAdLoadedEvent;
    MaxSdkCallbacks.Rewarded.OnAdLoadFailedEvent += OnRewardedAdLoadFailedEvent;
    MaxSdkCallbacks.Rewarded.OnAdDisplayedEvent += OnRewardedAdDisplayedEvent;
    MaxSdkCallbacks.Rewarded.OnAdClickedEvent += OnRewardedAdClickedEvent;
    MaxSdkCallbacks.Rewarded.OnAdRevenuePaidEvent += OnRewardedAdRevenuePaidEvent;
    MaxSdkCallbacks.Rewarded.OnAdHiddenEvent += OnRewardedAdHiddenEvent;
    MaxSdkCallbacks.Rewarded.OnAdDisplayFailedEvent += OnRewardedAdFailedToDisplayEvent;
    MaxSdkCallbacks.Rewarded.OnAdReceivedRewardEvent += OnRewardedAdReceivedRewardEvent;
            
    // Load the first rewarded ad
    LoadRewardedAd();
}

private void LoadRewardedAd()
{
    MaxSdk.LoadRewardedAd(adUnitId);
}

private void OnRewardedAdLoadedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
    // Rewarded ad is ready for you to show. MaxSdk.IsRewardedAdReady(adUnitId) now returns 'true'.

    // Reset retry attempt
    retryAttempt = 0;
}

private void OnRewardedAdLoadFailedEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo)
{
    // 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++;
    double retryDelay = Math.Pow(2, Math.Min(6, retryAttempt));
    
    Invoke("LoadRewardedAd", (float) retryDelay);
}

private void OnRewardedAdDisplayedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) {}

private void OnRewardedAdFailedToDisplayEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo, MaxSdkBase.AdInfo adInfo)
{
    // Rewarded ad failed to display. AppLovin recommends that you load the next ad.
    LoadRewardedAd();
}

private void OnRewardedAdClickedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) {}

private void OnRewardedAdHiddenEvent(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
    // Rewarded ad is hidden. Pre-load the next ad
    LoadRewardedAd();
}

private void OnRewardedAdReceivedRewardEvent(string adUnitId, MaxSdk.Reward reward, MaxSdkBase.AdInfo adInfo)
{
    // The rewarded ad displayed and the user should receive the reward.
}

private void OnRewardedAdRevenuePaidEvent(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
    // Ad revenue paid. Use this callback to track user revenue.
}

Showing a Rewarded Ad

To show a rewarded ad, call ShowRewardedAd() :

if (MaxSdk.IsRewardedAdReady(adUnitId))
{
    MaxSdk.ShowRewardedAd(adUnitId);
}