视频流广告
视频流广告
接入视频流广告(SYFeedFullVideoView)
- 类型说明:本SDK为接入方提供竖版视频信息流广告,该广告适合在竖版全屏视频流中使用,接入方可以控制视频暂停或继续播放,默认视频播放不可干预,视频广告相关配置可以在平台设置。 支持的广告尺寸: 全屏竖版。
SYFeedFullVideoProvider,SYFeedFullVideoView说明
@interface SYFeedFullVideoProvider : SYAd
//请求广告尺寸
@property(nonatomic,assign) CGSize adSize;
@property(nonatomic,weak) id<SYFeedFullVideoProviderDelegate> delegate;
- (instancetype)initWithPlacementId:(NSString *)placementId;
//count 返回广告最大数量
- (void)loadAd:(NSInteger)count;
@end
SYFeedFullVideoProviderDelegate广告回调说明
@protocol SYFeedFullVideoProviderDelegate <NSObject>
/**
* 广告加载成功
*/
- (void)sy_feedFullVideoProviderLoadSuccess:(SYFeedFullVideoProvider *)provider views:(NSArray<__kindof SYFeedFullVideoView *> *)views;
/**
* 广告加载失败
*/
- (void)sy_feedFullVideoProviderLoadFail:(SYFeedFullVideoProvider *)provider error:(NSError *_Nullable)error;
/**
* 广告渲染成功, SYFeedFullVideoView.size.height has been updated
*/
- (void)sy_feedFullVideoAdViewRenderSuccess:(SYFeedFullVideoProvider *)provider view:(SYFeedFullVideoView*) adView;
/**
* 广告渲染失败
*/
- (void)sy_feedFullVideoAdViewRenderFail:(SYFeedFullVideoProvider *)provider view:(SYFeedFullVideoView*) adView error:(NSError *_Nullable)error;
/**
* 广告曝光回调
*/
- (void)sy_feedFullVideoAdViewWillShow:(SYFeedFullVideoProvider *)provider view:(SYFeedFullVideoView*) adView;
/**
视频广告播放状态更改回调
*/
- (void)sy_feedFullVideoAdViewStateDidChanged:(SYFeedFullVideoProvider *)provider view:(SYFeedFullVideoView*) adView state:(SY_MediaPlayerStatus)playerState;
/**
视频广告播放完毕
*/
- (void)sy_feedFullVideoAdViewPlayerDidPlayFinish:(SYFeedFullVideoProvider *)provider view:(SYFeedFullVideoView*) adView;
/**
* 广告点击回调
*/
- (void)sy_feedFullVideoAdViewDidClick:(SYFeedFullVideoProvider *)provider view:(SYFeedFullVideoView*) adView;
/**
* 广告详情页面即将展示回调
*/
- (void)sy_feedFullVideoAdViewDetailViewWillPresentScreen:(SYFeedFullVideoProvider *)provider view:(SYFeedFullVideoView*) adView;
/**
*广告详情页关闭回调
*/
- (void)sy_feedFullVideoAdViewDetailViewClosed:(SYFeedFullVideoProvider *)provider view:(SYFeedFullVideoView*) adView;
@end
加载视频流广告
- Objective-C
- (void)loadData {
if(!self.adProvider){
self.adProvider = [[SYFeedFullVideoProvider alloc] initWithPlacementId:@"KS90010003"];
self.adProvider.delegate = self;
self.adProvider.adSize = self.view.bounds.size;
}
[self.adProvider loadAd:5];
}
/**
* 广告加载成功
*/
- (void)sy_feedFullVideoProviderLoadSuccess:(SYFeedFullVideoProvider *)provider views:(NSArray<__kindof SYFeedFullVideoView *> *)views{
if (views.count) {
NSMutableArray *dataSources = [NSMutableArray arrayWithCapacity:0];
[views enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
SYFeedFullVideoView *videoView = (SYFeedFullVideoView *)obj;
videoView.rootViewController = self;
// important: 此处会进行WKWebview的渲染,建议一次最多预加载三个广告,如果超过3个会很大概率导致WKWebview渲染失败。
[videoView render];
[dataSources addObject:videoView];
}];
self.dataSource = [dataSources copy];
}
[self.tableView reloadData];
}
- Swift
self.adProvider = SYFeedFullVideoProvider.init(placementId: self.placementId! as String, delegate: self);
self.adProvider.adSize = self.view.bounds.size;
self.adProvider.loadAd(2);
/**
* 广告加载成功
*/
func sy_feedFullVideoProviderLoadSuccess(_ provider: SYFeedFullVideoProvider, views: [SYFeedFullVideoView]) {
var dataArray:Array<Any> = []
for dataObject in views {
dataArray.append(dataObject)
dataArray.append("demo")
}
self.dataSource = dataArray
self.tableView!.reloadData()
}
TIP
加载广告具体示例详见Demo中的SYFeedFullVideoShowViewController。
