Native Ad
#import <UIKit/UIKit.h>
#import <ADXLibrary/ADXNativeAdFactory.h>
#import "NativeAdViewController.h"
#import "NativeAdView.h"
#import <FirebaseAnalytics/FirebaseAnalytics.h>
#import <AppsFlyerAdRevenue/AppsFlyerAdRevenue.h>
@interface NativeAdViewController () <ADXNativeAdFactoryDelegate, ADXNativeAdDelegate>
@property (nonatomic, strong) ADXNativeAd *nativeAd;
@end
@implementation NativeAdViewController
- (void)viewDidLoad {
[super viewDidLoad];
[[ADXNativeAdFactory sharedInstance]
setRenderingViewClass:@"<ADX_NATIVE_AD_UNIT_ID>"
renderingViewClass:[NativeAdView class]];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[[ADXNativeAdFactory sharedInstance] addDelegate:self];
[[ADXNativeAdFactory sharedInstance] loadAd:@"<ADX_NATIVE_AD_UNIT_ID>"];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[[ADXNativeAdFactory sharedInstance] removeDelegate:self];
}
- (void)handleAdRevenue:(NSNumber *)revenue {
// Firebase Analytics 샘플
[FIRAnalytics logEventWithName:kFIREventAdImpression
parameters: @{
kFIRParameterAdPlatform: @"AD(X)",
kFIRParameterAdFormat: @"NativeAd",
kFIRParameterAdUnitName: @"ADX Native Ad",
kFIRParameterCurrency: @"USD",
kFIRParameterValue: revenune
}];
// AppsFlyer 샘플
NSDictionary * adRevenueParams = @{
@"AdUnitName" : @"ADX Native Ad",
@"AdType" : @"NativeAd",
};
AppsFlyerAdRevenue * appsFlyerAdRevenue = [AppsFlyerAdRevenue shared];
[appsFlyerAdRevenue
logAdRevenueWithMonetizationNetwork:@"AD(X)"
mediationNetwork:AppsFlyerAdRevenueMediationNetworkTypeCustom
eventRevenue:revenune
revenueCurrency:@"USD"
additionalParameters:adRevenueParams];
}
#pragma mark - ADXNativeAdFactoryDelegate
- (void)onSuccess:(NSString *)adUnitId nativeAd:(ADXNativeAd *)nativeAd {
NSLog(@"onSuccess : %@", adUnitId);
if([adUnitId isEqualToString:@"<ADX_NATIVE_AD_UNIT_ID>"]) {
self.nativeAd = nativeAd;
self.nativeAd.delegate = self;
__weak typeof(self) weakSelf = self;
self.nativeAd.paidEventHandler = ^(double eCPM) {
__strong typeof(self) strongSelf = weakSelf;
if(!strongSelf) { return; }
NSNumber * revenue = [NSNumber numberWithDouble:eCPM/1000];
[strongSelf handleAdRevenue:revenue];
};
UIView *nativeAdView = [[ADXNativeAdFactory sharedInstance]
getNativeAdView:@"<ADX_NATIVE_AD_UNIT_ID>"];
nativeAdView.frame = CGRectMake(0.0,
100.0,
320.0,
300.0);
[self.view addSubview:nativeAdView];
}
}
- (void)onFailure:(NSString *)adUnitId {
NSLog(@"onFailure : %@", adUnitId);
}
#pragma mark - ADXNativeAdDelegate
- (UIViewController *)viewControllerForPresentingModalView {
return self;
}
@end
Last updated
Was this helpful?