Last updated
import UIKit
class ViewController: UIViewController {
let nativeAd = Adx3NativeAd()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
func loadNativeAd() {
nativeAd.load(withPlacementID: "Your Placement ID", userId: "", delegate: self)
}
}#import "Adx3Framework/Adx3Ad.h"
@interface ViewController ()
@property (strong, nonatomic) Adx3NativeAd *nativeAd;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self loadNativeAd];
}
- (void)loadNativeAd {
self.nativeAd = [[Adx3NativeAd alloc] init];
[self.nativeAd loadNativeAdWithPlacementID:@"Your Placement ID" userId:@"" delegate:self];
}
@endfunc addNativeAdView() {
nativeAdView = Bundle.main.loadNibNamed("Adx3NativeView", owner: nil, options: nil)?.first as? Adx3NativeAdView
nativeAdView.translatesAutoresizingMaskIntoConstraints = false
backgroundView.addSubview(nativeAdView)
backgroundView.addConstraint(NSLayoutConstraint.init(item: nativeAdView!, attribute: .left, relatedBy: .equal, toItem: backgroundView, attribute: .left, multiplier: 1.0, constant: 0))
backgroundView.addConstraint(NSLayoutConstraint.init(item: nativeAdView!, attribute: .right, relatedBy: .equal, toItem: backgroundView, attribute: .right, multiplier: 1.0, constant: 0))
backgroundView.addConstraint(NSLayoutConstraint.init(item: nativeAdView!, attribute: .top, relatedBy: .equal, toItem: backgroundView, attribute: .top, multiplier: 1.0, constant: 0))
backgroundView.addConstraint(NSLayoutConstraint.init(item: nativeAdView!, attribute: .bottom, relatedBy: .equal, toItem: backgroundView, attribute: .bottom, multiplier: 1.0, constant: 0))
}- (void)addNativeAdView {
[self.nativeAdView removeFromSuperview];
self.nativeAdView = [[NSBundle mainBundle] loadNibNamed:@"Your Xib File Name" owner:nil options:nil]
.firstObject;
[self.nativeAdView setTranslatesAutoresizingMaskIntoConstraints:NO];
NSDictionary *viewDictionary = NSDictionaryOfVariableBindings(_nativeAdView);
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_nativeAdVi options:0
metrics:nil
views:viewDictionary]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_nativeAdView]|"
options:0
metrics:nil
views:viewDictionary]];
} extension ViewController {
func nativeAdDidReceive(_ nativeAd: Adx3NativeAd) {
nativeAdView.nativeAd = nativeAd;
nativeAdView.titleLabel!.text = nativeAd.title;
nativeAdView.subLabel!.text = nativeAd.shop_name;
nativeAdView.mediaView!.urlString = nativeAd.material;
nativeAdView.descLabel!.text = nativeAd.describe;
let queue = DispatchQueue.global()
queue.async { [self] in
let data = try! Data.init(contentsOf: URL(string: nativeAd.logo)!)
let image = UIImage(data: data)
nativeAdView.iconImageView!.image = image
}
}
func nativeAdDidClick(withPlacementID placementID: String, extra: [AnyHashable : Any]) {
}
func nativeAdDidFailToReceiveAdWithError(_ error: Error) {
}
}
- (void)nativeAdDidFailToReceiveAdWithError:(NSError *)error {
NSLog(@"----%@----",error);
}
- (void)nativeAdDidReceiveNativeAd:(Adx3NativeAd *)nativeAd {
NSLog(@"----Native AD Load Success----");
self.nativeAdView.nativeAd = nativeAd;
self.nativeAdView.titleLabel.text = nativeAd.title;
self.nativeAdView.subLabel.text = nativeAd.shop_name;
self.nativeAdView.mediaView.urlString = nativeAd.material;
self.nativeAdView.descLabel.text = nativeAd.describe;
dispatch_queue_t queue = dispatch_queue_create(0, 0);
dispatch_async(queue, ^{
NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:nativeAd.logo]];
UIImage *img=[UIImage imageWithData:data];
dispatch_async(dispatch_get_main_queue(), ^{
self.nativeAdView.iconImageView.image = img;
});
});
}
- (void)nativeAdDidClickWithPlacementID:(NSString *)placementID extra:(NSDictionary *)extra {
NSLog(@"----")
}