模板信息流

模板信息流

  • 类型说明:本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。