AppLovinMax_Android_RewardedAds - imobile/app-mediation GitHub Wiki

Rewarded Ads

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

Loading a Rewarded Ad

To load a rewarded ad, get an instance of a MaxRewardedAd object that corresponds to your rewarded ad unit and then call its loadAd() method. Implement MaxRewardedAdListener so that you are notified when your ad is ready and of other ad-related events.

// Java

public class ExampleActivity extends Activity
        implements MaxRewardedAdListener
{
    private MaxRewardedAd rewardedAd;
    private int           retryAttempt;

    void createRewardedAd()
    {
        rewardedAd = MaxRewardedAd.getInstance( "YOUR_AD_UNIT_ID", this );
        rewardedAd.setListener( this );

        rewardedAd.loadAd();
    }

    // MAX Ad Listener
    @Override
    public void onAdLoaded(final MaxAd maxAd)
    {
        // Rewarded ad is ready to be shown. rewardedAd.isReady() will now return 'true'

        // Reset retry attempt
        retryAttempt = 0;
    }

    @Override
    public void onAdLoadFailed(final String adUnitId, final MaxError error)
    {
        // Rewarded ad failed to load 
        // We recommend retrying with exponentially higher delays up to a maximum delay (in this case 64 seconds)

        retryAttempt++;
        long delayMillis = TimeUnit.SECONDS.toMillis( (long) Math.pow( 2, Math.min( 6, retryAttempt ) ) );

        new Handler().postDelayed( new Runnable()
        {
            @Override
            public void run()
            {
                rewardedAd.loadAd();
            }
        }, delayMillis );
    }

    @Override
    public void onAdDisplayFailed(final MaxAd maxAd, final MaxError error)
    {
        // Rewarded ad failed to display. We recommend loading the next ad
        rewardedAd.loadAd();
    }

    @Override
    public void onAdDisplayed(final MaxAd maxAd) {}

    @Override
    public void onAdClicked(final MaxAd maxAd) {}

    @Override
    public void onAdHidden(final MaxAd maxAd)
    {
        // rewarded ad is hidden. Pre-load the next ad
        rewardedAd.loadAd();
    }

    @Override
    public void onRewardedVideoStarted(final MaxAd maxAd) {}

    @Override
    public void onRewardedVideoCompleted(final MaxAd maxAd) {}

    @Override
    public void onUserRewarded(final MaxAd maxAd, final MaxReward maxReward)
    {
        // Rewarded ad was displayed and user should receive the reward
    }
}
// Kotlin

class ExampleActivity : Activity(), MaxRewardedAdListener
{
    private lateinit var rewardedAd: MaxRewardedAd
    private var retryAttempt = 0.0

    fun createRewardedAd()
    {
        rewardedAd = MaxRewardedAd.getInstance( "YOUR_AD_UNIT_ID", this )
        rewardedAd.setListener( this )

        rewardedAd.loadAd()
    }

    // MAX Ad Listener
    override fun onAdLoaded(maxAd: MaxAd)
    {
        // Rewarded ad is ready to be shown. rewardedAd.isReady() will now return 'true'

        // Reset retry attempt
        retryAttempt = 0.0
    }

    override fun onAdLoadFailed(adUnitId: String?, error: MaxError?)
    {
        // Rewarded ad failed to load 
        // We recommend retrying with exponentially higher delays up to a maximum delay (in this case 64 seconds)

        retryAttempt++
        val delayMillis = TimeUnit.SECONDS.toMillis( Math.pow( 2.0, Math.min( 6.0, retryAttempt ) ).toLong() )

        Handler().postDelayed( { rewardedAd.loadAd() }, delayMillis )
    }

    override fun onAdDisplayFailed(ad: MaxAd?, error: MaxError?)
    {
        // Rewarded ad failed to display. We recommend loading the next ad
        rewardedAd.loadAd()
    }

    override fun onAdDisplayed(maxAd: MaxAd) {}

    override fun onAdClicked(maxAd: MaxAd) {}

    override fun onAdHidden(maxAd: MaxAd)
    {
        // rewarded ad is hidden. Pre-load the next ad
        rewardedAd.loadAd()
    }

    override fun onRewardedVideoStarted(maxAd: MaxAd) {}

    override fun onRewardedVideoCompleted(maxAd: MaxAd) {}

    override fun onUserRewarded(maxAd: MaxAd, maxReward: MaxReward)
    {
        // Rewarded ad was displayed and user should receive the reward
    }
}

Showing a Rewarded Ad

To show a rewarded ad, call showAd() on the MaxRewardedAd object you created.

// Java

if ( rewardedAd.isReady() )
{
    rewardedAd.showAd();
}
// Kotlin

if ( rewardedAd.isReady() )
{
    rewardedAd.showAd();
}