原生

优质
小牛编辑
139浏览
2023-12-01

IMPORTANT 曝光时遵循看见广告在展示曝光

1. 包含头文件

#import <AdHubSDK/AdHubSDK.h>

2. AdHubNative 的创建和初始化

在需要导入广告的ViewController头文件中导入头文件并声明实例以及声明代理

#import <AdHubSDK/AdHubSDK.h>

@interface AdHubNativeViewController () <AdHubNativeDelegate>

@property (nonatomic, strong) AdHubNative *native;
@property (nonatomic, strong) UIView *bgView;

@end

创建和初始化广告

//  创建加载原生广告的View
self.bgView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 375, 280)];
self.bgView.backgroundColor = [UIColor orangeColor];
[self.view addSubview:self.bgView];
//  初始化广告位
self.native = [[AdHubNative alloc]initWithSpaceID:self.spaceID spaceParam:@""];
//  设置当前的VC,用于广告位点击跳转
self.native.adhubNativeViewController = self;
//  设置加载广告的View
self.native.adhubNativeView = self.bgView;
self.native.delegate = self;
//  加载广告的个数,广告分为渠道广告和AdHub自由广告,当请求自由广告时,默认返回1条广告,渠道广告返回设置条数,不要超过10条。ps:设置多条会影响广告的曝光率,广告展示才可以曝光,当请求多条广告,可能有一些广告没有曝光就不在使用了,会影响价格。
[self.native ADH_loadNativeAd:1];

3. AdHubNative 主要属性说明

/**
spaceID广告位ID
spaceParam备用参数
*/
@property (nonatomic, copy, readonly) NSString *spaceID;
@property (nonatomic, copy, readonly) NSString *spaceParam;

/**
用来接收原生广告获取状态变化通知的 delegate
*/
@property (nonatomic, weak) id<AdHubNativeDelegate> delegate;

/**
显示adhub广告的View,此参数不能为空
*/
@property (nonatomic, weak) UIView *adhubNativeView;
/**
显示渠道广告时,想要返回的view尺寸,默认宽度充满屏幕,高度自适应
*/
@property (nonatomic, assign) CGSize channelAdSize;

/**
adhubNativeViewController 展示view的控制器或者弹出落地页的需要的控制器,此参数不能为空
*/
@property (nonatomic, weak) UIViewController *adhubNativeViewController;

/**
是否由SDK生成Logo,默认Yes。
*/
@property (nonatomic, assign) BOOL iSAdLogoView;

/**
初始化方法
@param spaceID 广告位 ID
@param spaceParam 广告位参数 可填写任意字符串
@return 原生广告对象

*/
- (instancetype)initWithSpaceID:(NSString *)spaceID
spaceParam:(NSString *)spaceParam NS_DESIGNATED_INITIALIZER;

/**
是否为渠道广告,当iSChannelAd为NO时,使用adDataModels自定义广告。当iSChannelAd为YES时,使用channeNativeAdView将View直接添加到页面。
*/
@property (nonatomic, assign, readonly) BOOL iSChannelAd;

/**
广告加载成功后获得的 原生广告数据模型(使用model数据,自定义View样式)
*/
@property (nonatomic, strong, readonly) NSArray<AdHubNativeAdDataModel *> *adDataModels;

/**
广告加载成功后获得的 View广告(数组内部为加载完成的View形式广告,直接add到目标View)
*/
@property (nonatomic, strong, readonly) NSArray *channeNativeAdView;

/**
Native 获取
@param count 广告条数(渠道广告时候生效,adhub广告只能拉取1条广告)
*/
- (void)ADH_loadNativeAd:(int)count;

4. AdHubNativeDelegate 的方法说明

/**
原生广告请求成功
*/
- (void)ADH_nativeDidLoad:(AdHubNative *)adHubNative;

/**
原生广告点击
*/
- (void)ADH_nativeDidClick:(AdHubNative *)adHubNative;

/**
原生广告请求失败
*/
- (void)ADH_native:(AdHubNative *)adHubNative didFailToLoadAdWithError:(AdHubRequestError *)error;

5. 原生广告数据模型 AdHubNativeAdDataModel 的主要属性

//  按钮文字
@property (nonatomic, strong, readonly) NSString *adhubAction;
//  广告标题
@property (nonatomic, strong, readonly) NSString *adhubHeadline;
//  广告图片素材
@property (nonatomic, strong, readonly) NSArray *adhubImages;
//  广告文字素材
@property (nonatomic, strong, readonly) NSArray *adhubTexts;
//  广告视频素材
@property (nonatomic, strong, readonly) NSArray *adhubVideos;


// 由于广告法规定,必须添加logo,(建议:广告图片放置在广告的左下角,logo放置在广告的右下角)
//  广告图片,当此字符串不为空时,加载adLabelURL的图片。
@property (nonatomic, strong, readonly) NSString *adhubLabelURL;
//  广告文字,当adLabelURL为空时,使用adLabel的文字
@property (nonatomic, strong, readonly) NSString *adhubLabel;
//  logo图片,当此字符串不为空时,加载logoURL的图片。
@property (nonatomic, strong, readonly) NSString *adhubLogoURL;
//  logo文字,当logoURL为空时,使用logoLabel的文字
@property (nonatomic, strong, readonly) NSString *adhubLogoLabel;

6. 请求广告返回第三方广告信息

属性 iSChannelAdYES 时为第三方广告。 使用 channeNativeAdView 数组内的数据进行广告布局。 第三方广告直接返回 channeNativeAdView 数组内部为封装好的广告View,将数组内的View直接add到对应的位置就可以完成,无法使用model模式进行自定义View。 详情查看Demo。