视频流广告

视频流广告

接入视频流广告(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。