forked from fyber-engineering/mopub-ios-mediation
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathOguryRewardedVideoCustomEvent.m
159 lines (112 loc) · 5.54 KB
/
OguryRewardedVideoCustomEvent.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#import "OguryRewardedVideoCustomEvent.h"
#import <OguryAds/OguryAds.h>
#import "OguryAdapterConfiguration.h"
#if __has_include("MoPub.h")
#import "MPError.h"
#import "MPLogging.h"
#endif
@interface OguryRewardedVideoCustomEvent () <OguryAdsOptinVideoDelegate>
#pragma mark - Properties
@property (nonatomic, copy) NSString *adUnitId;
@property (nonatomic, strong) OguryAdsOptinVideo *optInVideo;
@end
@implementation OguryRewardedVideoCustomEvent
@dynamic adUnitId;
#pragma mark - Methods
- (void)dealloc {
self.optInVideo = nil;
self.optInVideo.optInVideoDelegate = nil;
}
- (void)requestAdWithAdapterInfo:(NSDictionary *)info adMarkup:(NSString *)adMarkup {
self.adUnitId = info[kOguryConfigurationAdUnitId];
if (!self.adUnitId || [self.adUnitId isEqualToString:@""]) {
NSError *error = [NSError errorWithCode:MOPUBErrorAdapterInvalid localizedDescription:@"An error occurred while loading the ad. Invalid ad unit identifier."];
MPLogAdEvent([MPLogEvent adLoadFailedForAdapter:NSStringFromClass(self.class) error:error], @"");
[self.delegate fullscreenAdAdapter:self didFailToLoadAdWithError:error];
return;
}
[OguryAdapterConfiguration applyTransparencyAndConsentStatusWithParameters:info];
[OguryAdapterConfiguration updateInitializationParameters:info];
self.optInVideo = [[OguryAdsOptinVideo alloc] initWithAdUnitID:self.adUnitId];
self.optInVideo.optInVideoDelegate = self;
[self.optInVideo load];
MPLogAdEvent([MPLogEvent adLoadAttemptForAdapter:NSStringFromClass([self class]) dspCreativeId:nil dspName:nil], self.adUnitId);
}
- (BOOL)isRewardExpected {
return YES;
}
- (BOOL)hasAdAvailable {
return self.optInVideo && self.optInVideo.isLoaded;
}
- (void)presentAdFromViewController:(UIViewController *)viewController {
MPLogAdEvent([MPLogEvent adShowAttemptForAdapter:NSStringFromClass([self class])], self.adUnitId);
if (!self.optInVideo || ![self hasAdAvailable]) {
NSError *error = [NSError errorWithCode:MOPUBErrorAdapterInvalid localizedDescription:@"An error occurred while showing the ad. Ad was not ready."];
MPLogAdEvent([MPLogEvent adShowFailedForAdapter:NSStringFromClass(self.class) error:error], self.adUnitId);
[self.delegate fullscreenAdAdapter:self didFailToShowAdWithError:error];
return;
}
[self.optInVideo showAdInViewController:viewController];
}
- (BOOL)enableAutomaticImpressionAndClickTracking {
return NO;
}
#pragma mark - OguryAdsOptinVideoDelegate
- (void)oguryAdsOptinVideoAdAvailable {
}
- (void)oguryAdsOptinVideoAdClosed {
MPLogAdEvent([MPLogEvent adWillDisappearForAdapter:NSStringFromClass([self class])], self.adUnitId);
MPLogAdEvent([MPLogEvent adDidDisappearForAdapter:NSStringFromClass([self class])], self.adUnitId);
[self.delegate fullscreenAdAdapterAdWillDisappear:self];
[self.delegate fullscreenAdAdapterAdDidDisappear:self];
[self.delegate fullscreenAdAdapterAdWillDismiss:self];
[self.delegate fullscreenAdAdapterAdDidDismiss:self];
}
- (void)oguryAdsOptinVideoAdDisplayed {
MPLogAdEvent([MPLogEvent adShowSuccessForAdapter:NSStringFromClass([self class])], self.adUnitId);
[self.delegate fullscreenAdAdapterAdWillPresent:self];
[self.delegate fullscreenAdAdapterAdDidPresent:self];
}
- (void)oguryAdsOptinVideoAdError:(OguryAdsErrorType)errorType {
NSError *error = [OguryAdapterConfiguration MoPubErrorFromOguryError:errorType];
MPLogAdEvent([MPLogEvent adLoadFailedForAdapter:NSStringFromClass(self.class) error:error], self.adUnitId);
[self.delegate fullscreenAdAdapter:self didFailToLoadAdWithError:error];
}
- (void)oguryAdsOptinVideoAdLoaded {
MPLogAdEvent([MPLogEvent adLoadSuccessForAdapter:NSStringFromClass([self class])], self.adUnitId);
[self.delegate fullscreenAdAdapterDidLoadAd:self];
}
- (void)oguryAdsOptinVideoAdNotAvailable {
NSError *error = [NSError errorWithCode:MOPUBErrorNoInventory];
MPLogAdEvent([MPLogEvent adLoadFailedForAdapter:NSStringFromClass(self.class) error:error], self.adUnitId);
[self.delegate fullscreenAdAdapter:self didFailToLoadAdWithError:error];
}
- (void)oguryAdsOptinVideoAdNotLoaded {
NSError *error = [NSError errorWithCode:MOPUBErrorAdapterFailedToLoadAd];
MPLogAdEvent([MPLogEvent adLoadFailedForAdapter:NSStringFromClass(self.class) error:error], self.adUnitId);
[self.delegate fullscreenAdAdapter:self didFailToLoadAdWithError:error];
}
- (void)oguryAdsOptinVideoAdRewarded:(OGARewardItem *)item {
NSString *currencyType = kMPRewardCurrencyTypeUnspecified;
NSInteger amount = kMPRewardCurrencyAmountUnspecified;
if (item) {
if (item.rewardName && ![item.rewardName isEqualToString:@""]) {
currencyType = item.rewardName;
}
if (item.rewardValue && ![item.rewardValue isEqualToString:@""]) {
amount = item.rewardValue.integerValue;
}
}
MPReward *reward = [[MPReward alloc] initWithCurrencyType:currencyType amount:@(amount)];
[self.delegate fullscreenAdAdapter:self willRewardUser:reward];
}
- (void)oguryAdsOptinVideoAdClicked {
MPLogAdEvent([MPLogEvent adTappedForAdapter:NSStringFromClass(self.class)], self.adUnitId);
[self.delegate fullscreenAdAdapterDidTrackClick:self];
[self.delegate fullscreenAdAdapterDidReceiveTap:self];
[self.delegate fullscreenAdAdapterWillLeaveApplication:self];
}
- (void)oguryAdsOptinVideoAdOnAdImpression {
[self.delegate fullscreenAdAdapterDidTrackImpression:self];
}
@end