AppLovinMax_Android_Banners - imobile/app-mediation GitHub Wiki

Banners

Related Content: “Why mobile banners ads persist in a video and playable world” from AppLovin’s Blog.

Loading and Showing Banners Programmatically

To load a banner, create a MaxAdView object that corresponds to your ad unit and then call its loadAd() method. To show that ad, add the MaxAdView object as a subview of your view hierarchy. Implement MaxAdViewAdListener so that you are notified when your ad is ready and of other ad-related events.

// Java

public class ExampleActivity extends Activity
        implements MaxAdViewAdListener
{
    private MaxAdView adView;

    void createBannerAd
    {
        adView = new MaxAdView( "YOUR_AD_UNIT_ID", this );
        adView.setListener( this );
    
        // Stretch to the width of the screen for banners to be fully functional
        int width = ViewGroup.LayoutParams.MATCH_PARENT;
    
        // Banner height on phones and tablets is 50 and 90, respectively
        int heightPx = getResources().getDimensionPixelSize( R.dimen.banner_height );
    
        adView.setLayoutParams( new FrameLayout.LayoutParams( width, heightPx ) );
    
        // Set background or background color for banners to be fully functional
        adView.setBackgroundColor( R.color.background_color );
    
        ViewGroup rootView = findViewById( android.R.id.content );
        rootView.addView( adView );
    
        // Load the ad
        adView.loadAd();
    }

    // MAX Ad Listener
    @Override
    public void onAdLoaded(final MaxAd maxAd) {}

    @Override
    public void onAdLoadFailed(final String adUnitId, final MaxError error) {}

    @Override
    public void onAdDisplayFailed(final MaxAd maxAd, final MaxError error) {}

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

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

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

    @Override
    public void onAdDisplayed(final MaxAd maxAd) { /* DO NOT USE - THIS IS RESERVED FOR FULLSCREEN ADS ONLY AND WILL BE REMOVED IN A FUTURE SDK RELEASE */ }

    @Override
    public void onAdHidden(final MaxAd maxAd) { /* DO NOT USE - THIS IS RESERVED FOR FULLSCREEN ADS ONLY AND WILL BE REMOVED IN A FUTURE SDK RELEASE */ }
}
// Kotlin

class ExampleActivity : Activity(), MaxAdViewAdListener
{
    private var adView: MaxAdView? = null

    fun createBannerAd
    {
        adView = MaxAdView("YOUR_AD_UNIT_ID", this)
        adView!!.setListener(this)
    
        // Stretch to the width of the screen for banners to be fully functional
        val width = ViewGroup.LayoutParams.MATCH_PARENT
    
        // Banner height on phones and tablets is 50 and 90, respectively
        val heightPx = resources.getDimensionPixelSize(R.dimen.banner_height)
    
        adView!!.layoutParams = FrameLayout.LayoutParams(width, heightPx)
    
        // Set background or background color for banners to be fully functional
        adView!!.setBackgroundColor(R.color.background_color)
    
        val rootView = findViewById<ViewGroup>(android.R.id.content)
        rootView.addView(adView)
    
        // Load the ad
        adView!!.loadAd()
    }

    // MAX Ad Listener
    override fun onAdLoaded(maxAd: MaxAd) {}

    override fun onAdLoadFailed(adUnitId: String?, error: MaxError?) {}

    override fun onAdDisplayFailed(ad: MaxAd?, error: MaxError?) {}

    override fun onAdClicked(maxAd: MaxAd) {}

    override fun onAdExpanded(maxAd: MaxAd) {}

    override fun onAdCollapsed(maxAd: MaxAd) {}
    
    override fun onAdDisplayed(maxAd: MaxAd) { /* DO NOT USE - THIS IS RESERVED FOR FULLSCREEN ADS ONLY AND WILL BE REMOVED IN A FUTURE SDK RELEASE */ }
    
    override fun onAdHidden(maxAd: MaxAd) { /* DO NOT USE - THIS IS RESERVED FOR FULLSCREEN ADS ONLY AND WILL BE REMOVED IN A FUTURE SDK RELEASE */ }
}

Loading and Showing Banners in Layout Editor

Alternatively, you can add MAX banners to your view layout XML:

<com.applovin.mediation.ads.MaxAdView
    xmlns:maxads="http://schemas.applovin.com/android/1.0"
    maxads:adUnitId="YOUR_AD_UNIT_ID"
    android:background="@color/banner_background_color" <!-- Set background or background color for banners to be fully functional -->
    android:layout_width="match_parent"                 <!-- Stretch to the width of the screen for banners to be fully functional -->
    android:layout_height="@dimen/banner_height"
</com.applovin.mediation.ads.MaxAdView>

Declare the base banner height of 50dp in res/values/attrs.xml :

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="banner_height">50dp</dimen>
</resources>

Declare the tablet banner height of 90dp in res/values-sw600dp/attrs.xml :

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="banner_height">90dp</dimen>
</resources>

To hide a banner, make the following calls:

// Java

adView.setVisibility( View.GONE );
adView.stopAutoRefresh();
// Kotlin

adView.visibility = View.GONE
adView.stopAutoRefresh()

To show a banner, make the following calls:

// Java

adView.setVisibility( View.VISIBLE );
adView.startAutoRefresh();
// Kotlin

adView.visibility = View.VISIBLE
adView.startAutoRefresh()

Adaptive Banners

Note: Only AdMob and Google Ad Manager support adaptive banners. MAX sizes banners from other networks normally.

Adaptive banners are responsive banners with heights that derive from the device type and width of the banner. You integrate adaptive banners in a similar way to how you integrate regular banners, except that you must set the height to the value returned by MAAdFormat.banner.adaptiveSize.height instead of 50 or Before you load the ad, set the banner extra parameter adaptive_banner to trueas in the code below:

// Java

void createBannerAd()
{
    adView = new MaxAdView( "YOUR_AD_UNIT_ID", this );
    adView.setListener( this );
    
    // Stretch to the width of the screen for banners to be fully functional
    int width = ViewGroup.LayoutParams.MATCH_PARENT;
    
    // Get the adaptive banner height.
    int heightDp = MaxAdFormat.BANNER.getAdaptiveSize( this ).getHeight();
    int heightPx = AppLovinSdkUtils.dpToPx( this, heightDp );
    
    adView.setLayoutParams( new FrameLayout.LayoutParams( width, heightPx ) );
    adView.setExtraParameter( "adaptive_banner", "true" );
    
    // Set background or background color for banners to be fully functional
    adView.setBackgroundColor( R.color.background_color );
    
    ViewGroup rootView = findViewById( android.R.id.content );
    rootView.addView( adView );
    
    // Load the ad
    adView.loadAd();
}
// Kotlin

fun createBannerAd()
{
    adView = MaxAdView("YOUR_AD_UNIT_ID", this)
    adView!!.setListener(this)

    // Stretch to the width of the screen for banners to be fully functional
    val width = ViewGroup.LayoutParams.MATCH_PARENT

    // Get the adaptive banner height.
    val heightDp = MaxAdFormat.BANNER.getAdaptiveSize(this).height
    val heightPx = AppLovinSdkUtils.dpToPx(this, heightDp)

    adView!!.layoutParams = FrameLayout.LayoutParams(width, heightPx)
    adView!!.setExtraParameter("adaptive_banner", "true")

    // Set background or background color for banners to be fully functional
    adView!!.setBackgroundColor(R.color.background_color)

    val rootView = findViewById<ViewGroup>(android.R.id.content)
    rootView.addView(adView)

    // Load the ad
    adView!!.loadAd()
}
⚠️ **GitHub.com Fallback** ⚠️