Skip to content

Commit

Permalink
Mediation AdTimingAds
Browse files Browse the repository at this point in the history
  • Loading branch information
OpenMediationProject committed Apr 8, 2020
1 parent 1772912 commit 7a63d10
Show file tree
Hide file tree
Showing 11 changed files with 93 additions and 58 deletions.
2 changes: 1 addition & 1 deletion OMAdTimingAdapter/OMAdTimingInterstitial.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

NS_ASSUME_NONNULL_BEGIN

@interface OMAdTimingInterstitial : NSObject<OMInterstitialCustomEvent,AdTimingMediatedInterstitialDelegate>
@interface OMAdTimingInterstitial : NSObject<OMInterstitialCustomEvent,AdTimingInterstitialDelegate>

@property (nonatomic, copy) NSString *pid;
@property (nonatomic, weak) id<interstitialCustomEventDelegate> delegate;
Expand Down
26 changes: 16 additions & 10 deletions OMAdTimingAdapter/OMAdTimingInterstitial.m
Original file line number Diff line number Diff line change
Expand Up @@ -13,46 +13,52 @@ - (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];
}
}

}

- (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];
}
return 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];
}
Expand Down
35 changes: 22 additions & 13 deletions OMAdTimingAdapter/OMAdTimingInterstitialClass.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,43 +7,52 @@

NS_ASSUME_NONNULL_BEGIN

@protocol AdTimingMediatedInterstitialDelegate <NSObject>
@protocol AdTimingInterstitialDelegate <NSObject>

@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<AdTimingMediatedInterstitialDelegate>)delegate;
/// Add delegate
- (void)addDelegate:(id<AdTimingInterstitialDelegate>)delegate;

- (void)removeMediationDelegate:(id<AdTimingMediatedInterstitialDelegate>)delegate;
/// Remove delegate
- (void)removeDelegate:(id<AdTimingInterstitialDelegate>)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

Expand Down
2 changes: 1 addition & 1 deletion OMAdTimingAdapter/OMAdTimingRewardedVideo.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

NS_ASSUME_NONNULL_BEGIN

@interface OMAdTimingRewardedVideo : NSObject<AdTimingMediatedRewardedVideoDelegate,OMRewardedVideoCustomEvent>
@interface OMAdTimingRewardedVideo : NSObject<AdTimingRewardedVideoDelegate,OMRewardedVideoCustomEvent>

@property (nonatomic, copy) NSString *pid;
@property (nonatomic, weak) id<rewardedVideoCustomEventDelegate> delegate;
Expand Down
32 changes: 19 additions & 13 deletions OMAdTimingAdapter/OMAdTimingRewardedVideo.m
Original file line number Diff line number Diff line change
Expand Up @@ -14,41 +14,47 @@ - (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];
}
return 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];
Expand Down
42 changes: 28 additions & 14 deletions OMAdTimingAdapter/OMAdTimingRewardedVideoClass.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,52 +6,66 @@
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN

@protocol AdTimingMediatedRewardedVideoDelegate <NSObject>
@protocol AdTimingRewardedVideoDelegate <NSObject>

@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<AdTimingMediatedRewardedVideoDelegate>)delegate;
/// Add delegate
- (void)addDelegate:(id<AdTimingRewardedVideoDelegate>)delegate;

- (void)removeMediationDelegate:(id<AdTimingMediatedRewardedVideoDelegate>)delegate;
/// Remove delegate
- (void)removeDelegate:(id<AdTimingRewardedVideoDelegate>)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 */
2 changes: 1 addition & 1 deletion OpenMediation.podspec
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion OpenMediation/OpenMediationNetwork/OMInitRequest.m
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion OpenMediationDemo/AppDelegate.m
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
2 changes: 1 addition & 1 deletion Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)**
Expand Down

0 comments on commit 7a63d10

Please sign in to comment.