Banner Ad
1. Basic requirements
Add ADX iOS SDK to your project.
Use the Ad Unit ID issued for Banner Ads.
Before requesting an ad, SDK initialization must be done first.
SDK initialization should be called only once when the app launches and ad requests should be made after SDK initialization is complete.
For iOS 14 and later, request ads only after obtaining ATT (App Tracking Transparency) permission.
2. Implementation
Instantiate an
ADXAdView
using theinitWithAdUnitId:adSize:rootViewController:
method and register the ADXAdViewDelegate callbacks.ADXAdSizeSize (width * height)ADXAdSizeBanner
320 * 50
ADXAdSizeLargeBanner
320 * 100
ADXAdSizeMediumRectangle
320 * 250
ADXAdSizeLeaderboard
728 * 90
Set the frame of the
bannerView
and add it to theViewController
.Call
loadAd
to request an ad.
#import <ADXLibrary/ADXAdView.h>
@interface BannerViewController () <ADXAdViewDelegate>
@property (strong) ADXAdView *bannerView;
@end
@implementation BannerViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.bannerView = [[ADXAdView alloc]
initWithAdUnitId:@"<ADX_BANNER_AD_UNIT_ID>"
adSize:ADXAdSizeBanner
rootViewController:self];
self.bannerView.delegate = self;
self.bannerView.frame = CGRectMake(
(self.view.bounds.size.width - ADXAdSizeBanner.width) / 2,
0,
ADXAdSizeBanner.width,
ADXAdSizeBanner.height);
[self.view addSubview:self.bannerView];
[self.bannerView loadAd];
}
#pragma mark - ADXAdViewDelegate
- (void)adViewDidLoad:(ADXAdView *)adView {
NSLog(@"adViewDidLoad");
}
- (void)adView:(ADXAdView *)adView didFailToLoadWithError:(NSError *)error {
NSLog(@"adView:didFailToLoadWithError: %@", error);
}
- (void)adViewDidClick:(ADXAdView *)adView {
NSLog(@"adViewDidClick");
}
3. Callback
You can receive banner ad events through the ADXAdViewDelegate
.
- (void)adViewDidLoad:(ADXAdView *)adView;
- (void)adView:(ADXAdView *)adView didFailToLoadWithError:(NSError *)error;
- (void)adViewDidClick:(ADXAdView *)adView;
4. Ad Revenue (paidEventHandler)
You can check the estimated ad revenue for ad impressions.
#import <UIKit/UIKit.h>
#import <ADXLibrary/ADXAdView.h>
#import <FirebaseAnalytics/FirebaseAnalytics.h>
#import <AppsFlyerAdRevenue/AppsFlyerAdRevenue.h>
@interface BannerViewController () <ADXAdViewDelegate>
@property (strong) ADXAdView * bannerView;
@end
@implementation BannerViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.bannerView = [[ADXAdView alloc]
initWithAdUnitId:@"<ADX_BANNER_AD_UNIT_ID>"
adSize:ADXAdSizeBanner
rootViewController:self];
self.bannerView.delegate = self;
__weak typeof(self) weakSelf = self;
self.bannerView.paidEventHandler = ^(double eCPM) {
__strong typeof(self) strongSelf = weakSelf;
if(!strongSelf) { return; }
NSNumber * revenue = [NSNumber numberWithDouble:eCPM/1000];
[strongSelf handleAdRevenue:revenue];
};
}
- (void)handleAdRevenue:(NSNumber *)revenue {
// 1) Firebase Analytics
[FIRAnalytics logEventWithName:kFIREventAdImpression
parameters: @{
kFIRParameterAdPlatform: @"AD(X)",
kFIRParameterAdFormat: @"BannerAd",
kFIRParameterAdUnitName: @"ADX Banner Ad",
kFIRParameterCurrency: @"USD",
kFIRParameterValue: revenune
}];
// 2) AppsFlyer
NSDictionary * adRevenueParams = @{
@"AdUnitName" : @"ADX Banner Ad",
@"AdType" : @"BannerAd",
};
AppsFlyerAdRevenue * appsFlyerAdRevenue = [AppsFlyerAdRevenue shared];
[appsFlyerAdRevenue
logAdRevenueWithMonetizationNetwork:@"AD(X)"
mediationNetwork:AppsFlyerAdRevenueMediationNetworkTypeCustom
eventRevenue:revenune
revenueCurrency:@"USD"
additionalParameters:adRevenueParams];
}
#pragma mark - ADXAdViewDelegate
- (void)adViewDidLoad:(ADXAdView *)adView {}
- (void)adView:(ADXAdView *)adView didFailToLoadWithError:(NSError *)error {}
- (void)adViewDidClick:(ADXAdView *)adView {}
@end
Last updated
Was this helpful?