diff --git a/OMAdTimingAdapter/OMAdTimingInterstitial.h b/OMAdTimingAdapter/OMAdTimingInterstitial.h index 6116f7b..4a6b4ec 100644 --- a/OMAdTimingAdapter/OMAdTimingInterstitial.h +++ b/OMAdTimingAdapter/OMAdTimingInterstitial.h @@ -7,7 +7,7 @@ NS_ASSUME_NONNULL_BEGIN -@interface OMAdTimingInterstitial : NSObject +@interface OMAdTimingInterstitial : NSObject @property (nonatomic, copy) NSString *pid; @property (nonatomic, weak) id delegate; diff --git a/OMAdTimingAdapter/OMAdTimingInterstitial.m b/OMAdTimingAdapter/OMAdTimingInterstitial.m index b0ab6df..8911697 100644 --- a/OMAdTimingAdapter/OMAdTimingInterstitial.m +++ b/OMAdTimingAdapter/OMAdTimingInterstitial.m @@ -13,11 +13,11 @@ - (instancetype)initWithParameter:(NSDictionary*)adParameter { } - (void)loadAd { - Class interstitialClass = NSClassFromString(@"AdTimingInterstitialAd"); + Class interstitialClass = NSClassFromString(@"AdTimingInterstitial"); if (interstitialClass && [interstitialClass respondsToSelector:@selector(sharedInstance)] && [interstitialClass instancesRespondToSelector:@selector(loadWithPlacementID:)] && [_pid length]>0) { [[interstitialClass sharedInstance]loadWithPlacementID:_pid]; - if (interstitialClass && [interstitialClass respondsToSelector:@selector(sharedInstance)] && [interstitialClass instancesRespondToSelector:@selector(addMediationDelegate:)]) { - [[interstitialClass sharedInstance]addMediationDelegate:self]; + if (interstitialClass && [interstitialClass respondsToSelector:@selector(sharedInstance)] && [interstitialClass instancesRespondToSelector:@selector(addDelegate:)]) { + [[interstitialClass sharedInstance]addDelegate:self]; } } @@ -25,7 +25,7 @@ - (void)loadAd { - (BOOL)isReady { BOOL isReady = NO; - Class interstitialClass = NSClassFromString(@"AdTimingInterstitialAd"); + Class interstitialClass = NSClassFromString(@"AdTimingInterstitial"); if (interstitialClass && [interstitialClass respondsToSelector:@selector(sharedInstance)] && [interstitialClass instancesRespondToSelector:@selector(isReady:)] && [_pid length]>0) { isReady = [[interstitialClass sharedInstance]isReady:_pid]; } @@ -33,26 +33,32 @@ - (BOOL)isReady { } - (void)show:(UIViewController *)vc { - Class interstitialClass = NSClassFromString(@"AdTimingInterstitialAd"); + Class interstitialClass = NSClassFromString(@"AdTimingInterstitial"); if ([self isReady]) { - if (interstitialClass && [interstitialClass respondsToSelector:@selector(sharedInstance)] && [interstitialClass instancesRespondToSelector:@selector(showWithViewController:placementID:)]) { - [[interstitialClass sharedInstance]showWithViewController:vc placementID:_pid]; + if (interstitialClass && [interstitialClass respondsToSelector:@selector(sharedInstance)] && [interstitialClass instancesRespondToSelector:@selector(showAdFromRootViewController:placementID:)]) { + [[interstitialClass sharedInstance]showAdFromRootViewController:vc placementID:_pid]; } } } #pragma mark - AdTimingMediatedInterstitialDelegate -- (void)adtimingInterstitialChangedAvailability:(NSString*)placementID newValue:(BOOL)available { - if (available && [placementID isEqualToString:_pid]) { + +- (void)adtimingInterstitialDidLoad:(NSString *)placementID { + if ([placementID isEqualToString:_pid]) { if (_delegate && [_delegate respondsToSelector:@selector(customEvent:didLoadAd:)]) { [_delegate customEvent:self didLoadAd:nil]; } } } +- (void)adtimingInterstitialDidFailToLoad:(NSString *)placementID withError:(NSError *)error { + if ([placementID isEqualToString:_pid] && _delegate && [_delegate respondsToSelector:@selector(customEvent:didFailToLoadWithError:)]) { + [_delegate customEvent:self didFailToLoadWithError:error]; + } +} + - (void)adtimingInterstitialDidOpen:(NSString*)placementID { - if ([placementID isEqualToString:_pid] && _delegate && [_delegate respondsToSelector:@selector(interstitialCustomEventDidOpen:)]) { [_delegate interstitialCustomEventDidOpen:self]; } diff --git a/OMAdTimingAdapter/OMAdTimingInterstitialClass.h b/OMAdTimingAdapter/OMAdTimingInterstitialClass.h index 7b4e2fc..c4c7ad3 100644 --- a/OMAdTimingAdapter/OMAdTimingInterstitialClass.h +++ b/OMAdTimingAdapter/OMAdTimingInterstitialClass.h @@ -7,43 +7,52 @@ NS_ASSUME_NONNULL_BEGIN -@protocol AdTimingMediatedInterstitialDelegate +@protocol AdTimingInterstitialDelegate @optional -/// Invoked when a interstitial video is available. -- (void)adtimingInterstitialChangedAvailability:(NSString*)placementID newValue:(BOOL)available; -/// Sent immediately when a interstitial video is opened. -- (void)adtimingInterstitialDidOpen:(NSString*)placementID; +/// Invoked when a interstitial did load. +- (void)adtimingInterstitialDidLoad:(NSString *)placementID; + +/// Sent after an interstitial fails to load the ad. +- (void)adtimingInterstitialDidFailToLoad:(NSString *)placementID withError:(NSError *)error; + +- (void)adtimingInterstitialDidOpen:(NSString *)placementID; /// Sent immediately when a interstitial video starts to play. -- (void)adtimingInterstitialDidShow:(NSString*)placementID; +- (void)adtimingInterstitialDidShow:(NSString *)placementID; /// Sent after a interstitial video has been clicked. -- (void)adtimingInterstitialDidClick:(NSString*)placementID; +- (void)adtimingInterstitialDidClick:(NSString *)placementID; /// Sent after a interstitial video has been closed. -- (void)adtimingInterstitialDidClose:(NSString*)placementID; +- (void)adtimingInterstitialDidClose:(NSString *)placementID; /// Sent after a interstitial video has failed to play. -- (void)adtimingInterstitialDidFailToShow:(NSString*)placementID withError:(NSError *)error; +- (void)adtimingInterstitialDidFailToShow:(NSString *)placementID withError:(NSError *)error; @end -@interface AdTimingInterstitialAd : NSObject +@interface AdTimingInterstitial : NSObject +/// Returns the singleton instance. + (instancetype)sharedInstance; -- (void)addMediationDelegate:(id)delegate; +/// Add delegate +- (void)addDelegate:(id)delegate; -- (void)removeMediationDelegate:(id)delegate; +/// Remove delegate +- (void)removeDelegate:(id)delegate; +/// loadAd - (void)loadWithPlacementID:(NSString*)placementID; +/// Indicates whether the interstitial video is ready to show ad. - (BOOL)isReady:(NSString*)placementID; -- (void)showWithViewController:(UIViewController *)viewController placementID:(NSString *)placementID; + +- (void)showAdFromRootViewController:(UIViewController *)rootViewController placementID:(NSString *)placementID; @end diff --git a/OMAdTimingAdapter/OMAdTimingRewardedVideo.h b/OMAdTimingAdapter/OMAdTimingRewardedVideo.h index 5e5d1e1..dee759f 100644 --- a/OMAdTimingAdapter/OMAdTimingRewardedVideo.h +++ b/OMAdTimingAdapter/OMAdTimingRewardedVideo.h @@ -7,7 +7,7 @@ NS_ASSUME_NONNULL_BEGIN -@interface OMAdTimingRewardedVideo : NSObject +@interface OMAdTimingRewardedVideo : NSObject @property (nonatomic, copy) NSString *pid; @property (nonatomic, weak) id delegate; diff --git a/OMAdTimingAdapter/OMAdTimingRewardedVideo.m b/OMAdTimingAdapter/OMAdTimingRewardedVideo.m index 02028c2..b0629ae 100644 --- a/OMAdTimingAdapter/OMAdTimingRewardedVideo.m +++ b/OMAdTimingAdapter/OMAdTimingRewardedVideo.m @@ -14,18 +14,18 @@ - (instancetype)initWithParameter:(NSDictionary*)adParameter { } -(void)loadAd { - Class rewardedVideoClass = NSClassFromString(@"AdTimingRewardedVideoAd"); + Class rewardedVideoClass = NSClassFromString(@"AdTimingRewardedVideo"); if (rewardedVideoClass && [rewardedVideoClass respondsToSelector:@selector(sharedInstance)] && [rewardedVideoClass instancesRespondToSelector:@selector(loadWithPlacementID:)] && [_pid length]>0) { [[rewardedVideoClass sharedInstance]loadWithPlacementID:_pid]; - if (rewardedVideoClass && [rewardedVideoClass respondsToSelector:@selector(sharedInstance)] && [rewardedVideoClass instancesRespondToSelector:@selector(addMediationDelegate:)]) { - [[rewardedVideoClass sharedInstance]addMediationDelegate:self]; + if (rewardedVideoClass && [rewardedVideoClass respondsToSelector:@selector(sharedInstance)] && [rewardedVideoClass instancesRespondToSelector:@selector(addDelegate:)]) { + [[rewardedVideoClass sharedInstance]addDelegate:self]; } } } -(BOOL)isReady { BOOL isReady = NO; - Class rewardedVideoClass = NSClassFromString(@"AdTimingRewardedVideoAd"); + Class rewardedVideoClass = NSClassFromString(@"AdTimingRewardedVideo"); if (rewardedVideoClass && [rewardedVideoClass respondsToSelector:@selector(sharedInstance)] && [rewardedVideoClass instancesRespondToSelector:@selector(isReady:)] && [_pid length]>0) { isReady = [[rewardedVideoClass sharedInstance]isReady:_pid]; } @@ -33,22 +33,28 @@ -(BOOL)isReady { } - (void)show:(UIViewController *)vc { - Class rewardedVideoClass = NSClassFromString(@"AdTimingRewardedVideoAd"); + Class rewardedVideoClass = NSClassFromString(@"AdTimingRewardedVideo"); if ([self isReady]) { - if (rewardedVideoClass && [rewardedVideoClass respondsToSelector:@selector(sharedInstance)] && [rewardedVideoClass instancesRespondToSelector:@selector(showWithViewController:placementID:)]) { - [[rewardedVideoClass sharedInstance]showWithViewController:vc placementID:_pid]; + if (rewardedVideoClass && [rewardedVideoClass respondsToSelector:@selector(sharedInstance)] && [rewardedVideoClass instancesRespondToSelector:@selector(showAdFromRootViewController:placementID:)]) { + [[rewardedVideoClass sharedInstance]showAdFromRootViewController:vc placementID:_pid]; } } } -- (void)adtimingRewardedVideoChangedAvailability:(NSString*)placementID newValue:(BOOL)available { - if (available && [placementID isEqualToString:_pid]) { - if (_delegate && [_delegate respondsToSelector:@selector(customEvent:didLoadAd:)]) { - [_delegate customEvent:self didLoadAd:nil]; - } - } + +- (void)adtimingRewardedVideoDidLoad:(NSString *)placementID { + if ([placementID isEqualToString:_pid] && _delegate && [_delegate respondsToSelector:@selector(customEvent:didLoadAd:)]) { + [_delegate customEvent:self didLoadAd:nil]; + } } +- (void)adtimingRewardedVideoDidFailToLoad:(NSString *)placementID withError:(NSError *)error { + if ([placementID isEqualToString:_pid] && _delegate && [_delegate respondsToSelector:@selector(customEvent:didFailToLoadWithError:)]) { + [_delegate customEvent:self didFailToLoadWithError:error]; + } +} + + - (void)adtimingRewardedVideoDidOpen:(NSString*)placementID { if ([placementID isEqualToString:_pid] && _delegate && [_delegate respondsToSelector:@selector(rewardedVideoCustomEventDidOpen:)]) { [_delegate rewardedVideoCustomEventDidOpen:self]; diff --git a/OMAdTimingAdapter/OMAdTimingRewardedVideoClass.h b/OMAdTimingAdapter/OMAdTimingRewardedVideoClass.h index d1049d1..91ebfe1 100644 --- a/OMAdTimingAdapter/OMAdTimingRewardedVideoClass.h +++ b/OMAdTimingAdapter/OMAdTimingRewardedVideoClass.h @@ -6,52 +6,66 @@ #import NS_ASSUME_NONNULL_BEGIN -@protocol AdTimingMediatedRewardedVideoDelegate +@protocol AdTimingRewardedVideoDelegate @optional -/// Invoked when a rewarded video is available. -- (void)adtimingRewardedVideoChangedAvailability:(NSString*)placementID newValue:(BOOL)available; +/// Invoked when a rewarded video did load. + +- (void)adtimingRewardedVideoDidLoad:(NSString *)placementID; + +/// Sent after an rewarded video fails to load the ad. +- (void)adtimingRewardedVideoDidFailToLoad:(NSString *)placementID withError:(NSError *)error; /// Sent immediately when a rewarded video is opened. -- (void)adtimingRewardedVideoDidOpen:(NSString*)placementID; +- (void)adtimingRewardedVideoDidOpen:(NSString *)placementID; /// Sent immediately when a rewarded video starts to play. -- (void)adtimingRewardedVideoPlayStart:(NSString*)placementID; +- (void)adtimingRewardedVideoPlayStart:(NSString *)placementID; /// Send after a rewarded video has been completed. -- (void)adtimingRewardedVideoPlayEnd:(NSString*)placementID; +- (void)adtimingRewardedVideoPlayEnd:(NSString *)placementID; /// Sent after a rewarded video has been clicked. -- (void)adtimingRewardedVideoDidClick:(NSString*)placementID; +- (void)adtimingRewardedVideoDidClick:(NSString *)placementID; /// Sent after a user has been granted a reward. -- (void)adtimingRewardedVideoDidReceiveReward:(NSString*)placementID; +- (void)adtimingRewardedVideoDidReceiveReward:(NSString *)placementID; /// Sent after a rewarded video has been closed. -- (void)adtimingRewardedVideoDidClose:(NSString*)placementID; +- (void)adtimingRewardedVideoDidClose:(NSString *)placementID; /// Sent after a rewarded video has failed to play. -- (void)adtimingRewardedVideoDidFailToShow:(NSString*)placementID withError:(NSError *)error; +- (void)adtimingRewardedVideoDidFailToShow:(NSString *)placementID withError:(NSError *)error; @end -@interface AdTimingRewardedVideoAd : NSObject +@interface AdTimingRewardedVideo : NSObject +/// Returns the singleton instance. + (instancetype)sharedInstance; -- (void)addMediationDelegate:(id)delegate; +/// Add delegate +- (void)addDelegate:(id)delegate; -- (void)removeMediationDelegate:(id)delegate; +/// Remove delegate +- (void)removeDelegate:(id)delegate; +/// loadAd - (void)loadWithPlacementID:(NSString*)placementID; +/// Indicates whether the rewarded video is ready to show ad. - (BOOL)isReady:(NSString*)placementID; -- (void)showWithViewController:(UIViewController *)viewController placementID:(NSString *)placementID; + +- (void)showAdFromRootViewController:(UIViewController *)viewController placementID:(NSString *)placementID; + + +- (void)showAdFromRootViewController:(UIViewController *)viewController placementID:(NSString *)placementID extraParams:(NSString*)extraParams; @end + NS_ASSUME_NONNULL_END #endif /* OMAdTimingRewardedVideoClass_h */ diff --git a/OpenMediation.podspec b/OpenMediation.podspec index 88b8f35..32b371f 100644 --- a/OpenMediation.podspec +++ b/OpenMediation.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'OpenMediation' - s.version = '1.0.0' + s.version = '1.0.1' s.summary = 'OpenMediation SDK for iOS' s.homepage = 'https://github.com/AdTiming/OpenMediation-iOS' s.description = <<-DESC diff --git a/OpenMediation/OpenMediationNetwork/OMInitRequest.m b/OpenMediation/OpenMediationNetwork/OMInitRequest.m index e70d5be..2b5bf47 100644 --- a/OpenMediation/OpenMediationNetwork/OMInitRequest.m +++ b/OpenMediation/OpenMediationNetwork/OMInitRequest.m @@ -7,7 +7,7 @@ #import "OMConfig.h" #import "OMMediations.h" -#define OPENMEDIATION_INIT_HOST @"https://omdemoserver.adtiming.com/" +#define OPENMEDIATION_INIT_HOST @"https://omdemoserver.adtiming.com" @implementation OMInitRequest diff --git a/OpenMediationDemo/AppDelegate.m b/OpenMediationDemo/AppDelegate.m index e838db5..1281bc7 100644 --- a/OpenMediationDemo/AppDelegate.m +++ b/OpenMediationDemo/AppDelegate.m @@ -19,7 +19,7 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( self.window.rootViewController = [[[UINavigationController alloc] initWithRootViewController:[WelcomeViewController alloc]]init]; [self.window makeKeyAndVisible]; - [OpenMediation initWithAppKey:@"jo4046q4LPWP3ofBirX7yj9DEgs6mRSl"]; + [OpenMediation initWithAppKey:@"mN5ML6VCxGbcmHZvW8tWVN8mkALGGnoW"]; return YES; } diff --git a/Podfile b/Podfile index db2da11..dc7cc9b 100644 --- a/Podfile +++ b/Podfile @@ -3,7 +3,7 @@ platform :ios, '9.0' source 'https://github.com/CocoaPods/Specs.git' target 'OpenMediationDemo' do - pod 'AdTimingSDK' + pod 'AdTimingAds' pod 'Google-Mobile-Ads-SDK', '7.51.0' pod 'FBAudienceNetwork', '5.1.1' pod 'UnityAds', '3.2.0' diff --git a/README.md b/README.md index 7e924ac..88645b8 100644 --- a/README.md +++ b/README.md @@ -63,8 +63,8 @@ $ pod install OpenMediation provides a prepackaged archive of the static framework: -- **[OpenMediation SDK](https://github.com/AdTiming/OpenMediation-iOS/releases/download/1.0.0/OpenMediation-iOS-1.0.0.zip)** -- **[AdTimingAdapter SDK](https://github.com/AdTiming/OpenMediation-iOS/releases/download/1.0.0/OMAdTimingAdapter-iOS-1.0.0.zip)** +- **[OpenMediation SDK](https://github.com/AdTiming/OpenMediation-iOS/releases/download/1.0.1/OpenMediation-iOS-1.0.1.zip)** +- **[AdTimingAdapter SDK](https://github.com/AdTiming/OpenMediation-iOS/releases/download/1.0.1/OMAdTimingAdapter-iOS-1.0.1.zip)** - **[AdMobAdapter SDK](https://github.com/AdTiming/OpenMediation-iOS/releases/download/1.0.0/OMAdMobAdapter-iOS-1.0.0.zip)** - **[FacebookAdapter SDK](https://github.com/AdTiming/OpenMediation-iOS/releases/download/1.0.0/OMFacebookAdapter-iOS-1.0.0.zip)** - **[UnityAdapter SDK](https://github.com/AdTiming/OpenMediation-iOS/releases/download/1.0.0/OMUnityAdapter-iOS-1.0.0.zip)**