MREC
Overview
Loading MREC 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 BannerSize.Size_300x250
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 AdManagerAdRequest
settings using BannerRequest
.
// Create new BidMachine request
BannerRequest bannerRequest = new BannerRequest.Builder()
.setSize(BannerSize.Size_300x250)
.setListener(new BannerRequest.AdRequestListener() {
@Override
public void onRequestSuccess(@NonNull BannerRequest bannerRequest,
@NonNull AuctionResult auctionResult) {
runOnUiThread(() -> loadAdManagerMrec());
}
})
.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.MEDIUM_RECTANGLE);
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.
loadBidMachineMrec();
}
}
});
// 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 calling
canShow
on theBannerView
instance before showing
if (bannerView != null && bannerView.canShow()) {
adContainer.removeAllViews();
adContainer.addView(bannerView);
}
Sample App
You can find Sample App with BidMachine and AdManager here: Github
Updated 2 months ago