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_BEGIN
- typedef 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;
- @end
- NS_ASSUME_NONNULL_END
|