原生
优质
小牛编辑
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. 请求广告返回第三方广告信息
属性 iSChannelAd
为 YES
时为第三方广告。 使用 channeNativeAdView
数组内的数据进行广告布局。 第三方广告直接返回 channeNativeAdView
数组内部为封装好的广告View,将数组内的View直接add到对应的位置就可以完成,无法使用model模式进行自定义View。 详情查看Demo。