MREC
Overview
Loading MREC consists of several stages:
- Loading BidMachine
BannerRequest - Setting up
AdManagerAdRequestaccording to loaded BidMachineBannerRequest - Loading
AdManagerAdViewwith 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
AdManagerAdRequestinstance
AdManagerAdRequest adManagerAdRequest =
AMBidMachineUtils.createAdManagerRequest(bannerRequest);
- Create a new
AdManagerAdRequest.Builderinstance
AdManagerAdRequest.Builder adManagerAdRequestBuilder =
AMBidMachineUtils.createAdManagerRequestBuilder(bannerRequest);
AdManagerAdRequest adManagerAdRequest = adManagerAdRequestBuilder.build();
- Fill an existing
AdManagerAdRequest.Builderinstance
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
canShowon theBannerViewinstance 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 2 years ago