123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339 |
- //
- // AdManager.h
- // AdAdmobSDK
- //
- // Created by 蒋龙 on 2019/7/16.
- // Copyright © 2019 com.YouLoft.CQ. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- #import <UIKit/UIKit.h>
- #define JLWeakSelf __weak typeof(self) weakSelf = self;
- #define JLStrongSelf __strong typeof(self) strongSelf = weakSelf;
- typedef NS_ENUM(NSInteger, BannerPosition) {
- BannerPosition_TopLeft = 0,
- BannerPosition_TopCenter = 1,
- BannerPosition_TopRight,
- BannerPosition_Centered,
- BannerPosition_BottomLeft,
- BannerPosition_BottomCenter,
- BannerPosition_BottomRight
- };
- NS_ASSUME_NONNULL_BEGIN
- @protocol AdManagerDelegate <NSObject>
- @optional
- /**
- banner加载成功
- */
- -(void)bannerDidLoadAd;
- /**
- banner加载失败
- @param errMsg 错误msg
- */
- -(void)bannerDidFailToLoadWithMsg:(NSString *)errMsg;
- /**
- banner接收到点击事件
- */
- -(void)bannerDidReceiveTapEvent;
- /**
- interstitial加载成功
- */
- -(void)interstitialDidLoadAd;
- /**
- interstitial加载失败, 仅在手动加载单条广告且加载失败时才会调用
-
- @param errMsg 错误msg
- */
- -(void)interstitialDidFailToLoadWithMsg:(NSString *)errMsg;
- /**
- interstitial接收到点击事件
- */
- -(void)interstitialDidReceiveTapEvent;
- /**
- interstitial已经显示
- */
- -(void)interstitialDidAppear;
- /**
- interstitial已经关闭
- */
- -(void)interstitialDidDisappear;
- /**
- rewardedVideo加载成功
- */
- -(void)rewardedVideoDidLoadAd;
- /**
- rewardedVideo加载失败, 仅在手动加载单条广告且加载失败时才会调用
-
- @param errMsg 错误msg
- */
- -(void)rewardedVideoDidFailToLoadWithMsg:(NSString *)errMsg;
- /**
- rewardedVideo接收到点击事件
- */
- -(void)rewardedVideoDidReceiveTapEvent;
- /**
- rewardedVideo已经显示
- */
- -(void)rewardedVideoDidAppear;
- /**
- rewardedVideo已经关闭
- */
- -(void)rewardedVideoDidDisappear;
- /**
- rewardedVideo播放完成,应该给予奖励
- */
- -(void)rewardedVideoAdShouldReward;
- /**
- rewardedVideo播放失败
- */
- -(void)rewardedVideoAdDidFailToPlayWithMsg:(NSString *)errMsg;
- /**
- appOpenAd加载成功
- */
- -(void)appOpenAdDidLoad;
- /**
- appOpenAd加载失败, 仅在手动加载单条广告且加载失败时才会调用
-
- @param errMsg 错误msg
- */
- -(void)appOpenAdDidFailToLoadWithMsg:(NSString *)errMsg;
- /**
- appOpenAd接收到点击事件
- */
- -(void)appOpenAdDidReceiveTapEvent;
- /**
- appOpenAd已经显示
- */
- -(void)appOpenAdDidAppear;
- /**
- appOpenAd已经关闭
- */
- -(void)appOpenAdDidDisappear;
- /**
- appOpenAd播放完成,应该给予奖励
- */
- -(void)appOpenAdShouldReward;
- /**
- appOpenAd播放失败
- */
- -(void)appOpenAdDidFailToPlayWithMsg:(NSString *)errMsg;
- /**
- rewardedInterstitial加载成功
- */
- -(void)rewardedInterstitialDidLoadAd;
- /**
- rewardedInterstitial加载失败, 仅在手动加载单条广告且加载失败时才会调用
-
- @param errMsg 错误msg
- */
- -(void)rewardedInterstitialDidFailToLoadWithMsg:(NSString *)errMsg;
- /**
- rewardedInterstitial接收到点击事件
- */
- -(void)rewardedInterstitialDidReceiveTapEvent;
- /**
- rewardedInterstitial已经显示
- */
- -(void)rewardedInterstitialDidAppear;
- /**
- rewardedInterstitial已经关闭
- */
- -(void)rewardedInterstitialDidDisappear;
- /**
- rewardedInterstitial播放完成,应该给予奖励
- */
- -(void)rewardedInterstitialAdShouldReward;
- /**
- rewardedInterstitial播放失败
- */
- -(void)rewardedInterstitialAdDidFailToPlayWithMsg:(NSString *)errMsg;
- /// 所有视频的状态json字符串,调用hasRewardedVideo方法后实时回调
- /// @param jsonStr 视频是否加载成功的状态json字符串
- -(void)rewardedVideoStatesWithJsonStr:(NSString *)jsonStr;
- /// AppsFlyer归因统计回调
- /// @param jsonStr 数据的json字符串
- -(void)appsFlyerTrackerDataWithJsonStr:(NSString *)jsonStr;
- /// Mopub广告收入数据回调
- /// @param jsonStr 数据的json字符串
- -(void)mopubAdIncomeDataWithJsonStr:(NSString *)jsonStr;
- /// 提交反馈完成回调
- /// @param jsonStr 数据的json字符串
- -(void)feedBackSubmitComplectedWithJsonStr:(NSString *)jsonStr;
- @end
- @interface AdManager : UIViewController
- /// 请求超时时间 默认30s
- @property (nonatomic, assign) NSInteger timeOut;
- /// 重复请求时间间隔 默认120s
- @property (nonatomic, assign) NSInteger repeatTime;
- /// 是否自动加载广告
- @property (nonatomic, assign) BOOL offAutoRequest;
- /// banner广告IDs
- @property (nonatomic, strong) NSArray *bannerUnitIdsArr;
- /// interstitial广告IDs
- @property (nonatomic, strong) NSArray *interstitialUnitIdsArr;
- /// rewardedVideo广告IDs
- @property (nonatomic, strong) NSArray *rewardedVideoUnitIdsArr;
- /// rewardedInterstitial广告IDs
- @property (nonatomic, strong) NSArray *rewardedInterstitialUnitIdsArr;
- /// appopen广告IDs
- @property (nonatomic, strong) NSArray *appOpenUnitIdsArr;
- /// 回调协议
- @property (nonatomic, weak) id<AdManagerDelegate> delegate;
- /// isDebug
- @property (nonatomic, assign) BOOL isDebug;
- /// 是否允许追踪Idfa
- @property (nonatomic, assign) BOOL isCanGetIDFA;
- /**
- 单例
- @return 返回当前单例对象
- */
- + (instancetype)sharedManager;
- /**
- 初始化Manager
- @param adUnitsJson json格式的所有ID
- @param appAppleId 苹果应用ID
- @param umengId 友盟统计应用ID
- @param pangleAppID 穿山甲应用ID
- */
- -(void)initAdWithAdUnitsJson:(NSString *)adUnitsJson appAppleId:(NSString *)appAppleId umengId:(NSString *)umengId appsFlyerKey:(NSString *)appsFlyerKey channel:(NSString *)channel pangleAppID:(NSString *)pangleAppID;
- /// 初始化网络请求所需参数
- /// @param gameId 游戏ID
- /// @param gameSecret 游戏密钥
- /// @param isDebug 是否是Debug
- -(void)initServicesGameID:(NSString *)gameId gameSecret:(NSString *)gameSecret isDebug:(BOOL)isDebug;
- /// 初始化SDK
- /// @param gameId 游戏ID
- /// @param gameSecret 对应的密钥
- /// @param baseUrl 环境地址,当为空时,会使用默认的正式环境
- -(void)initServicesGameID:(NSString *)gameId gameSecret:(NSString *)gameSecret baseUrl:(NSString *)baseUrl;
- ///开启定时自动加载广告
- -(void)openAutoLoadAd;
- ///重置同意情况
- -(void) consentInformationReset;
- -(void)fbAdvertiserTrackingEnabled;
- //TODO:Banner相关函数
- /**
- 加载一个Banner类型的广告
- @param frame 广告位置、大小
- @param bannerSuperView 需要加载到那个视图上
- */
- -(void)loadAndShowBannerAdWithFrame:(CGRect)frame InView:(UIView *)bannerSuperView;
- /**
- 隐藏当前显示的Banner
- */
- -(void)hiddenBannerAd;
- //TODO:interstitial相关函数
- /**
- 加载插屏广告
- */
- -(void)loadInterstitialAd;
- /**
- 显示插屏广告到传入的VC上
- @param aVC 需要展示的VC
- */
- -(void)showInterstitialAdWithViewController:(UIViewController *)aVC;
- //TODO:rewardedVideo相关函数
- /**
- 加载奖励视频
- */
- -(void)loadRewardedVideoAd;
- /**
- 判断是否有缓存就绪的广告
-
- @return 是否有就绪广告
- */
- -(BOOL)hasRewardedVideo;
- //判断传入的ID是否有缓存就绪的广告
- -(BOOL)hasRewardedVideoWithAdID:(NSString *)adID;
- //获取当前所有ID缓存状态
- -(NSString *)mopub_idsStatesArr;
- /**
- 显示奖励视频到传入的VC上
- @param aVC 需要展示的VC
- */
- -(void)showRewardedVideoAdWithViewController:(UIViewController *)aVC;
- /// 显示指定奖励视频到传入的VC上
- /// @param aVC 显示的VC
- /// @param videoID 视频ID
- -(void)showRewardedVideoAdWithViewController:(UIViewController *)aVC videoID:(NSString *)videoID;
- //@TODO:开屏广告
- -(void)loadAppOpenAd;
- -(void)showAppOpenAdWithViewController:(UIViewController *)aVC;
- //@TODO:插屏激励视频
- -(void)loadRewardedInterstitialAd;
- -(void)showRewardedInterstitialAdWithViewController:(UIViewController *)aVC;
- /// 用户提交反馈
- /// @param msg 反馈详情
- /// @param contact 联系方式
- /// @param documentinfo 存档字符串
- -(void)feedbackSubmitWithMsg:(NSString *)msg contact:(NSString *)contact documentinfo:(NSString *)documentinfo;
- - (void) jlApplication:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> *restorableObjects))restorationHandler;
- // Reports app open from deep link from apps which do not support Universal Links (Twitter) and for iOS8 and below
- - (void)jlApplication:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation;
- // Reports app open from deep link for iOS 10
- - (void)jlApplication:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *) options;
- #pragma mark - Unavailable Initializers
- /// 设置单例调用这些方法无效
- //- (instancetype)init NS_UNAVAILABLE;
- + (instancetype)new NS_UNAVAILABLE;
- @end
- NS_ASSUME_NONNULL_END
|