225 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			Objective-C
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			225 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			Objective-C
		
	
	
		
			Executable File
		
	
	
| //
 | |
| //  MTGSplashAD.h
 | |
| //  MTGSDKSplash
 | |
| //
 | |
| //  Copyright © 2019 Mintegral. All rights reserved.
 | |
| //
 | |
| 
 | |
| #import <Foundation/Foundation.h>
 | |
| #if __has_include(<MTGSDK/MTGSDK.h>)
 | |
|     #import <MTGSDK/MTGBool.h>
 | |
| #else
 | |
|     #import "MTGBool.h"
 | |
| #endif
 | |
| 
 | |
| #define MTGSplashSDKVersion @"7.1.4"
 | |
| 
 | |
| 
 | |
| NS_ASSUME_NONNULL_BEGIN
 | |
| 
 | |
| /* Currently, we only support these three kinds of height to layout custom SplashZoomOutView, other height will results unexpected behavior. */
 | |
| typedef NS_ENUM(NSInteger, MTGSplashZoomOutViewCustomLayoutType) {
 | |
|     /*Represents 28pt height.*/
 | |
|     MTGSplashZoomOutViewCustomLayoutTypeSmallHeight = 28,
 | |
|     
 | |
|     /*Represents 50pt height.*/
 | |
|     MTGSplashZoomOutViewCustomLayoutTypeMediumHeight = 50,
 | |
|     
 | |
|     /*Represents 250pt height.*/
 | |
|     MTGSplashZoomOutViewCustomLayoutTypeLargeHeight = 250
 | |
| };
 | |
| 
 | |
| @protocol MTGSplashADDelegate;
 | |
| 
 | |
| 
 | |
| @interface MTGSplashAD : NSObject
 | |
| 
 | |
| /**
 | |
|  Initialize a MTGSplashAD instance.
 | |
|  @param placementID placementId String.
 | |
|  @param unitID unitID String.
 | |
|  @param countdown time duration of the ad can be showed. Should be range of 2-10s.
 | |
|  @param allowSkip Whether or not to allow user to skip ad when showing.
 | |
|  
 | |
|  */
 | |
| - (instancetype)initWithPlacementID:(nullable NSString *)placementID
 | |
|                              unitID:(NSString *)unitID
 | |
|                           countdown:(NSUInteger)countdown
 | |
|                           allowSkip:(BOOL)allowSkip;
 | |
| 
 | |
| /**
 | |
|  Initialize a MTGSplashAD instance with more detailed info.
 | |
| 
 | |
|  @param placementID placementId String.
 | |
|  @param unitID unitID String.
 | |
|  @param countdown time duration of the ad can be showed. Should be range of 2-10s.
 | |
|  @param allowSkip whether or not to allow user to skip ad when showing.
 | |
|  @param customViewSize if you want to display your own custom view on the ad area, you should pass the corresponding CGSize of your custome view.
 | |
|  @param preferredOrientation specify preferred orientation to show the ad.
 | |
|  
 | |
|  @note  1. when you showing ad on the portrait mode, the height of the customViewSize should not           greater than 25% of the device's height.
 | |
|         2. when you showing ad on the landscape mode, the width of the customViewSize should not greater than 25% of the device's width.
 | |
|  */
 | |
| - (instancetype)initWithPlacementID:(nullable NSString *)placementID
 | |
|                              unitID:(NSString *)unitID
 | |
|                           countdown:(NSUInteger)countdown
 | |
|                           allowSkip:(BOOL)allowSkip
 | |
|                      customViewSize:(CGSize)customViewSize
 | |
|                preferredOrientation:(MTGInterfaceOrientation)preferredOrientation;
 | |
| 
 | |
| /* Set delegate to receive protocol event.  */
 | |
| @property (nonatomic, weak) id <MTGSplashADDelegate> delegate;
 | |
| 
 | |
| /* when ad support zoom out, splashZoomOutView will has value, otherwise has nil value.
 | |
|    @note: see `pointForSplashZoomOutADViewToAddOn:` for more details to chage origin of the default layout.
 | |
|    @note: see `superViewForSplashZoomOutADViewToAddOn` for more details to layout custom SplashZoomOutADView.
 | |
|  
 | |
|  */
 | |
| @property (nonatomic, readonly, strong) UIView *splashZoomOutView;
 | |
| 
 | |
| /* corresponding placementId when you initialize the MTGSplashAD. */
 | |
| @property (nonatomic, readonly, copy) NSString *placementID;
 | |
| 
 | |
| /* corresponding unitID when you initialize the MTGSplashAD. */
 | |
| @property (nonatomic, readonly, copy) NSString *unitID;
 | |
| 
 | |
| /* Set this to show your own background image when loading ad. */
 | |
| @property (nonatomic, strong) UIImage *backgroundImage;
 | |
| 
 | |
| /* Set this to show your own background color when loading ad. */
 | |
| @property (nonatomic, copy) UIColor *backgroundColor;
 | |
| 
 | |
| /* get the id of this request ad,call after splashADPreloadSuccess || splashADLoadSuccess*/
 | |
| @property (nonatomic, readonly, copy,nullable) NSString *requestID;
 | |
| 
 | |
| /********************** Normal Request ***************************/
 | |
| 
 | |
| /**
 | |
|  Show the ad after load successfully.
 | |
| 
 | |
|  @param window must be the key window of the application.
 | |
|  @param customView display your own custom view, e.g. logo view.
 | |
|  @param timeout load timeout, unit should be millisecond. If you passed 0 then 5000ms would be used.
 | |
|  
 | |
|  @note  You should always call this method on the main thread.
 | |
|  */
 | |
| - (void)loadAndShowInKeyWindow:(UIWindow *)window
 | |
|                    customView:(nullable UIView *)customView
 | |
|                     timeout:(NSInteger)timeout;
 | |
| 
 | |
| /**
 | |
|  Preload a ad and then use `[MTGSplashAD showInKeyWindow:customView:]` to show the ad.
 | |
|  @note  You should always call this method on the main thread.
 | |
|  */
 | |
| - (void)preload;
 | |
| 
 | |
| 
 | |
| /**
 | |
|  Whether or not if there was a available ad to show.
 | |
| 
 | |
|  @return YES means there was a available ad, otherwise NO.
 | |
|  */
 | |
| - (BOOL)isADReadyToShow;
 | |
| 
 | |
| /**
 | |
|  if there was a available ad to show, you can call this method to show the ad.
 | |
|  
 | |
|  @param window must be the key window of the application.
 | |
|  @param customView display your own custom view, e.g. logo view.
 | |
| 
 | |
|  @note  You should always call this method on the main thread.
 | |
|  */
 | |
| - (void)showInKeyWindow:(UIWindow *)window customView:(nullable UIView *)customView;
 | |
| 
 | |
| 
 | |
| 
 | |
| /********************** Bidding Request ***************************/
 | |
| 
 | |
| /**
 | |
|  Show the bidding ad after load successfully.
 | |
|  
 | |
|  @param window must be the key window of the application.
 | |
|  @param customView display your own custom view, e.g. logo view.
 | |
|  @param bidToken token from bid request within MTGBidFramework.
 | |
|  @param timeout load timeout, unit should be millisecond. If you passed 0 then 5000ms would be used.
 | |
|  
 | |
|  @note  You should always call this method on the main thread.
 | |
|  */
 | |
| - (void)loadAndShowInKeyWindow:(UIWindow *)window
 | |
|                  customView:(nullable UIView *)customView
 | |
|                    bidToken:(NSString *)bidToken
 | |
|                     timeout:(NSInteger)timeout;
 | |
| 
 | |
| /**
 | |
|  Preload a bidding ad and then use `[MTGSplashAD showBiddingADInKeyWindow:customView:]` to show the ad.
 | |
|  @note  You should always call this method on the main thread.
 | |
|  */
 | |
| - (void)preloadWithBidToken:(NSString *)bidToken;
 | |
| 
 | |
| /**
 | |
|  Whether or not if there was a available bidding ad to show.
 | |
|  
 | |
|  @return YES means there was a available bidding ad, otherwise NO.
 | |
|  */
 | |
| - (BOOL)isBiddingADReadyToShow;
 | |
| 
 | |
| /**
 | |
|  if there was a available bidding ad to show, you can call this method to show the ad.
 | |
|  
 | |
|  @param window must be the key window of the application.
 | |
|  @param customView display your own custom view, e.g. logo view.
 | |
|  
 | |
|  @note  You should always call this method on the main thread.
 | |
|  */
 | |
| - (void)showBiddingADInKeyWindow:(UIWindow *)window
 | |
|                       customView:(nullable UIView *)customView;
 | |
| 
 | |
| 
 | |
| /** Call this method when you want to relase splashZoomOutView. */
 | |
| - (void)destroySplashZoomOutView;
 | |
| 
 | |
| @end
 | |
| 
 | |
| @protocol MTGSplashADDelegate <NSObject>
 | |
| 
 | |
| /* Called when preloading ad successfully. */
 | |
| - (void)splashADPreloadSuccess:(MTGSplashAD *)splashAD;
 | |
| /* Called when preloading ad failed. */
 | |
| - (void)splashADPreloadFail:(MTGSplashAD *)splashAD error:(NSError *)error;
 | |
| /* Called when loading ad successfully. */
 | |
| - (void)splashADLoadSuccess:(MTGSplashAD *)splashAD;
 | |
| /* Called when loading ad failed. */
 | |
| - (void)splashADLoadFail:(MTGSplashAD *)splashAD error:(NSError *)error;
 | |
| /* Called when showing ad successfully. */
 | |
| - (void)splashADShowSuccess:(MTGSplashAD *)splashAD;
 | |
| /* Called when showing ad failed. */
 | |
| - (void)splashADShowFail:(MTGSplashAD *)splashAD error:(NSError *)error;
 | |
| /* Called when the application is about to leave as a result of tap event.
 | |
|    Your application will be moved to the background shortly after this method is called. */
 | |
| - (void)splashADDidLeaveApplication:(MTGSplashAD *)splashAD;
 | |
| /* Called when click event occured. */
 | |
| - (void)splashADDidClick:(MTGSplashAD *)splashAD;
 | |
| /* Called when ad is about to close. */
 | |
| - (void)splashADWillClose:(MTGSplashAD *)splashAD;
 | |
| /* Called when ad did close. */
 | |
| - (void)splashADDidClose:(MTGSplashAD *)splashAD;
 | |
| /* Called when remaining countdown update. */
 | |
| - (void)splashAD:(MTGSplashAD *)splashAD timeLeft:(NSUInteger)time;
 | |
| 
 | |
| /* Default SplashZoomOutView will zoomed out to bottom right corner,
 | |
|    Use this method to give another specific origin. */
 | |
| - (CGPoint)pointForSplashZoomOutADViewToAddOn:(MTGSplashAD *)splashAD;
 | |
| /* Default SplashZoomOutView will zoomed out to bottom right corner,
 | |
|    Use this method to give another specific frame and custom layout.
 | |
|    @note: see MTGSplashZoomOutViewCustomLayoutType for more details.
 | |
|  */
 | |
| - (UIView *)superViewForSplashZoomOutADViewToAddOn:(MTGSplashAD *)splashAD;
 | |
| /* Called when splash zoomout view did show. */
 | |
| - (void)splashZoomOutADViewDidShow:(MTGSplashAD *)splashAD;
 | |
| /* Called when splash zoomout view closed. */
 | |
| - (void)splashZoomOutADViewClosed:(MTGSplashAD *)splashAD;
 | |
| 
 | |
| @end
 | |
| 
 | |
| NS_ASSUME_NONNULL_END
 |