Banner
Banner implementation
First you need to load ad from BidMachine
__weak typeof(self) weakSelf = self;
[BidMachineSdk.shared banner:nil :^(BidMachineBanner *banner, NSError *error) {
if (error) {
return;
}
weakSelf.bidmachineBanner = banner;
weakSelf.bidmachineBanner.controller = weakSelf;
weakSelf.bidmachineBanner.delegate = weakSelf;
[weakSelf.bidmachineBanner loadAd];
}];
After loading the ad, you need to load GAM ad with BidMachine ad parameters.
Don't forget to install appEventDelegate
GAM request params should contains price with x.xx format
- (NSNumberFormatter *)formatter {
static NSNumberFormatter *roundingFormater = nil;
if (!roundingFormater) {
roundingFormater = [NSNumberFormatter new];
roundingFormater.numberStyle = NSNumberFormatterDecimalStyle;
roundingFormater.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
roundingFormater.roundingMode = NSNumberFormatterRoundCeiling;
roundingFormater.positiveFormat = @"0.00";
}
return roundingFormater;
}
#pragma mark - BidMachineAdDelegate
- (void)didLoadAd:(id<BidMachineAdProtocol> _Nonnull)ad {
GAMRequest *googleRequest = [GAMRequest request];
googleRequest.customTargeting = @{
@"bm_pf" : [self.formatter stringFromNumber:@(ad.auctionInfo.price)]
};
self.googleBanner = [[GAMBannerView alloc] initWithAdSize:GADAdSizeBanner];
self.googleBanner.delegate = self;
self.googleBanner.adUnitID = @UNIT_ID;
self.googleBanner.rootViewController = self;
self.googleBanner.appEventDelegate = self;
[self.googleBanner loadRequest:googleRequest];
}
If the GAM Ad loads successfully, you need to listen events delegate.
If the event name matches the registered event for BidMachine, then you need to show the ad via BidMachine. If it does not match, then show through GAM
- (void)bannerViewDidReceiveAd:(nonnull GADBannerView *)bannerView {
// WAIT AD EVENT DELEGATE
}
- (void)bannerView:(nonnull GADBannerView *)bannerVie didFailToReceiveAdWithError:(nonnull NSError *)error {
// FAIL LOAD
}
- (void)adView:(nonnull GADBannerView *)banner didReceiveAppEvent:(nonnull NSString *)name withInfo:(nullable NSString *)info {
if ([name isEqualToString:@"bidmachine-banner"]) {
// SHOW BidMachine
} else {
// SHOW GADBannerView
}
}
Updated 8 months ago