//
|
// BUNativeExpressRewardedVideoAd.h
|
// BUAdSDK
|
//
|
// Copyright © 2019 bytedance. All rights reserved.
|
//
|
|
#import <UIKit/UIKit.h>
|
#import "BUAdSDKDefines.h"
|
#import "BUMaterialMeta.h"
|
#import "BUMopubAdMarkUpDelegate.h"
|
|
@class BUNativeExpressRewardedVideoAd;
|
@class BURewardedVideoModel;
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
/// define the type of native express rewarded video Ad
|
typedef NS_ENUM(NSUInteger, BUNativeExpressRewardedVideoAdType) {
|
BUNativeExpressRewardedVideoAdTypeEndcard = 0, // video + endcard
|
BUNativeExpressRewardedVideoAdTypeVideoPlayable = 1, // video + playable
|
BUNativeExpressRewardedVideoAdTypePurePlayable = 2, // pure playable
|
};
|
|
@protocol BUNativeExpressRewardedVideoAdDelegate <NSObject>
|
|
@optional
|
/**
|
This method is called when video ad material loaded successfully.
|
*/
|
- (void)nativeExpressRewardedVideoAdDidLoad:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd;
|
|
/**
|
This method is called when video ad materia failed to load.
|
@param error : the reason of error
|
*/
|
- (void)nativeExpressRewardedVideoAd:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *_Nullable)error;
|
/**
|
this methods is to tell delegate the type of native express rewarded video Ad
|
*/
|
- (void)nativeExpressRewardedVideoAdCallback:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd withType:(BUNativeExpressRewardedVideoAdType)nativeExpressVideoType;
|
|
/**
|
This method is called when cached successfully.
|
For a better user experience, it is recommended to display video ads at this time.
|
And you can call [BUNativeExpressRewardedVideoAd showAdFromRootViewController:].
|
*/
|
- (void)nativeExpressRewardedVideoAdDidDownLoadVideo:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd;
|
|
/**
|
This method is called when rendering a nativeExpressAdView successed.
|
It will happen when ad is show.
|
*/
|
- (void)nativeExpressRewardedVideoAdViewRenderSuccess:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd;
|
|
/**
|
This method is called when a nativeExpressAdView failed to render.
|
@param error : the reason of error
|
*/
|
- (void)nativeExpressRewardedVideoAdViewRenderFail:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd error:(NSError *_Nullable)error;
|
|
/**
|
This method is called when video ad slot will be showing.
|
*/
|
- (void)nativeExpressRewardedVideoAdWillVisible:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd;
|
|
/**
|
This method is called when video ad slot has been shown.
|
*/
|
- (void)nativeExpressRewardedVideoAdDidVisible:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd;
|
|
/**
|
This method is called when video ad is about to close.
|
*/
|
- (void)nativeExpressRewardedVideoAdWillClose:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd;
|
|
/**
|
This method is called when video ad is closed.
|
*/
|
- (void)nativeExpressRewardedVideoAdDidClose:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd;
|
|
/**
|
This method is called when video ad is clicked.
|
*/
|
- (void)nativeExpressRewardedVideoAdDidClick:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd;
|
|
/**
|
This method is called when the user clicked skip button.
|
*/
|
- (void)nativeExpressRewardedVideoAdDidClickSkip:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd;
|
|
/**
|
This method is called when video ad play completed or an error occurred.
|
@param error : the reason of error
|
*/
|
- (void)nativeExpressRewardedVideoAdDidPlayFinish:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *_Nullable)error;
|
|
/**
|
Server verification which is requested asynchronously is succeeded. now include two v erify methods:
|
1. C2C need server verify 2. S2S don't need server verify
|
@param verify :return YES when return value is 2000.
|
*/
|
- (void)nativeExpressRewardedVideoAdServerRewardDidSucceed:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd verify:(BOOL)verify;
|
|
/**
|
Server verification which is requested asynchronously is failed.
|
Return value is not 2000.
|
*/
|
- (void)nativeExpressRewardedVideoAdServerRewardDidFail:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd __attribute__((deprecated("Use nativeExpressRewardedVideoAdServerRewardDidFail: error: instead.")));
|
|
/**
|
Server verification which is requested asynchronously is failed.
|
@param rewardedVideoAd express rewardVideo Ad
|
@param error request error info
|
*/
|
- (void)nativeExpressRewardedVideoAdServerRewardDidFail:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd error:(NSError *_Nullable)error;
|
|
/**
|
This method is called when another controller has been closed.
|
@param interactionType : open appstore in app or open the webpage or view video ad details page.
|
*/
|
- (void)nativeExpressRewardedVideoAdDidCloseOtherController:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd interactionType:(BUInteractionType)interactionType;
|
|
@end
|
|
|
@interface BUNativeExpressRewardedVideoAd : NSObject <BUMopubAdMarkUpDelegate>
|
@property (nonatomic, strong) BURewardedVideoModel *rewardedVideoModel;
|
@property (nonatomic, weak, nullable) id<BUNativeExpressRewardedVideoAdDelegate> delegate;
|
/// media configuration parameters.
|
@property (nonatomic, copy, readonly) NSDictionary *mediaExt;
|
|
/**
|
Whether material is effective.
|
Setted to YES when data is not empty and has not been displayed.
|
Repeated display is not billed.
|
*/
|
@property (nonatomic, getter=isAdValid, readonly) BOOL adValid __attribute__((deprecated("Use nativeExpressRewardedVideoAdDidLoad: instead.")));
|
|
- (instancetype)initWithSlotID:(NSString *)slotID rewardedVideoModel:(BURewardedVideoModel *)model;
|
|
/**
|
adload_seq:(针对聚合广告位)传递本次请求是为“自然日内某设备某广告位置第N次展示机会”发出的广告请求,同物理位置在自然日从1开始计数,不同物理位置独立计数;example:某原生广告位置,当天第5次产生展示机会,这次展示机向穿山甲发送了4次广告请求,则这4次广告请求的"adload_seq"的值应为5。第二天重新开始计数。
|
|
prime_rit:(针对聚合广告位)广告物理位置对应的固定穿山甲广告位id,可以使用第一层的广告位id也可以为某一层的广告位id,但要求同一物理位置在该字段固定上报同一广告位id,不频繁更换;example:某原生广告位,当天共发出了1000个请求,这1000个请求中使用了5个不同target的穿山甲rit,用某X rit来作为该位置的标记rit,则这1000次请求的prime_rit都需要上报X rit的rit id。
|
*/
|
|
- (instancetype)initWithSlotID:(NSString *)slotID adloadSeq:(NSInteger)adloadSeq primeRit:(NSString * __nullable)primeRit rewardedVideoModel:(nonnull BURewardedVideoModel *)model;
|
|
- (void)loadAdData;
|
|
/**
|
Display video ad.
|
@param rootViewController : root view controller for displaying ad.
|
@return : whether it is successfully displayed.
|
*/
|
- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController;
|
|
/**
|
If ritSceneType is custom, you need to pass in the values for sceneDescirbe.
|
@param ritSceneType : optional. Identifies a custom description of the presentation scenario.
|
@param sceneDescirbe : optional. Identify the scene of presentation.
|
*/
|
- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController ritScene:(BURitSceneType)ritSceneType ritSceneDescribe:(NSString *_Nullable)sceneDescirbe;
|
|
@end
|
|
NS_ASSUME_NONNULL_END
|