mergemilitary/Assets/Plugins/ToukaGames/ToponSDK/klevin/KlevinAdSDK.framework/Headers/KLNUnifiedNativeAd.h

138 lines
4.8 KiB
Objective-C
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// KLNUnifiedNativeAd.h
// KlevinAdSDK
//
// Copyright © 2021 Tencent. All rights reserved.
// Created by Klevin on 2021/7/2.
//
#import <UIKit/UIKit.h>
#import <KlevinAdSDK/KLNAdRequest.h>
#import <KlevinAdSDK/KLNAdVideoController.h>
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSUInteger, KLNUnifiedNativeAdType) {
/// 未知模版
KLNUnifiedNativeAdTypeUnknown = 1,
/// 原生自渲染-横版大图169
KLNUnifiedNativeAdTypeHorBigImage = 1001,
/// 原生自渲染-横版视频169
KLNUnifiedNativeAdTypeHorVideo = 1002,
};
typedef NS_ENUM(NSUInteger, KLNUnifiedNativeAdVideoAutoPlayPolicy) {
KLNUnifiedNativeAdVideoAutoPlayPolicyAlways = 0, // 总是自动播放,无论网络条件
KLNUnifiedNativeAdVideoAutoPlayPolicyWIFI = 1, // WIFI 下自动播放
KLNUnifiedNativeAdVideoAutoPlayPolicyNever = 2, // 从不自动播放,无论网络条件
};
@class KLNUnifiedNativeAd;
@protocol KLNUnifiedNativeAdDelegate;
/// 加载自渲染广告回调。
/// 成功时adList不为nil, error为nil。失败时adList为nilerror不为nil。
typedef void (^KLNUnifiedNativeAdLoadCompletionHandler)(NSArray<KLNUnifiedNativeAd *> *_Nullable adList,
NSError *_Nullable error);
///自渲染广告
@interface KLNUnifiedNativeAd : NSObject
/// 广告事件回调对象
@property (nonatomic, weak, nullable) id<KLNUnifiedNativeAdDelegate> delegate;
/// 开发者传入的用来present目标页的ViewController
@property (nonatomic, weak, readwrite) UIViewController *viewController;
/// 广告标题
@property (nonatomic, copy, readonly, nullable) NSString *title;
/// 广告描述
@property (nonatomic, copy, readonly, nullable) NSString *desc;
/// App 图标url
@property (nonatomic, readonly, nullable) NSString *appIconURL;
/// 按钮文案
@property (nonatomic, readonly, nullable) NSString *actionTitle;
/// 是否为视频广告
@property (nonatomic, readonly) KLNUnifiedNativeAdType adType;
/// 广告图标
@property (nonatomic, readonly) UIImage *adLogoImage;
/// 静音播放视频广告(后续可能收拢到 KLNAdVideoController
@property (nonatomic, assign, getter=isMuted) BOOL muted;
/// 视频播放器
@property (nonatomic, strong, readonly, nullable) KLNAdVideoController *videoController;
/// 广告view
@property (nonatomic, strong, readonly) UIView *adView;
/// 广告宽度
@property (nonatomic, assign, readonly) CGFloat width;
/// 广告高度
@property (nonatomic, assign, readonly) CGFloat height;
/// 广告图片URL
@property (nonatomic, readonly, nullable) NSString *imageUrl;
/// 视频广告自动播放策略,默认 KLNUnifiedNativeAdVideoAutoPlayPolicyAlways总是自动播放
@property (nonatomic, assign) KLNUnifiedNativeAdVideoAutoPlayPolicy videoAutoPlayPolicy;
/// 加载自渲染广告方法
/// @param request 自渲染广告请求对象
/// @param completionHandler 广告信息加载结果回调(成功/失败),请注意:回调非线程安全
+ (void)loadWithRequest:(nonnull KLNUnifiedNativeAdRequest *)request
completionHandler:(KLNUnifiedNativeAdLoadCompletionHandler)completionHandler;
/// 注册可点击View和显示广告的view。
/// @param clickableViews 可点击的视图数组,此数组内的广告元素会添加手势,可以响应广告对应的点击事件
/// @param adView 传入显示广告的viewSDK需要对此view做曝光检测
- (void)registerWithClickableViews:(NSArray<__kindof UIView *> *_Nullable)clickableViews adView:(UIView*)adView;
/// 解绑可点击view手势
- (void)unregisterClickableViews;
/// 渲染广告View
/// 注意只有接入方用KLNUnifiedNativeAd的属性adView进行广告渲染才调用此方法。否则不需要调用
- (void)render;
/// 根据传入的宽度和广告model计算高度。内部会根据广告素材的宽高比计算相应的高度。
/// @param width 传入的宽度
/// @param nativeAd 广告model
+ (CGFloat)calcHeiWithWidth:(CGFloat)width nativeAd:(KLNUnifiedNativeAd *)nativeAd;
/// 用户手动关闭广告时,请调用该方法
- (void)dislike;
@end
@protocol KLNUnifiedNativeAdDelegate <NSObject>
@optional
/// 广告素材加载成功回调
/// @param ad KLNUnifiedNativeAd实例
/// @param error 素材加载成功为nil失败非nil
- (void)kln_unifiedNativeAdDidLoad:(KLNUnifiedNativeAd *)ad didCompleteWithError:(NSError *_Nullable)error;
/// 广告曝光回调
/// 业务方可以通过实现该方法,统计|曝光|量(对账)
/// @param ad KLNUnifiedNativeAd 实例
- (void)kln_unifiedNativeAdWillExpose:(KLNUnifiedNativeAd *)ad;
/// 广告点击回调
/// 业务方可以通过实现该方法,统计|点击|量(对账)
/// @param ad KLNUnifiedNativeAd 实例
- (void)kln_unifiedNativeAdDidClick:(KLNUnifiedNativeAd *)ad;
@end
NS_ASSUME_NONNULL_END