Banner
Overview
Loading banner ads consists of several stages:
- Loading BidMachine
BannerRequest
- Setting up
AdManagerAdRequest
according to loaded BidMachineBannerRequest
- Loading
AdManagerAdView
with configuredAdManagerAdRequest
- Loading BidMachine
BannerView
- Showing BidMachine
BannerView
Auto-Refresh
Auto-refresh is not supported. For this type of integration, all of the above steps must be repeated.
Loading BidMachine BannerRequest
Create a new BannerRequest
instance with a specific BannerSize
and AdRequestListener
.
Call request
on the BannerRequest
instance to start loading.
When the onRequestSuccess
callback is triggered( it means that the request has been successfully loaded) - you can proceed to setting up AdManagerAdRequest
.
// Create new BidMachine BannerRequest instance
BannerRequest bannerRequest = new BannerRequest.Builder()
.setSize(...)
.setListener(new BannerRequest.AdRequestListener() {
@Override
public void onRequestSuccess(@NonNull BannerRequest bannerRequest,
@NonNull AuctionResult auctionResult) {
runOnUiThread(() -> loadAdManagerBanner());
}
})
.build();
// Request an ad from BidMachine without loading it
bannerRequest.request(...);
Setting up AdManagerAdRequest
Steps to set up AdManagerAdRequest
by BidMachine BannerRequest
:
- Create a new
AdManagerAdRequest
instance
AdManagerAdRequest adManagerAdRequest =
AMBidMachineUtils.createAdManagerRequest(bannerRequest);
- Create a new
AdManagerAdRequest.Builder
instance
AdManagerAdRequest.Builder adManagerAdRequestBuilder =
AMBidMachineUtils.createAdManagerRequestBuilder(bannerRequest);
AdManagerAdRequest adManagerAdRequest = adManagerAdRequestBuilder.build();
- Fill an existing
AdManagerAdRequest.Builder
instance
AdManagerAdRequest.Builder adManagerAdRequestBuilder =
new AdManagerAdRequest.Builder();
AMBidMachineUtils.appendRequest(adManagerAdRequestBuilder, bannerRequest);
AdManagerAdRequest adManagerAdRequest = adManagerAdRequestBuilder.build();
Loading AdManagerAdView
BidMachine uses AppEventListener
to receive mediation result. If data from it matches the expected result, then you need to start loading the BidMachine ad object; if data does not match - BidMachine has lost the mediation and the AdManagerAdView
needed to be shown.
Also call notifyMediationWin
/notifyMediationLoss
on the BannerRequest
instance when BidMachine wins/loses the mediation.
Use the AdManagerAdRequest
that was created during the previous step to load the AdManagerAdView
.
// Create new AdManagerAdView instance
AdManagerAdView adManagerAdView = new AdManagerAdView(...);
adManagerAdView.setLayoutParams(...);
adManagerAdView.setAdUnitId(...);
adManagerAdView.setAdSize(AdSize.BANNER);
adManagerAdView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
// Wait for AppEventListener#onAppEvent to fire to determine if BidMachine won.
// It is recommended to add a timer to prevent mediation from stopping if BidMachine loses the mediation.
// In this case, AppEventListener#onAppEvent will not fire.
}
});
adManagerAdView.setAppEventListener(new AppEventListener() {
@Override
public void onAppEvent(@NonNull String key, @NonNull String value) {
// Checking whether it is BidMachine or not
if (AMBidMachineUtils.isBidMachineBanner(key)) {
// Don't forget to stop a timer.
// Notify BidMachine about win.
bidMachineBannerRequest.notifyMediationWin();
// Load BidMachine ad object, before show BidMachine ad.
loadBidMachineBanner();
}
}
});
// Load AdManagerAdView with AdManagerAdRequest
adManagerAdView.loadAd(adManagerAdRequest);
Loading BidMachine BannerView
If BidMachine has won the mediation, the next step will be loading BidMachine BannerView
.
BannerView bannerView = new BannerView(...);
bannerView.setListener(...);
bannerView.load(bannerRequest);
Show BidMachine BannerView
After loading BidMachine BannerView
, show it by adding it to ViewGroup
.
Don't forget to check if it can be shown by executing
canShow
on theBannerView
instance before showing
if (bannerView != null && bannerView.canShow()) {
adContainer.removeAllViews();
adContainer.addView(bannerView);
}
Sample App
You can find Sample App with BidMachineSDK and Ad Manager here: Github
Updated about 1 year ago