Adaptive Banner Ad (Only for GAM)
1
2
Add preferred adaptive ad type to the AdRequest
configuration.addInlineAdaptiveBannerAdSize(width, maxHeight);configuration.addCurrentOrientationInlineAdaptiveBannerAdSize(width);configuration.addAnchoredAdaptiveBannerAdSize(getAdSize());
private Integer getAdSize() {
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int adWidthPixels = displayMetrics.widthPixels;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
WindowMetrics windowMetrics = this.getWindowManager().getCurrentWindowMetrics();
adWidthPixels = windowMetrics.getBounds().width();
}
float density = displayMetrics.density;
return (int) (adWidthPixels / density);
}fun getAdSize(): Int {
val displayMetrics = getResources().displayMetrics
var adWidthPixels = displayMetrics.widthPixels
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
val windowMetrics = this.windowManager.currentWindowMetrics
adWidthPixels = windowMetrics.bounds.width()
}
val density = displayMetrics.density
return (adWidthPixels / density).toInt()
}3
Load the ad
AdSterAdLoader.Companion.builder().withAdsListener(new MediationAdListener() {
@Override
public void onBannerAdLoaded(@NonNull MediationBannerAd ad) {
super.onBannerAdLoaded(ad);
// Show banner ad here
}
@Override
public void onFailure(@NonNull AdError adError) {
// Handle failure here
}
}).withAdsEventsListener(new AdEventsListener() {
@Override
public void onAdClicked() {
//Handle ad click here
}
@Override
public void onAdImpression() {
//Handle ad impression here
}
@Override
public void onAdRevenuePaid(double revenue, @NotNull String adUnitId, @NotNull String network) {
// Callback which provides revenue and the network which provided it
}
}).build().loadAd(configuration.build());AdSterAdLoader.builder().withAdsListener(object : MediationAdListener() {
override fun onBannerAdLoaded(ad: MediationBannerAd) {
super.onBannerAdLoaded(ad)
// Show banner ad here
}
override fun onFailure(adError: AdError) {
// Handle failure here
}
}).withAdsEventsListener(object : AdEventsListener() {
override fun onAdClicked() {
//Handle ad click here
}
override fun onAdImpression() {
//Handle ad impression here
}
override fun onAdRevenuePaid(revenue: Double, adUnitId: String, network: String) {
// Callback which provides revenue and the network which provided it
}
}).build().loadAd(configuration.build())