BUSplashAdView.h
3.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
//
// BUSplashAdView.h
// BUAdSDK
//
// Copyright © 2017年 bytedance. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "BUMaterialMeta.h"
#import "BUSplashZoomOutView.h"
#import "BUMopubAdMarkUpDelegate.h"
NS_ASSUME_NONNULL_BEGIN
@protocol BUSplashAdDelegate;
@interface BUSplashAdView : UIView <BUMopubAdMarkUpDelegate>
/**
The unique identifier of splash ad.
*/
@property (nonatomic, copy, readonly, nonnull) NSString *slotID;
/**
Maximum allowable load timeout, default 3s, unit s.
*/
@property (nonatomic, assign) NSTimeInterval tolerateTimeout;
/**
Whether hide skip button, default NO.
If you hide the skip button, you need to customize the countdown.
*/
@property (nonatomic, assign) BOOL hideSkipButton;
///optional: Whether need splashZoomOutAd, default NO.
@property (nonatomic, assign) BOOL needSplashZoomOutAd;
/**
The delegate for receiving state change messages.
*/
@property (nonatomic, weak, nullable) id<BUSplashAdDelegate> delegate;
/*
required.
Root view controller for handling ad actions.
*/
@property (nonatomic, weak) UIViewController *rootViewController;
/**
Whether the splash ad data has been loaded.
*/
@property (nonatomic, getter=isAdValid, readonly) BOOL adValid;
/// media configuration parameters.
@property (nonatomic, copy, readonly) NSDictionary *mediaExt;
/// When it is a zoom out advertisement, it has value.
@property (nonatomic, strong, readonly) BUSplashZoomOutView *zoomOutView;
/**
Initializes splash ad with slot id and frame.
@param slotID : the unique identifier of splash ad
@param frame : the frame of splashAd view. It is recommended for the mobile phone screen.
@return BUSplashAdView
*/
- (instancetype)initWithSlotID:(NSString *)slotID frame:(CGRect)frame;
/**
Initializes splash ad with ad slot and frame.
@param slot A object, through which you can pass in the splash unique identifier、ad type, and so on
@param frame the frame of splashAd view. It is recommended for the mobile phone screen.
@return BUSplashAdView
*/
- (instancetype)initWithSlot:(BUAdSlot *)slot frame:(CGRect)frame;
/**
Load splash ad datas.
Start the countdown(@tolerateTimeout) as soon as you request datas.
*/
- (void)loadAdData;
@end
@protocol BUSplashAdDelegate <NSObject>
@optional
/**
This method is called when splash ad material loaded successfully.
*/
- (void)splashAdDidLoad:(BUSplashAdView *)splashAd;
/**
This method is called when splash ad material failed to load.
@param error : the reason of error
*/
- (void)splashAd:(BUSplashAdView *)splashAd didFailWithError:(NSError * _Nullable)error;
/**
This method is called when splash ad slot will be showing.
*/
- (void)splashAdWillVisible:(BUSplashAdView *)splashAd;
/**
This method is called when splash ad is clicked.
*/
- (void)splashAdDidClick:(BUSplashAdView *)splashAd;
/**
This method is called when splash ad is closed.
*/
- (void)splashAdDidClose:(BUSplashAdView *)splashAd;
/**
This method is called when splash ad is about to close.
*/
- (void)splashAdWillClose:(BUSplashAdView *)splashAd;
/**
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)splashAdDidCloseOtherController:(BUSplashAdView *)splashAd interactionType:(BUInteractionType)interactionType;
/**
This method is called when spalashAd skip button is clicked.
*/
- (void)splashAdDidClickSkip:(BUSplashAdView *)splashAd;
/**
This method is called when spalashAd countdown equals to zero
*/
- (void)splashAdCountdownToZero:(BUSplashAdView *)splashAd;
@end
NS_ASSUME_NONNULL_END