模板信息流
模板信息流
- 类型说明:本SDK为接入方提供竖版信息流广告,它支持图文和视频样式,允许开发者直接调用相关接口获取广告view进行展示,而无需自行编辑和渲染广告样式。
ZJNativeExpressFeedAdManager,ZJNativeExpressFeedAd说明
@interface ZJNativeExpressFeedAdManager : ZJAd
@property(nonatomic,weak) id<ZJNativeExpressFeedAdManagerDelegate> delegate;
/** 期望素材大小,具体的大小以联盟返回素材为准 */
@property (nonatomic)CGSize adSize;
@property (nonatomic, strong) NSArray<ZJNativeExpressFeedAd *> *data;
-(instancetype)initWithPlacementId:(NSString *)placementId size:(CGSize)size;
/**
* 加载广告,建议最大个数不超过5个
*/
-(void)loadAdDataWithCount:(NSInteger)count;
@end
//ZJNativeExpressFeedAd
@interface ZJNativeExpressFeedAd : NSObject
@property (nonatomic,strong,readonly) UIView *feedView;
/**
* Whether render is ready
*/
@property (nonatomic, assign,readonly) BOOL isReady;
@property(nonatomic,weak) id<ZJNativeExpressFeedAdDelegate> delegate;
/*
*required.[必选]
* root view controller for handling ad actions.
* 详解:开发者需传入用来弹出目标页的ViewController,一般为当前ViewController
*/
@property (nonatomic, weak) UIViewController *rootViewController;
/*
*required [必选]
*原生模板广告渲染
*/
- (void)render;
@end
ZJNativeExpressFeedAdManagerDelegate ZJNativeExpressFeedAdDelegate回调说明
@protocol ZJNativeExpressFeedAdManagerDelegate <NSObject>
@optional
//数据加载成功
- (void)ZJ_nativeExpressFeedAdManagerSuccessToLoad:(ZJNativeExpressFeedAdManager *)adsManager nativeAds:(NSArray<ZJNativeExpressFeedAd *> *_Nullable)feedAdDataArray;
//数据加载失败
- (void)ZJ_nativeExpressFeedAdManager:(ZJNativeExpressFeedAdManager *)adsManager didFailWithError:(NSError *_Nullable)error;
@end
@protocol ZJNativeExpressFeedAdDelegate <NSObject>
@optional
//ZJNativeExpressFeedAd
/**
* 广告渲染成功
*/
- (void)ZJ_nativeExpressFeedAdRenderSuccess:(ZJNativeExpressFeedAd *)feedAd;
/**
* 广告渲染失败
*/
- (void)ZJ_nativeExpressFeedAdRenderFail:(ZJNativeExpressFeedAd *)feedAd;
/**
*广告即将展示
*/
- (void)ZJ_nativeExpressFeedAdViewWillShow:(ZJNativeExpressFeedAd *)feedAd;
/**
*广告点击
*/
- (void)ZJ_nativeExpressFeedAdDidClick:(ZJNativeExpressFeedAd *)feedAd;
/**
*不喜欢该广告
*/
- (void)ZJ_nativeExpressFeedAdDislike:(ZJNativeExpressFeedAd *)feedAd;
/**
*展示落地页
*/
- (void)ZJ_nativeExpressFeedAdDidShowOtherController:(ZJNativeExpressFeedAd *)nativeAd;
/**
*关闭落地页
*/
- (void)ZJ_nativeExpressFeedAdDidCloseOtherController:(ZJNativeExpressFeedAd *)nativeAd;
@end
bidding比价竞胜/竞败方法
- 竞胜
/**
* @brief 设置竞价价格,单位(分)
* @param ecpm 竞价价格
* @param highestLossEcpm 最大竞价失败方出价
*/
- (void)setBidEcpm:(NSInteger)ecpm
highestLossEcpm:(NSInteger)highestLossEcpm
- 竞败
/**
* @brief 广告曝光失败后上报失败原因
* @param failureCode 曝光失败原因类型
* @param reportParam 曝光失败原因描述
* reportParam.winEcpm 胜出者的ecpm报价(单位:分)
* reportParam.adnType 胜出方,见ZJAdExposureReportParam.h 中ZJAdExposureAdnType定义
* reportParam.adnName 胜出平台名,见ZJAdExposureReportParam.h 中ZJAdADNType平台定义
*/
- (void)reportAdExposureFailed:(ZJAdExposureFailureCode)failureCode reportParam:(ZJAdExposureReportParam *)reportParam;
加载模板信息流广告
if (!_feedAd) {
_feedAd = [[ZJNativeExpressFeedAdManager alloc] initWithPlacementId:@"K4000000007" size:CGSizeMake(self.tableView.frame.size.width, 0)];
}
_feedAd.delegate = self;
[_feedAd loadAdDataWithCount:3];
//数据加载成功
-(void)ZJ_nativeExpressFeedAdManagerSuccessToLoad:(ZJNativeExpressFeedAdManager *)adsManager nativeAds:(NSArray<ZJNativeExpressFeedAd *> *)feedAdDataArray{
//不要保存太多广告,需要在合适的时机手动释放不用的,否则内存会过大
if (self.adArray.count > 0) {
for (ZJNativeExpressFeedAd *feedAd in self.adArray) {
[self.dataArray removeObject:feedAd];
}
}
for (int i = 0; i<feedAdDataArray.count; i++) {
ZJNativeExpressFeedAd *feedAd = feedAdDataArray[i];
feedAd.rootViewController = self;
feedAd.delegate = self;
[feedAd render];
NSInteger index = i*3;
if (index >= self.dataArray.count) {
[self.dataArray addObject:feedAd];
}else{
[self.dataArray insertObject:feedAd atIndex:index];
}
}
self.adArray = feedAdDataArray;
// [self.tableView reloadData];
}
/**
* 广告渲染成功
*/
- (void)ZJ_nativeExpressFeedAdRenderSuccess:(ZJNativeExpressFeedAd *)feedAd{
[self.tableView reloadData];
}
TIP
加载广告具体示例详见Demo中的ZJNativeExpressAdsViewController。