🇨🇳
Adx3
CN
CN
  • 用户操作手册
    • 投手操作手册(PMP)
      • (一)用户登录
      • (二)订单管理
      • (三)广告投放
      • (四)广告数据
      • (五)财务管理
      • (六)素材库
      • (七)用户中心
    • 用户操作手册(DSP-Facebook)
      • 一、统一说明
      • 1.1 注册/登录
      • 1.2 常见问题
      • 二、首页
      • 2.1 名词解释
      • 2.2 页面功能
        • 2.2.1 账户充值
        • 2.2.2 数据查看
      • 三、产品管理
        • 3.1 创建/管理产品
        • 3.2 产品概览
        • 3.3 广告代投
        • 3.4 广告投放
        • 3.5 广告监测
        • 3.6 数据统计
        • 3.7 费用明细
      • 四、数据源管理
      • 五、账号管理
      • 六、代投订单
      • 七、素材库
      • 八、用户中心
    • 用户操作手册(Account)
    • 用户操作手册(SSP)
      • (一)登录操作
      • (二)网站
      • (三)应用-安卓应用
      • (四)提现
      • (五)广告统计
      • (六)用户中心
    • 用户操作手册(PMSP)
    • 用户操作手册(AGENT)
      • (一)登录充值
      • (二)账户管理
      • (三)资金账户
      • (四)数据查看
  • 接口文档
    • 监测事件回传(DSP)
    • 监测事件回传(SSP)
    • CPA、CPS事件上报
    • ANDROID
      • 开始
        • 入门指南
        • 测试广告
      • 广告格式
        • 横幅广告
        • 插屏广告
        • 激励广告
        • 开屏广告
        • 原生广告
        • 多重广告
    • IOS
      • 开始
        • 入门指南
        • 测试广告
      • 广告格式
        • 开屏广告
        • 横幅广告
        • 插屏广告
        • 激励广告
        • 原生广告
        • 多重广告
  • FAQ
    • FAQ
Powered by GitBook
On this page
  • 前提条件
  • 务必使用测试广告进行测试
  • 接入步骤
  • 请求广告
  • 创建 Adx3NativeAdView
  • 注册代理
  • 展示广告
  1. 接口文档
  2. IOS
  3. 广告格式

原生广告

Previous激励广告Next多重广告

Last updated 2 years ago

原生广告是通过平台原本就有的界面组件向用户呈现的广告素材资源。这种广告采用您已经在 Xib 中使用的那些类进行展示,能以和应用视觉设计相称的形式呈现,让用户有浑然一体的使用体验。加载原生广告时,您的应用会收到一个包含其素材资源的广告对象,然后由应用(而不是 SDK)负责展示它们。这与其他广告格式不同,采用其他广告格式时您无法自行调整广告的外观。

前提条件

  • 通读

务必使用测试广告进行测试

在构建和测试应用时,请确保使用的是测试广告,而不是实际投放的广告。否则,可能会导致您的账号被暂停使用。对于 iOS 原生广告,使用下面的测试专用广告单元 ID:

63a5739a75da4

该测试广告单元 ID 已经过专门配置,可确保每个请求返回的都是测试广告。您可以在自己应用的编码、测试和调试过程中随意使用该测试广告单元 ID。需要注意的一点是,请务必在发布应用前用您的广告单元 ID 替换该测试广告单元 ID。

接入步骤

  • 请求广告

  • 创建 Adx3NativeAdView

  • 注册代理

  • 展示广告

请求广告

原生广告通过 Adx3NativeAd 对象加载,由 Adx3NativeAdViewDelegate 发送相关消息。代码示例:

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];
} 

@end

创建 Adx3NativeAdView

创建 Adx3NativeAdView 之前,你需要创建一个继承自 Adx3NativeAdView 的 Xib 文件,实现您的自定义布局。代码示例:

func 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]];
} 

注册代理

您可以实现 Adx3NativeAdViewDelegate 方法,获取 Adx3NativeAd 对象中的广告内容,代码示例:

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(@"----")
}

展示广告

请求和创建广告后,剩下的工作就是将广告展示给用户了。

入门指南