AppLovinMax_Android_Banners - imobile/app-mediation GitHub Wiki
Related Content: “Why mobile banners ads persist in a video and playable world” from AppLovin’s Blog.
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 */ }
}
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()
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()
}