模板信息流
模板信息流
- 类型说明:本SDK为接入方提供竖版信息流广告,它支持图文和视频样式,允许开发者直接调用相关接口获取广告view进行展示,而无需自行编辑和渲染广告样式。
SYNativeExpressFeedAdManager,SYNativeExpressFeedAd说明
@interface SYNativeExpressFeedAdManager : SYAd
@property(nonatomic, weak) id<SYNativeExpressFeedAdManagerDelegate> delegate;
/** 期望素材大小,具体的大小以联盟返回素材为准 */
@property (nonatomic) CGSize adSize;
/*
*required.[必选]
* 详解:开发者需传入用来弹出目标页的ViewController,一般为当前ViewController
*/
@property (nonatomic, weak) UIViewController *rootViewController;
@property (nonatomic, strong) NSArray<SYNativeExpressFeedAd *> *data;
///视频静音, 默认:NO
@property (nonatomic) BOOL mutedIfCan;
-(instancetype)initWithPlacementId:(NSString *)placementId size:(CGSize)size;
/**
* 加载广告,建议最大个数不超过5个
*/
-(void)loadAdDataWithCount:(NSInteger)count;
@end
//SYNativeExpressFeedAd
@interface SYNativeExpressFeedAd : NSObject
@property (nonatomic,strong,readonly) UIView *feedView;
/**
* Whether render is ready
*/
@property (nonatomic, assign,readonly) BOOL isReady;
@property(nonatomic,weak) id<SYNativeExpressFeedAdDelegate> delegate;
/*
*required.[必选]
* 详解:开发者需传入用来弹出目标页的ViewController,一般为当前ViewController
*/
@property (nonatomic, weak) UIViewController *rootViewController;
/*
*required [必选]
*原生模板广告渲染
*/
- (void)render;
@end
SYNativeExpressFeedAdManagerDelegate SYNativeExpressFeedAdDelegate回调说明
@protocol SYNativeExpressFeedAdManagerDelegate <NSObject>
@optional
//数据加载成功
- (void)sy_nativeExpressFeedAdManagerSuccessToLoad:(SYNativeExpressFeedAdManager *)adsManager nativeAds:(NSArray<SYNativeExpressFeedAd *> *_Nullable)feedAdDataArray;
//数据加载失败
- (void)sy_nativeExpressFeedAdManager:(SYNativeExpressFeedAdManager *)adsManager didFailWithError:(NSError *_Nullable)error;
@end
@protocol SYNativeExpressFeedAdDelegate <NSObject>
@optional
//SYNativeExpressFeedAd
/**
* 广告渲染成功
*/
- (void)sy_nativeExpressFeedAdRenderSuccess:(SYNativeExpressFeedAd *)feedAd;
/**
* 广告渲染失败
*/
- (void)sy_nativeExpressFeedAdRenderFail:(SYNativeExpressFeedAd *)feedAd;
/**
*广告即将展示
*/
- (void)sy_nativeExpressFeedAdViewWillShow:(SYNativeExpressFeedAd *)feedAd;
/**
*广告点击
*/
- (void)sy_nativeExpressFeedAdDidClick:(SYNativeExpressFeedAd *)feedAd;
/**
*不喜欢该广告
*/
- (void)sy_nativeExpressFeedAdDislike:(SYNativeExpressFeedAd *)feedAd;
/**
*展示落地页
*/
- (void)sy_nativeExpressFeedAdDidShowOtherController:(SYNativeExpressFeedAd *)nativeAd;
/**
*关闭落地页
*/
- (void)sy_nativeExpressFeedAdDidCloseOtherController:(SYNativeExpressFeedAd *)nativeAd;
@end
加载模板信息流广告
if (!_feedAd) {
_feedAd = [[SYNativeExpressFeedAdManager alloc] initWithPlacementId:@"K4000000007" size:CGSizeMake(self.tableView.frame.size.width, 0)];
}
_feedAd.delegate = self;
_feedAd.mutedIfCan = YES;
_feedAd.rootViewController = self;
[_feedAd loadAdDataWithCount:3];
//数据加载成功
-(void)sy_nativeExpressFeedAdManagerSuccessToLoad:(SYNativeExpressFeedAdManager *)adsManager nativeAds:(NSArray<SYNativeExpressFeedAd *> *)feedAdDataArray{
//不要保存太多广告,需要在合适的时机手动释放不用的,否则内存会过大
if (self.adArray.count > 0) {
for (SYNativeExpressFeedAd *feedAd in self.adArray) {
[self.dataArray removeObject:feedAd];
}
}
for (int i = 0; i<feedAdDataArray.count; i++) {
SYNativeExpressFeedAd *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)sy_nativeExpressFeedAdRenderSuccess:(SYNativeExpressFeedAd *)feedAd{
[self.tableView reloadData];
}
TIP
加载广告具体示例详见Demo中的SYNativeExpressAdsViewController。
