111 lines
3.5 KiB
Objective-C
Executable File
111 lines
3.5 KiB
Objective-C
Executable File
//
|
|
// KSSplashAdView.h
|
|
// KSAdSDK
|
|
//
|
|
// Created by zhangchuntao on 2021/3/3.
|
|
//
|
|
|
|
#import <Foundation/Foundation.h>
|
|
|
|
#import "KSAd.h"
|
|
#import "KSAdInteractionType.h"
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
@class KSSplashAdView;
|
|
|
|
@protocol KSSplashAdViewDelegate <NSObject>
|
|
@optional
|
|
/**
|
|
* splash ad request done
|
|
*/
|
|
- (void)ksad_splashAdDidLoad:(KSSplashAdView *)splashAdView;
|
|
/**
|
|
* splash ad material load, ready to display
|
|
*/
|
|
- (void)ksad_splashAdContentDidLoad:(KSSplashAdView *)splashAdView;
|
|
/**
|
|
* splash ad (material) failed to load
|
|
*/
|
|
- (void)ksad_splashAd:(KSSplashAdView *)splashAdView didFailWithError:(NSError *)error;
|
|
/**
|
|
* splash ad did visible
|
|
*/
|
|
- (void)ksad_splashAdDidVisible:(KSSplashAdView *)splashAdView;
|
|
/**
|
|
* splash ad video begin play
|
|
* for video ad only
|
|
*/
|
|
- (void)ksad_splashAdVideoDidBeginPlay:(KSSplashAdView *)splashAdView;
|
|
/**
|
|
* splash ad clicked
|
|
* @param inMiniWindow whether click in mini window
|
|
*/
|
|
- (void)ksad_splashAd:(KSSplashAdView *)splashAdView didClick:(BOOL)inMiniWindow;
|
|
/**
|
|
* splash ad will zoom out, frame can be assigned
|
|
* for video ad only
|
|
* @param frame target frame
|
|
*/
|
|
- (void)ksad_splashAd:(KSSplashAdView *)splashAdView willZoomTo:(inout CGRect *)frame;
|
|
/**
|
|
* splash ad zoomout view will move to frame
|
|
* @param frame target frame
|
|
*/
|
|
- (void)ksad_splashAd:(KSSplashAdView *)splashAdView willMoveTo:(inout CGRect *)frame;
|
|
/**
|
|
* splash ad skipped
|
|
* @param showDuration splash show duration (no subsequent callbacks, remove & release KSSplashAdView here)
|
|
*/
|
|
- (void)ksad_splashAd:(KSSplashAdView *)splashAdView didSkip:(NSTimeInterval)showDuration;
|
|
/**
|
|
* splash ad did enter conversion view controller
|
|
*/
|
|
- (void)ksad_splashAdDidOpenConversionVC:(KSSplashAdView *)splashAdView interactionType:(KSAdInteractionType)interactType;
|
|
/**
|
|
* splash ad close conversion viewcontroller (no subsequent callbacks, remove & release KSSplashAdView here)
|
|
*/
|
|
- (void)ksad_splashAdDidCloseConversionVC:(KSSplashAdView *)splashAdView interactionType:(KSAdInteractionType)interactType;
|
|
/**
|
|
* splash ad play finished & auto dismiss (no subsequent callbacks, remove & release KSSplashAdView here)
|
|
*/
|
|
- (void)ksad_splashAdDidAutoDismiss:(KSSplashAdView *)splashAdView;
|
|
/**
|
|
* splash ad close by user (zoom out mode) (no subsequent callbacks, remove & release KSSplashAdView here)
|
|
*/
|
|
- (void)ksad_splashAdDidClose:(KSSplashAdView *)splashAdView;
|
|
|
|
@end
|
|
|
|
@interface KSSplashAdView : UIView<KSAdProtocol>
|
|
|
|
@property (nonatomic, weak) id<KSSplashAdViewDelegate> delegate;
|
|
|
|
@property (nonatomic, weak) UIViewController *rootViewController;
|
|
/// max timeout interval, default is 3
|
|
@property (nonatomic, assign) NSTimeInterval timeoutInterval;
|
|
/// need show mini window, default is NO
|
|
@property (nonatomic, assign) BOOL needShowMiniWindow;
|
|
/// in zoomout state
|
|
@property (nonatomic, assign, readonly) BOOL showingMiniWindow;
|
|
/// ad interaction type, avaliable after ksad_splashAdContentDidLoad:
|
|
@property (nonatomic, assign, readonly) KSAdInteractionType interactionType;
|
|
/// ad material type, avaliable after ksad_splashAdContentDidLoad:
|
|
@property (nonatomic, assign, readonly) KSAdMaterialType materialType;
|
|
|
|
- (id)initWithPosId:(NSString *)posId;
|
|
/// load ad data
|
|
- (void)loadAdData;
|
|
/// server bidding load ad data
|
|
- (void)loadAdDataWithResponse:(NSDictionary *)response;
|
|
/**
|
|
server bidding load ad data plan 2
|
|
*/
|
|
- (void)loadAdDataWithResponseV2:(NSDictionary *)response;
|
|
/// show splash ad in view, should be called after ksad_splashAdContentDidLoad:
|
|
- (void)showInView:(UIView *)view;
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|