// // BUNativeExpressFullscreenVideoAd.h // BUAdSDK // // Copyright © 2019 bytedance. All rights reserved. // #import #import "BUMaterialMeta.h" #import "BUMopubAdMarkUpDelegate.h" @class BUNativeExpressFullscreenVideoAd; //define the type of native express video ad typedef NS_ENUM(NSUInteger, BUNativeExpressFullScreenAdType) { BUNativeExpressFullScreenAdTypeEndcard = 0, // video + endcard BUNativeExpressFullScreenAdTypeVideoPlayable = 1, // video + playable BUNativeExpressFullScreenAdTypePurePlayable = 2 // pure playable }; NS_ASSUME_NONNULL_BEGIN @protocol BUNativeExpressFullscreenVideoAdDelegate @optional /** This method is called when video ad material loaded successfully. */ - (void)nativeExpressFullscreenVideoAdDidLoad:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; /** This method is called when video ad materia failed to load. @param error : the reason of error */ - (void)nativeExpressFullscreenVideoAd:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error; /** This method is called when rendering a nativeExpressAdView successed. It will happen when ad is show. */ - (void)nativeExpressFullscreenVideoAdViewRenderSuccess:(BUNativeExpressFullscreenVideoAd *)rewardedVideoAd; /** This method is called when a nativeExpressAdView failed to render. @param error : the reason of error */ - (void)nativeExpressFullscreenVideoAdViewRenderFail:(BUNativeExpressFullscreenVideoAd *)rewardedVideoAd error:(NSError *_Nullable)error; /** This method is called when video cached successfully. For a better user experience, it is recommended to display video ads at this time. And you can call [BUNativeExpressFullscreenVideoAd showAdFromRootViewController:]. */ - (void)nativeExpressFullscreenVideoAdDidDownLoadVideo:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; /** This method is called when video ad slot will be showing. */ - (void)nativeExpressFullscreenVideoAdWillVisible:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; /** This method is called when video ad slot has been shown. */ - (void)nativeExpressFullscreenVideoAdDidVisible:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; /** This method is called when video ad is clicked. */ - (void)nativeExpressFullscreenVideoAdDidClick:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; /** This method is called when the user clicked skip button. */ - (void)nativeExpressFullscreenVideoAdDidClickSkip:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; /** This method is called when video ad is about to close. */ - (void)nativeExpressFullscreenVideoAdWillClose:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; /** This method is called when video ad is closed. */ - (void)nativeExpressFullscreenVideoAdDidClose:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd; /** This method is called when video ad play completed or an error occurred. @param error : the reason of error */ - (void)nativeExpressFullscreenVideoAdDidPlayFinish:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error; /** This method is used to get the type of nativeExpressFullScreenVideo ad */ - (void)nativeExpressFullscreenVideoAdCallback:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd withType:(BUNativeExpressFullScreenAdType) nativeExpressVideoAdType; /** 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)nativeExpressFullscreenVideoAdDidCloseOtherController:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd interactionType:(BUInteractionType)interactionType; @end @interface BUNativeExpressFullscreenVideoAd : NSObject @property (nonatomic, weak, nullable) id delegate; @property (nonatomic, getter=isAdValid, readonly) BOOL adValid __attribute__((deprecated("Use nativeExpressFullscreenVideoAdDidLoad: instead."))); /// media configuration parameters. @property (nonatomic, copy, readonly) NSDictionary *mediaExt; /** Initializes video ad with slot id. @param slotID : the unique identifier of video ad. @return BUFullscreenVideoAd */ - (instancetype)initWithSlotID:(NSString *)slotID; /** Initializes video ad with slot. @param slot : A object, through which you can pass in the fullscreen unique identifier, ad type, and so on. @return BUNativeExpressFullscreenVideoAd */ - (instancetype)initWithSlot:(BUAdSlot *)slot; /** Load video ad datas. */ - (void)loadAdData; /** Display video ad. @param rootViewController : root view controller for displaying ad. @return : whether it is successfully displayed. */ - (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController; /** Display video ad. @param rootViewController : root view controller for displaying ad. @param sceneDescirbe : optional. Identifies a custom description of the presentation scenario. @return : whether it is successfully displayed. */ - (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController ritSceneDescribe:(NSString *_Nullable)sceneDescirbe; @end NS_ASSUME_NONNULL_END