| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 | ////  MANativeAd.h//  AppLovinSDK////  Created by Thomas So on 5/5/20.//#import <UIKit/UIKit.h>@class MAAdFormat;@class MANativeAdBuilder;@class MANativeAdImage;@class MANativeAdView;NS_ASSUME_NONNULL_BEGINtypedef void (^MANativeAdBuilderBlock) (MANativeAdBuilder *builder);@interface MANativeAdBuilder : NSObject@property (nonatomic, copy,   nullable) NSString *title;@property (nonatomic, copy,   nullable) NSString *advertiser;@property (nonatomic, copy,   nullable) NSString *body;@property (nonatomic, copy,   nullable) NSString *callToAction;@property (nonatomic, strong, nullable) MANativeAdImage *icon;@property (nonatomic, strong, nullable) MANativeAdImage *mainImage;@property (nonatomic, strong, nullable) UIView *iconView;@property (nonatomic, strong, nullable) UIView *optionsView;@property (nonatomic, strong, nullable) UIView *mediaView;@property (nonatomic, assign) CGFloat mediaContentAspectRatio;@property (nonatomic, strong, nullable) NSNumber *starRating;@end@interface MANativeAdImage : NSObject/** * The native ad image. */@property (nonatomic, strong, readonly, nullable) UIImage *image;/** * The native ad image URL. */@property (nonatomic, copy, readonly, nullable) NSURL *URL;- (instancetype)initWithImage:(UIImage *)image;- (instancetype)initWithURL:(NSURL *)URL;- (instancetype)init NS_UNAVAILABLE;@end/** * Represents a native ad to be rendered for an instance of a @c MAAd. */@interface MANativeAd : NSObject/** * The native ad format. */@property (nonatomic, weak, readonly) MAAdFormat *format;/** * The native ad title text. */@property (nonatomic, copy, readonly, nullable) NSString *title;/** * The native ad advertiser text. */@property (nonatomic, copy, readonly, nullable) NSString *advertiser;/** * The native ad body text. */@property (nonatomic, copy, readonly, nullable) NSString *body;/** * The native ad CTA button text. */@property (nonatomic, copy, readonly, nullable) NSString *callToAction;/** * The native ad icon image. */@property (nonatomic, strong, readonly, nullable) MANativeAdImage *icon;/** * The native ad icon image view. * * This is only used for banners using native APIs. Native ads must provide a  `MANativeAdImage` instead. */@property (nonatomic, strong, readonly, nullable) UIView *iconView;/** * The native ad options view. */@property (nonatomic, strong, readonly, nullable) UIView *optionsView;/** * The native ad media view. */@property (nonatomic, strong, readonly, nullable) UIView *mediaView;/** * The native ad main image (cover image). May or may not be a locally cached file:// resource file. * * Please make sure you continue to render your native ad using @c MANativeAdLoader so impression tracking is not affected. * * Supported adapter versions: * * BidMachine  v1.9.4.1.1 * Google Ad Manager  v9.6.0.1 * Google AdMob  v9.6.0.2 * Mintegral  v7.1.7.0.2 * myTarget  v5.15.2.1 * Pangle  v4.5.2.4.1 * Smaato  v21.7.6.1 */@property (nonatomic, strong, readonly, nullable) MANativeAdImage *mainImage;/** * The aspect ratio for the media view if provided by the network. Otherwise returns 0.0f. */@property (nonatomic, assign, readonly) CGFloat mediaContentAspectRatio;/** * The star rating of the native ad in the [0.0, 5.0] range if provided by the network. Otherwise returns @c nil. */@property (nonatomic, strong, readonly, nullable) NSNumber *starRating;/** * Whether or not the ad is expired. */@property (nonatomic, assign, readonly, getter=isExpired) BOOL expired;/** * This method is called before the ad view is returned to the publisher. * The adapters should override this method to register the rendered native ad view and make sure that the view is interactable. * * @param nativeAdView a rendered native ad view. */- (void)prepareViewForInteraction:(MANativeAdView *)nativeAdView __deprecated_msg("This method has been deprecated and will be removed in a future SDK version. Please use -[MANativeAd prepareForInteractionClickableViews:withContainer:] instead.");/** * ********************* * AVAILABLE IN v11.5.2+ * ********************* * * This method is called before the ad view is returned to the publisher. * The adapters should override this method to register the rendered native ad view and make sure that the view is interactable. * * @param clickableViews The clickable views for the native ad. * @param container The container for the native ad. * * @return @c YES if the call has been successfully handled by a subclass of @c MANativeAd. */- (BOOL)prepareForInteractionClickableViews:(NSArray<UIView *> *)clickableViews withContainer:(UIView *)container;/** * Whether or not to run the @code -[MANativeAd prepareForInteractionClickableViews:withContainer:] @endcode call on the main thread or background thread. * * @return @c YES to run the operation on the main thread, @c NO to run the operation on a background thread. Defaults to @c YES. */- (BOOL)shouldPrepareViewForInteractionOnMainThread;/** * ********************* * AVAILABLE IN v11.6.0+ * ********************* * * Whether or not container clickability is supported. */- (BOOL)isContainerClickable;/** * For supported mediated SDKs, manually invoke a click. */- (void)performClick;- (instancetype)initWithFormat:(MAAdFormat *)format builderBlock:(NS_NOESCAPE MANativeAdBuilderBlock)builderBlock;- (instancetype)init NS_UNAVAILABLE;@endNS_ASSUME_NONNULL_END
 |