Commit f2620095 by 刘卓鑫

no message

parent 6c899c7f
//
// GDTBaseAdNetworkAdapterProtocol.h
// GDTMobApp
//
// Created by royqpwang on 2019/7/25.
// Copyright © 2019 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
@protocol GDTBaseAdNetworkAdapterProtocol <NSObject>
+ (NSString *)adapterVersion;
- (instancetype)initWithAdNetworkConnector:(id)connector
posId:(NSString *)posId
extStr:(NSString *)extStr;
@optional
- (NSInteger)eCPM;
- (NSInteger)priority;
- (NSString *)eCPMLevel;
- (void)cancelLoad;
@end
//
// GDTHybridAd.h
// GDTMobApp
//
// Created by royqpwang on 2019/3/8.
// Copyright © 2019 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
typedef NS_OPTIONS(NSInteger, GDTHybridAdOptions) {
GDTHybridAdOptionRewardVideo = 1 << 0
};
@class GDTHybridAd;
@protocol GDTHybridAdDelegate <NSObject>
@optional
- (void)gdt_hybridAdDidPresented:(GDTHybridAd *)hybridAd;
- (void)gdt_hybridAdDidClose:(GDTHybridAd *)hybridAd;
- (void)gdt_hybridAdLoadURLSuccess:(GDTHybridAd *)hybridAd;
- (void)gdt_hybridAd:(GDTHybridAd *)hybridAd didFailWithError:(NSError *)error;
@end
@interface GDTHybridAd : NSObject
/**
自定义浏览器 UI 属性,请在 showWithRootViewController: 方法前设置。
*/
@property (nonatomic, copy) NSString *titleContent;
@property (nonatomic, strong) UIColor *titleColor;
@property (nonatomic, strong) UIFont *titleFont;
@property (nonatomic, strong) UIColor *navigationBarColor;
@property (nonatomic, strong) UIColor *navigationBarBottomColor;
@property (nonatomic, strong) UIColor *separatorLineColor;
@property (nonatomic, strong) UIImage *closeImage; // 如需自定义关闭图片,请按 44*44 大小设置
@property (nonatomic, strong) UIImage *backImage; // 如需自定义后退图片,请按 44*44 大小设置
/**
委托对象
*/
@property (nonatomic, weak) id <GDTHybridAdDelegate> delegate;
/**
构造方法
@param appId - 媒体 ID
@param adOptions - 支持的广告类型 Options,激励视频请传 GDTHybridAdOptionRewardVideo
@return GDTHybrid 实例
*/
- (instancetype)initWithAppId:(NSString *)appId type:(GDTHybridAdOptions)adOptions;
/**
加载广告方法 支持 iOS8.1 及以上系统
@param url 加载的 X 中心 URL
*/
- (void)loadWithUrl:(NSString *)url;
/**
展示浏览器方法
@param rootViewController 用于 present 浏览器 VC
*/
- (void)showWithRootViewController:(UIViewController *)rootViewController;
@end
NS_ASSUME_NONNULL_END
//
// GDTLogoView.h
// GDTMobSDK
//
// Created by nimomeng on 2018/10/10.
// Copyright © 2018 Tencent. All rights reserved.
//
#import <UIKit/UIKit.h>
//logo默认宽度
extern CGFloat const kGDTLogoImageViewDefaultWidth;
//logo默认高度
extern CGFloat const kGDTLogoImageViewDefaultHeight;
@interface GDTLogoView : UIImageView
@end
//
// GDTMediaView.h
// GDTMobSDK
//
// Created by nimomeng on 2018/10/10.
// Copyright © 2018 Tencent. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "GDTSDKDefines.h"
@class GDTMediaView;
@protocol GDTMediaViewDelegate <NSObject>
@optional
/**
用户点击 MediaView 回调,当 GDTVideoConfig userControlEnable 设为 YES,用户点击 mediaView 会回调。
@param mediaView 播放器实例
*/
- (void)gdt_mediaViewDidTapped:(GDTMediaView *)mediaView;
/**
播放完成回调
@param mediaView 播放器实例
*/
- (void)gdt_mediaViewDidPlayFinished:(GDTMediaView *)mediaView;
@end
@interface GDTMediaView : UIView
/**
GDTMediaView 回调对象
*/
@property (nonatomic, weak) id <GDTMediaViewDelegate> delegate;
/**
* 视频广告时长,单位 ms
*/
- (CGFloat)videoDuration;
/**
* 视频广告已播放时长,单位 ms
*/
- (CGFloat)videoPlayTime;
/**
播放视频
*/
- (void)play;
/**
暂停视频,调用 pause 后,需要被暂停的视频广告对象,不会再自动播放,需要调用 play 才能恢复播放。
*/
- (void)pause;
/**
停止播放,并展示第一帧
*/
- (void)stop;
/**
播放静音开关
@param flag 是否静音
*/
- (void)muteEnable:(BOOL)flag;
/**
自定义播放按钮
@param image 自定义播放按钮图片,不设置为默认图
@param size 自定义播放按钮大小,不设置为默认大小 44 * 44
*/
- (void)setPlayButtonImage:(UIImage *)image size:(CGSize)size;
#pragma mark - DEPRECATED
/**
是否支持在WWAN下自动播放视频, 默认 NO,已废弃,请使用 GDTVideoConfig 类配置
*/
@property (nonatomic, assign) BOOL videoAutoPlayOnWWAN GDT_DEPRECATED_ATTRIBUTE;
/**
是否静音播放视频广告, 默认 YES,已废弃,请使用 GDTVideoConfig 类配置
*/
@property (nonatomic, assign) BOOL videoMuted GDT_DEPRECATED_ATTRIBUTE;
@end
//
// GDTMobBannerView.h
// GDTMobSDK
//
// Created by chaogao on 13-11-5.
// Copyright (c) 2013年 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "GDTSDKDefines.h"
/**
* 广点通推荐尺寸,开发者在嵌入Banner条时,可以手动设置Banner条的宽度用来满足场景需求,
* 而高度的话广点通侧不建议更改,否则显示效果会有影响
*/
#define GDTMOB_AD_SUGGEST_SIZE_320x50 CGSizeMake(320, 50) //For iPhone
#define GDTMOB_AD_SUGGEST_SIZE_468x60 CGSizeMake(468, 60) //For iPad
#define GDTMOB_AD_SUGGEST_SIZE_728x90 CGSizeMake(728, 90) //For iPad
@protocol GDTMobBannerViewDelegate <NSObject>
@optional
- (void)bannerViewMemoryWarning;
/**
* 请求广告条数据成功后调用
* 详解:当接收服务器返回的广告数据成功后调用该函数
*/
- (void)bannerViewDidReceived;
/**
* 请求广告条数据失败后调用
* 详解:当接收服务器返回的广告数据失败后调用该函数
*/
- (void)bannerViewFailToReceived:(NSError *)error;
/**
* 详解:当点击应用下载或者广告调用系统程序打开时调用
*/
- (void)bannerViewWillLeaveApplication;
/**
* banner条被用户关闭时调用
* 详解:当打开showCloseBtn开关时,用户有可能点击关闭按钮从而把广告条关闭
*/
- (void)bannerViewWillClose;
/**
* banner条曝光回调
*/
- (void)bannerViewWillExposure;
/**
* banner条点击回调
*/
- (void)bannerViewClicked;
/**
* banner广告点击以后即将弹出全屏广告页
*/
- (void)bannerViewWillPresentFullScreenModal;
/**
* banner广告点击以后弹出全屏广告页完毕
*/
- (void)bannerViewDidPresentFullScreenModal;
/**
* 全屏广告页即将被关闭
*/
- (void)bannerViewWillDismissFullScreenModal;
/**
* 全屏广告页已经被关闭
*/
- (void)bannerViewDidDismissFullScreenModal;
@end
@interface GDTMobBannerView : UIView
/**
* 父视图
* 详解:[必选]需设置为显示广告的UIViewController
*/
@property (nonatomic, weak) UIViewController *currentViewController;
/**
* 委托 [可选]
*/
@property(nonatomic, weak) id<GDTMobBannerViewDelegate> delegate;
/**
* 广告刷新间隔,范围 [30, 120] 秒,默认值 30 秒。设 0 则不刷新。 [可选]
*/
@property(nonatomic, assign) int interval;
/**
* GPS精准广告定位模式开关,默认Gps关闭
* 详解:[可选]GPS精准定位模式开关,YES为开启GPS,NO为关闭GPS,建议设为开启,可以获取地理位置信息,提高广告的填充率,增加收益。
*/
@property(nonatomic, assign) BOOL isGpsOn;
/**
* Banner展现和轮播时的动画效果开关,默认打开
*/
@property(nonatomic, assign) BOOL isAnimationOn;
/**
* Banner条展示关闭按钮,默认打开
*/
@property(nonatomic, assign) BOOL showCloseBtn;
/**
* 构造方法
* 详解:appId - 媒体 ID
* placementId - 广告位 ID
*/
- (instancetype)initWithAppId:(NSString *)appId placementId:(NSString *)placementId;
/**
* 构造方法
* 详解:frame - banner 展示的位置和大小
* appId - 媒体 ID
* placementId - 广告位 ID
*/
- (instancetype)initWithFrame:(CGRect)frame appId:(NSString *)appId placementId:(NSString *)placementId;
/**
* 拉取并展示广告
*/
- (void)loadAdAndShow;
#pragma mark - DEPRECATED
- (instancetype)initWithAppkey:(NSString *)appkey placementId:(NSString *)placementId GDT_DEPRECATED_MSG_ATTRIBUTE("use initWithAppId:placementId: instead.");
- (instancetype)initWithFrame:(CGRect)frame appkey:(NSString *)appkey placementId:(NSString *)placementId GDT_DEPRECATED_MSG_ATTRIBUTE("use initWithFrame:appId:placementId: instead.");
@end
//
// GDTMobInterstitial.h
// GDTMobApp
//
// Created by GaoChao on 13-12-30.
// Copyright (c) 2013年 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "GDTSDKDefines.h"
@class GDTMobInterstitial;
@protocol GDTMobInterstitialDelegate <NSObject>
@optional
/**
* 广告预加载成功回调
* 详解:当接收服务器返回的广告数据成功且预加载后调用该函数
*/
- (void)interstitialSuccessToLoadAd:(GDTMobInterstitial *)interstitial;
/**
* 广告预加载失败回调
* 详解:当接收服务器返回的广告数据失败后调用该函数
*/
- (void)interstitialFailToLoadAd:(GDTMobInterstitial *)interstitial error:(NSError *)error;
/**
* 插屏广告将要展示回调
* 详解: 插屏广告即将展示回调该函数
*/
- (void)interstitialWillPresentScreen:(GDTMobInterstitial *)interstitial;
/**
* 插屏广告视图展示成功回调
* 详解: 插屏广告展示成功回调该函数
*/
- (void)interstitialDidPresentScreen:(GDTMobInterstitial *)interstitial;
/**
* 插屏广告展示结束回调
* 详解: 插屏广告展示结束回调该函数
*/
- (void)interstitialDidDismissScreen:(GDTMobInterstitial *)interstitial;
/**
* 详解:当点击应用下载或者广告调用系统程序打开时调用
*/
- (void)interstitialApplicationWillEnterBackground:(GDTMobInterstitial *)interstitial;
/**
* 插屏广告曝光回调
*/
- (void)interstitialWillExposure:(GDTMobInterstitial *)interstitial;
/**
* 插屏广告点击回调
*/
- (void)interstitialClicked:(GDTMobInterstitial *)interstitial;
/**
* 点击插屏广告以后即将弹出全屏广告页
*/
- (void)interstitialAdWillPresentFullScreenModal:(GDTMobInterstitial *)interstitial;
/**
* 点击插屏广告以后弹出全屏广告页
*/
- (void)interstitialAdDidPresentFullScreenModal:(GDTMobInterstitial *)interstitial;
/**
* 全屏广告页将要关闭
*/
- (void)interstitialAdWillDismissFullScreenModal:(GDTMobInterstitial *)interstitial;
/**
* 全屏广告页被关闭
*/
- (void)interstitialAdDidDismissFullScreenModal:(GDTMobInterstitial *)interstitial;
@end
@interface GDTMobInterstitial : NSObject
/**
* GPS精准广告定位模式开关,默认Gps关闭
* 详解:[可选]GPS精准定位模式开关,YES为开启GPS,NO为关闭GPS,建议设为开启,可以获取地理位置信息,提高广告的填充率,增加收益。
*/
@property (nonatomic, assign) BOOL isGpsOn;
/**
* 插屏广告预加载是否完成
*/
@property (nonatomic, assign) BOOL isReady;
/**
* 委托对象
*/
@property (nonatomic, weak) id<GDTMobInterstitialDelegate> delegate;
/**
* 构造方法
* 详解:appId - 媒体 ID
* placementId - 广告位 ID
*/
- (instancetype)initWithAppId:(NSString *)appId placementId:(NSString *)placementId;
/**
* 广告发起请求方法
* 详解:[必选]发起拉取广告请求
*/
- (void)loadAd;
/**
* 广告展示方法
* 详解:[必选]发起展示广告请求, 必须传入用于显示插播广告的UIViewController
*/
- (void)presentFromRootViewController:(UIViewController *)rootViewController;
#pragma mark - DEPRECATED
- (instancetype)initWithAppkey:(NSString *)appkey placementId:(NSString *)placementId GDT_DEPRECATED_MSG_ATTRIBUTE("use initWithAppId:placementId: instead.");
@end
//
// GDTNativeAd.h
// GDTMobApp
//
// Created by GaoChao on 14/11/6.
// Copyright (c) 2014年 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <StoreKit/StoreKit.h>
#import "GDTSDKDefines.h"
extern NSString* const GDTNativeAdDataKeyTitle;
extern NSString* const GDTNativeAdDataKeyDesc;
extern NSString* const GDTNativeAdDataKeyIconUrl;
extern NSString* const GDTNativeAdDataKeyImgUrl;
extern NSString* const GDTNativeAdDataKeyAppRating;
extern NSString* const GDTNativeAdDataKeyAppPrice;
extern NSString* const GDTNativeAdDataKeyImgList;
extern NSString* const GDTNativeAdDataKeyImgWidth;
extern NSString* const GDTNativeAdDataKeyImgHeight;
@interface GDTNativeAdData : NSObject
/*
* 广告内容字典
* 详解:[必选]开发者调用LoadAd成功之后从该属性中获取广告数据
* 广告数据以字典的形式存储,开发者目前可以通过如下键获取数据
* 1. GDTNativeAdDataKeyTitle 标题
* 2. GDTNativeAdDataKeyDesc 描述
* 3. GDTNativeAdDataKeyIconUrl 图标Url
* 4. GDTNativeAdDataKeyImgUrl 大图Url
* 5. GDTNativeAdDataKeyAppRating 应用类广告的星级
* 6. GDTNativeAdDataKeyAppPrice 应用类广告的价格
* 7. GDTNativeAdDataKeyImgList 三小图广告的图片集合
* 8. GDTNativeAdDataKeyImgWidth 素材宽度
* 9. GDTNativeAdDataKeyImgHeight 素材高度
*/
@property (nonatomic, retain, readonly) NSDictionary *properties;
/*
* 判断两个原生广告数据对象是否相等
*/
- (BOOL)equalsAdData:(GDTNativeAdData *)data;
/*
* 获取该原生广告是否为应用类广告
*/
- (BOOL)isAppAd;
/*
* 获取该原生广告是否为三小图广告,当为三小图广告时,可以通过GDTNativeAdDataKeyImgList获取三张图片资源供渲染
*/
- (BOOL)isThreeImgsAd;
/**
返回广告的eCPM,单位:分
@return 成功返回一个大于等于0的值,-1表示无权限或后台出现异常
*/
- (NSInteger)eCPM;
/**
返回广告的eCPM等级
@return 成功返回一个包含数字的string,@""或nil表示无权限或后台异常
*/
- (NSString *)eCPMLevel;
@end
@class GDTNativeAd;
@protocol GDTNativeAdDelegate <NSObject>
/**
* 原生广告加载广告数据成功回调,返回为GDTNativeAdData对象的数组
*/
- (void)nativeAdSuccessToLoad:(NSArray *)nativeAdDataArray;
/**
* 原生广告加载广告数据失败回调
*/
- (void)nativeAdFailToLoad:(NSError *)error;
@optional
/**
* 原生广告点击之后将要展示内嵌浏览器或应用内AppStore回调
*/
- (void)nativeAdWillPresentScreen;
/**
* 原生广告点击之后应用进入后台时回调
*/
- (void)nativeAdApplicationWillEnterBackground;
/**
* 原生广告点击以后,内置AppStore或是内置浏览器被关闭时回调
*/
- (void)nativeAdClosed;
@end
@interface GDTNativeAd : NSObject<SKStoreProductViewControllerDelegate>
/*
* viewControllerForPresentingModalView
* 详解:[必选]开发者需传入用来弹出目标页的ViewController,一般为当前ViewController
*/
@property (nonatomic, weak) UIViewController *controller;
/**
* 委托对象
*/
@property (nonatomic, weak) id<GDTNativeAdDelegate> delegate;
/**
* 构造方法
* 详解:appId - 媒体 ID
* placementId - 广告位 ID
*/
- (instancetype)initWithAppId:(NSString *)appId placementId:(NSString *)placementId;
/**
* 广告发起请求方法
* 详解:[必选]发起拉取广告请求,在获得广告数据后回调delegate
* @param adCount 一次拉取广告的个数
*/
- (void)loadAd:(int)adCount;
/**
* 广告数据渲染完毕即将展示时调用方法
* 详解:[必选]广告数据渲染完毕,即将展示时需调用本方法。
* @param nativeAdData 广告渲染的数据对象
* @param view 渲染出的广告结果页面
*/
- (void)attachAd:(GDTNativeAdData *)nativeAdData toView:(UIView *)view;
/**
* 广告点击调用方法
* 详解:当用户点击广告时,开发者需调用本方法,系统会弹出内嵌浏览器、或内置AppStore、
* 或打开系统Safari,来展现广告目标页面
* @param nativeAdData 用户点击的广告数据对象
*/
- (void)clickAd:(GDTNativeAdData *)nativeAdData;
#pragma mark - DEPRECATED
- (instancetype)initWithAppkey:(NSString *)appkey placementId:(NSString *)placementId GDT_DEPRECATED_MSG_ATTRIBUTE("use initWithAppId:placementId: instead.");
@end
//
// GDTNativeExpressAd.h
// GDTMobApp
//
// Created by michaelxing on 2017/4/17.
// Copyright © 2017年 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "GDTSDKDefines.h"
@class GDTNativeExpressAdView;
@class GDTNativeExpressAd;
@protocol GDTNativeExpressAdDelegete <NSObject>
@optional
/**
* 拉取原生模板广告成功
*/
- (void)nativeExpressAdSuccessToLoad:(GDTNativeExpressAd *)nativeExpressAd views:(NSArray<__kindof GDTNativeExpressAdView *> *)views;
/**
* 拉取原生模板广告失败
*/
- (void)nativeExpressAdFailToLoad:(GDTNativeExpressAd *)nativeExpressAd error:(NSError *)error;
/**
* 原生模板广告渲染成功, 此时的 nativeExpressAdView.size.height 根据 size.width 完成了动态更新。
*/
- (void)nativeExpressAdViewRenderSuccess:(GDTNativeExpressAdView *)nativeExpressAdView;
/**
* 原生模板广告渲染失败
*/
- (void)nativeExpressAdViewRenderFail:(GDTNativeExpressAdView *)nativeExpressAdView;
/**
* 原生模板广告曝光回调
*/
- (void)nativeExpressAdViewExposure:(GDTNativeExpressAdView *)nativeExpressAdView;
/**
* 原生模板广告点击回调
*/
- (void)nativeExpressAdViewClicked:(GDTNativeExpressAdView *)nativeExpressAdView;
/**
* 原生模板广告被关闭
*/
- (void)nativeExpressAdViewClosed:(GDTNativeExpressAdView *)nativeExpressAdView;
/**
* 点击原生模板广告以后即将弹出全屏广告页
*/
- (void)nativeExpressAdViewWillPresentScreen:(GDTNativeExpressAdView *)nativeExpressAdView;
/**
* 点击原生模板广告以后弹出全屏广告页
*/
- (void)nativeExpressAdViewDidPresentScreen:(GDTNativeExpressAdView *)nativeExpressAdView;
/**
* 全屏广告页将要关闭
*/
- (void)nativeExpressAdViewWillDissmissScreen:(GDTNativeExpressAdView *)nativeExpressAdView;
/**
* 全屏广告页将要关闭
*/
- (void)nativeExpressAdViewDidDissmissScreen:(GDTNativeExpressAdView *)nativeExpressAdView;
/**
* 详解:当点击应用下载或者广告调用系统程序打开时调用
*/
- (void)nativeExpressAdViewApplicationWillEnterBackground:(GDTNativeExpressAdView *)nativeExpressAdView;
/**
* 原生模板视频广告 player 播放状态更新回调
*/
- (void)nativeExpressAdView:(GDTNativeExpressAdView *)nativeExpressAdView playerStatusChanged:(GDTMediaPlayerStatus)status;
/**
* 原生视频模板详情页 WillPresent 回调
*/
- (void)nativeExpressAdViewWillPresentVideoVC:(GDTNativeExpressAdView *)nativeExpressAdView;
/**
* 原生视频模板详情页 DidPresent 回调
*/
- (void)nativeExpressAdViewDidPresentVideoVC:(GDTNativeExpressAdView *)nativeExpressAdView;
/**
* 原生视频模板详情页 WillDismiss 回调
*/
- (void)nativeExpressAdViewWillDismissVideoVC:(GDTNativeExpressAdView *)nativeExpressAdView;
/**
* 原生视频模板详情页 DidDismiss 回调
*/
- (void)nativeExpressAdViewDidDismissVideoVC:(GDTNativeExpressAdView *)nativeExpressAdView;
@end
@interface GDTNativeExpressAd : NSObject
/**
* 委托对象
*/
@property (nonatomic, weak) id<GDTNativeExpressAdDelegete> delegate;
/**
* 非 WiFi 网络,是否自动播放。默认 NO。loadAd 前设置。
*/
@property (nonatomic, assign) BOOL videoAutoPlayOnWWAN;
/**
* 自动播放时,是否静音。默认 YES。loadAd 前设置。
*/
@property (nonatomic, assign) BOOL videoMuted;
/**
请求视频的时长上限,有效值范围为[5,60]。
*/
@property (nonatomic) NSInteger maxVideoDuration;
@property (nonatomic, readonly) NSString *placementId;
/**
* 构造方法
* 详解:appId - 媒体 ID
* placementId - 广告位 ID
* adSize - 广告展示的宽高
*/
- (instancetype)initWithAppId:(NSString *)appId placementId:(NSString *)placementId adSize:(CGSize)size;
- (void)loadAd:(NSInteger)count;
#pragma mark - DEPRECATED
- (instancetype)initWithAppkey:(NSString *)appkey placementId:(NSString *)placementId adSize:(CGSize)size GDT_DEPRECATED_MSG_ATTRIBUTE("use initWithAppId:placementId:adSize instead.");
@end
//
// GDTNativeExpressAdView.h
// GDTMobApp
//
// Created by michaelxing on 2017/4/14.
// Copyright © 2017年 Tencent. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface GDTNativeExpressAdView : UIView
/**
* 是否渲染完毕
*/
@property (nonatomic, assign, readonly) BOOL isReady;
/**
* 是否是视频模板广告
*/
@property (nonatomic, assign, readonly) BOOL isVideoAd;
/*
* viewControllerForPresentingModalView
* 详解:[必选]开发者需传入用来弹出目标页的ViewController,一般为当前ViewController
*/
@property (nonatomic, weak) UIViewController *controller;
/**
*[必选]
*原生模板广告渲染
*/
- (void)render;
/**
* 视频模板广告时长,单位 ms
*/
- (CGFloat)videoDuration;
/**
* 视频模板广告已播放时长,单位 ms
*/
- (CGFloat)videoPlayTime;
/**
返回广告的eCPM,单位:分
@return 成功返回一个大于等于0的值,-1表示无权限或后台出现异常
*/
- (NSInteger)eCPM;
/**
返回广告的eCPM等级
@return 成功返回一个包含数字的string,@""或nil表示无权限或后台异常
*/
- (NSString *)eCPMLevel;
@end
//
// GDTRewardVideoAd.h
// GDTMobSDK
//
// Created by royqpwang on 2018/9/1.
// Copyright © 2018年 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@protocol GDTRewardedVideoAdDelegate;
@interface GDTRewardVideoAd : NSObject
@property (nonatomic, getter=isAdValid, readonly) BOOL adValid;
@property (nonatomic, assign, readonly) NSInteger expiredTimestamp;
@property (nonatomic, weak) id <GDTRewardedVideoAdDelegate> delegate;
@property (nonatomic, readonly) NSString *placementId;
/**
构造方法
@param appId - 媒体 ID
@param placementId - 广告位 ID
@return GDTRewardVideoAd 实例
*/
- (instancetype)initWithAppId:(NSString *)appId placementId:(NSString *)placementId;
/**
加载广告方法 支持 iOS8.1 及以上系统
*/
- (void)loadAd;
/**
展示广告方法
@param rootViewController 用于 present 激励视频 VC
@return 是否展示成功
*/
- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController;
/**
返回广告的eCPM,单位:分
@return 成功返回一个大于等于0的值,-1表示无权限或后台出现异常
*/
- (NSInteger)eCPM;
/**
返回广告的eCPM等级
@return 成功返回一个包含数字的string,@""或nil表示无权限或后台异常
*/
- (NSString *)eCPMLevel;
/**
返回广告平台名称
@return 当使用 google 补余功能时,用于区分广告平台
*/
- (NSString *)adNetworkName;
@end
@protocol GDTRewardedVideoAdDelegate <NSObject>
@optional
/**
广告数据加载成功回调
@param rewardedVideoAd GDTRewardVideoAd 实例
*/
- (void)gdt_rewardVideoAdDidLoad:(GDTRewardVideoAd *)rewardedVideoAd;
/**
视频数据下载成功回调,已经下载过的视频会直接回调
@param rewardedVideoAd GDTRewardVideoAd 实例
*/
- (void)gdt_rewardVideoAdVideoDidLoad:(GDTRewardVideoAd *)rewardedVideoAd;
/**
视频播放页即将展示回调
@param rewardedVideoAd GDTRewardVideoAd 实例
*/
- (void)gdt_rewardVideoAdWillVisible:(GDTRewardVideoAd *)rewardedVideoAd;
/**
视频广告曝光回调
@param rewardedVideoAd GDTRewardVideoAd 实例
*/
- (void)gdt_rewardVideoAdDidExposed:(GDTRewardVideoAd *)rewardedVideoAd;
/**
视频播放页关闭回调
@param rewardedVideoAd GDTRewardVideoAd 实例
*/
- (void)gdt_rewardVideoAdDidClose:(GDTRewardVideoAd *)rewardedVideoAd;
/**
视频广告信息点击回调
@param rewardedVideoAd GDTRewardVideoAd 实例
*/
- (void)gdt_rewardVideoAdDidClicked:(GDTRewardVideoAd *)rewardedVideoAd;
/**
视频广告各种错误信息回调
@param rewardedVideoAd GDTRewardVideoAd 实例
@param error 具体错误信息
*/
- (void)gdt_rewardVideoAd:(GDTRewardVideoAd *)rewardedVideoAd didFailWithError:(NSError *)error;
/**
视频广告播放达到激励条件回调
@param rewardedVideoAd GDTRewardVideoAd 实例
*/
- (void)gdt_rewardVideoAdDidRewardEffective:(GDTRewardVideoAd *)rewardedVideoAd;
/**
视频广告视频播放完成
@param rewardedVideoAd GDTRewardVideoAd 实例
*/
- (void)gdt_rewardVideoAdDidPlayFinish:(GDTRewardVideoAd *)rewardedVideoAd;
@end
NS_ASSUME_NONNULL_END
//
// GDTRewardVideoAdNetworkAdapterProtocol.h
// GDTMobApp
//
// Created by royqpwang on 2019/6/19.
// Copyright © 2019 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "GDTBaseAdNetworkAdapterProtocol.h"
@protocol GDTRewardVideoAdNetworkConnectorProtocol;
NS_ASSUME_NONNULL_BEGIN
@protocol GDTRewardVideoAdNetworkAdapterProtocol <GDTBaseAdNetworkAdapterProtocol>
- (void)loadAd;
- (BOOL)showAdFromRootViewController:(UIViewController *)viewController;
- (BOOL)isAdValid;
- (NSInteger)expiredTimestamp;
@end
NS_ASSUME_NONNULL_END
//
// GDTRewardVideoAdNetworkConnectorProtocol.h
// GDTMobApp
//
// Created by royqpwang on 2019/6/19.
// Copyright © 2019 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
@protocol GDTRewardVideoAdNetworkAdapterProtocol;
@protocol GDTRewardVideoAdNetworkConnectorProtocol <NSObject>
- (void)adapter_rewardVideoAdDidLoad:(id<GDTRewardVideoAdNetworkAdapterProtocol>)adapter;
/**
视频数据下载成功回调,已经下载过的视频会直接回调
@param adapter 实例
*/
- (void)adapter_rewardVideoAdVideoDidLoad:(id<GDTRewardVideoAdNetworkAdapterProtocol>)adapter;
/**
视频播放页即将展示回调
@param adapter 实例
*/
- (void)adapter_rewardVideoAdWillVisible:(id<GDTRewardVideoAdNetworkAdapterProtocol>)adapter;
/**
视频广告曝光回调
@param adapter 实例
*/
- (void)adapter_rewardVideoAdDidExposed:(id<GDTRewardVideoAdNetworkAdapterProtocol>)adapter;
/**
视频播放页关闭回调
@param adapter 实例
*/
- (void)adapter_rewardVideoAdDidClose:(id<GDTRewardVideoAdNetworkAdapterProtocol>)adapter;
/**
视频广告信息点击回调
@param adapter 实例
*/
- (void)adapter_rewardVideoAdDidClicked:(id<GDTRewardVideoAdNetworkAdapterProtocol>)adapter;
/**
视频广告各种错误信息回调
@param adapter 实例
@param error 具体错误信息
*/
- (void)adapter_rewardVideoAd:(id<GDTRewardVideoAdNetworkAdapterProtocol>)adapter didFailWithError:(NSError *)error;
/**
视频广告播放达到激励条件回调
@param adapter 实例
*/
- (void)adapter_rewardVideoAdDidRewardEffective:(id<GDTRewardVideoAdNetworkAdapterProtocol>)adapter;
- (void)adapter_rewardVideoAdDidPlayFinish:(id<GDTRewardVideoAdNetworkAdapterProtocol>)adapter;
@end
//
// GDTSDKConfig.h
// GDTMobApp
//
// Created by GaoChao on 14/8/25.
// Copyright (c) 2014年 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "GDTSDKDefines.h"
@interface GDTSDKConfig : NSObject
/**
* 提供给聚合平台用来设定SDK 流量分类
*/
+ (void)setSdkSrc:(NSString *)sdkSrc;
/**
* 查看SDK流量来源
*/
+ (NSString *)sdkSrc;
/**
* 获取 SDK 版本
*/
+ (NSString *)sdkVersion;
+ (void)enableGPS:(BOOL)enabled;
#pragma mark - DEPRECATED
/**
* 打开HTTPS开关
* 详解:默认提供 HTTPS 资源,此方法废弃,请尽早删除。
*
*/
+ (void)setHttpsOn GDT_DEPRECATED_MSG_ATTRIBUTE("");
@end
//
// GDTSDKDefines.h
// GDTMobApp
//
// Created by royqpwang on 2017/11/6.
// Copyright © 2017年 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
#if defined(__has_attribute)
#if __has_attribute(deprecated)
#define GDT_DEPRECATED_MSG_ATTRIBUTE(s) __attribute__((deprecated(s)))
#define GDT_DEPRECATED_ATTRIBUTE __attribute__((deprecated))
#else
#define GDT_DEPRECATED_MSG_ATTRIBUTE(s)
#define GDT_DEPRECATED_ATTRIBUTE
#endif
#else
#define GDT_DEPRECATED_MSG_ATTRIBUTE(s)
#define GDT_DEPRECATED_ATTRIBUTE
#endif
#define ScreenHeight ([UIScreen mainScreen].bounds.size.height)
#define ScreenWidth ([UIScreen mainScreen].bounds.size.width)
/**
* 视频播放器状态
*
* 播放器只可能处于以下状态中的一种
*
*/
typedef NS_ENUM(NSUInteger, GDTMediaPlayerStatus) {
GDTMediaPlayerStatusInitial = 0, // 初始状态
GDTMediaPlayerStatusLoading = 1, // 加载中
GDTMediaPlayerStatusStarted = 2, // 开始播放
GDTMediaPlayerStatusPaused = 3, // 用户行为导致暂停
GDTMediaPlayerStatusStoped = 4, // 播放停止
GDTMediaPlayerStatusError = 5, // 播放出错
};
typedef enum GDTSDKLoginType {
GDTSDKLoginTypeUnknow = 0,
GDTSDKLoginTypeWeiXin = 1, //微信账号
GDTSDKLoginTypeQQ = 2, //QQ账号
} GDTSDKLoginType;
static inline BOOL isIPhoneXSeries() {
if (@available(iOS 11.0, *)) {
UIWindow *mainWindow = [[[UIApplication sharedApplication] delegate] window];
if (mainWindow.safeAreaInsets.bottom > 0.0) {
return YES;
}
}
return NO;
}
//
// GDTSplashAd.h
// GDTMobApp
//
// 广点通开屏广告,目前只支持iPhone设备上展示垂直方向的开屏广告
// Created by GaoChao on 15/8/20.
// Copyright © 2015年 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "GDTSDKDefines.h"
@class GDTSplashAd;
@protocol GDTSplashAdDelegate <NSObject>
@optional
/**
* 开屏广告成功展示
*/
- (void)splashAdSuccessPresentScreen:(GDTSplashAd *)splashAd;
/**
* 开屏广告素材加载成功
*/
- (void)splashAdDidLoad:(GDTSplashAd *)splashAd;
/**
* 开屏广告展示失败
*/
- (void)splashAdFailToPresent:(GDTSplashAd *)splashAd withError:(NSError *)error;
/**
* 应用进入后台时回调
* 详解: 当点击下载应用时会调用系统程序打开,应用切换到后台
*/
- (void)splashAdApplicationWillEnterBackground:(GDTSplashAd *)splashAd;
/**
* 开屏广告曝光回调
*/
- (void)splashAdExposured:(GDTSplashAd *)splashAd;
/**
* 开屏广告点击回调
*/
- (void)splashAdClicked:(GDTSplashAd *)splashAd;
/**
* 开屏广告将要关闭回调
*/
- (void)splashAdWillClosed:(GDTSplashAd *)splashAd;
/**
* 开屏广告关闭回调
*/
- (void)splashAdClosed:(GDTSplashAd *)splashAd;
/**
* 开屏广告点击以后即将弹出全屏广告页
*/
- (void)splashAdWillPresentFullScreenModal:(GDTSplashAd *)splashAd;
/**
* 开屏广告点击以后弹出全屏广告页
*/
- (void)splashAdDidPresentFullScreenModal:(GDTSplashAd *)splashAd;
/**
* 点击以后全屏广告页将要关闭
*/
- (void)splashAdWillDismissFullScreenModal:(GDTSplashAd *)splashAd;
/**
* 点击以后全屏广告页已经关闭
*/
- (void)splashAdDidDismissFullScreenModal:(GDTSplashAd *)splashAd;
/**
* 开屏广告剩余时间回调
*/
- (void)splashAdLifeTime:(NSUInteger)time;
@end
@interface GDTSplashAd : NSObject
/**
* 委托对象
*/
@property (nonatomic, weak) id<GDTSplashAdDelegate> delegate;
/**
* 拉取广告超时时间,默认为3秒
* 详解:拉取广告超时时间,开发者调用loadAd方法以后会立即展示backgroundImage,然后在该超时时间内,如果广告拉
* 取成功,则立马展示开屏广告,否则放弃此次广告展示机会。
*/
@property (nonatomic, assign) NSInteger fetchDelay;
/**
* 开屏广告的背景图片
* 可以设置背景图片作为开屏加载时的默认背景
*/
@property (nonatomic, strong) UIImage *backgroundImage;
/**
* 开屏广告的背景色
* 可以设置开屏图片来作为开屏加载时的默认图片
*/
@property (nonatomic, copy) UIColor *backgroundColor;
/**
* 跳过按钮的位置
*/
@property (nonatomic, assign) CGPoint skipButtonCenter;
/**
返回广告平台名称
@return 当使用流量分配功能时,用于区分广告平台;未使用时为空字符串
*/
- (NSString *)adNetworkName;
/**
* 构造方法
* 详解:appId - 媒体 ID
* placementId - 广告位 ID
*/
- (instancetype)initWithAppId:(NSString *)appId placementId:(NSString *)placementId;
/**
* 广告发起请求并展示在Window中
* 详解:[可选]发起拉取广告请求,并将获取的广告以全屏形式展示在传入的Window参数中
* 提示: Splash广告只支持竖屏
* @param window 展示全屏开屏的容器
*/
- (void)loadAdAndShowInWindow:(UIWindow *)window;
/**
* 广告发起请求并展示在Window中, 同时在屏幕底部设置应用自身的Logo页面或是自定义View
* 详解:[可选]发起拉取广告请求,并将获取的广告以半屏形式展示在传入的Window的上半部,剩余部分展示传入的bottomView
* 请注意1.bottomView需设置好宽高,所占的空间不能过大,并保证高度不超过屏幕高度的 25%。2.Splash广告只支持竖屏
* @param window 展示开屏的容器
* bottomView 自定义底部View,可以在此View中设置应用Logo
*/
- (void)loadAdAndShowInWindow:(UIWindow *)window withBottomView:(UIView *)bottomView;
/**
* 广告发起请求并展示在Window中, 同时在屏幕底部设置应用自身的Logo页面或是自定义View,skipView是自定义的“跳过”样式
* 详解:[可选]发起拉取广告请求,并将获取的广告以半屏形式展示在传入的Window的上半部,剩余部分展示传入的bottomView
* 请注意1.bottomView需设置好宽高,所占的空间不能过大,并保证高度不超过屏幕高度的 25%。2.Splash广告只支持竖屏
* skipView
* @param window 展示开屏的容器
* bottomView 自定义底部View,可以在此View中设置应用Logo
skipView 自定义”跳过“View.
*/
- (void)loadAdAndShowInWindow:(UIWindow *)window withBottomView:(UIView *)bottomView skipView:(UIView *)skipView;
/**
预加载闪屏广告接口
@param appId 媒体ID
@param placementId 广告位ID
*/
+ (void)preloadSplashOrderWithAppId:(NSString *)appId placementId:(NSString *)placementId;
@end
//
// GDTUnifiedBannerView.h
// GDTMobSDK
//
// Created by nimomeng on 2019/3/1.
// Copyright © 2019 Tencent. All rights reserved.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class GDTUnifiedBannerView;
@protocol GDTUnifiedBannerViewDelegate <NSObject>
@optional
/**
* 请求广告条数据成功后调用
* 当接收服务器返回的广告数据成功后调用该函数
*/
- (void)unifiedBannerViewDidLoad:(GDTUnifiedBannerView *)unifiedBannerView;
/**
* 请求广告条数据失败后调用
* 当接收服务器返回的广告数据失败后调用该函数
*/
- (void)unifiedBannerViewFailedToLoad:(GDTUnifiedBannerView *)unifiedBannerView error:(NSError *)error;
/**
* banner2.0曝光回调
*/
- (void)unifiedBannerViewWillExpose:(GDTUnifiedBannerView *)unifiedBannerView;
/**
* banner2.0点击回调
*/
- (void)unifiedBannerViewClicked:(GDTUnifiedBannerView *)unifiedBannerView;
/**
* banner2.0广告点击以后即将弹出全屏广告页
*/
- (void)unifiedBannerViewWillPresentFullScreenModal:(GDTUnifiedBannerView *)unifiedBannerView;
/**
* banner2.0广告点击以后弹出全屏广告页完毕
*/
- (void)unifiedBannerViewDidPresentFullScreenModal:(GDTUnifiedBannerView *)unifiedBannerView;
/**
* 全屏广告页即将被关闭
*/
- (void)unifiedBannerViewWillDismissFullScreenModal:(GDTUnifiedBannerView *)unifiedBannerView;
/**
* 全屏广告页已经被关闭
*/
- (void)unifiedBannerViewDidDismissFullScreenModal:(GDTUnifiedBannerView *)unifiedBannerView;
/**
* 当点击应用下载或者广告调用系统程序打开
*/
- (void)unifiedBannerViewWillLeaveApplication:(GDTUnifiedBannerView *)unifiedBannerView;
/**
* banner2.0被用户关闭时调用
*/
- (void)unifiedBannerViewWillClose:(GDTUnifiedBannerView *)unifiedBannerView;
@end
@interface GDTUnifiedBannerView : UIView
/**
* 委托 [可选]
*/
@property (nonatomic, weak) id<GDTUnifiedBannerViewDelegate> delegate;
/**
* Banner展现和轮播时的动画效果开关,默认打开
*/
@property (nonatomic) BOOL animated;
/**
* 广告刷新间隔,范围 [30, 120] 秒,默认值 30 秒。设 0 则不刷新。 [可选]
*/
@property (nonatomic) int autoSwitchInterval;
/**
* 构造方法
* 详解:appId - 媒体 ID
* placementId - 广告位 ID
* viewController - 视图控制器
*/
- (instancetype)initWithAppId:(NSString *)appId
placementId:(NSString *)placementId
viewController:(UIViewController *)viewController;
/**
* 构造方法
* 详解:frame - banner 展示的位置和大小
* appId - 媒体 ID
* placementId - 广告位 ID
* viewController - 视图控制器
*/
- (instancetype)initWithFrame:(CGRect)frame
appId:(NSString *)appId
placementId:(NSString *)placementId
viewController:(UIViewController *)viewController;
/**
* 拉取并展示广告
*/
- (void)loadAdAndShow;
@end
NS_ASSUME_NONNULL_END
//
// GDTUnifiedInterstitialAd.h
// GDTMobApp
//
// Created by nimomeng on 2019/3/4.
// Copyright © 2019 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@class GDTUnifiedInterstitialAd;
@protocol GDTUnifiedInterstitialAdDelegate <NSObject>
@optional
/**
* 插屏2.0广告预加载成功回调
* 当接收服务器返回的广告数据成功且预加载后调用该函数
*/
- (void)unifiedInterstitialSuccessToLoadAd:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
/**
* 插屏2.0广告预加载失败回调
* 当接收服务器返回的广告数据失败后调用该函数
*/
- (void)unifiedInterstitialFailToLoadAd:(GDTUnifiedInterstitialAd *)unifiedInterstitial error:(NSError *)error;
/**
* 插屏2.0广告将要展示回调
* 插屏2.0广告即将展示回调该函数
*/
- (void)unifiedInterstitialWillPresentScreen:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
/**
* 插屏2.0广告视图展示成功回调
* 插屏2.0广告展示成功回调该函数
*/
- (void)unifiedInterstitialDidPresentScreen:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
/**
* 插屏2.0广告视图展示失败回调
* 插屏2.0广告展示失败回调该函数
*/
- (void)unifiedInterstitialFailToPresent:(GDTUnifiedInterstitialAd *)unifiedInterstitial error:(NSError *)error;
/**
* 插屏2.0广告展示结束回调
* 插屏2.0广告展示结束回调该函数
*/
- (void)unifiedInterstitialDidDismissScreen:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
/**
* 当点击下载应用时会调用系统程序打开其它App或者Appstore时回调
*/
- (void)unifiedInterstitialWillLeaveApplication:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
/**
* 插屏2.0广告曝光回调
*/
- (void)unifiedInterstitialWillExposure:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
/**
* 插屏2.0广告点击回调
*/
- (void)unifiedInterstitialClicked:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
/**
* 点击插屏2.0广告以后即将弹出全屏广告页
*/
- (void)unifiedInterstitialAdWillPresentFullScreenModal:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
/**
* 点击插屏2.0广告以后弹出全屏广告页
*/
- (void)unifiedInterstitialAdDidPresentFullScreenModal:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
/**
* 全屏广告页将要关闭
*/
- (void)unifiedInterstitialAdWillDismissFullScreenModal:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
/**
* 全屏广告页被关闭
*/
- (void)unifiedInterstitialAdDidDismissFullScreenModal:(GDTUnifiedInterstitialAd *)unifiedInterstitial;
@end
@interface GDTUnifiedInterstitialAd : NSObject
/**
* 插屏2.0广告预加载是否完成
*/
@property (nonatomic, readonly) BOOL isAdValid;
/**
* 委托对象
*/
@property (nonatomic, weak) id<GDTUnifiedInterstitialAdDelegate> delegate;
@property (nonatomic, readonly) NSString *placementId;
/**
* 构造方法
* 详解:appId - 媒体 ID
* placementId - 广告位 ID
*/
- (instancetype)initWithAppId:(NSString *)appId placementId:(NSString *)placementId;
/**
* 广告发起请求方法
* 详解:[必选]发起拉取广告请求
*/
- (void)loadAd;
/**
* 广告展示方法
* 详解:[必选]发起展示广告请求, 必须传入用于显示插播广告的UIViewController
*/
- (void)presentAdFromRootViewController:(UIViewController *)rootViewController;
/**
返回广告的eCPM,单位:分
@return 成功返回一个大于等于0的值,-1表示无权限或后台出现异常
*/
- (NSInteger)eCPM;
/**
返回广告的eCPM等级
@return 成功返回一个包含数字的string,@""或nil表示无权限或后台异常
*/
- (NSString *)eCPMLevel;
/**
返回广告平台名称
@return 当使用流量分配功能时,用于区分广告平台;未使用时为空字符串
*/
- (NSString *)adNetworkName;
@end
NS_ASSUME_NONNULL_END
//
// GDTUnifiedNativeAd.h
// GDTMobSDK
//
// Created by nimomeng on 2018/10/10.
// Copyright © 2018 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "GDTUnifiedNativeAdDataObject.h"
#import "GDTUnifiedNativeAdView.h"
NS_ASSUME_NONNULL_BEGIN
@protocol GDTUnifiedNativeAdDelegate <NSObject>
/**
广告数据回调
@param unifiedNativeAdDataObjects 广告数据数组
@param error 错误信息
*/
- (void)gdt_unifiedNativeAdLoaded:(NSArray<GDTUnifiedNativeAdDataObject *> * _Nullable)unifiedNativeAdDataObjects error:(NSError * _Nullable)error;
@end
@interface GDTUnifiedNativeAd : NSObject
@property (nonatomic, weak) id<GDTUnifiedNativeAdDelegate> delegate;
/**
请求视频的最大时长,有效值范围为[5,60]。
*/
@property (nonatomic) NSInteger maxVideoDuration;
/**
构造方法
@param appId 媒体ID
@param placementId 广告位ID
@return GDTUnifiedNativeAd 实例
*/
- (instancetype)initWithAppId:(NSString *)appId placementId:(NSString *)placementId;
/**
加载广告
*/
- (void)loadAd;
/**
加载广告
@param adCount 加载条数
*/
- (void)loadAdWithAdCount:(int)adCount;
/**
返回广告平台名称
@return 当使用流量分配功能时,用于区分广告平台;未使用时为空字符串
*/
- (NSString *)adNetworkName;
@end
NS_ASSUME_NONNULL_END
//
// GDTUnifiedNativeAdDataObject.h
// GDTMobSDK
//
// Created by nimomeng on 2018/10/10.
// Copyright © 2018 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "GDTVideoConfig.h"
@interface GDTUnifiedNativeAdDataObject : NSObject
/**
广告标题
*/
@property (nonatomic, copy, readonly) NSString *title;
/**
广告描述
*/
@property (nonatomic, copy, readonly) NSString *desc;
/**
广告大图Url
*/
@property (nonatomic, copy, readonly) NSString *imageUrl;
/**
素材宽度,单图广告代表大图 imageUrl 宽度、多图广告代表小图 mediaUrlList 宽度
*/
@property (nonatomic, readonly) NSInteger imageWidth;
/**
素材高度,单图广告代表大图 imageUrl 高度、多图广告代表小图 mediaUrlList 高度
*/
@property (nonatomic, readonly) NSInteger imageHeight;
/**
应用类广告App 图标Url
*/
@property (nonatomic, copy, readonly) NSString *iconUrl;
/**
三小图广告的图片Url集合
*/
@property (nonatomic, copy, readonly) NSArray *mediaUrlList;
/**
应用类广告的星级(5星制度)
*/
@property (nonatomic, readonly) CGFloat appRating;
/**
应用类广告的价格
*/
@property (nonatomic, strong, readonly) NSNumber *appPrice;
/**
是否为应用类广告
*/
@property (nonatomic, readonly) BOOL isAppAd;
/**
是否为视频广告
*/
@property (nonatomic, readonly) BOOL isVideoAd;
/**
是否为三小图广告
*/
@property (nonatomic, readonly) BOOL isThreeImgsAd;
/**
返回广告的eCPM,单位:分
@return 成功返回一个大于等于0的值,-1表示无权限或后台出现异常
*/
@property (nonatomic, readonly) NSInteger eCPM;
/**
返回广告的eCPM等级
@return 成功返回一个包含数字的string,@""或nil表示无权限或后台异常
*/
@property (nonatomic, readonly) NSString *eCPMLevel;
/*
广告对应的CTA文案,自定义CTA视图时建议使用此字段
广告对应的callToAction文案,比如“立即预约”或“电话咨询”, 自定义callToAction视图时建议使用此字段
该字段在部分广告类型中可能为空
*/
@property (nonatomic, readonly) NSString *callToAction;
/**
视频广告播放配置
*/
@property (nonatomic, strong) GDTVideoConfig *videoConfig;
/**
判断两个自渲染2.0广告数据是否相等
@param dataObject 需要对比的自渲染2.0广告数据对象
@return YES or NO
*/
- (BOOL)equalsAdData:(GDTUnifiedNativeAdDataObject *)dataObject;
@end
//
// GDTUnifiedNativeAdView.h
// GDTMobSDK
//
// Created by nimomeng on 2018/10/10.
// Copyright © 2018 Tencent. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "GDTLogoView.h"
#import "GDTMediaView.h"
#import "GDTUnifiedNativeAdDataObject.h"
#import "GDTSDKDefines.h"
@class GDTUnifiedNativeAdView;
//视频广告时长Key
extern NSString* const kGDTUnifiedNativeAdKeyVideoDuration;
@protocol GDTUnifiedNativeAdViewDelegate <NSObject>
@optional
/**
广告曝光回调
@param unifiedNativeAdView GDTUnifiedNativeAdView 实例
*/
- (void)gdt_unifiedNativeAdViewWillExpose:(GDTUnifiedNativeAdView *)unifiedNativeAdView;
/**
广告点击回调
@param unifiedNativeAdView GDTUnifiedNativeAdView 实例
*/
- (void)gdt_unifiedNativeAdViewDidClick:(GDTUnifiedNativeAdView *)unifiedNativeAdView;
/**
广告详情页关闭回调
@param unifiedNativeAdView GDTUnifiedNativeAdView 实例
*/
- (void)gdt_unifiedNativeAdDetailViewClosed:(GDTUnifiedNativeAdView *)unifiedNativeAdView;
/**
当点击应用下载或者广告调用系统程序打开时调用
@param unifiedNativeAdView GDTUnifiedNativeAdView 实例
*/
- (void)gdt_unifiedNativeAdViewApplicationWillEnterBackground:(GDTUnifiedNativeAdView *)unifiedNativeAdView;
/**
广告详情页面即将展示回调
@param unifiedNativeAdView GDTUnifiedNativeAdView 实例
*/
- (void)gdt_unifiedNativeAdDetailViewWillPresentScreen:(GDTUnifiedNativeAdView *)unifiedNativeAdView;
/**
视频广告播放状态更改回调
@param nativeExpressAdView GDTUnifiedNativeAdView 实例
@param status 视频广告播放状态
@param userInfo 视频广告信息
*/
- (void)gdt_unifiedNativeAdView:(GDTUnifiedNativeAdView *)unifiedNativeAdView playerStatusChanged:(GDTMediaPlayerStatus)status userInfo:(NSDictionary *)userInfo;
@end
@interface GDTUnifiedNativeAdView:UIView
/**
绑定的数据对象
*/
@property (nonatomic, strong, readonly) GDTUnifiedNativeAdDataObject *dataObject;
/**
视频广告的媒体View,绑定数据对象后自动生成,可自定义布局
*/
@property (nonatomic, strong, readonly) GDTMediaView *mediaView;
/**
腾讯广告 LogoView,自动生成,可自定义布局
*/
@property (nonatomic, strong, readonly) GDTLogoView *logoView;
/**
广告 View 时间回调对象
*/
@property (nonatomic, weak) id<GDTUnifiedNativeAdViewDelegate> delegate;
/*
* viewControllerForPresentingModalView
* 详解:开发者需传入用来弹出目标页的ViewController,一般为当前ViewController
*/
@property (nonatomic, weak) UIViewController *viewController;
/**
自渲染2.0视图注册方法
@param dataObject 数据对象,必传字段
@param clickableViews 可点击的视图数组,此数组内的广告元素才可以响应广告对应的点击事件
*/
- (void)registerDataObject:(GDTUnifiedNativeAdDataObject *)dataObject
clickableViews:(NSArray<UIView *> *)clickableViews;
/**
注册可点击的callToAction视图的方法
建议开发者使用GDTUnifiedNativeAdDataObject中的callToAction字段来创建视图,并取代自定义的下载或打开等button,
调用此方法之前必须先调用registerDataObject:clickableViews
@param callToActionView CTA视图, 系统自动处理点击事件
*/
- (void)registerClickableCallToActionView:(UIView *)callToActionView;
/**
注销数据对象,在 tableView、collectionView 等场景需要复用 GDTUnifiedNativeAdView 时,
需要在合适的时机,例如 cell 的 prepareForReuse 方法内执行 unregisterDataObject 方法,
将广告对象与 GDTUnifiedNativeAdView 解绑,具体可参考示例 demo 的 UnifiedNativeAdBaseTableViewCell 类
*/
- (void)unregisterDataObject;
//#pragma mark - DEPRECATED
///**
// 此方法已经废弃
// 自渲染2.0视图注册方法
//
// @param dataObject 数据对象,必传字段
// @param logoView logo视图
// @param viewController 所在ViewController,必传字段。支持在register之后对其进行修改
// @param clickableViews 可点击的视图数组,此数组内的广告元素才可以响应广告对应的点击事件
// */
//- (void)registerDataObject:(GDTUnifiedNativeAdDataObject *)dataObject
// logoView:(GDTLogoView *)logoView
// viewController:(UIViewController *)viewController
// clickableViews:(NSArray<UIView *> *)clickableViews GDT_DEPRECATED_MSG_ATTRIBUTE("use registerDataObject:clickableViews: instead.");
//
//
///**
// 此方法已经废弃
// 自渲染2.0视图注册方法
//
// @param dataObject 数据对象,必传字段
// @param mediaView 媒体对象视图,此处放视频播放器的容器视图
// @param logoView logo视图
// @param viewController 所在ViewController,必传字段。支持在register之后对其进行修改
// @param clickableViews 可点击的视图数组,此数组内的广告元素才可以响应广告对应的点击事件
// */
//- (void)registerDataObject:(GDTUnifiedNativeAdDataObject *)dataObject
// mediaView:(GDTMediaView *)mediaView
// logoView:(GDTLogoView *)logoView
// viewController:(UIViewController *)viewController
// clickableViews:(NSArray<UIView *> *)clickableViews GDT_DEPRECATED_MSG_ATTRIBUTE("use registerDataObject:clickableViews: instead.");
@end
//
// GDTVideoConfig.h
// GDTMobApp
//
// Created by royqpwang on 2019/5/16.
// Copyright © 2019 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
typedef NS_ENUM(NSInteger, GDTVideoAutoPlayPolicy) {
GDTVideoAutoPlayPolicyWIFI = 0, // WIFI 下自动播放
GDTVideoAutoPlayPolicyAlways = 1, // 总是自动播放,无论网络条件
GDTVideoAutoPlayPolicyNever = 2, // 从不自动播放,无论网络条件
};
NS_ASSUME_NONNULL_BEGIN
@interface GDTVideoConfig : NSObject
/**
视频自动播放策略,默认 GDTVideoAutoPlayPolicyWIFI,
选择 GDTVideoAutoPlayPolicyNever 策略时,需要开发者调用 GDTMediaView 的 play\pause 方法触发视频播、暂停,
或者开启 userControlEnable 设置,让用户点击 MediaView 控制播放状态
*/
@property (nonatomic, assign) GDTVideoAutoPlayPolicy autoPlayPolicy;
/**
是否静音播放视频广告,视频初始状态是否静音,默认 YES,
可通过 GDTMediaView muteEnable: 方法实时控制播放器j静音状态,
*/
@property (nonatomic, assign) BOOL videoMuted;
/**
是否启动自动续播功能,当在 tableView 等场景播放器被销毁时,广告展示时继续从上次播放位置续播,默认 NO
*/
@property (nonatomic, assign) BOOL autoResumeEnable;
/**
广告发生点击行为时,是否展示视频详情页,默认YES,
设为 NO 时,用户点击 clickableViews 会直接打开 App Store 或者广告落地页
*/
@property (nonatomic, assign) BOOL detailPageEnable;
/**
是否支持用户点击 MediaView 改变视频播放暂停状态,默认 NO
设为 YES 时,用户点击会切换播放器播放、暂停状态
*/
@property (nonatomic, assign) BOOL userControlEnable;
/**
是否展示播放进度条,默认 YES
*/
@property (nonatomic, assign) BOOL progressViewEnable;
/**
是否展示播放器封面图,默认 YES
*/
@property (nonatomic, assign) BOOL coverImageEnable;
@end
NS_ASSUME_NONNULL_END
../../../GDTMobSDK/lib/GDTBaseAdNetworkAdapterProtocol.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTHybridAd.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTLogoView.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTMediaView.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTMobBannerView.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTMobInterstitial.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTNativeAd.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTNativeExpressAd.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTNativeExpressAdView.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTRewardVideoAd.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTRewardVideoAdNetworkAdapterProtocol.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTRewardVideoAdNetworkConnectorProtocol.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTSDKConfig.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTSDKDefines.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTSplashAd.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTUnifiedBannerView.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTUnifiedInterstitialAd.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTUnifiedNativeAd.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTUnifiedNativeAdDataObject.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTUnifiedNativeAdView.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTVideoConfig.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTBaseAdNetworkAdapterProtocol.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTHybridAd.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTLogoView.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTMediaView.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTMobBannerView.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTMobInterstitial.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTNativeAd.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTNativeExpressAd.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTNativeExpressAdView.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTRewardVideoAd.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTRewardVideoAdNetworkAdapterProtocol.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTRewardVideoAdNetworkConnectorProtocol.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTSDKConfig.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTSDKDefines.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTSplashAd.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTUnifiedBannerView.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTUnifiedInterstitialAd.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTUnifiedNativeAd.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTUnifiedNativeAdDataObject.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTUnifiedNativeAdView.h
\ No newline at end of file
../../../GDTMobSDK/lib/GDTVideoConfig.h
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1100"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing = "YES"
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "6F2BDBDBBAD8487EF4614E1D729C5DD0"
BuildableName = "GDTMobSDK"
BlueprintName = "GDTMobSDK"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
buildConfiguration = "Debug"
allowLocationSimulation = "YES">
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES"
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/GDTMobSDK
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/GDTMobSDK" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/GDTMobSDK" $(SDKROOT)/usr/include/libxml2
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/GDTMobSDK
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment