更新sdk
This commit is contained in:
parent
61b3df162d
commit
e73bb626df
|
|
@ -0,0 +1,28 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b83aacedcf94046b8add690f84327e1e
|
||||||
|
folderAsset: yes
|
||||||
|
PluginImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
iconMap: {}
|
||||||
|
executionOrder: {}
|
||||||
|
defineConstraints: []
|
||||||
|
isPreloaded: 0
|
||||||
|
isOverridable: 0
|
||||||
|
isExplicitlyReferenced: 0
|
||||||
|
validateReferences: 1
|
||||||
|
platformData:
|
||||||
|
- first:
|
||||||
|
Any:
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings: {}
|
||||||
|
- first:
|
||||||
|
Editor: Editor
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
DefaultValueInitialized: true
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c90b5caea098b47e482e51ee31a360b5
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d8f93e14b0eb748b88bd347818e772b2
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
//
|
||||||
|
// ATAdManager+Banner.h
|
||||||
|
// AnyThinkBanner
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 18/09/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
//Supported by Nend banner only
|
||||||
|
extern NSString *const kATBannerLoadingExtraParameters;
|
||||||
|
extern NSString *const kATAdLoadingExtraBannerAdSizeKey;//defaults to 320 * 50
|
||||||
|
extern NSString *const kATAdLoadingExtraBannerSizeAdjustKey;//Currently supported by Nend
|
||||||
|
extern NSString *const kATAdLoadingExtraBannerSizeUsesFilledKey;//Currently supported by Pangle, defaults to YES for filled
|
||||||
|
|
||||||
|
extern NSString *const kATAdLoadingExtraAdmobBannerSizeKey;//Admob Adaptive width
|
||||||
|
extern NSString *const kATAdLoadingExtraAdmobAdSizeFlagsKey;//Admob AdSize flags
|
||||||
|
|
||||||
|
@class ATBannerView;
|
||||||
|
@interface ATAdManager (Banner)
|
||||||
|
-(BOOL) bannerAdReadyForPlacementID:(NSString*)placementID;
|
||||||
|
-(BOOL) bannerAdReadyForPlacementID:(NSString*)placementID sendTK:(BOOL)send;
|
||||||
|
/*
|
||||||
|
nil will be returned if you try to show banner ad for the placementID if it's not ready.
|
||||||
|
*/
|
||||||
|
- (nullable ATBannerView*)retrieveBannerViewForPlacementID:(NSString*)placementID;
|
||||||
|
- (nullable ATBannerView*)retrieveBannerViewForPlacementID:(NSString*)placementID extra:(NSDictionary *)extra DEPRECATED_ATTRIBUTE;
|
||||||
|
- (nullable ATBannerView*)retrieveBannerViewForPlacementID:(NSString*)placementID scene:(NSString *)scene;
|
||||||
|
|
||||||
|
- (ATCheckLoadModel*)checkBannerLoadStatusForPlacementID:(NSString*)placementID;
|
||||||
|
- (NSArray<NSDictionary *> *)getBannerValidAdsForPlacementID:(NSString *)placementID;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e3396448907ff4aa0a5d093ef923fbcb
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
//
|
||||||
|
// ATBanner.h
|
||||||
|
// AnyThinkBanner
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 18/09/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
@class ATBannerCustomEvent;
|
||||||
|
@interface ATBanner : NSObject<ATAd>
|
||||||
|
-(instancetype) initWithPriority:(NSInteger) priority placementModel:(ATPlacementModel*)placementModel requestID:(NSString*)requestID assets:(NSDictionary*)assets unitGroup:(ATUnitGroupModel*)unitGroup finalWaterfall:(ATWaterfall *)finalWaterfall;
|
||||||
|
@property(nonatomic) NSInteger showTimes;
|
||||||
|
/**
|
||||||
|
Priority is calculate by the index of the unit group in the placement's unit group list; zero is the highest
|
||||||
|
*/
|
||||||
|
@property(nonatomic, readonly) NSInteger priority;
|
||||||
|
@property(nonatomic, readonly) NSInteger priorityLevel;
|
||||||
|
@property(nonatomic, readonly) ATPlacementModel *placementModel;
|
||||||
|
@property(nonatomic, readonly) NSString *requestID;
|
||||||
|
@property(nonatomic, readonly) NSString *originalRequestID;
|
||||||
|
@property(nonatomic, readonly) NSDate *expireDate;
|
||||||
|
@property(nonatomic, readonly) NSDate *cacheDate;
|
||||||
|
@property(nonatomic, readonly) ATUnitGroupModel *unitGroup;
|
||||||
|
@property(nonatomic, readonly) NSString *unitID;
|
||||||
|
@property(nonatomic, readonly) __kindof UIView *bannerView;
|
||||||
|
@property(nonatomic, readonly) id customObject;
|
||||||
|
//To keep custom event around.
|
||||||
|
@property(nonatomic, readonly) ATBannerCustomEvent *customEvent;
|
||||||
|
@property(nonatomic, readonly) NSString *price;
|
||||||
|
@property(nonatomic, readonly) NSString *bidId;
|
||||||
|
@property(nonatomic, readonly) NSString *tpBidId;
|
||||||
|
@property(nonatomic, readonly, weak) ATWaterfall *finalWaterfall;
|
||||||
|
@property(nonatomic, readonly) NSInteger autoReqType;
|
||||||
|
@property(nonatomic) BOOL defaultPlayIfRequired;
|
||||||
|
@property(nonatomic) BOOL adReportClicked;
|
||||||
|
@property(nonatomic, copy) NSString *scene;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9c05fd80fb7724db8846ce57b7cb0ab1
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
//
|
||||||
|
// ATBannerAdapter.h
|
||||||
|
// AnyThinkBanner
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 2018/10/8.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef ATBannerAdapter_h
|
||||||
|
#define ATBannerAdapter_h
|
||||||
|
@class ATBanner;
|
||||||
|
@protocol ATBannerAdapter<ATAdAdapter>
|
||||||
|
+(void) showBanner:(ATBanner*)banner inView:(UIView*)view presentingViewController:(UIViewController*)viewController;
|
||||||
|
@end
|
||||||
|
#endif /* ATBannerAdapter_h */
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 609b5505008c4440fa21b795e1c7d27d
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
//
|
||||||
|
// ATBannerCustomEvent.h
|
||||||
|
// AnyThinkBanner
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 18/09/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
//#import "ATAdCustomEvent.h"
|
||||||
|
#import "ATBannerDelegate.h"
|
||||||
|
//#import "ATAdAdapter.h"
|
||||||
|
//#import "ATPlacementModel.h"
|
||||||
|
#import "ATBanner.h"
|
||||||
|
#import "ATBannerView.h"
|
||||||
|
@interface ATBannerCustomEvent : ATAdCustomEvent
|
||||||
|
-(void) trackBannerAdClick;
|
||||||
|
-(void) trackBannerAdImpression;
|
||||||
|
-(void) trackBannerAdClosed;
|
||||||
|
-(void) trackBannerAdLoaded:(id)bannerView adExtra:(NSDictionary *)adExtra;
|
||||||
|
//-(void) trackBannerAdShow;
|
||||||
|
-(void) trackBannerAdLoadFailed:(NSError*)error;
|
||||||
|
-(void) trackBannerAdDeeplinkOrJumpResult:(BOOL)success;
|
||||||
|
|
||||||
|
-(NSDictionary*)delegateExtra;
|
||||||
|
-(instancetype) initWithInfo:(NSDictionary*)serverInfo localInfo:(NSDictionary*)localInfo;
|
||||||
|
-(void) cleanup;
|
||||||
|
-(void) removedFromWindow;
|
||||||
|
/// Some ad SDKs do not call back after ads were displayed. Override it and return 'YES', a impression tracking will be sent. Same for the native ads (ATNativeADCustomEvent).
|
||||||
|
- (BOOL)sendImpressionTrackingIfNeed;
|
||||||
|
|
||||||
|
- (void)invalidateBidInfo;
|
||||||
|
|
||||||
|
@property(nonatomic, weak) id<ATBannerDelegate> delegate;
|
||||||
|
@property(nonatomic, weak) ATBanner *banner;
|
||||||
|
@property(nonatomic, weak) ATBannerView *bannerView;
|
||||||
|
@property(nonatomic, readonly) NSString *unitID;
|
||||||
|
@property(nonatomic, readonly) CGSize size;
|
||||||
|
@property(nonatomic, strong) NSValue *admobAdSizeValue;//For admob
|
||||||
|
@property(nonatomic, assign) NSInteger admobAdSizeFlags;//For admob
|
||||||
|
@property(nonatomic) NSDictionary *loadingParameters;//For nend
|
||||||
|
@property(nonatomic) BOOL adjustAdSize;//For nend
|
||||||
|
@property(nonatomic, assign) NSInteger priorityIndex;
|
||||||
|
|
||||||
|
+(UIViewController*)rootViewControllerWithPlacementID:(NSString*)placementID requestID:(NSString*)requestID;
|
||||||
|
@end
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: cf0f749bd01964d5ebb84a7838f10bd8
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
//
|
||||||
|
// ATBannerDelegate.h
|
||||||
|
// AnyThinkSDK
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 18/09/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef ATBannerDelegate_h
|
||||||
|
#define ATBannerDelegate_h
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
@class ATBannerView;
|
||||||
|
|
||||||
|
extern NSString *const kATBannerDelegateExtraNetworkIDKey;
|
||||||
|
extern NSString *const kATBannerDelegateExtraAdSourceIDKey;
|
||||||
|
extern NSString *const kATBannerDelegateExtraIsHeaderBidding;
|
||||||
|
extern NSString *const kATBannerDelegateExtraPrice;
|
||||||
|
extern NSString *const kATBannerDelegateExtraPriority;
|
||||||
|
|
||||||
|
@protocol ATBannerDelegate<ATAdLoadingDelegate>
|
||||||
|
-(void) bannerView:(ATBannerView*)bannerView failedToAutoRefreshWithPlacementID:(NSString*)placementID error:(NSError*)error;
|
||||||
|
-(void) bannerView:(ATBannerView*)bannerView didShowAdWithPlacementID:(NSString*)placementID extra:(NSDictionary *)extra;
|
||||||
|
-(void) bannerView:(ATBannerView*)bannerView didClickWithPlacementID:(NSString*)placementID extra:(NSDictionary *)extra;
|
||||||
|
-(void) bannerView:(ATBannerView*)bannerView didCloseWithPlacementID:(NSString*)placementID extra:(NSDictionary *)extra DEPRECATED_ATTRIBUTE;
|
||||||
|
-(void) bannerView:(ATBannerView*)bannerView didAutoRefreshWithPlacement:(NSString*)placementID extra:(NSDictionary *)extra;
|
||||||
|
-(void) bannerView:(ATBannerView*)bannerView didTapCloseButtonWithPlacementID:(NSString*)placementID extra:(NSDictionary*)extra;
|
||||||
|
-(void) bannerView:(ATBannerView*)bannerView didDeepLinkOrJumpForPlacementID:(NSString*)placementID extra:(NSDictionary*)extra result:(BOOL)success;
|
||||||
|
|
||||||
|
@end
|
||||||
|
#endif /* ATBannerDelegate_h */
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9e3ce55108eac4e7e9ef5fd5e991fff9
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
//
|
||||||
|
// ATBanner+Internal.h
|
||||||
|
// AnyThinkBanner
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 28/09/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef ATBanner_Internal_h
|
||||||
|
#define ATBanner_Internal_h
|
||||||
|
#import "ATBannerView.h"
|
||||||
|
@class ATBanner;
|
||||||
|
@interface ATBannerView(Internal)
|
||||||
|
-(instancetype) initWithFrame:(CGRect)frame banner:(ATBanner*)banner;
|
||||||
|
-(void) loadNextWithoutRefresh;
|
||||||
|
@property(nonatomic) ATBanner *banner;
|
||||||
|
@end
|
||||||
|
#endif /* ATBanner_Internal_h */
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 22d9d9e19a0f842e3b2a595fde56a7ec
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
//
|
||||||
|
// ATBannerView.h
|
||||||
|
// AnyThinkBanner
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 18/09/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
@protocol ATBannerDelegate;
|
||||||
|
@interface ATBannerView : UIView
|
||||||
|
//to be move into a internal category
|
||||||
|
@property(nonatomic, weak) id<ATBannerDelegate> delegate;
|
||||||
|
@property(nonatomic, weak) UIViewController *presentingViewController;
|
||||||
|
|
||||||
|
- (void)sendImpressionTracking;
|
||||||
|
@end
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8246f792913c9464f854ce51681f6791
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
//
|
||||||
|
// AnyThinkBanner.h
|
||||||
|
// AnyThinkBanner
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 2019/11/1.
|
||||||
|
// Copyright © 2019 AnyThink. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
#import <AnyThinkBanner/ATAdManager+Banner.h>
|
||||||
|
#import <AnyThinkBanner/ATBannerDelegate.h>
|
||||||
|
#import <AnyThinkBanner/ATBannerView.h>
|
||||||
|
#import <AnyThinkBanner/ATBannerCustomEvent.h>
|
||||||
|
|
||||||
|
//! Project version number for AnyThinkBanner.
|
||||||
|
FOUNDATION_EXPORT double AnyThinkBannerVersionNumber;
|
||||||
|
|
||||||
|
//! Project version string for AnyThinkBanner.
|
||||||
|
FOUNDATION_EXPORT const unsigned char AnyThinkBannerVersionString[];
|
||||||
|
|
||||||
|
// In this header, you should import all the public headers of your framework using statements like #import <AnyThinkBanner/PublicHeader.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 80026184dfa264c95a8ee2608444d50e
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b7691765310fd449c8bd62b85d0eff7c
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ac51d875f8fdb4f7a9c3fe87f4c933ed
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
framework module AnyThinkBanner {
|
||||||
|
umbrella header "AnyThinkBanner.h"
|
||||||
|
|
||||||
|
export *
|
||||||
|
module * { export * }
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: eec262fd286a948db8829355df3120aa
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 235f426d4ebe3478cae5dd8971ab601c
|
||||||
|
folderAsset: yes
|
||||||
|
PluginImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
iconMap: {}
|
||||||
|
executionOrder: {}
|
||||||
|
defineConstraints: []
|
||||||
|
isPreloaded: 0
|
||||||
|
isOverridable: 0
|
||||||
|
isExplicitlyReferenced: 0
|
||||||
|
validateReferences: 1
|
||||||
|
platformData:
|
||||||
|
- first:
|
||||||
|
Any:
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings: {}
|
||||||
|
- first:
|
||||||
|
Editor: Editor
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
DefaultValueInitialized: true
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3e6df2b498c1c4b5599e63d5e601a352
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: af442a1231fb2496c8da63a332ae9683
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
//
|
||||||
|
// ATAdManager+Interstitial.h
|
||||||
|
// AnyThinkInterstitial
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 21/09/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#import "ATInterstitialDelegate.h"
|
||||||
|
extern NSString *const kATInterstitialExtraMediationNameKey;
|
||||||
|
extern NSString *const kATInterstitialExtraUserIDKey;
|
||||||
|
extern NSString *const kATInterstitialExtraUserFeatureKey;
|
||||||
|
extern NSString *const kATInterstitialExtraLocationEnabledFlagKey;
|
||||||
|
extern NSString *const kATInterstitialExtraMuteStartPlayingFlagKey;
|
||||||
|
extern NSString *const kATInterstitialExtraFallbackFullboardBackgroundColorKey;
|
||||||
|
extern NSString *const kATInterstitialExtraAdSizeKey;//Supported by TT interstitial, defaults to 600 X 600
|
||||||
|
extern NSString *const kATInterstitialExtraUsesRewardedVideo;
|
||||||
|
|
||||||
|
extern NSString *const kATInterstitialExtraAdSize600_400;
|
||||||
|
extern NSString *const kATInterstitialExtraAdSize600_600;
|
||||||
|
extern NSString *const kATInterstitialExtraAdSize600_900;
|
||||||
|
@interface ATAdManager (Interstitial)
|
||||||
|
-(BOOL) interstitialReadyForPlacementID:(NSString*)placementID;
|
||||||
|
-(ATCheckLoadModel*) checkInterstitialLoadStatusForPlacementID:(NSString*)placementID;
|
||||||
|
|
||||||
|
// v5.7.53+
|
||||||
|
- (NSArray<NSDictionary *> *)getInterstitialValidAdsForPlacementID:(NSString *)placementID;
|
||||||
|
|
||||||
|
-(void) showInterstitialWithPlacementID:(NSString*)placementID inViewController:(UIViewController*)viewController delegate:(id<ATInterstitialDelegate>)delegate;
|
||||||
|
-(void) showInterstitialWithPlacementID:(NSString*)placementID scene:(NSString*)scene inViewController:(UIViewController*)viewController delegate:(id<ATInterstitialDelegate>)delegate;
|
||||||
|
@end
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 46f1641e52988432fbabe5ea03f91827
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
//
|
||||||
|
// ATInterstitial.h
|
||||||
|
// AnyThinkInterstitial
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 21/09/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
|
||||||
|
@class ATInterstitialCustomEvent;
|
||||||
|
@interface ATInterstitial : NSObject<ATAd>
|
||||||
|
-(instancetype) initWithPriority:(NSInteger) priority placementModel:(ATPlacementModel*)placementModel requestID:(NSString*)requestID assets:(NSDictionary*)assets unitGroup:(ATUnitGroupModel*)unitGroup finalWaterfall:(ATWaterfall *)finalWaterfall;
|
||||||
|
@property(nonatomic) NSInteger showTimes;
|
||||||
|
/**
|
||||||
|
Priority is calculate by the index of the unit group in the placement's unit group list; zero is the highest
|
||||||
|
*/
|
||||||
|
@property(nonatomic, readonly) NSInteger priority;
|
||||||
|
@property(nonatomic, readonly) NSInteger priorityLevel;
|
||||||
|
@property(nonatomic, readonly) ATPlacementModel *placementModel;
|
||||||
|
@property(nonatomic, readonly) NSString *requestID;
|
||||||
|
@property(nonatomic, readonly) NSString *originalRequestID;
|
||||||
|
@property(nonatomic, readonly) NSDate *expireDate;
|
||||||
|
@property(nonatomic, readonly) NSDate *cacheDate;
|
||||||
|
@property(nonatomic, readonly) ATUnitGroupModel *unitGroup;
|
||||||
|
@property(nonatomic, readonly) NSString *unitID;
|
||||||
|
/**
|
||||||
|
* Third-party network native ad object.
|
||||||
|
*/
|
||||||
|
@property(nonatomic, readonly) id customObject;
|
||||||
|
|
||||||
|
@property(nonatomic, readonly) ATInterstitialCustomEvent *customEvent;
|
||||||
|
@property(nonatomic, readonly) NSString *appID;
|
||||||
|
@property(nonatomic) BOOL defaultPlayIfRequired;
|
||||||
|
@property(nonatomic) NSString *scene;
|
||||||
|
@property(nonatomic, readonly) NSString *price;
|
||||||
|
@property(nonatomic, readonly) NSString *bidId;
|
||||||
|
@property(nonatomic, readonly) NSString *tpBidId;
|
||||||
|
@property(nonatomic, readonly, weak) ATWaterfall *finalWaterfall;
|
||||||
|
@property(nonatomic, readonly) NSInteger autoReqType;
|
||||||
|
@property(nonatomic) BOOL adReportClicked;
|
||||||
|
@end
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 808d93bfbee354a72bb20f8aba8bc7be
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
//
|
||||||
|
// ATInterstitialAdapter.h
|
||||||
|
// AnyThinkInterstitial
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 21/09/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef ATInterstitialAdapter_h
|
||||||
|
#define ATInterstitialAdapter_h
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
#import "ATInterstitialDelegate.h"
|
||||||
|
#import "ATInterstitial.h"
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
@protocol ATInterstitialAdapter<ATAdAdapter>
|
||||||
|
@optional
|
||||||
|
+(BOOL) adReadyWithCustomObject:(id)customObject info:(NSDictionary*)info;
|
||||||
|
+(void) showInterstitial:(ATInterstitial*)interstitial inViewController:(UIViewController*)viewController delegate:(id<ATInterstitialDelegate>)delegate;
|
||||||
|
@end
|
||||||
|
|
||||||
|
#endif /* ATInterstitialAdapter_h */
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 968d20f6594fa4b08b6f4a3d746890b9
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
//
|
||||||
|
// ATInterstitialCustomEvent.h
|
||||||
|
// AnyThinkInterstitial
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 21/09/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "ATInterstitial.h"
|
||||||
|
#import "ATInterstitialDelegate.h"
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
@interface ATInterstitialCustomEvent : ATAdCustomEvent
|
||||||
|
-(void) trackInterstitialAdLoaded:(id)interstitialAd adExtra:(NSDictionary *)adExtra;
|
||||||
|
-(void) trackInterstitialAdLoadFailed:(NSError*)error;
|
||||||
|
-(void) trackInterstitialAdShow;
|
||||||
|
-(void) trackInterstitialAdShowFailed:(NSError*)error;
|
||||||
|
-(void) trackInterstitialAdVideoStart;
|
||||||
|
-(void) trackInterstitialAdVideoEnd;
|
||||||
|
-(void) trackInterstitialAdDidFailToPlayVideo:(NSError*)error;
|
||||||
|
-(void) trackInterstitialAdClick;
|
||||||
|
-(void) trackInterstitialAdClose;
|
||||||
|
-(void) trackInterstitialAdDeeplinkOrJumpResult:(BOOL)success;
|
||||||
|
|
||||||
|
-(void) trackdInterstitialAdVideoRewarded;
|
||||||
|
|
||||||
|
-(NSDictionary*)delegateExtra;
|
||||||
|
-(ATNativeADSourceType) adSourceType;
|
||||||
|
-(instancetype) initWithInfo:(NSDictionary*)serverInfo localInfo:(NSDictionary*)localInfo ;
|
||||||
|
@property(nonatomic, weak) id<ATInterstitialDelegate> delegate;
|
||||||
|
@property(nonatomic, weak) ATInterstitial *interstitial;
|
||||||
|
@property(nonatomic, readonly) NSString *unitID;
|
||||||
|
@property(nonatomic, assign) NSInteger priorityIndex;
|
||||||
|
@end
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 354eb2a8a8fad4a7fab531b10b358806
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
//
|
||||||
|
// ATInterstitialDelegate.h
|
||||||
|
// AnyThinkInterstitial
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 21/09/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef ATInterstitialDelegate_h
|
||||||
|
#define ATInterstitialDelegate_h
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
|
||||||
|
extern NSString *const kATInterstitialDelegateExtraNetworkIDKey;
|
||||||
|
extern NSString *const kATInterstitialDelegateExtraAdSourceIDKey;
|
||||||
|
extern NSString *const kATInterstitialDelegateExtraIsHeaderBidding;
|
||||||
|
extern NSString *const kATInterstitialDelegateExtraPrice;
|
||||||
|
extern NSString *const kATInterstitialDelegateExtraPriority;
|
||||||
|
@protocol ATInterstitialDelegate<ATAdLoadingDelegate>
|
||||||
|
|
||||||
|
-(void) interstitialDidShowForPlacementID:(NSString*)placementID extra:(NSDictionary*)extra;
|
||||||
|
-(void) interstitialFailedToShowForPlacementID:(NSString*)placementID error:(NSError*)error extra:(NSDictionary*)extra;
|
||||||
|
-(void) interstitialDidStartPlayingVideoForPlacementID:(NSString*)placementID extra:(NSDictionary*)extra;
|
||||||
|
-(void) interstitialDidEndPlayingVideoForPlacementID:(NSString*)placementID extra:(NSDictionary*)extra;
|
||||||
|
-(void) interstitialDidFailToPlayVideoForPlacementID:(NSString*)placementID error:(NSError*)error extra:(NSDictionary*)extra;
|
||||||
|
-(void) interstitialDidCloseForPlacementID:(NSString*)placementID extra:(NSDictionary*)extra;
|
||||||
|
-(void) interstitialDidClickForPlacementID:(NSString*)placementID extra:(NSDictionary*)extra;
|
||||||
|
-(void) interstitialDeepLinkOrJumpForPlacementID:(NSString*)placementID extra:(NSDictionary*)extra result:(BOOL)success;
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
#endif /* ATInterstitialDelegate_h */
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c699bf51a37c24b78b653f1fb977534f
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
//
|
||||||
|
// AnyThinkInterstitial.h
|
||||||
|
// AnyThinkInterstitial
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 2019/11/1.
|
||||||
|
// Copyright © 2019 AnyThink. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
#import <AnyThinkInterstitial/ATAdManager+Interstitial.h>
|
||||||
|
#import <AnyThinkInterstitial/ATInterstitialDelegate.h>
|
||||||
|
#import <AnyThinkInterstitial/ATInterstitialCustomEvent.h>
|
||||||
|
|
||||||
|
//! Project version number for AnyThinkInterstitial.
|
||||||
|
FOUNDATION_EXPORT double AnyThinkInterstitialVersionNumber;
|
||||||
|
|
||||||
|
//! Project version string for AnyThinkInterstitial.
|
||||||
|
FOUNDATION_EXPORT const unsigned char AnyThinkInterstitialVersionString[];
|
||||||
|
|
||||||
|
// In this header, you should import all the public headers of your framework using statements like #import <AnyThinkInterstitial/PublicHeader.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7c20e9d252f9c4bc0938ffea5e89cd49
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: faeff5a8ce69e4753a3d803fe30b4d37
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 59545d3e2c78b4d778b797e509f70877
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
framework module AnyThinkInterstitial {
|
||||||
|
umbrella header "AnyThinkInterstitial.h"
|
||||||
|
|
||||||
|
export *
|
||||||
|
module * { export * }
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 390cb0e48516b4b5eaa1913426a48172
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5e30a1ea4817b484f939601c82ae6eb2
|
||||||
|
folderAsset: yes
|
||||||
|
PluginImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
iconMap: {}
|
||||||
|
executionOrder: {}
|
||||||
|
defineConstraints: []
|
||||||
|
isPreloaded: 0
|
||||||
|
isOverridable: 0
|
||||||
|
isExplicitlyReferenced: 0
|
||||||
|
validateReferences: 1
|
||||||
|
platformData:
|
||||||
|
- first:
|
||||||
|
Any:
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings: {}
|
||||||
|
- first:
|
||||||
|
Editor: Editor
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
DefaultValueInitialized: true
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a1a6cf0b67543422aa5a36078cccebe5
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fedc032090d30480f83e10045cab263b
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,125 @@
|
||||||
|
//
|
||||||
|
// ATAdManager+Native.h
|
||||||
|
// AnyThinkNative
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 07/07/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
|
||||||
|
//Currently only GDT supports these two keys.
|
||||||
|
extern NSString *const kATExtraInfoNativeAdSizeKey;//the value has to be an NSValue wrapped CGSize object.
|
||||||
|
extern NSString *const kATExtraInfoNativeAdTypeKey;//The value is requried for GDT native ad and has to be an NSNumber warpped ATGDTNativeAdType(NSInteger); Pass @(ATGDTNativeAdTypeTemplate)(@1) for template ads and @(ATGDTNativeAdTypeSelfRendering)(@2) for self rendering ads.
|
||||||
|
//Following keys are supported by nend only
|
||||||
|
extern NSString *const kATExtraInfoNativeAdUserIDKey;
|
||||||
|
extern NSString *const kATExtraInfoNativeAdMediationNameKey;
|
||||||
|
extern NSString *const kATExtraInfoNaitveAdUserFeatureKey;
|
||||||
|
extern NSString *const kATExtraInfoNativeAdLocationEnabledFlagKey;
|
||||||
|
|
||||||
|
extern NSString *const kATNativeAdSizeToFitKey;
|
||||||
|
typedef NS_ENUM(NSInteger, ATGDTNativeAdType) {
|
||||||
|
ATGDTNativeAdTypeTemplate = 1,
|
||||||
|
ATGDTNativeAdTypeSelfRendering = 2
|
||||||
|
};
|
||||||
|
@class ATNativeADView;
|
||||||
|
@class ATNativeADConfiguration;
|
||||||
|
|
||||||
|
@protocol ATBaiduTemplateRenderingAttributeDelegate <NSObject>
|
||||||
|
|
||||||
|
@optional
|
||||||
|
//logo配置
|
||||||
|
@property (nonatomic, strong) NSString *iconWidth;
|
||||||
|
@property (nonatomic, strong) NSString *iconHeight;
|
||||||
|
@property (nonatomic, strong) NSString *iconLeft;
|
||||||
|
@property (nonatomic, strong) NSString *iconTop;
|
||||||
|
@property (nonatomic, strong) NSString *iconRight;
|
||||||
|
@property (nonatomic, strong) NSString *iconBottom;
|
||||||
|
|
||||||
|
//标题配置
|
||||||
|
@property (nonatomic, strong) NSString *titleLeft;
|
||||||
|
@property (nonatomic, strong) NSString *titleTop;
|
||||||
|
@property (nonatomic, strong) NSString *titleWidth;
|
||||||
|
@property (nonatomic, strong) NSString *titleHeight;
|
||||||
|
@property (nonatomic, strong) NSString *titleRight;
|
||||||
|
@property (nonatomic, strong) NSString *titleBottom;
|
||||||
|
@property (nonatomic, strong) NSString *titleFontSize;//系统默认字体
|
||||||
|
@property (nonatomic, strong) UIFont *titleFont;
|
||||||
|
@property (nonatomic, strong) UIColor *titleColor;
|
||||||
|
|
||||||
|
//主素材:大图、视频、三图首图
|
||||||
|
@property (nonatomic, strong) NSString *mainMaterialLeft;
|
||||||
|
@property (nonatomic, strong) NSString *mainMaterialTop;
|
||||||
|
@property (nonatomic, strong) NSString *mainMaterialWidth;
|
||||||
|
@property (nonatomic, strong) NSString *mainMaterialHeight;
|
||||||
|
@property (nonatomic, strong) NSString *mainMaterialRight;
|
||||||
|
@property (nonatomic, strong) NSString *mainMaterialBottom;
|
||||||
|
|
||||||
|
//三图的中图
|
||||||
|
@property (nonatomic, strong) NSString *centerPicLeft;
|
||||||
|
@property (nonatomic, strong) NSString *centerPicTop;
|
||||||
|
@property (nonatomic, strong) NSString *centerPicWidth;
|
||||||
|
@property (nonatomic, strong) NSString *centerPicHeight;
|
||||||
|
@property (nonatomic, strong) NSString *centerPicRight;
|
||||||
|
@property (nonatomic, strong) NSString *centerPicBottom;
|
||||||
|
|
||||||
|
//三图的右图
|
||||||
|
@property (nonatomic, strong) NSString *lastPicLeft;
|
||||||
|
@property (nonatomic, strong) NSString *lastPicTop;
|
||||||
|
@property (nonatomic, strong) NSString *lastPicWidth;
|
||||||
|
@property (nonatomic, strong) NSString *lastPicHeight;
|
||||||
|
@property (nonatomic, strong) NSString *lastPicRight;
|
||||||
|
@property (nonatomic, strong) NSString *lastPicBottom;
|
||||||
|
|
||||||
|
//底部行为按钮
|
||||||
|
@property (nonatomic, strong) NSString *buttonLeft;
|
||||||
|
@property (nonatomic, strong) NSString *buttonRight;
|
||||||
|
@property (nonatomic, strong) NSString *buttonTop;
|
||||||
|
@property (nonatomic, strong) NSString *buttonBottom;
|
||||||
|
@property (nonatomic, strong) NSString *buttonWidth;
|
||||||
|
@property (nonatomic, strong) NSString *buttonHeight;
|
||||||
|
@property (nonatomic, strong) UIFont *buttonFont;
|
||||||
|
@property (nonatomic, strong) NSString *buttonCornerRadius;
|
||||||
|
@property (nonatomic, strong) UIColor *buttonTitleColor;
|
||||||
|
@property (nonatomic, strong) UIColor *buttonBackgroundColor;
|
||||||
|
|
||||||
|
//底部负反馈按钮
|
||||||
|
@property (nonatomic, strong) NSString *dislikeBtnLeft;
|
||||||
|
@property (nonatomic, strong) NSString *dislikeBtnRight;
|
||||||
|
@property (nonatomic, strong) NSString *dislikeBtnTop;
|
||||||
|
@property (nonatomic, strong) NSString *dislikeBtnBottom;
|
||||||
|
@property (nonatomic, strong) NSString *dislikeBtnHeigth;
|
||||||
|
@property (nonatomic, strong) NSString *dislikeBtnWidth;
|
||||||
|
@property (nonatomic, strong) UIImage *dislikeBtnImage;
|
||||||
|
|
||||||
|
//底部品牌字样,建议不更改
|
||||||
|
@property (nonatomic, strong) NSString *brandLeft;
|
||||||
|
@property (nonatomic, strong) NSString *brandWidth;
|
||||||
|
@property (nonatomic, strong) NSString *brandHeight;
|
||||||
|
@property (nonatomic, strong) NSString *brandBottom;
|
||||||
|
@property (nonatomic, strong) NSString *brandFontSize;
|
||||||
|
@property (nonatomic, strong) UIFont *brandFont;
|
||||||
|
@property (nonatomic, strong) UIColor *brandColor;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface ATAdManager (Native)
|
||||||
|
-(BOOL) nativeAdReadyForPlacementID:(NSString*)placementID;
|
||||||
|
/**
|
||||||
|
* This method uses the renderingViewClass you specify in the configuration to create an instance and:
|
||||||
|
1) returns it(for networks Facebook, Inmobi, Mintegral, Admob, Flurry, Applovin) or
|
||||||
|
2) adds it to a superView and returns the super view instead(for network Mopub).
|
||||||
|
* To retrieve the instance of the class you specify as the rendering view class, cast the returned view to ATNativeADView and call its embededAdView method(the view returned might not be of class ATNativeADView).
|
||||||
|
*/
|
||||||
|
- (__kindof UIView*) retriveAdViewWithPlacementID:(NSString*)placementID configuration:(ATNativeADConfiguration*)configuration;
|
||||||
|
- (__kindof UIView*) retriveAdViewWithPlacementID:(NSString*)placementID configuration:(ATNativeADConfiguration*)configuration scene:(NSString *)scene;
|
||||||
|
|
||||||
|
- (ATCheckLoadModel*)checkNativeLoadStatusForPlacementID:(NSString*)placementID;
|
||||||
|
|
||||||
|
// v5.7.53+
|
||||||
|
- (NSArray<NSDictionary *> *)getNativeValidAdsForPlacementID:(NSString *)placementID;
|
||||||
|
|
||||||
|
|
||||||
|
- (void) setBaiduTemplateRenderingAttribute:(id<ATBaiduTemplateRenderingAttributeDelegate> )baiduTemplateRenderingAttribute;
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8361765ae51054e38894bca55267e4a0
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
//
|
||||||
|
// ATNativeADCache.h
|
||||||
|
// AnyThinkSDK
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 17/04/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
#import "ATNativeAd.h"
|
||||||
|
//#import "ATAd.h"
|
||||||
|
#import "ATNativeADCustomEvent.h"
|
||||||
|
@class ATUnitGroupModel;
|
||||||
|
@class ATPlacementModel;
|
||||||
|
@interface ATNativeADCache : ATNativeAd<ATAd>
|
||||||
|
-(instancetype) initWithPriority:(NSInteger) priority placementModel:(ATPlacementModel*)placementModel requestID:(NSString*)requestID assets:(NSDictionary*)assets unitGroup:(ATUnitGroupModel*)unitGroup finalWaterfall:(ATWaterfall *)finalWaterfall;
|
||||||
|
@property(nonatomic) NSInteger showTimes;
|
||||||
|
/**
|
||||||
|
Priority is calculate by the index of the unit group in the placement's unit group list; zero is the highest
|
||||||
|
*/
|
||||||
|
@property(nonatomic, readonly) NSInteger priority;
|
||||||
|
@property(nonatomic, readonly) NSInteger priorityLevel;
|
||||||
|
//@property(nonatomic, readonly) NSString *placementID;
|
||||||
|
@property(nonatomic, readonly) ATPlacementModel *placementModel;
|
||||||
|
@property(nonatomic, readonly) NSString *requestID;
|
||||||
|
@property(nonatomic, readonly) NSString *originalRequestID;
|
||||||
|
@property(nonatomic, readonly) NSDate *expireDate;
|
||||||
|
@property(nonatomic, readonly) NSDate *cacheDate;
|
||||||
|
@property(nonatomic, readonly) NSDictionary *assets;//To be removed
|
||||||
|
@property(nonatomic, readonly) ATUnitGroupModel *unitGroup;
|
||||||
|
@property(nonatomic) NSNumber *sdkTime;
|
||||||
|
@property(nonatomic, readonly) ATNativeADCustomEvent *customEvent;
|
||||||
|
/**
|
||||||
|
* Third-party network native ad object.
|
||||||
|
*/
|
||||||
|
@property(nonatomic, readonly) id customObject;
|
||||||
|
/**
|
||||||
|
* Third-party network unit id.
|
||||||
|
*/
|
||||||
|
@property(nonatomic, assign)NSInteger priorityIndex;
|
||||||
|
|
||||||
|
@property(nonatomic, readonly) NSString *unitID;
|
||||||
|
@property(nonatomic, readonly) NSString *iconURLString;
|
||||||
|
@property(nonatomic, readonly) NSString *imageURLString;
|
||||||
|
@property(nonatomic, readonly) NSString *appID;
|
||||||
|
@property(nonatomic) BOOL defaultPlayIfRequired;
|
||||||
|
@property(nonatomic, readonly) NSString *price;
|
||||||
|
@property(nonatomic, readonly) NSString *bidId;
|
||||||
|
@property(nonatomic, readonly) NSString *tpBidId;
|
||||||
|
@property(nonatomic, readonly, weak) ATWaterfall *finalWaterfall;
|
||||||
|
@property(nonatomic, readonly) NSInteger autoReqType;
|
||||||
|
@property(nonatomic) BOOL adReportClicked;
|
||||||
|
@property(nonatomic, copy) NSString *scene;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bdd1828cd51d44101b777137d6a4b98e
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
//
|
||||||
|
// ATNativeADConfiguration.h
|
||||||
|
// AnyThinkSDK
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 20/04/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
extern NSString *const kATNativeAdConfigurationContextAdOptionsViewFrameKey;//CGRect wrapped as NSValue, supported by facebook
|
||||||
|
extern NSString *const kATNativeAdConfigurationContextAdLogoViewFrameKey;//CGRect wrapped as NSValue, supported by gdt&baidu, defaults to top-left corner
|
||||||
|
extern NSString *const kATNativeAdConfigurationContextNetworkLogoViewFrameKey;//CGRect wrapped as NSValue, support by baidu, defaults to bottom-right corner
|
||||||
|
@protocol ATNativeADDelegate;
|
||||||
|
@interface ATNativeADConfiguration : NSObject
|
||||||
|
/**
|
||||||
|
You can store some extra network specific context info in this dictionary.
|
||||||
|
*/
|
||||||
|
@property(nonatomic) NSDictionary *context;
|
||||||
|
@property(nonatomic) Class renderingViewClass;
|
||||||
|
@property(nonatomic) CGRect ADFrame;
|
||||||
|
@property(nonatomic) CGRect mediaViewFrame;
|
||||||
|
@property(nonatomic, weak) UIViewController *rootViewController;
|
||||||
|
@property(nonatomic, weak) id<ATNativeADDelegate> delegate;
|
||||||
|
@property(nonatomic) BOOL sizeToFit;
|
||||||
|
@property(nonatomic) BOOL useCustomPlayer;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e5dffe530cff048d0b4c9513b3581691
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
//
|
||||||
|
// ATNativeADCustomEvent.h
|
||||||
|
// AnyThinkSDK
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 25/04/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
|
||||||
|
#import "ATNativeADView.h"
|
||||||
|
//#import "ATTracker.h"
|
||||||
|
#import "ATNativeADDelegate.h"
|
||||||
|
//#import "ATAdCustomEvent.h"
|
||||||
|
|
||||||
|
@class ATNativeADCache;
|
||||||
|
@interface ATNativeADCustomEvent : ATAdCustomEvent
|
||||||
|
-(void) trackNativeAdLoaded:(NSDictionary*)assets;
|
||||||
|
-(void) trackNativeAdLoadFailed:(NSError*)error;
|
||||||
|
-(void) didAttachMediaView;
|
||||||
|
-(void) invalidateUsedAdInfo;
|
||||||
|
-(void) willDetachOffer:(ATNativeADCache*)offer fromAdView:(ATNativeADView*)adView;
|
||||||
|
/**
|
||||||
|
*@para refresh: whether the show is trigered by a ad refresh.
|
||||||
|
*/
|
||||||
|
- (void)trackNativeAdShow:(BOOL)refresh;
|
||||||
|
- (void)trackNativeAdClick;
|
||||||
|
- (void)trackNativeAdVideoStart;
|
||||||
|
- (void)trackNativeAdVideoEnd;
|
||||||
|
- (void)trackNativeAdClosed;
|
||||||
|
- (void)trackNativeAdImpression;
|
||||||
|
- (void)trackNativeAdDeeplinkOrJumpResult:(BOOL)success;
|
||||||
|
|
||||||
|
//v5.7.47
|
||||||
|
- (void)trackNativeAdCloseDetail;
|
||||||
|
|
||||||
|
/// If it returns YES, then when sending the embedding points of "show", the embedding points of "impression" will be sent together. Otherwise, it will not be sent. Same for the banner ads (ATBannerCustomEvent.h).
|
||||||
|
- (BOOL)sendImpressionTrackingIfNeed;
|
||||||
|
|
||||||
|
-(NSDictionary*)delegateExtra;
|
||||||
|
- (NSMutableDictionary *)delegateExtraWithNativeAD:(ATNativeADCache *)cache;
|
||||||
|
|
||||||
|
-(ATNativeADSourceType) sourceType;
|
||||||
|
@property(nonatomic, copy) void(^requestCompletionBlock)(NSArray<NSDictionary*> *assets, NSError *error);
|
||||||
|
@property(nonatomic, weak) ATNativeADView *adView;
|
||||||
|
@property(nonatomic) NSInteger requestNumber;
|
||||||
|
/**
|
||||||
|
* Failed or successful, a request's considered finished.
|
||||||
|
*/
|
||||||
|
@property(nonatomic) NSInteger numberOfFinishedRequests;
|
||||||
|
@property(nonatomic, readonly) NSMutableArray<NSDictionary*>* assets;
|
||||||
|
@property(nonatomic) NSDictionary *requestExtra;
|
||||||
|
@property(nonatomic) NSDictionary *serverExtra;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface ATNativeADView(Event)
|
||||||
|
-(void) notifyNativeAdClick;
|
||||||
|
-(void) notifyVideoStart;
|
||||||
|
-(void) notifyVideoEnd;
|
||||||
|
-(void) notifyVideoEnterFullScreen;
|
||||||
|
-(void) notifyVideoExitFullScreen;
|
||||||
|
-(void) notifyCloseButtonTapped;
|
||||||
|
-(void) notifyDeeplinkOrJumpResult:(BOOL)success;
|
||||||
|
-(void) notifyAdDetailClosed;
|
||||||
|
@end
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a032b141c4b6443d2ae0896ed2a55018
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
//
|
||||||
|
// ATNativeADDelegate.h
|
||||||
|
// AnyThinkSDK
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 08/05/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef ATNativeADDelegate_h
|
||||||
|
#define ATNativeADDelegate_h
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
@class ATNativeADView;
|
||||||
|
extern NSString *const kATNativeDelegateExtraNetworkIDKey;
|
||||||
|
extern NSString *const kATNativeDelegateExtraAdSourceIDKey;
|
||||||
|
extern NSString *const kATNativeDelegateExtraIsHeaderBidding;
|
||||||
|
extern NSString *const kATNativeDelegateExtraPrice;
|
||||||
|
extern NSString *const kATNativeDelegateExtraPriority;
|
||||||
|
@protocol ATNativeADDelegate<ATAdLoadingDelegate>
|
||||||
|
-(void) didShowNativeAdInAdView:(ATNativeADView*)adView placementID:(NSString*)placementID extra:(NSDictionary *)extra;
|
||||||
|
-(void) didClickNativeAdInAdView:(ATNativeADView*)adView placementID:(NSString*)placementID extra:(NSDictionary *)extra;
|
||||||
|
-(void) didStartPlayingVideoInAdView:(ATNativeADView*)adView placementID:(NSString*)placementID extra:(NSDictionary *)extra;
|
||||||
|
-(void) didEndPlayingVideoInAdView:(ATNativeADView*)adView placementID:(NSString*)placementID extra:(NSDictionary *)extra;
|
||||||
|
-(void) didEnterFullScreenVideoInAdView:(ATNativeADView*)adView placementID:(NSString*)placementID extra:(NSDictionary *)extra;
|
||||||
|
-(void) didExitFullScreenVideoInAdView:(ATNativeADView*)adView placementID:(NSString*)placementID extra:(NSDictionary *)extra;
|
||||||
|
-(void) didTapCloseButtonInAdView:(ATNativeADView*)adView placementID:(NSString*)placementID extra:(NSDictionary *)extra;
|
||||||
|
-(void) didLoadSuccessDrawWith:(NSArray*)views placementID:(NSString*)placementID extra:(NSDictionary *)extra;
|
||||||
|
-(void) didDeepLinkOrJumpInAdView:(ATNativeADView*)adView placementID:(NSString*)placementID extra:(NSDictionary*)extra result:(BOOL)success;
|
||||||
|
|
||||||
|
// v5.7.47
|
||||||
|
-(void) didCloseDetailInAdView:(ATNativeADView*)adView placementID:(NSString*)placementID extra:(NSDictionary *)extra;
|
||||||
|
@end
|
||||||
|
#endif /* ATNativeADDelegate_h */
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8526d6d7154b746098e33ce3f7938272
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
//
|
||||||
|
// ATNativeADRenderer.h
|
||||||
|
// AnyThinkSDK
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 20/04/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef ATNativeADRenderer_h
|
||||||
|
#define ATNativeADRenderer_h
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#import "ATNativeADView.h"
|
||||||
|
|
||||||
|
@class ATNativeADConfiguration;
|
||||||
|
@class ATNativeADCache;
|
||||||
|
@protocol ATNativeADRenderer<NSObject>
|
||||||
|
/**
|
||||||
|
Might return nil.
|
||||||
|
*/
|
||||||
|
-(__kindof UIView*)createMediaView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Render the assets onto the the associated AD view. Adopter implements this method in a network-specific way.
|
||||||
|
*/
|
||||||
|
-(void) renderOffer:(ATNativeADCache*)offer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether the ad being rendered is video ad.
|
||||||
|
*/
|
||||||
|
-(BOOL)isVideoContents;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The duration of the video ad playing, unit ms
|
||||||
|
*/
|
||||||
|
- (CGFloat)videoPlayTime;
|
||||||
|
/**
|
||||||
|
* Video ad duration, unit ms
|
||||||
|
*/
|
||||||
|
- (CGFloat)videoDuration;
|
||||||
|
/**
|
||||||
|
Play mute switch
|
||||||
|
@param flag whether to mute
|
||||||
|
*/
|
||||||
|
- (void)muteEnable:(BOOL)flag;
|
||||||
|
/**
|
||||||
|
* The video ad play
|
||||||
|
*/
|
||||||
|
- (void)videoPlay;
|
||||||
|
/**
|
||||||
|
* The video ad pause
|
||||||
|
*/
|
||||||
|
- (void)videoPause;
|
||||||
|
|
||||||
|
- (ATNativeAdType)getNativeAdType;
|
||||||
|
|
||||||
|
- (ATNativeAdRenderType)getCurrentNativeAdRenderType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
This reference to the associated AD view should be kept as a weak one, for an AD view strongly keeps its render.
|
||||||
|
This property is added so that the renderAssets: method can access it directly.
|
||||||
|
*/
|
||||||
|
@property(nonatomic, weak) ATNativeADView *ADView;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
#endif /* ATNativeADRenderer_h */
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 172da78fdf6fa46caafde20cde9daebd
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
//
|
||||||
|
// ATNativeADView+Internal.h
|
||||||
|
// AnyThinkSDK
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 03/05/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This file contains methods&properties implemented by ATNativeADView intented for internal use only.
|
||||||
|
*/
|
||||||
|
#import "ATNativeADView.h"
|
||||||
|
@class ATNativeADCustomEvent;
|
||||||
|
@interface ATNativeADView (Internal)
|
||||||
|
/**
|
||||||
|
* Designated initailizer
|
||||||
|
* Loading delegate need to be passed because during the showing process, it's still posibile to encounter loading failure.
|
||||||
|
*/
|
||||||
|
-(instancetype) initWithConfiguration:(ATNativeADConfiguration*)configuration placementID:(NSString*)placementID;
|
||||||
|
/**
|
||||||
|
* Use to bind the customEvent to the ad view.
|
||||||
|
* In the current implementation, a instance of custom event will be create when the ad is to load and later acts as the delegate of the loading process, which will be release when the loading process finished; another will be create before the ad is to be shown and later acts as the delegate of the showing process.
|
||||||
|
*/
|
||||||
|
@property(nonatomic) ATNativeADCustomEvent *customEvent;
|
||||||
|
@end
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fdd6bfd8a94464d6d897561bb3f0b629
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,133 @@
|
||||||
|
//
|
||||||
|
// ATNativeADView.h
|
||||||
|
// AnyThinkSDK
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 18/04/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#import "ATNativeAd.h"
|
||||||
|
#import "ATNativeRendering.h"
|
||||||
|
|
||||||
|
typedef NS_ENUM(NSInteger, ATNativeAdRenderType) {
|
||||||
|
ATNativeAdRenderSelfRender = 1,
|
||||||
|
ATNativeAdRenderExpress = 2
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef NS_ENUM(NSInteger, ATNativeAdType) {
|
||||||
|
ATNativeAdTypeFeed = 1,
|
||||||
|
ATNativeAdTypePaster = 2
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef NS_ENUM(NSInteger, ATPlayerStatus) {
|
||||||
|
ATPlayerStatusStartPlay,
|
||||||
|
ATPlayerStatusPause,
|
||||||
|
ATPlayerStatusFinish,
|
||||||
|
ATPlayerStatusResume,
|
||||||
|
ATPlayerStatusAbort
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* Subclasses are expected to call super when overriding willMoveToSuperview: because it it within this method the base class kick off the rendering process.
|
||||||
|
*/
|
||||||
|
@protocol ATNativeADDelegate;
|
||||||
|
@protocol ATNativeADRenderer;
|
||||||
|
@class ATNativeADConfiguration;
|
||||||
|
@interface ATNativeADView : UIView<ATNativeRendering>
|
||||||
|
/**
|
||||||
|
* Subclass implementation has to call [super initSubviews] for the ad view to work properly. By the time this method's called, the ad view is not yet full fledged.
|
||||||
|
*/
|
||||||
|
-(void) initSubviews;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create constraints for subviews in this method if you are using autolayout.
|
||||||
|
*/
|
||||||
|
-(void) makeConstraintsForSubviews;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* During ad refreshing, the media view might be removed from it's superview and recreated and added; so the layout logic for media view might be called multiple times with different media views. You're recommended to use frame-based technique here.
|
||||||
|
*/
|
||||||
|
-(void) layoutMediaView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether the ad being shown is a video ad.
|
||||||
|
*/
|
||||||
|
-(BOOL) isVideoContents;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ALWAYS call this method to retrieve the REAL rendered adview.
|
||||||
|
*/
|
||||||
|
-(ATNativeADView*)embededAdView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an array containing views that are used to track clicks.
|
||||||
|
*/
|
||||||
|
-(NSArray<UIView*>*)clickableViews;
|
||||||
|
|
||||||
|
@property(nonatomic, weak) id<ATNativeADDelegate> delegate;
|
||||||
|
/**
|
||||||
|
* The view that is used to play video or other media; it is set by the sdk; might be nil.
|
||||||
|
*/
|
||||||
|
@property(nonatomic, nullable) UIView *mediaView;
|
||||||
|
/**
|
||||||
|
* The native ad that is being shown.
|
||||||
|
*/
|
||||||
|
@property(nonatomic, readonly) ATNativeAd *nativeAd;
|
||||||
|
/**
|
||||||
|
* The networkFirm id of native ad.
|
||||||
|
*/
|
||||||
|
@property(nonatomic, readonly) NSInteger networkFirmID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The duration of the video ad playing, unit ms
|
||||||
|
*/
|
||||||
|
- (CGFloat)videoPlayTime;
|
||||||
|
/**
|
||||||
|
* Video ad duration, unit ms
|
||||||
|
*/
|
||||||
|
- (CGFloat)videoDuration;
|
||||||
|
/**
|
||||||
|
Play mute switch
|
||||||
|
@param flag whether to mute
|
||||||
|
*/
|
||||||
|
- (void)muteEnable:(BOOL)flag;
|
||||||
|
/**
|
||||||
|
* The video ad play
|
||||||
|
*/
|
||||||
|
- (void)videoPlay;
|
||||||
|
/**
|
||||||
|
* The video ad pause
|
||||||
|
*/
|
||||||
|
- (void)videoPause;
|
||||||
|
/**
|
||||||
|
* The native ad type
|
||||||
|
*/
|
||||||
|
- (ATNativeAdType)getNativeAdType;
|
||||||
|
/**
|
||||||
|
* The native ad render type
|
||||||
|
*/
|
||||||
|
- (ATNativeAdRenderType)getCurrentNativeAdRenderType;
|
||||||
|
|
||||||
|
- (void)recordCustomPlayerStatus:(ATPlayerStatus)status currentTime:(NSTimeInterval)time;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
//Defined for TT native
|
||||||
|
extern NSString const* kATExtraNativeImageSize228_150;
|
||||||
|
extern NSString const* kATExtraNativeImageSize690_388;
|
||||||
|
extern NSString *const kATExtraNativeImageSizeKey;
|
||||||
|
extern NSString const* kATExtraNativeImageSize1280_720;
|
||||||
|
extern NSString const* kATExtraNativeImageSize1200_628;
|
||||||
|
extern NSString const* kATExtraNativeImageSize640_640;
|
||||||
|
|
||||||
|
@interface ATNativeADView(DrawVideo)
|
||||||
|
/*
|
||||||
|
* Override this method to layout draw video assets.
|
||||||
|
*/
|
||||||
|
-(void) makeConstraintsDrawVideoAssets;
|
||||||
|
@property (nonatomic, strong, readonly, nullable) UIButton *dislikeButton;
|
||||||
|
@property (nonatomic, strong, readonly, nullable) UILabel *adLabel;
|
||||||
|
@property (nonatomic, strong, readonly, nullable) UIImageView *logoImageView;
|
||||||
|
@property (nonatomic, strong, readonly, nullable) UIImageView *logoADImageView;
|
||||||
|
@property (nonatomic, strong, readonly, nullable) UIView *videoAdView;
|
||||||
|
@end
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4d5a0d9f2ad564cab9cc6f760d4c0900
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
//
|
||||||
|
// ATNativeAd.h
|
||||||
|
// AnyThinkSDK
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 02/05/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
@interface ATNativeAd : NSObject
|
||||||
|
@property(nonatomic, readonly) NSString *advertiser;
|
||||||
|
@property(nonatomic, readonly) NSString *title;
|
||||||
|
@property(nonatomic, readonly) NSString *mainText;
|
||||||
|
@property(nonatomic, readonly) NSString *ctaText;
|
||||||
|
@property(nonatomic, readonly) UIImage *icon;
|
||||||
|
@property(nonatomic, readonly) UIImage *mainImage;
|
||||||
|
@property(nonatomic, readonly) UIImage *logo;
|
||||||
|
@property(nonatomic, readonly) NSNumber *rating;
|
||||||
|
@property(nonatomic, readonly) UIImage *sponsorImage;
|
||||||
|
@property(nonatomic, readonly) NSString *videoUrl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* For some ads, this property does not always determines whether the ad is a video ad or not; however, to do this, you can always use the corresponding ad view's isVideoContents method instead.
|
||||||
|
*/
|
||||||
|
@property(nonatomic, readonly, getter=isVideoContents) BOOL videoContents;
|
||||||
|
@end
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1203f7b17124a4022bd19e64bc20df78
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
//
|
||||||
|
// ATNativeBannerWrapper.h
|
||||||
|
// AnyThinkSDKDemo
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 2019/4/10.
|
||||||
|
// Copyright © 2019 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#import <AnyThinkNative/AnyThinkNative.h>
|
||||||
|
@class ATNativeBannerView;
|
||||||
|
@protocol ATNativeBannerDelegate<NSObject>
|
||||||
|
-(void) didFinishLoadingNativeBannerAdWithPlacementID:(NSString *)placementID;
|
||||||
|
-(void) didFailToLoadNativeBannerAdWithPlacementID:(NSString*)placementID error:(NSError*)error;
|
||||||
|
-(void) didShowNativeBannerAdInView:(ATNativeBannerView*)bannerView placementID:(NSString*)placementID DEPRECATED_ATTRIBUTE;
|
||||||
|
-(void) didClickNativeBannerAdInView:(ATNativeBannerView*)bannerView placementID:(NSString*)placementID DEPRECATED_ATTRIBUTE;
|
||||||
|
-(void) didClickCloseButtonInNativeBannerAdView:(ATNativeBannerView*)bannerView placementID:(NSString*)placementID DEPRECATED_ATTRIBUTE;
|
||||||
|
-(void) didAutorefreshNativeBannerAdInView:(ATNativeBannerView*)bannerView placementID:(NSString*)placementID DEPRECATED_ATTRIBUTE;
|
||||||
|
-(void) didFailToAutorefreshNativeBannerAdInView:(ATNativeBannerView*)bannerView placementID:(NSString*)placementID error:(NSError*)error DEPRECATED_ATTRIBUTE;
|
||||||
|
|
||||||
|
-(void) didShowNativeBannerAdInView:(ATNativeBannerView*)bannerView placementID:(NSString*)placementID extra:(NSDictionary *)extra;
|
||||||
|
-(void) didClickNativeBannerAdInView:(ATNativeBannerView*)bannerView placementID:(NSString*)placementID extra:(NSDictionary *)extra;
|
||||||
|
-(void) didClickCloseButtonInNativeBannerAdView:(ATNativeBannerView*)bannerView placementID:(NSString*)placementID extra:(NSDictionary *)extra;
|
||||||
|
-(void) didAutorefreshNativeBannerAdInView:(ATNativeBannerView*)bannerView placementID:(NSString*)placementID extra:(NSDictionary *)extra;
|
||||||
|
-(void) didFailToAutorefreshNativeBannerAdInView:(ATNativeBannerView*)bannerView placementID:(NSString*)placementID extra:(NSDictionary *)extra error:(NSError*)error;
|
||||||
|
- (void)didNativeBannerDeeplinkOrJumpInView:(ATNativeBannerView*)bannerView placementID:(NSString*)placementID extra:(NSDictionary *)extra result:(BOOL)success;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface ATNativeBannerView:UIView
|
||||||
|
@property(nonatomic, weak) id<ATNativeBannerDelegate> delegate;
|
||||||
|
@end
|
||||||
|
|
||||||
|
extern NSString *const kATNativeBannerAdShowingExtraBackgroundColorKey;
|
||||||
|
extern NSString *const kATNativeBannerAdShowingExtraAdSizeKey;
|
||||||
|
extern NSString *const kATNativeBannerAdShowingExtraAutorefreshIntervalKey;
|
||||||
|
extern NSString *const kATNativeBannerAdShowingExtraHideCloseButtonFlagKey;
|
||||||
|
extern NSString *const kATNativeBannerAdShowingExtraCTAButtonBackgroundColorKey;
|
||||||
|
extern NSString *const kATNativeBannerAdShowingExtraCTAButtonTitleFontKey;
|
||||||
|
extern NSString *const kATNativeBannerAdShowingExtraCTAButtonTitleColorKey;
|
||||||
|
extern NSString *const kATNativeBannerAdShowingExtraTitleFontKey;
|
||||||
|
extern NSString *const kATNativeBannerAdShowingExtraTitleColorKey;
|
||||||
|
extern NSString *const kATNativeBannerAdShowingExtraTextFontKey;
|
||||||
|
extern NSString *const kATNativeBannerAdShowingExtraTextColorKey;
|
||||||
|
extern NSString *const kATNativeBannerAdShowingExtraAdvertiserTextFontKey;
|
||||||
|
extern NSString *const kATNativeBannerAdShowingExtraAdvertiserTextColorKey;
|
||||||
|
@interface ATNativeBannerWrapper:NSObject
|
||||||
|
+(instancetype) sharedWrapper;
|
||||||
|
+(void) loadNativeBannerAdWithPlacementID:(NSString*)placementID extra:(NSDictionary*)extra customData:(NSDictionary*)customData delegate:(id<ATNativeBannerDelegate>)delegate;
|
||||||
|
+(ATNativeBannerView*) retrieveNativeBannerAdViewWithPlacementID:(NSString*)placementID extra:(NSDictionary*)extra delegate:(id<ATNativeBannerDelegate>)delegate;
|
||||||
|
+(BOOL) nativeBannerAdReadyForPlacementID:(NSString*)placementID;
|
||||||
|
@end
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c5779c902e80e4e239421531310d69aa
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
//
|
||||||
|
// ATNativeRenderer.h
|
||||||
|
// AnyThinkSDK
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 25/04/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
#import "ATNativeADRenderer.h"
|
||||||
|
//#import "ATAPI.h"
|
||||||
|
@protocol ATNativeADRenderer;
|
||||||
|
@class ATNativeADCache;
|
||||||
|
@interface ATNativeRenderer : NSObject<ATNativeADRenderer>
|
||||||
|
//This method has been added specifically for Mopub; renderers of other networks don't implement it.
|
||||||
|
+(id) retrieveRendererWithOffer:(ATNativeADCache*)offer;
|
||||||
|
-(UIView*)retriveADView;
|
||||||
|
- (void)recordCustomPlayerStatus:(ATPlayerStatus)status currentTime:(NSTimeInterval)time;
|
||||||
|
-(instancetype) initWithConfiguraton:(ATNativeADConfiguration*)configuration adView:(ATNativeADView*)adView;
|
||||||
|
-(__kindof UIView*)createMediaView;
|
||||||
|
@property(nonatomic, weak) ATNativeADView *ADView;
|
||||||
|
@property(nonatomic, readonly) ATNativeADConfiguration *configuration;
|
||||||
|
@end
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c453b120755d54af78defd366b4698e1
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,75 @@
|
||||||
|
//
|
||||||
|
// ATNativeRendering.h
|
||||||
|
// AnyThinkSDK
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 09/04/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef ATNativeRendering_h
|
||||||
|
#define ATNativeRendering_h
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
@protocol ATNativeRendering<NSObject>
|
||||||
|
@optional
|
||||||
|
/**
|
||||||
|
* Return the UILabel that your view is using for the advertiser name.
|
||||||
|
*/
|
||||||
|
-(UILabel*)advertiserLabel;
|
||||||
|
/**
|
||||||
|
* Return the UILabel that your view is using for the main text.
|
||||||
|
*
|
||||||
|
* @return a UILabel that is used for the main text.
|
||||||
|
*/
|
||||||
|
-(UILabel*)textLabel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the UILabel that your view is using for the title text.
|
||||||
|
*
|
||||||
|
* @return a UILabel that is used for the title text.
|
||||||
|
*/
|
||||||
|
-(UILabel*)titleLabel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a label for showing cta text.
|
||||||
|
*/
|
||||||
|
-(UILabel*)ctaLabel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a label for showing the rating text.
|
||||||
|
*/
|
||||||
|
-(UILabel*)ratingLabel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the UIImageView that your view is using for the icon image.
|
||||||
|
*
|
||||||
|
* @return a UIImageView that is used for the icon image.
|
||||||
|
*/
|
||||||
|
-(UIImageView*)iconImageView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the UIImageView that your view is using for the main image.
|
||||||
|
*
|
||||||
|
* @return a UIImageView that is used for the main image.
|
||||||
|
*/
|
||||||
|
-(UIImageView*)mainImageView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*Return the UIImageView that your view is using for the sponsor image.
|
||||||
|
*/
|
||||||
|
-(UIImageView*)sponsorImageView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the view provided by third-pary network to render it's ad offer.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
-(UIView*)mediaView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The button to close Ad for normal native ads.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
- (UIButton *)dislikeButton;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
#endif /* ATNativeRendering_h */
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fbbb348fb823a4a018d272d27b2d1e9b
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
//
|
||||||
|
// ATNativeSplashWrapper.h
|
||||||
|
// AnyThinkSDKDemo
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 2019/3/19.
|
||||||
|
// Copyright © 2019 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
extern NSString *const kATNativeSplashShowingExtraRecommendTitleKey;
|
||||||
|
extern NSString *const kATNativeSplashShowingExtraCTAButtonBackgroundColorKey;
|
||||||
|
extern NSString *const kATNativeSplashShowingExtraCTAButtonTitleColorKey;
|
||||||
|
extern NSString *const kATNativeSplashShowingExtraContainerViewKey;
|
||||||
|
extern NSString *const kATNativeSplashShowingExtraCountdownIntervalKey;
|
||||||
|
extern NSString *const kATNatievSplashShowingExtraStyleKey;
|
||||||
|
|
||||||
|
extern NSString *const kATNativeSplashShowingExtraStylePortrait;
|
||||||
|
extern NSString *const kATNativeSplashShowingExtraStyleLandscape;
|
||||||
|
|
||||||
|
@protocol ATNativeSplashDelegate<NSObject>
|
||||||
|
-(void) finishLoadingNativeSplashAdForPlacementID:(NSString*)placementID;
|
||||||
|
-(void) failedToLoadNativeSplashAdForPlacementID:(NSString*)placementID error:(NSError*)error;
|
||||||
|
-(void) didShowNativeSplashAdForPlacementID:(NSString*)placementID DEPRECATED_ATTRIBUTE;
|
||||||
|
-(void) didClickNaitveSplashAdForPlacementID:(NSString*)placementID DEPRECATED_ATTRIBUTE;
|
||||||
|
-(void) didCloseNativeSplashAdForPlacementID:(NSString*)placementID DEPRECATED_ATTRIBUTE;
|
||||||
|
|
||||||
|
-(void) didShowNativeSplashAdForPlacementID:(NSString*)placementID extra:(NSDictionary *)extra;
|
||||||
|
-(void) didClickNaitveSplashAdForPlacementID:(NSString*)placementID extra:(NSDictionary *)extra;
|
||||||
|
-(void) didCloseNativeSplashAdForPlacementID:(NSString*)placementID extra:(NSDictionary *)extra;
|
||||||
|
- (void)didNativeSplashDeeplinkOrJumpForPlacementID:(NSString*)placementID extra:(NSDictionary *)extra result:(BOOL)success;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface ATNativeSplashWrapper : NSObject
|
||||||
|
+(instancetype) sharedWrapper;
|
||||||
|
+(void) loadNativeSplashAdWithPlacementID:(NSString*)placementID extra:(NSDictionary*)extra customData:(NSDictionary*)customData delegate:(id<ATNativeSplashDelegate>)delegate;
|
||||||
|
+(void) showNativeSplashAdWithPlacementID:(NSString*)placementID extra:(NSDictionary*)extra delegate:(id<ATNativeSplashDelegate>)delegate;
|
||||||
|
+(BOOL) splashNativeAdReadyForPlacementID:(NSString*)placementID;
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 46b01da6b930f47178a0377bb308910b
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
//
|
||||||
|
// AnyThinkNative.h
|
||||||
|
// AnyThinkNative
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 2019/11/1.
|
||||||
|
// Copyright © 2019 AnyThink. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
#import <AnyThinkNative/ATAdManager+Native.h>
|
||||||
|
#import <AnyThinkNative/ATNativeADView.h>
|
||||||
|
#import <AnyThinkNative/ATNativeADConfiguration.h>
|
||||||
|
#import <AnyThinkNative/ATNativeAd.h>
|
||||||
|
#import <AnyThinkNative/ATNativeRendering.h>
|
||||||
|
#import <AnyThinkNative/ATNativeADDelegate.h>
|
||||||
|
#import <AnyThinkNative/ATNativeSplashWrapper.h>
|
||||||
|
#import <AnyThinkNative/ATNativeBannerWrapper.h>
|
||||||
|
#import <AnyThinkNative/ATNativeADCustomEvent.h>
|
||||||
|
#import <AnyThinkNative/ATNativeRenderer.h>
|
||||||
|
#import <AnyThinkNative/ATNativeADView+Internal.h>
|
||||||
|
#import <AnyThinkNative/ATNativeADCache.h>
|
||||||
|
|
||||||
|
//! Project version number for AnyThinkNative.
|
||||||
|
FOUNDATION_EXPORT double AnyThinkNativeVersionNumber;
|
||||||
|
|
||||||
|
//! Project version string for AnyThinkNative.
|
||||||
|
FOUNDATION_EXPORT const unsigned char AnyThinkNativeVersionString[];
|
||||||
|
|
||||||
|
// In this header, you should import all the public headers of your framework using statements like #import <AnyThinkNative/PublicHeader.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 06d62e298694d4d7a955d0358027e523
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ff9738c5380e648a9b7317e958eee4bf
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b9b8b1c04b0294393a1909c3fc558558
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
framework module AnyThinkNative {
|
||||||
|
umbrella header "AnyThinkNative.h"
|
||||||
|
|
||||||
|
export *
|
||||||
|
module * { export * }
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c2476a56359be466099c5f18cb2f7d86
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c2a41138edf784f079e5867f6d773fce
|
||||||
|
folderAsset: yes
|
||||||
|
PluginImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
iconMap: {}
|
||||||
|
executionOrder: {}
|
||||||
|
defineConstraints: []
|
||||||
|
isPreloaded: 0
|
||||||
|
isOverridable: 0
|
||||||
|
isExplicitlyReferenced: 0
|
||||||
|
validateReferences: 1
|
||||||
|
platformData:
|
||||||
|
- first:
|
||||||
|
Any:
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings: {}
|
||||||
|
- first:
|
||||||
|
Editor: Editor
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
DefaultValueInitialized: true
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7fc2d22a6dd0345cb899a3388443e941
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 004d39f24a08a4214bf2f5d956624769
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
//
|
||||||
|
// ATAdManager+RewardedVideo.h
|
||||||
|
// AnyThinkSDK
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 05/07/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
#import "ATRewardedVideoDelegate.h"
|
||||||
|
/*
|
||||||
|
* Third-party extra data
|
||||||
|
*/
|
||||||
|
extern NSString *const kATAdLoadingExtraKeywordKey;
|
||||||
|
extern NSString *const kATAdLoadingExtraUserDataKeywordKey;
|
||||||
|
extern NSString *const kATAdLoadingExtraUserIDKey;
|
||||||
|
extern NSString *const kATAdLoadingExtraLocationKey;
|
||||||
|
extern NSString *const kATAdLoadingExtraMediaExtraKey;
|
||||||
|
extern NSString *const kATAdLoadingExtraRewardNameKey;
|
||||||
|
extern NSString *const kATAdLoadingExtraRewardAmountKey;
|
||||||
|
extern NSString *const kATAdLoadingExtraNetworkPlacementIDKey;
|
||||||
|
|
||||||
|
extern NSString *const kATRewardedVideoCallbackExtraAdsourceIDKey;
|
||||||
|
extern NSString *const kATRewardedVideoCallbackExtraNetworkIDKey;
|
||||||
|
|
||||||
|
// Klevin SDK
|
||||||
|
extern NSString *const kATRewardedVideoKlevinRewardTimeKey;
|
||||||
|
extern NSString *const kATRewardedVideoKlevinRewardTriggerKey;
|
||||||
|
|
||||||
|
|
||||||
|
@interface ATAdManager (RewardedVideo)
|
||||||
|
-(BOOL) rewardedVideoReadyForPlacementID:(NSString*)placementID;
|
||||||
|
-(ATCheckLoadModel*) checkRewardedVideoLoadStatusForPlacementID:(NSString*)placementID;
|
||||||
|
- (NSArray<NSDictionary *> *)getRewardedVideoValidAdsForPlacementID:(NSString *)placementID;
|
||||||
|
-(void) showRewardedVideoWithPlacementID:(NSString*)placementID inViewController:(UIViewController*)viewController delegate:(id<ATRewardedVideoDelegate>)delegate;
|
||||||
|
-(void) showRewardedVideoWithPlacementID:(NSString*)placementID scene:(NSString*)scene inViewController:(UIViewController*)viewController delegate:(id<ATRewardedVideoDelegate>)delegate;
|
||||||
|
@end
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b4bb2b9d8aa7544dda13274479b1cbb9
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
//
|
||||||
|
// ATRewardedVideo.h
|
||||||
|
// AnyThinkSDK
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 28/06/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
//#import "ATAd.h"
|
||||||
|
@class ATRewardedVideoCustomEvent;
|
||||||
|
@interface ATRewardedVideo : NSObject<ATAd>
|
||||||
|
-(instancetype) initWithPriority:(NSInteger) priority placementModel:(ATPlacementModel*)placementModel requestID:(NSString*)requestID assets:(NSDictionary*)assets unitGroup:(ATUnitGroupModel*)unitGroup finalWaterfall:(ATWaterfall *)finalWaterfall;
|
||||||
|
@property(nonatomic) NSInteger showTimes;
|
||||||
|
/**
|
||||||
|
Priority is calculate by the index of the unit group in the placement's unit group list; zero is the highest
|
||||||
|
*/
|
||||||
|
@property(nonatomic, readonly) NSInteger priority;
|
||||||
|
@property(nonatomic, readonly) NSInteger priorityLevel;
|
||||||
|
@property(nonatomic, readonly) ATPlacementModel *placementModel;
|
||||||
|
@property(nonatomic, readonly) NSString *requestID;
|
||||||
|
@property(nonatomic, readonly) NSString *originalRequestID;
|
||||||
|
@property(nonatomic, readonly) NSDate *cacheDate;
|
||||||
|
@property(nonatomic, readonly) NSDate *expireDate;
|
||||||
|
@property(nonatomic, readonly) ATUnitGroupModel *unitGroup;
|
||||||
|
@property(nonatomic, readonly) NSString *unitID;
|
||||||
|
/**
|
||||||
|
* Third-party network native ad object.
|
||||||
|
*/
|
||||||
|
@property(nonatomic, readonly) id customObject;
|
||||||
|
|
||||||
|
@property(nonatomic) ATRewardedVideoCustomEvent *customEvent;
|
||||||
|
@property(nonatomic, readonly) NSString *appID;
|
||||||
|
@property(nonatomic) BOOL defaultPlayIfRequired;
|
||||||
|
@property(nonatomic, copy) NSString *scene;
|
||||||
|
@property(nonatomic, readonly) NSString *price;
|
||||||
|
@property(nonatomic, readonly) NSString *bidId;
|
||||||
|
@property(nonatomic, readonly) NSString *tpBidId;
|
||||||
|
@property(nonatomic, readonly, weak) ATWaterfall *finalWaterfall;
|
||||||
|
@property(nonatomic, readonly) NSInteger autoReqType;
|
||||||
|
@property(nonatomic) BOOL adReportClicked;
|
||||||
|
@end
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 503eb22f5d561485ca4e7e3391a2b914
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
//
|
||||||
|
// ATRewardedVideoAdapter.h
|
||||||
|
// AnyThinkSDK
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 05/07/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef ATRewardedVideoAdapter_h
|
||||||
|
#define ATRewardedVideoAdapter_h
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
//#import "ATAdAdapter.h"
|
||||||
|
#import "ATRewardedVideoDelegate.h"
|
||||||
|
#import "ATRewardedVideo.h"
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
@protocol ATRewardedVideoAdapter<ATAdAdapter>
|
||||||
|
@optional
|
||||||
|
+(BOOL) adReadyWithCustomObject:(id)customObject info:(NSDictionary*)info;
|
||||||
|
+(void) showRewardedVideo:(ATRewardedVideo*)rewardedVideo inViewController:(UIViewController*)viewController delegate:(id<ATRewardedVideoDelegate>)delegate;
|
||||||
|
@end
|
||||||
|
#endif /* ATRewardedVideoAdapter_h */
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9915e24d74c9c499f9c854545f2faeb6
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
//
|
||||||
|
// ATRewardedVideoCustomEvent.h
|
||||||
|
// AnyThinkSDK
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 05/07/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
//#import "ATAdCustomEvent.h"
|
||||||
|
#import "ATRewardedVideoDelegate.h"
|
||||||
|
#import "ATRewardedVideo.h"
|
||||||
|
|
||||||
|
@interface ATRewardedVideoCustomEvent : ATAdCustomEvent
|
||||||
|
-(void) trackRewardedVideoAdPlayEventWithError:(NSError*)error;
|
||||||
|
-(void) trackRewardedVideoAdCloseRewarded:(BOOL)rewarded;
|
||||||
|
-(void) trackRewardedVideoAdVideoStart;
|
||||||
|
-(void) trackRewardedVideoAdVideoEnd;
|
||||||
|
-(void) trackRewardedVideoAdClick;
|
||||||
|
-(void) trackRewardedVideoAdShow;
|
||||||
|
-(void) trackRewardedVideoAdLoadFailed:(NSError*)error;
|
||||||
|
-(void) trackRewardedVideoAdLoaded:(id)adObject adExtra:(NSDictionary *)adExtra;
|
||||||
|
-(void) trackRewardedVideoAdRewarded;
|
||||||
|
-(void) trackRewardedVideoAdDeeplinkOrJumpResult:(BOOL)success;
|
||||||
|
|
||||||
|
-(NSDictionary*)delegateExtra;
|
||||||
|
|
||||||
|
-(instancetype) initWithInfo:(NSDictionary*)serverInfo localInfo:(NSDictionary *)localInfo;
|
||||||
|
@property(nonatomic, weak) id<ATRewardedVideoDelegate> delegate;
|
||||||
|
@property(nonatomic, weak) ATRewardedVideo *rewardedVideo;
|
||||||
|
@property(nonatomic, readonly) NSString *unitID;
|
||||||
|
@property(nonatomic) NSString *userID;
|
||||||
|
@property(nonatomic, assign) NSInteger priorityIndex;
|
||||||
|
@end
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 29b6c7452462b44dc8daad6a03bfd025
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
//
|
||||||
|
// ATRewardedVideoDelegate.h
|
||||||
|
// AnyThinkSDK
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 05/07/2018.
|
||||||
|
// Copyright © 2018 Martin Lau. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef ATRewardedVideoDelegate_h
|
||||||
|
#define ATRewardedVideoDelegate_h
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
|
||||||
|
extern NSString *const kATRewardedVideoCallbackExtraAdsourceIDKey;
|
||||||
|
extern NSString *const kATRewardedVideoCallbackExtraNetworkIDKey;
|
||||||
|
extern NSString *const kATRewardedVideoCallbackExtraIsHeaderBidding;
|
||||||
|
extern NSString *const kATRewardedVideoCallbackExtraPrice;
|
||||||
|
extern NSString *const kATRewardedVideoCallbackExtraPriority;
|
||||||
|
@protocol ATRewardedVideoDelegate<ATAdLoadingDelegate>
|
||||||
|
|
||||||
|
-(void) rewardedVideoDidStartPlayingForPlacementID:(NSString*)placementID extra:(NSDictionary*)extra;
|
||||||
|
-(void) rewardedVideoDidEndPlayingForPlacementID:(NSString*)placementID extra:(NSDictionary*)extra;
|
||||||
|
-(void) rewardedVideoDidFailToPlayForPlacementID:(NSString*)placementID error:(NSError*)error extra:(NSDictionary*)extra;
|
||||||
|
-(void) rewardedVideoDidCloseForPlacementID:(NSString*)placementID rewarded:(BOOL)rewarded extra:(NSDictionary*)extra;
|
||||||
|
-(void) rewardedVideoDidClickForPlacementID:(NSString*)placementID extra:(NSDictionary*)extra;
|
||||||
|
-(void) rewardedVideoDidRewardSuccessForPlacemenID:(NSString*)placementID extra:(NSDictionary*)extra;
|
||||||
|
-(void) rewardedVideoDidDeepLinkOrJumpForPlacementID:(NSString*)placementID extra:(NSDictionary*)extra result:(BOOL)success;
|
||||||
|
|
||||||
|
@end
|
||||||
|
#endif /* ATRewardedVideoDelegate_h */
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 71ff6f08041074cdb8c03531f99e57a7
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
//
|
||||||
|
// AnyThinkRewardedVideo.h
|
||||||
|
// AnyThinkRewardedVideo
|
||||||
|
//
|
||||||
|
// Created by Martin Lau on 2019/11/1.
|
||||||
|
// Copyright © 2019 AnyThink. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
#import <AnyThinkSDK/AnyThinkSDK.h>
|
||||||
|
#import <AnyThinkRewardedVideo/ATAdManager+RewardedVideo.h>
|
||||||
|
#import <AnyThinkRewardedVideo/ATRewardedVideoDelegate.h>
|
||||||
|
#import <AnyThinkRewardedVideo/ATRewardedVideoCustomEvent.h>
|
||||||
|
|
||||||
|
//! Project version number for AnyThinkRewardedVideo.
|
||||||
|
FOUNDATION_EXPORT double AnyThinkRewardedVideoVersionNumber;
|
||||||
|
|
||||||
|
//! Project version string for AnyThinkRewardedVideo.
|
||||||
|
FOUNDATION_EXPORT const unsigned char AnyThinkRewardedVideoVersionString[];
|
||||||
|
|
||||||
|
// In this header, you should import all the public headers of your framework using statements like #import <AnyThinkRewardedVideo/PublicHeader.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0c80cc2955c244390a2a6ef585f51cbc
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue