react-native-applovin-max 4.1.7 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +3 -13
- package/android/gradle.properties +0 -1
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXAdView.java +85 -23
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXAdViewManager.java +39 -11
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXModule.java +712 -209
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXNativeAdView.java +107 -39
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXNativeAdViewManager.java +17 -7
- package/ios/AppLovinMAX.h +22 -2
- package/ios/AppLovinMAX.m +586 -144
- package/ios/AppLovinMAXAdView.m +43 -12
- package/ios/AppLovinMAXAdViewManager.m +10 -0
- package/ios/AppLovinMAXNativeAdView.m +86 -41
- package/ios/AppLovinMAXNativeAdViewManager.m +7 -3
- package/ios/Podfile +1 -1
- package/ios/Podfile.lock +4 -4
- package/package.json +1 -1
- package/react-native-applovin-max.podspec +2 -2
- package/src/AppLovinMAXAdView.js +163 -62
- package/src/AppLovinMAXEventListeners.js +419 -0
- package/src/NativeAdComponents.js +39 -46
- package/src/NativeAdView.js +79 -34
- package/src/TargetingData.js +35 -3
- package/src/index.js +116 -328
package/ios/AppLovinMAX.m
CHANGED
|
@@ -78,6 +78,55 @@
|
|
|
78
78
|
static NSString *const SDK_TAG = @"AppLovinSdk";
|
|
79
79
|
static NSString *const TAG = @"AppLovinMAX";
|
|
80
80
|
|
|
81
|
+
static NSString *const ON_BANNER_AD_LOADED_EVENT = @"OnBannerAdLoadedEvent";
|
|
82
|
+
static NSString *const ON_BANNER_AD_LOAD_FAILED_EVENT = @"OnBannerAdLoadFailedEvent";
|
|
83
|
+
static NSString *const ON_BANNER_AD_CLICKED_EVENT = @"OnBannerAdClickedEvent";
|
|
84
|
+
static NSString *const ON_BANNER_AD_COLLAPSED_EVENT = @"OnBannerAdCollapsedEvent";
|
|
85
|
+
static NSString *const ON_BANNER_AD_EXPANDED_EVENT = @"OnBannerAdExpandedEvent";
|
|
86
|
+
static NSString *const ON_BANNER_AD_REVENUE_PAID = @"OnBannerAdRevenuePaid";
|
|
87
|
+
|
|
88
|
+
static NSString *const ON_MREC_AD_LOADED_EVENT = @"OnMRecAdLoadedEvent";
|
|
89
|
+
static NSString *const ON_MREC_AD_LOAD_FAILED_EVENT = @"OnMRecAdLoadFailedEvent";
|
|
90
|
+
static NSString *const ON_MREC_AD_CLICKED_EVENT= @"OnMRecAdClickedEvent";
|
|
91
|
+
static NSString *const ON_MREC_AD_COLLAPSED_EVENT = @"OnMRecAdCollapsedEvent";
|
|
92
|
+
static NSString *const ON_MREC_AD_EXPANDED_EVENT = @"OnMRecAdExpandedEvent";
|
|
93
|
+
static NSString *const ON_MREC_AD_REVENUE_PAID = @"OnMRecAdRevenuePaid";
|
|
94
|
+
|
|
95
|
+
static NSString *const ON_INTERSTITIAL_LOADED_EVENT = @"OnInterstitialLoadedEvent";
|
|
96
|
+
static NSString *const ON_INTERSTITIAL_LOAD_FAILED_EVENT = @"OnInterstitialLoadFailedEvent";
|
|
97
|
+
static NSString *const ON_INTERSTITIAL_CLICKED_EVENT = @"OnInterstitialClickedEvent";
|
|
98
|
+
static NSString *const ON_INTERSTITIAL_DISPLAYED_EVENT = @"OnInterstitialDisplayedEvent";
|
|
99
|
+
static NSString *const ON_INTERSTITIAL_AD_FAILED_TO_DISPLAY_EVENT = @"OnInterstitialAdFailedToDisplayEvent";
|
|
100
|
+
static NSString *const ON_INTERSTITIAL_HIDDEN_EVENT = @"OnInterstitialHiddenEvent";
|
|
101
|
+
static NSString *const ON_INTERSTITIAL_AD_REVENUE_PAID = @"OnInterstitialAdRevenuePaid";
|
|
102
|
+
|
|
103
|
+
static NSString *const ON_REWARDED_AD_LOADED_EVENT = @"OnRewardedAdLoadedEvent";
|
|
104
|
+
static NSString *const ON_REWARDED_AD_LOAD_FAILED_EVENT = @"OnRewardedAdLoadFailedEvent";
|
|
105
|
+
static NSString *const ON_REWARDED_AD_CLICKED_EVENT = @"OnRewardedAdClickedEvent";
|
|
106
|
+
static NSString *const ON_REWARDED_AD_DISPLAYED_EVENT = @"OnRewardedAdDisplayedEvent";
|
|
107
|
+
static NSString *const ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT = @"OnRewardedAdFailedToDisplayEvent";
|
|
108
|
+
static NSString *const ON_REWARDED_AD_HIDDEN_EVENT = @"OnRewardedAdHiddenEvent";
|
|
109
|
+
static NSString *const ON_REWARDED_AD_RECEIVED_REWARD_EVENT = @"OnRewardedAdReceivedRewardEvent";
|
|
110
|
+
static NSString *const ON_REWARDED_AD_REVENUE_PAID = @"OnRewardedAdRevenuePaid";
|
|
111
|
+
|
|
112
|
+
static NSString *const ON_APPOPEN_AD_LOADED_EVENT = @"OnAppOpenAdLoadedEvent";
|
|
113
|
+
static NSString *const ON_APPOPEN_AD_LOAD_FAILED_EVENT = @"OnAppOpenAdLoadFailedEvent";
|
|
114
|
+
static NSString *const ON_APPOPEN_AD_CLICKED_EVENT = @"OnAppOpenAdClickedEvent";
|
|
115
|
+
static NSString *const ON_APPOPEN_AD_DISPLAYED_EVENT = @"OnAppOpenAdDisplayedEvent";
|
|
116
|
+
static NSString *const ON_APPOPEN_AD_FAILED_TO_DISPLAY_EVENT = @"OnAppOpenAdFailedToDisplayEvent";
|
|
117
|
+
static NSString *const ON_APPOPEN_AD_HIDDEN_EVENT = @"OnAppOpenAdHiddenEvent";
|
|
118
|
+
static NSString *const ON_APPOPEN_AD_REVENUE_PAID = @"OnAppOpenAdRevenuePaid";
|
|
119
|
+
|
|
120
|
+
static NSString *const TOP_CENTER = @"top_center";
|
|
121
|
+
static NSString *const TOP_LEFT = @"top_left";
|
|
122
|
+
static NSString *const TOP_RIGHT = @"top_right";
|
|
123
|
+
static NSString *const CENTERED = @"centered";
|
|
124
|
+
static NSString *const CENTER_LEFT = @"center_left";
|
|
125
|
+
static NSString *const CENTER_RIGHT = @"center_right";
|
|
126
|
+
static NSString *const BOTTOM_LEFT = @"bottom_left";
|
|
127
|
+
static NSString *const BOTTOM_CENTER = @"bottom_center";
|
|
128
|
+
static NSString *const BOTTOM_RIGHT = @"bottom_right";
|
|
129
|
+
|
|
81
130
|
static AppLovinMAX *AppLovinMAXShared; // Shared instance of this bridge module.
|
|
82
131
|
|
|
83
132
|
// To export a module named AppLovinMAX ("RCT" automatically removed)
|
|
@@ -130,12 +179,12 @@ RCT_EXPORT_MODULE()
|
|
|
130
179
|
return self;
|
|
131
180
|
}
|
|
132
181
|
|
|
133
|
-
|
|
182
|
+
RCT_EXPORT_METHOD(isInitialized:(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject)
|
|
134
183
|
{
|
|
135
|
-
|
|
184
|
+
resolve(@([self isPluginInitialized] && [self isSDKInitialized]));
|
|
136
185
|
}
|
|
137
186
|
|
|
138
|
-
RCT_EXPORT_METHOD(initialize:(NSString *)pluginVersion :(NSString *)sdkKey :(
|
|
187
|
+
RCT_EXPORT_METHOD(initialize:(NSString *)pluginVersion :(NSString *)sdkKey :(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject)
|
|
139
188
|
{
|
|
140
189
|
// Guard against running init logic multiple times
|
|
141
190
|
if ( [self isPluginInitialized] ) return;
|
|
@@ -153,8 +202,8 @@ RCT_EXPORT_METHOD(initialize:(NSString *)pluginVersion :(NSString *)sdkKey :(RCT
|
|
|
153
202
|
}
|
|
154
203
|
else
|
|
155
204
|
{
|
|
156
|
-
|
|
157
|
-
|
|
205
|
+
reject(RCTErrorUnspecified, @"Unable to initialize AppLovin SDK - no SDK key provided and not found in Info.plist!", nil);
|
|
206
|
+
return;
|
|
158
207
|
}
|
|
159
208
|
}
|
|
160
209
|
|
|
@@ -249,16 +298,15 @@ RCT_EXPORT_METHOD(initialize:(NSString *)pluginVersion :(NSString *)sdkKey :(RCT
|
|
|
249
298
|
self.sdkConfiguration = configuration;
|
|
250
299
|
self.sdkInitialized = YES;
|
|
251
300
|
|
|
252
|
-
|
|
253
|
-
@"countryCode" : self.sdk.configuration.countryCode}]);
|
|
301
|
+
resolve(@{@"countryCode" : self.sdk.configuration.countryCode});
|
|
254
302
|
}];
|
|
255
303
|
}
|
|
256
304
|
|
|
257
305
|
#pragma mark - General Public API
|
|
258
306
|
|
|
259
|
-
|
|
307
|
+
RCT_EXPORT_METHOD(isTablet:(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject)
|
|
260
308
|
{
|
|
261
|
-
|
|
309
|
+
resolve(@([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad));
|
|
262
310
|
}
|
|
263
311
|
|
|
264
312
|
RCT_EXPORT_METHOD(showMediationDebugger)
|
|
@@ -277,9 +325,9 @@ RCT_EXPORT_METHOD(setHasUserConsent:(BOOL)hasUserConsent)
|
|
|
277
325
|
[ALPrivacySettings setHasUserConsent: hasUserConsent];
|
|
278
326
|
}
|
|
279
327
|
|
|
280
|
-
|
|
328
|
+
RCT_EXPORT_METHOD(hasUserConsent:(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject)
|
|
281
329
|
{
|
|
282
|
-
|
|
330
|
+
resolve(@([ALPrivacySettings hasUserConsent]));
|
|
283
331
|
}
|
|
284
332
|
|
|
285
333
|
RCT_EXPORT_METHOD(setIsAgeRestrictedUser:(BOOL)isAgeRestrictedUser)
|
|
@@ -287,9 +335,9 @@ RCT_EXPORT_METHOD(setIsAgeRestrictedUser:(BOOL)isAgeRestrictedUser)
|
|
|
287
335
|
[ALPrivacySettings setIsAgeRestrictedUser: isAgeRestrictedUser];
|
|
288
336
|
}
|
|
289
337
|
|
|
290
|
-
|
|
338
|
+
RCT_EXPORT_METHOD(isAgeRestrictedUser:(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject)
|
|
291
339
|
{
|
|
292
|
-
|
|
340
|
+
resolve(@([ALPrivacySettings isAgeRestrictedUser]));
|
|
293
341
|
}
|
|
294
342
|
|
|
295
343
|
RCT_EXPORT_METHOD(setDoNotSell:(BOOL)doNotSell)
|
|
@@ -297,9 +345,9 @@ RCT_EXPORT_METHOD(setDoNotSell:(BOOL)doNotSell)
|
|
|
297
345
|
[ALPrivacySettings setDoNotSell: doNotSell];
|
|
298
346
|
}
|
|
299
347
|
|
|
300
|
-
|
|
348
|
+
RCT_EXPORT_METHOD(isDoNotSell:(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject)
|
|
301
349
|
{
|
|
302
|
-
|
|
350
|
+
resolve(@([ALPrivacySettings isDoNotSell]));
|
|
303
351
|
}
|
|
304
352
|
|
|
305
353
|
RCT_EXPORT_METHOD(setUserId:(NSString *)userId)
|
|
@@ -322,11 +370,9 @@ RCT_EXPORT_METHOD(setMuted:(BOOL)muted)
|
|
|
322
370
|
self.sdk.settings.muted = muted;
|
|
323
371
|
}
|
|
324
372
|
|
|
325
|
-
|
|
373
|
+
RCT_EXPORT_METHOD(isMuted:(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject)
|
|
326
374
|
{
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
return @(self.sdk.settings.muted);
|
|
375
|
+
resolve([self isPluginInitialized] ? @(self.sdk.settings.muted) : @(NO) );
|
|
330
376
|
}
|
|
331
377
|
|
|
332
378
|
RCT_EXPORT_METHOD(setVerboseLogging:(BOOL)enabled)
|
|
@@ -401,6 +447,17 @@ RCT_EXPORT_METHOD(setTargetingDataYearOfBirth:(nonnull NSNumber *)yearOfBirth)
|
|
|
401
447
|
self.sdk.targetingData.yearOfBirth = yearOfBirth.intValue <= 0 ? nil : yearOfBirth;
|
|
402
448
|
}
|
|
403
449
|
|
|
450
|
+
RCT_EXPORT_METHOD(getTargetingDataYearOfBirth:(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject)
|
|
451
|
+
{
|
|
452
|
+
if ( !self.sdk )
|
|
453
|
+
{
|
|
454
|
+
resolve(self.targetingYearOfBirthToSet ? self.targetingYearOfBirthToSet : @0);
|
|
455
|
+
return;
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
resolve(self.sdk.targetingData.yearOfBirth ? self.sdk.targetingData.yearOfBirth : @0);
|
|
459
|
+
}
|
|
460
|
+
|
|
404
461
|
RCT_EXPORT_METHOD(setTargetingDataGender:(nullable NSString *)gender)
|
|
405
462
|
{
|
|
406
463
|
if ( !self.sdk )
|
|
@@ -412,6 +469,17 @@ RCT_EXPORT_METHOD(setTargetingDataGender:(nullable NSString *)gender)
|
|
|
412
469
|
self.sdk.targetingData.gender = [self toAppLovinGender: gender];
|
|
413
470
|
}
|
|
414
471
|
|
|
472
|
+
RCT_EXPORT_METHOD(getTargetingDataGender:(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject)
|
|
473
|
+
{
|
|
474
|
+
if ( !self.sdk )
|
|
475
|
+
{
|
|
476
|
+
resolve(self.targetingGenderToSet ? self.targetingGenderToSet : @"U");
|
|
477
|
+
return;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
resolve([self fromAppLovinGender: self.sdk.targetingData.gender]);
|
|
481
|
+
}
|
|
482
|
+
|
|
415
483
|
RCT_EXPORT_METHOD(setTargetingDataMaximumAdContentRating:(nonnull NSNumber *)maximumAdContentRating)
|
|
416
484
|
{
|
|
417
485
|
if ( !self.sdk )
|
|
@@ -423,6 +491,17 @@ RCT_EXPORT_METHOD(setTargetingDataMaximumAdContentRating:(nonnull NSNumber *)max
|
|
|
423
491
|
self.sdk.targetingData.maximumAdContentRating = [self toAppLovinAdContentRating: maximumAdContentRating];
|
|
424
492
|
}
|
|
425
493
|
|
|
494
|
+
RCT_EXPORT_METHOD(getTargetingDataMaximumAdContentRating:(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject)
|
|
495
|
+
{
|
|
496
|
+
if ( !self.sdk )
|
|
497
|
+
{
|
|
498
|
+
resolve(self.targetingMaximumAdContentRatingToSet ? self.targetingMaximumAdContentRatingToSet : @0);
|
|
499
|
+
return;
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
resolve(@(self.sdk.targetingData.maximumAdContentRating));
|
|
503
|
+
}
|
|
504
|
+
|
|
426
505
|
RCT_EXPORT_METHOD(setTargetingDataEmail:(nullable NSString *)email)
|
|
427
506
|
{
|
|
428
507
|
if ( !self.sdk )
|
|
@@ -434,6 +513,17 @@ RCT_EXPORT_METHOD(setTargetingDataEmail:(nullable NSString *)email)
|
|
|
434
513
|
self.sdk.targetingData.email = email;
|
|
435
514
|
}
|
|
436
515
|
|
|
516
|
+
RCT_EXPORT_METHOD(getTargetingDataEmail:(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject)
|
|
517
|
+
{
|
|
518
|
+
if ( !self.sdk )
|
|
519
|
+
{
|
|
520
|
+
resolve(self.targetingEmailToSet);
|
|
521
|
+
return;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
resolve(self.sdk.targetingData.email);
|
|
525
|
+
}
|
|
526
|
+
|
|
437
527
|
RCT_EXPORT_METHOD(setTargetingDataPhoneNumber:(nullable NSString *)phoneNumber)
|
|
438
528
|
{
|
|
439
529
|
if ( !self.sdk )
|
|
@@ -445,6 +535,17 @@ RCT_EXPORT_METHOD(setTargetingDataPhoneNumber:(nullable NSString *)phoneNumber)
|
|
|
445
535
|
self.sdk.targetingData.phoneNumber = phoneNumber;
|
|
446
536
|
}
|
|
447
537
|
|
|
538
|
+
RCT_EXPORT_METHOD(getTargetingDataPhoneNumber:(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject)
|
|
539
|
+
{
|
|
540
|
+
if ( !self.sdk )
|
|
541
|
+
{
|
|
542
|
+
resolve(self.targetingPhoneNumberToSet);
|
|
543
|
+
return;
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
resolve(self.sdk.targetingData.phoneNumber);
|
|
547
|
+
}
|
|
548
|
+
|
|
448
549
|
RCT_EXPORT_METHOD(setTargetingDataKeywords:(nullable NSArray<NSString *> *)keywords)
|
|
449
550
|
{
|
|
450
551
|
if ( !self.sdk )
|
|
@@ -456,6 +557,17 @@ RCT_EXPORT_METHOD(setTargetingDataKeywords:(nullable NSArray<NSString *> *)keywo
|
|
|
456
557
|
self.sdk.targetingData.keywords = keywords;
|
|
457
558
|
}
|
|
458
559
|
|
|
560
|
+
RCT_EXPORT_METHOD(getTargetingDataKeywords:(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject)
|
|
561
|
+
{
|
|
562
|
+
if ( !self.sdk )
|
|
563
|
+
{
|
|
564
|
+
resolve(self.targetingKeywordsToSet);
|
|
565
|
+
return;
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
resolve(self.sdk.targetingData.keywords);
|
|
569
|
+
}
|
|
570
|
+
|
|
459
571
|
RCT_EXPORT_METHOD(setTargetingDataInterests:(nullable NSArray<NSString *> *)interests)
|
|
460
572
|
{
|
|
461
573
|
if ( !self.sdk )
|
|
@@ -467,6 +579,17 @@ RCT_EXPORT_METHOD(setTargetingDataInterests:(nullable NSArray<NSString *> *)inte
|
|
|
467
579
|
self.sdk.targetingData.interests = interests;
|
|
468
580
|
}
|
|
469
581
|
|
|
582
|
+
RCT_EXPORT_METHOD(getTargetingDataInterests:(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject)
|
|
583
|
+
{
|
|
584
|
+
if ( !self.sdk )
|
|
585
|
+
{
|
|
586
|
+
resolve(self.targetingInterestsToSet);
|
|
587
|
+
return;
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
resolve(self.sdk.targetingData.interests);
|
|
591
|
+
}
|
|
592
|
+
|
|
470
593
|
RCT_EXPORT_METHOD(clearAllTargetingData)
|
|
471
594
|
{
|
|
472
595
|
if ( !self.sdk )
|
|
@@ -508,124 +631,277 @@ RCT_EXPORT_METHOD(trackEvent:(NSString *)event :(NSDictionary<NSString *, id> *)
|
|
|
508
631
|
|
|
509
632
|
RCT_EXPORT_METHOD(createBanner:(NSString *)adUnitIdentifier :(NSString *)bannerPosition)
|
|
510
633
|
{
|
|
634
|
+
if ( !self.sdk )
|
|
635
|
+
{
|
|
636
|
+
[self logUninitializedAccessError: @"createBanner"];
|
|
637
|
+
return;
|
|
638
|
+
}
|
|
639
|
+
|
|
511
640
|
[self createAdViewWithAdUnitIdentifier: adUnitIdentifier adFormat: DEVICE_SPECIFIC_ADVIEW_AD_FORMAT atPosition: bannerPosition withOffset: CGPointZero];
|
|
512
641
|
}
|
|
513
642
|
|
|
514
643
|
// NOTE: No function overloading in JS so we need new method signature
|
|
515
644
|
RCT_EXPORT_METHOD(createBannerWithOffsets:(NSString *)adUnitIdentifier :(NSString *)bannerPosition :(CGFloat)xOffset :(CGFloat)yOffset)
|
|
516
645
|
{
|
|
646
|
+
if ( !self.sdk )
|
|
647
|
+
{
|
|
648
|
+
[self logUninitializedAccessError: @"createBannerWithOffsets"];
|
|
649
|
+
return;
|
|
650
|
+
}
|
|
651
|
+
|
|
517
652
|
[self createAdViewWithAdUnitIdentifier: adUnitIdentifier adFormat: DEVICE_SPECIFIC_ADVIEW_AD_FORMAT atPosition: bannerPosition withOffset: CGPointMake(xOffset, yOffset)];
|
|
518
653
|
}
|
|
519
654
|
|
|
520
655
|
RCT_EXPORT_METHOD(setBannerBackgroundColor:(NSString *)adUnitIdentifier :(NSString *)hexColorCode)
|
|
521
656
|
{
|
|
657
|
+
if ( !self.sdk )
|
|
658
|
+
{
|
|
659
|
+
[self logUninitializedAccessError: @"setBannerBackgroundColor"];
|
|
660
|
+
return;
|
|
661
|
+
}
|
|
662
|
+
|
|
522
663
|
[self setAdViewBackgroundColorForAdUnitIdentifier: adUnitIdentifier adFormat: DEVICE_SPECIFIC_ADVIEW_AD_FORMAT hexColorCode: hexColorCode];
|
|
523
664
|
}
|
|
524
665
|
|
|
525
666
|
RCT_EXPORT_METHOD(setBannerPlacement:(NSString *)adUnitIdentifier :(nullable NSString *)placement)
|
|
526
667
|
{
|
|
668
|
+
if ( !self.sdk )
|
|
669
|
+
{
|
|
670
|
+
[self logUninitializedAccessError: @"setBannerPlacement"];
|
|
671
|
+
return;
|
|
672
|
+
}
|
|
673
|
+
|
|
527
674
|
[self setAdViewPlacement: placement forAdUnitIdentifier: adUnitIdentifier adFormat: DEVICE_SPECIFIC_ADVIEW_AD_FORMAT];
|
|
528
675
|
}
|
|
529
676
|
|
|
530
677
|
RCT_EXPORT_METHOD(setBannerCustomData:(NSString *)adUnitIdentifier :(nullable NSString *)customData)
|
|
531
678
|
{
|
|
679
|
+
if ( !self.sdk )
|
|
680
|
+
{
|
|
681
|
+
[self logUninitializedAccessError: @"setBannerCustomData"];
|
|
682
|
+
return;
|
|
683
|
+
}
|
|
684
|
+
|
|
532
685
|
[self setAdViewCustomData: customData forAdUnitIdentifier: adUnitIdentifier adFormat: DEVICE_SPECIFIC_ADVIEW_AD_FORMAT];
|
|
533
686
|
}
|
|
534
687
|
|
|
535
688
|
RCT_EXPORT_METHOD(updateBannerPosition:(NSString *)adUnitIdentifier :(NSString *)bannerPosition)
|
|
536
689
|
{
|
|
690
|
+
if ( !self.sdk )
|
|
691
|
+
{
|
|
692
|
+
[self logUninitializedAccessError: @"updateBannerPosition"];
|
|
693
|
+
return;
|
|
694
|
+
}
|
|
695
|
+
|
|
537
696
|
[self updateAdViewPosition: bannerPosition withOffset: CGPointZero forAdUnitIdentifier: adUnitIdentifier adFormat: DEVICE_SPECIFIC_ADVIEW_AD_FORMAT];
|
|
538
697
|
}
|
|
539
698
|
|
|
540
699
|
RCT_EXPORT_METHOD(updateBannerOffsets:(NSString *)adUnitIdentifier :(CGFloat)xOffset :(CGFloat)yOffset)
|
|
541
700
|
{
|
|
701
|
+
if ( !self.sdk )
|
|
702
|
+
{
|
|
703
|
+
[self logUninitializedAccessError: @"updateBannerOffsets"];
|
|
704
|
+
return;
|
|
705
|
+
}
|
|
706
|
+
|
|
542
707
|
[self updateAdViewPosition: self.adViewPositions[adUnitIdentifier] withOffset: CGPointMake(xOffset, yOffset) forAdUnitIdentifier: adUnitIdentifier adFormat: DEVICE_SPECIFIC_ADVIEW_AD_FORMAT];
|
|
543
708
|
}
|
|
544
709
|
|
|
545
710
|
RCT_EXPORT_METHOD(setBannerWidth:(NSString *)adUnitIdentifier :(CGFloat)width)
|
|
546
711
|
{
|
|
712
|
+
if ( !self.sdk )
|
|
713
|
+
{
|
|
714
|
+
[self logUninitializedAccessError: @"setBannerWidth"];
|
|
715
|
+
return;
|
|
716
|
+
}
|
|
717
|
+
|
|
547
718
|
[self setAdViewWidth: width forAdUnitIdentifier: adUnitIdentifier adFormat: DEVICE_SPECIFIC_ADVIEW_AD_FORMAT];
|
|
548
719
|
}
|
|
549
720
|
|
|
550
721
|
RCT_EXPORT_METHOD(setBannerExtraParameter:(NSString *)adUnitIdentifier :(NSString *)key :(nullable NSString *)value)
|
|
551
722
|
{
|
|
723
|
+
if ( !self.sdk )
|
|
724
|
+
{
|
|
725
|
+
[self logUninitializedAccessError: @"setBannerExtraParameter"];
|
|
726
|
+
return;
|
|
727
|
+
}
|
|
728
|
+
|
|
552
729
|
[self setAdViewExtraParameterForAdUnitIdentifier: adUnitIdentifier adFormat: DEVICE_SPECIFIC_ADVIEW_AD_FORMAT key: key value: value];
|
|
553
730
|
}
|
|
554
731
|
|
|
732
|
+
RCT_EXPORT_METHOD(setBannerLocalExtraParameter:(NSString *)adUnitIdentifier :(NSString *)key :(nullable NSString *)value)
|
|
733
|
+
{
|
|
734
|
+
[self setAdViewLocalExtraParameterForAdUnitIdentifier: adUnitIdentifier adFormat: DEVICE_SPECIFIC_ADVIEW_AD_FORMAT key: key value: value];
|
|
735
|
+
}
|
|
736
|
+
|
|
555
737
|
RCT_EXPORT_METHOD(startBannerAutoRefresh:(NSString *)adUnitIdentifier)
|
|
556
738
|
{
|
|
739
|
+
if ( !self.sdk )
|
|
740
|
+
{
|
|
741
|
+
[self logUninitializedAccessError: @"startBannerAutoRefresh"];
|
|
742
|
+
return;
|
|
743
|
+
}
|
|
744
|
+
|
|
557
745
|
[self startAutoRefresh: adUnitIdentifier adFormat: DEVICE_SPECIFIC_ADVIEW_AD_FORMAT];
|
|
558
746
|
}
|
|
559
747
|
|
|
560
748
|
RCT_EXPORT_METHOD(stopBannerAutoRefresh:(NSString *)adUnitIdentifier)
|
|
561
749
|
{
|
|
750
|
+
if ( !self.sdk )
|
|
751
|
+
{
|
|
752
|
+
[self logUninitializedAccessError: @"stopBannerAutoRefresh"];
|
|
753
|
+
return;
|
|
754
|
+
}
|
|
755
|
+
|
|
562
756
|
[self stopAutoRefresh: adUnitIdentifier adFormat: DEVICE_SPECIFIC_ADVIEW_AD_FORMAT];
|
|
563
757
|
}
|
|
564
758
|
|
|
565
759
|
RCT_EXPORT_METHOD(showBanner:(NSString *)adUnitIdentifier)
|
|
566
760
|
{
|
|
761
|
+
if ( !self.sdk )
|
|
762
|
+
{
|
|
763
|
+
[self logUninitializedAccessError: @"showBanner"];
|
|
764
|
+
return;
|
|
765
|
+
}
|
|
766
|
+
|
|
567
767
|
[self showAdViewWithAdUnitIdentifier: adUnitIdentifier adFormat: DEVICE_SPECIFIC_ADVIEW_AD_FORMAT];
|
|
568
768
|
}
|
|
569
769
|
|
|
570
770
|
RCT_EXPORT_METHOD(hideBanner:(NSString *)adUnitIdentifier)
|
|
571
771
|
{
|
|
772
|
+
if ( !self.sdk )
|
|
773
|
+
{
|
|
774
|
+
[self logUninitializedAccessError: @"hideBanner"];
|
|
775
|
+
return;
|
|
776
|
+
}
|
|
777
|
+
|
|
572
778
|
[self hideAdViewWithAdUnitIdentifier: adUnitIdentifier adFormat: DEVICE_SPECIFIC_ADVIEW_AD_FORMAT];
|
|
573
779
|
}
|
|
574
780
|
|
|
575
781
|
RCT_EXPORT_METHOD(destroyBanner:(NSString *)adUnitIdentifier)
|
|
576
782
|
{
|
|
783
|
+
if ( !self.sdk )
|
|
784
|
+
{
|
|
785
|
+
[self logUninitializedAccessError: @"destroyBanner"];
|
|
786
|
+
return;
|
|
787
|
+
}
|
|
788
|
+
|
|
577
789
|
[self destroyAdViewWithAdUnitIdentifier: adUnitIdentifier adFormat: DEVICE_SPECIFIC_ADVIEW_AD_FORMAT];
|
|
578
790
|
}
|
|
579
791
|
|
|
580
|
-
|
|
792
|
+
RCT_EXPORT_METHOD(getAdaptiveBannerHeightForWidth:(CGFloat)width :(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject)
|
|
581
793
|
{
|
|
582
|
-
|
|
794
|
+
resolve(@([DEVICE_SPECIFIC_ADVIEW_AD_FORMAT adaptiveSizeForWidth: width].height));
|
|
583
795
|
}
|
|
584
796
|
|
|
585
797
|
#pragma mark - MRECs
|
|
586
798
|
|
|
587
799
|
RCT_EXPORT_METHOD(createMRec:(NSString *)adUnitIdentifier :(NSString *)mrecPosition)
|
|
588
800
|
{
|
|
801
|
+
if ( !self.sdk )
|
|
802
|
+
{
|
|
803
|
+
[self logUninitializedAccessError: @"createMRec"];
|
|
804
|
+
return;
|
|
805
|
+
}
|
|
806
|
+
|
|
589
807
|
[self createAdViewWithAdUnitIdentifier: adUnitIdentifier adFormat: MAAdFormat.mrec atPosition: mrecPosition withOffset: CGPointZero];
|
|
590
808
|
}
|
|
591
809
|
|
|
592
810
|
RCT_EXPORT_METHOD(setMRecPlacement:(NSString *)adUnitIdentifier :(nullable NSString *)placement)
|
|
593
811
|
{
|
|
812
|
+
if ( !self.sdk )
|
|
813
|
+
{
|
|
814
|
+
[self logUninitializedAccessError: @"setMRecPlacement"];
|
|
815
|
+
return;
|
|
816
|
+
}
|
|
817
|
+
|
|
594
818
|
[self setAdViewPlacement: placement forAdUnitIdentifier: adUnitIdentifier adFormat: MAAdFormat.mrec];
|
|
595
819
|
}
|
|
596
820
|
|
|
597
821
|
RCT_EXPORT_METHOD(setMRecCustomData:(NSString *)adUnitIdentifier :(nullable NSString *)customData)
|
|
598
822
|
{
|
|
823
|
+
if ( !self.sdk )
|
|
824
|
+
{
|
|
825
|
+
[self logUninitializedAccessError: @"setMRecCustomData"];
|
|
826
|
+
return;
|
|
827
|
+
}
|
|
828
|
+
|
|
599
829
|
[self setAdViewCustomData: customData forAdUnitIdentifier: adUnitIdentifier adFormat: MAAdFormat.mrec];
|
|
600
830
|
}
|
|
601
831
|
|
|
602
832
|
RCT_EXPORT_METHOD(updateMRecPosition:(NSString *)mrecPosition :(NSString *)adUnitIdentifier)
|
|
603
833
|
{
|
|
834
|
+
if ( !self.sdk )
|
|
835
|
+
{
|
|
836
|
+
[self logUninitializedAccessError: @"updateMRecPosition"];
|
|
837
|
+
return;
|
|
838
|
+
}
|
|
839
|
+
|
|
604
840
|
[self updateAdViewPosition: mrecPosition withOffset: CGPointZero forAdUnitIdentifier: adUnitIdentifier adFormat: MAAdFormat.mrec];
|
|
605
841
|
}
|
|
606
842
|
|
|
843
|
+
RCT_EXPORT_METHOD(setMRecExtraParameter:(NSString *)adUnitIdentifier :(NSString *)key :(nullable NSString *)value)
|
|
844
|
+
{
|
|
845
|
+
[self setAdViewExtraParameterForAdUnitIdentifier: adUnitIdentifier adFormat: MAAdFormat.mrec key: key value: value];
|
|
846
|
+
}
|
|
847
|
+
|
|
848
|
+
RCT_EXPORT_METHOD(setMRecLocalExtraParameter:(NSString *)adUnitIdentifier :(NSString *)key :(nullable NSString *)value)
|
|
849
|
+
{
|
|
850
|
+
[self setAdViewLocalExtraParameterForAdUnitIdentifier: adUnitIdentifier adFormat: MAAdFormat.mrec key: key value: value];
|
|
851
|
+
}
|
|
852
|
+
|
|
607
853
|
RCT_EXPORT_METHOD(startMRecAutoRefresh:(NSString *)adUnitIdentifier)
|
|
608
854
|
{
|
|
855
|
+
if ( !self.sdk )
|
|
856
|
+
{
|
|
857
|
+
[self logUninitializedAccessError: @"startMRecAutoRefresh"];
|
|
858
|
+
return;
|
|
859
|
+
}
|
|
860
|
+
|
|
609
861
|
[self startAutoRefresh: adUnitIdentifier adFormat: MAAdFormat.mrec];
|
|
610
862
|
}
|
|
611
863
|
|
|
612
864
|
RCT_EXPORT_METHOD(stopMRecAutoRefresh:(NSString *)adUnitIdentifier)
|
|
613
865
|
{
|
|
866
|
+
if ( !self.sdk )
|
|
867
|
+
{
|
|
868
|
+
[self logUninitializedAccessError: @"stopMRecAutoRefresh"];
|
|
869
|
+
return;
|
|
870
|
+
}
|
|
871
|
+
|
|
614
872
|
[self stopAutoRefresh: adUnitIdentifier adFormat: MAAdFormat.mrec];
|
|
615
873
|
}
|
|
616
874
|
|
|
617
875
|
RCT_EXPORT_METHOD(showMRec:(NSString *)adUnitIdentifier)
|
|
618
876
|
{
|
|
877
|
+
if ( !self.sdk )
|
|
878
|
+
{
|
|
879
|
+
[self logUninitializedAccessError: @"showMRec"];
|
|
880
|
+
return;
|
|
881
|
+
}
|
|
882
|
+
|
|
619
883
|
[self showAdViewWithAdUnitIdentifier: adUnitIdentifier adFormat: MAAdFormat.mrec];
|
|
620
884
|
}
|
|
621
885
|
|
|
622
886
|
RCT_EXPORT_METHOD(hideMRec:(NSString *)adUnitIdentifier)
|
|
623
887
|
{
|
|
888
|
+
if ( !self.sdk )
|
|
889
|
+
{
|
|
890
|
+
[self logUninitializedAccessError: @"hideMRec"];
|
|
891
|
+
return;
|
|
892
|
+
}
|
|
893
|
+
|
|
624
894
|
[self hideAdViewWithAdUnitIdentifier: adUnitIdentifier adFormat: MAAdFormat.mrec];
|
|
625
895
|
}
|
|
626
896
|
|
|
627
897
|
RCT_EXPORT_METHOD(destroyMRec:(NSString *)adUnitIdentifier)
|
|
628
898
|
{
|
|
899
|
+
if ( !self.sdk )
|
|
900
|
+
{
|
|
901
|
+
[self logUninitializedAccessError: @"destroyMRec"];
|
|
902
|
+
return;
|
|
903
|
+
}
|
|
904
|
+
|
|
629
905
|
[self destroyAdViewWithAdUnitIdentifier: adUnitIdentifier adFormat: MAAdFormat.mrec];
|
|
630
906
|
}
|
|
631
907
|
|
|
@@ -633,80 +909,173 @@ RCT_EXPORT_METHOD(destroyMRec:(NSString *)adUnitIdentifier)
|
|
|
633
909
|
|
|
634
910
|
RCT_EXPORT_METHOD(loadInterstitial:(NSString *)adUnitIdentifier)
|
|
635
911
|
{
|
|
912
|
+
if ( !self.sdk )
|
|
913
|
+
{
|
|
914
|
+
[self logUninitializedAccessError: @"loadInterstitial"];
|
|
915
|
+
return;
|
|
916
|
+
}
|
|
917
|
+
|
|
636
918
|
MAInterstitialAd *interstitial = [self retrieveInterstitialForAdUnitIdentifier: adUnitIdentifier];
|
|
637
919
|
[interstitial loadAd];
|
|
638
920
|
}
|
|
639
921
|
|
|
640
|
-
|
|
922
|
+
RCT_EXPORT_METHOD(isInterstitialReady:(NSString *)adUnitIdentifier :(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject)
|
|
641
923
|
{
|
|
924
|
+
if ( !self.sdk )
|
|
925
|
+
{
|
|
926
|
+
[self logUninitializedAccessError: @"isInterstitialReady"];
|
|
927
|
+
resolve(@(NO));
|
|
928
|
+
return;
|
|
929
|
+
}
|
|
930
|
+
|
|
642
931
|
MAInterstitialAd *interstitial = [self retrieveInterstitialForAdUnitIdentifier: adUnitIdentifier];
|
|
643
|
-
|
|
932
|
+
resolve(@([interstitial isReady]));
|
|
644
933
|
}
|
|
645
934
|
|
|
646
935
|
RCT_EXPORT_METHOD(showInterstitial:(NSString *)adUnitIdentifier :(nullable NSString *)placement :(nullable NSString *)customData)
|
|
647
936
|
{
|
|
937
|
+
if ( !self.sdk )
|
|
938
|
+
{
|
|
939
|
+
[self logUninitializedAccessError: @"showInterstitial"];
|
|
940
|
+
return;
|
|
941
|
+
}
|
|
942
|
+
|
|
648
943
|
MAInterstitialAd *interstitial = [self retrieveInterstitialForAdUnitIdentifier: adUnitIdentifier];
|
|
649
944
|
[interstitial showAdForPlacement: placement customData: customData];
|
|
650
945
|
}
|
|
651
946
|
|
|
652
947
|
RCT_EXPORT_METHOD(setInterstitialExtraParameter:(NSString *)adUnitIdentifier :(NSString *)key :(nullable NSString *)value)
|
|
653
948
|
{
|
|
949
|
+
if ( !self.sdk )
|
|
950
|
+
{
|
|
951
|
+
[self logUninitializedAccessError: @"setInterstitialExtraParameter"];
|
|
952
|
+
return;
|
|
953
|
+
}
|
|
954
|
+
|
|
654
955
|
MAInterstitialAd *interstitial = [self retrieveInterstitialForAdUnitIdentifier: adUnitIdentifier];
|
|
655
956
|
[interstitial setExtraParameterForKey: key value: value];
|
|
656
957
|
}
|
|
657
958
|
|
|
959
|
+
RCT_EXPORT_METHOD(setInterstitialLocalExtraParameter:(NSString *)adUnitIdentifier :(NSString *)key :(nullable NSString *)value)
|
|
960
|
+
{
|
|
961
|
+
MAInterstitialAd *interstitial = [self retrieveInterstitialForAdUnitIdentifier: adUnitIdentifier];
|
|
962
|
+
[interstitial setLocalExtraParameterForKey: key value: value];
|
|
963
|
+
}
|
|
964
|
+
|
|
658
965
|
#pragma mark - Rewarded
|
|
659
966
|
|
|
660
967
|
RCT_EXPORT_METHOD(loadRewardedAd:(NSString *)adUnitIdentifier)
|
|
661
968
|
{
|
|
969
|
+
if ( !self.sdk )
|
|
970
|
+
{
|
|
971
|
+
[self logUninitializedAccessError: @"loadRewardedAd"];
|
|
972
|
+
return;
|
|
973
|
+
}
|
|
974
|
+
|
|
662
975
|
MARewardedAd *rewardedAd = [self retrieveRewardedAdForAdUnitIdentifier: adUnitIdentifier];
|
|
663
976
|
[rewardedAd loadAd];
|
|
664
977
|
}
|
|
665
978
|
|
|
666
|
-
|
|
979
|
+
RCT_EXPORT_METHOD(isRewardedAdReady:(NSString *)adUnitIdentifier :(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject)
|
|
667
980
|
{
|
|
981
|
+
if ( !self.sdk )
|
|
982
|
+
{
|
|
983
|
+
[self logUninitializedAccessError: @"isRewardedAdReady"];
|
|
984
|
+
resolve(@(NO));
|
|
985
|
+
return;
|
|
986
|
+
}
|
|
987
|
+
|
|
668
988
|
MARewardedAd *rewardedAd = [self retrieveRewardedAdForAdUnitIdentifier: adUnitIdentifier];
|
|
669
|
-
|
|
989
|
+
resolve(@([rewardedAd isReady]));
|
|
670
990
|
}
|
|
671
991
|
|
|
672
992
|
RCT_EXPORT_METHOD(showRewardedAd:(NSString *)adUnitIdentifier :(nullable NSString *)placement :(nullable NSString *)customData)
|
|
673
993
|
{
|
|
994
|
+
if ( !self.sdk )
|
|
995
|
+
{
|
|
996
|
+
[self logUninitializedAccessError: @"showRewardedAd"];
|
|
997
|
+
return;
|
|
998
|
+
}
|
|
999
|
+
|
|
674
1000
|
MARewardedAd *rewardedAd = [self retrieveRewardedAdForAdUnitIdentifier: adUnitIdentifier];
|
|
675
1001
|
[rewardedAd showAdForPlacement: placement customData: customData];
|
|
676
1002
|
}
|
|
677
1003
|
|
|
678
1004
|
RCT_EXPORT_METHOD(setRewardedAdExtraParameter:(NSString *)adUnitIdentifier :(NSString *)key :(nullable NSString *)value)
|
|
679
1005
|
{
|
|
1006
|
+
if ( !self.sdk )
|
|
1007
|
+
{
|
|
1008
|
+
[self logUninitializedAccessError: @"setRewardedAdExtraParameter"];
|
|
1009
|
+
return;
|
|
1010
|
+
}
|
|
1011
|
+
|
|
680
1012
|
MARewardedAd *rewardedAd = [self retrieveRewardedAdForAdUnitIdentifier: adUnitIdentifier];
|
|
681
1013
|
[rewardedAd setExtraParameterForKey: key value: value];
|
|
682
1014
|
}
|
|
683
1015
|
|
|
1016
|
+
RCT_EXPORT_METHOD(setRewardedAdLocalExtraParameter:(NSString *)adUnitIdentifier :(NSString *)key :(nullable NSString *)value)
|
|
1017
|
+
{
|
|
1018
|
+
MARewardedAd *rewardedAd = [self retrieveRewardedAdForAdUnitIdentifier: adUnitIdentifier];
|
|
1019
|
+
[rewardedAd setLocalExtraParameterForKey: key value: value];
|
|
1020
|
+
}
|
|
1021
|
+
|
|
684
1022
|
#pragma mark - App Open Ad
|
|
685
1023
|
|
|
686
1024
|
RCT_EXPORT_METHOD(loadAppOpenAd:(NSString *)adUnitIdentifier)
|
|
687
1025
|
{
|
|
1026
|
+
if ( !self.sdk )
|
|
1027
|
+
{
|
|
1028
|
+
[self logUninitializedAccessError: @"loadAppOpenAd"];
|
|
1029
|
+
return;
|
|
1030
|
+
}
|
|
1031
|
+
|
|
688
1032
|
MAAppOpenAd *appOpenAd = [self retrieveAppOpenAdForAdUnitIdentifier: adUnitIdentifier];
|
|
689
1033
|
[appOpenAd loadAd];
|
|
690
1034
|
}
|
|
691
1035
|
|
|
692
|
-
|
|
1036
|
+
RCT_EXPORT_METHOD(isAppOpenAdReady:(NSString *)adUnitIdentifier :(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject)
|
|
693
1037
|
{
|
|
1038
|
+
if ( !self.sdk )
|
|
1039
|
+
{
|
|
1040
|
+
[self logUninitializedAccessError: @"isAppOpenAdReady"];
|
|
1041
|
+
resolve(@(NO));
|
|
1042
|
+
return;
|
|
1043
|
+
}
|
|
1044
|
+
|
|
694
1045
|
MAAppOpenAd *appOpenAd = [self retrieveAppOpenAdForAdUnitIdentifier: adUnitIdentifier];
|
|
695
|
-
|
|
1046
|
+
resolve(@([appOpenAd isReady]));
|
|
696
1047
|
}
|
|
697
1048
|
|
|
698
1049
|
RCT_EXPORT_METHOD(showAppOpenAd:(NSString *)adUnitIdentifier placement:(nullable NSString *)placement customData:(nullable NSString *)customData)
|
|
699
1050
|
{
|
|
1051
|
+
if ( !self.sdk )
|
|
1052
|
+
{
|
|
1053
|
+
[self logUninitializedAccessError: @"showAppOpenAd"];
|
|
1054
|
+
return;
|
|
1055
|
+
}
|
|
1056
|
+
|
|
700
1057
|
MAAppOpenAd *appOpenAd = [self retrieveAppOpenAdForAdUnitIdentifier: adUnitIdentifier];
|
|
701
1058
|
[appOpenAd showAdForPlacement: placement customData: customData];
|
|
702
1059
|
}
|
|
703
1060
|
|
|
704
1061
|
RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(NSString *)key value:(nullable NSString *)value)
|
|
705
1062
|
{
|
|
1063
|
+
if ( !self.sdk )
|
|
1064
|
+
{
|
|
1065
|
+
[self logUninitializedAccessError: @"setAppOpenAdExtraParameter"];
|
|
1066
|
+
return;
|
|
1067
|
+
}
|
|
1068
|
+
|
|
706
1069
|
MAAppOpenAd *appOpenAd = [self retrieveAppOpenAdForAdUnitIdentifier: adUnitIdentifier];
|
|
707
1070
|
[appOpenAd setExtraParameterForKey: key value: value];
|
|
708
1071
|
}
|
|
709
1072
|
|
|
1073
|
+
RCT_EXPORT_METHOD(setAppOpenAdLocalExtraParameter:(NSString *)adUnitIdentifier key:(NSString *)key value:(nullable NSString *)value)
|
|
1074
|
+
{
|
|
1075
|
+
MAAppOpenAd *appOpenAd = [self retrieveAppOpenAdForAdUnitIdentifier: adUnitIdentifier];
|
|
1076
|
+
[appOpenAd setLocalExtraParameterForKey: key value: value];
|
|
1077
|
+
}
|
|
1078
|
+
|
|
710
1079
|
#pragma mark - Ad Callbacks
|
|
711
1080
|
|
|
712
1081
|
- (void)didLoadAd:(MAAd *)ad
|
|
@@ -719,7 +1088,7 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
719
1088
|
// An ad is now being shown, enable user interaction.
|
|
720
1089
|
adView.userInteractionEnabled = YES;
|
|
721
1090
|
|
|
722
|
-
name = ( MAAdFormat.mrec == adFormat ) ?
|
|
1091
|
+
name = ( MAAdFormat.mrec == adFormat ) ? ON_MREC_AD_LOADED_EVENT : ON_BANNER_AD_LOADED_EVENT;
|
|
723
1092
|
[self positionAdViewForAd: ad];
|
|
724
1093
|
|
|
725
1094
|
// Do not auto-refresh by default if the ad view is not showing yet (e.g. first load during app launch and publisher does not automatically show banner upon load success)
|
|
@@ -731,19 +1100,15 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
731
1100
|
}
|
|
732
1101
|
else if ( MAAdFormat.interstitial == adFormat )
|
|
733
1102
|
{
|
|
734
|
-
name =
|
|
1103
|
+
name = ON_INTERSTITIAL_LOADED_EVENT;
|
|
735
1104
|
}
|
|
736
1105
|
else if ( MAAdFormat.rewarded == adFormat )
|
|
737
1106
|
{
|
|
738
|
-
name =
|
|
739
|
-
}
|
|
740
|
-
else if ( MAAdFormat.native == adFormat )
|
|
741
|
-
{
|
|
742
|
-
name = @"OnNativeAdLoadedEvent";
|
|
1107
|
+
name = ON_REWARDED_AD_LOADED_EVENT;
|
|
743
1108
|
}
|
|
744
1109
|
else if ( MAAdFormat.appOpen == adFormat )
|
|
745
1110
|
{
|
|
746
|
-
name =
|
|
1111
|
+
name = ON_APPOPEN_AD_LOADED_EVENT;
|
|
747
1112
|
}
|
|
748
1113
|
else
|
|
749
1114
|
{
|
|
@@ -754,21 +1119,6 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
754
1119
|
[self sendReactNativeEventWithName: name body: [self adInfoForAd: ad]];
|
|
755
1120
|
}
|
|
756
1121
|
|
|
757
|
-
- (void)sendReactNativeEventForAdLoadFailed:(NSString *)name forAdUnitIdentifier:(NSString *)adUnitIdentifier withError:(nullable MAError *)error
|
|
758
|
-
{
|
|
759
|
-
NSDictionary *body = ( error ) ?
|
|
760
|
-
@{@"adUnitId": adUnitIdentifier,
|
|
761
|
-
@"code" : @(error.code),
|
|
762
|
-
@"message" : error.message,
|
|
763
|
-
@"adLoadFailureInfo" : error.adLoadFailureInfo ?: @"",
|
|
764
|
-
@"waterfall": [self createAdWaterfallInfo: error.waterfall]}
|
|
765
|
-
:
|
|
766
|
-
@{@"adUnitId": adUnitIdentifier,
|
|
767
|
-
@"code" : @(MAErrorCodeUnspecified)};
|
|
768
|
-
|
|
769
|
-
[self sendReactNativeEventWithName: name body: body];
|
|
770
|
-
}
|
|
771
|
-
|
|
772
1122
|
- (void)didFailToLoadAdForAdUnitIdentifier:(NSString *)adUnitIdentifier withError:(MAError *)error
|
|
773
1123
|
{
|
|
774
1124
|
if ( !adUnitIdentifier )
|
|
@@ -784,15 +1134,15 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
784
1134
|
}
|
|
785
1135
|
else if ( self.interstitials[adUnitIdentifier] )
|
|
786
1136
|
{
|
|
787
|
-
name =
|
|
1137
|
+
name = ON_INTERSTITIAL_LOAD_FAILED_EVENT;
|
|
788
1138
|
}
|
|
789
1139
|
else if ( self.rewardedAds[adUnitIdentifier] )
|
|
790
1140
|
{
|
|
791
|
-
name =
|
|
1141
|
+
name = ON_REWARDED_AD_LOAD_FAILED_EVENT;
|
|
792
1142
|
}
|
|
793
1143
|
else if ( self.appOpenAds[adUnitIdentifier] )
|
|
794
1144
|
{
|
|
795
|
-
name =
|
|
1145
|
+
name = ON_APPOPEN_AD_LOAD_FAILED_EVENT;
|
|
796
1146
|
}
|
|
797
1147
|
else
|
|
798
1148
|
{
|
|
@@ -800,7 +1150,7 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
800
1150
|
return;
|
|
801
1151
|
}
|
|
802
1152
|
|
|
803
|
-
[self
|
|
1153
|
+
[self sendReactNativeEventWithName: name body: [self adLoadFailedInfoForAd: adUnitIdentifier withError: error]];
|
|
804
1154
|
}
|
|
805
1155
|
|
|
806
1156
|
- (void)didClickAd:(MAAd *)ad
|
|
@@ -809,27 +1159,23 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
809
1159
|
MAAdFormat *adFormat = ad.format;
|
|
810
1160
|
if ( MAAdFormat.banner == adFormat || MAAdFormat.leader == adFormat )
|
|
811
1161
|
{
|
|
812
|
-
name =
|
|
1162
|
+
name = ON_BANNER_AD_CLICKED_EVENT;
|
|
813
1163
|
}
|
|
814
1164
|
else if ( MAAdFormat.mrec == adFormat )
|
|
815
1165
|
{
|
|
816
|
-
name =
|
|
1166
|
+
name = ON_MREC_AD_CLICKED_EVENT;
|
|
817
1167
|
}
|
|
818
1168
|
else if ( MAAdFormat.interstitial == adFormat )
|
|
819
1169
|
{
|
|
820
|
-
name =
|
|
1170
|
+
name = ON_INTERSTITIAL_CLICKED_EVENT;
|
|
821
1171
|
}
|
|
822
1172
|
else if ( MAAdFormat.rewarded == adFormat )
|
|
823
1173
|
{
|
|
824
|
-
name =
|
|
825
|
-
}
|
|
826
|
-
else if ( MAAdFormat.native == adFormat )
|
|
827
|
-
{
|
|
828
|
-
name = @"OnNativeAdClickedEvent";
|
|
1174
|
+
name = ON_REWARDED_AD_CLICKED_EVENT;
|
|
829
1175
|
}
|
|
830
1176
|
else if ( MAAdFormat.appOpen == adFormat )
|
|
831
1177
|
{
|
|
832
|
-
name =
|
|
1178
|
+
name = ON_APPOPEN_AD_CLICKED_EVENT;
|
|
833
1179
|
}
|
|
834
1180
|
else
|
|
835
1181
|
{
|
|
@@ -849,15 +1195,15 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
849
1195
|
NSString *name;
|
|
850
1196
|
if ( MAAdFormat.interstitial == adFormat )
|
|
851
1197
|
{
|
|
852
|
-
name =
|
|
1198
|
+
name = ON_INTERSTITIAL_DISPLAYED_EVENT;
|
|
853
1199
|
}
|
|
854
1200
|
else if ( MAAdFormat.rewarded == adFormat )
|
|
855
1201
|
{
|
|
856
|
-
name =
|
|
1202
|
+
name = ON_REWARDED_AD_DISPLAYED_EVENT;
|
|
857
1203
|
}
|
|
858
1204
|
else // APP OPEN
|
|
859
1205
|
{
|
|
860
|
-
name =
|
|
1206
|
+
name = ON_APPOPEN_AD_DISPLAYED_EVENT;
|
|
861
1207
|
}
|
|
862
1208
|
|
|
863
1209
|
[self sendReactNativeEventWithName: name body: [self adInfoForAd: ad]];
|
|
@@ -872,22 +1218,18 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
872
1218
|
NSString *name;
|
|
873
1219
|
if ( MAAdFormat.interstitial == adFormat )
|
|
874
1220
|
{
|
|
875
|
-
name =
|
|
1221
|
+
name = ON_INTERSTITIAL_AD_FAILED_TO_DISPLAY_EVENT;
|
|
876
1222
|
}
|
|
877
1223
|
else if ( MAAdFormat.rewarded == adFormat )
|
|
878
1224
|
{
|
|
879
|
-
name =
|
|
1225
|
+
name = ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT;
|
|
880
1226
|
}
|
|
881
1227
|
else // APP OPEN
|
|
882
1228
|
{
|
|
883
|
-
name =
|
|
1229
|
+
name = ON_APPOPEN_AD_FAILED_TO_DISPLAY_EVENT;
|
|
884
1230
|
}
|
|
885
1231
|
|
|
886
|
-
|
|
887
|
-
@"message" : error.message} mutableCopy];
|
|
888
|
-
[body addEntriesFromDictionary: [self adInfoForAd: ad]];
|
|
889
|
-
|
|
890
|
-
[self sendReactNativeEventWithName: name body: body];
|
|
1232
|
+
[self sendReactNativeEventWithName: name body: [self adDisplayFailedInfoForAd: ad withError: error]];
|
|
891
1233
|
}
|
|
892
1234
|
|
|
893
1235
|
- (void)didHideAd:(MAAd *)ad
|
|
@@ -899,15 +1241,15 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
899
1241
|
NSString *name;
|
|
900
1242
|
if ( MAAdFormat.interstitial == adFormat )
|
|
901
1243
|
{
|
|
902
|
-
name =
|
|
1244
|
+
name = ON_INTERSTITIAL_HIDDEN_EVENT;
|
|
903
1245
|
}
|
|
904
1246
|
else if ( MAAdFormat.rewarded == adFormat )
|
|
905
1247
|
{
|
|
906
|
-
name =
|
|
1248
|
+
name = ON_REWARDED_AD_HIDDEN_EVENT;
|
|
907
1249
|
}
|
|
908
1250
|
else // APP OPEN
|
|
909
1251
|
{
|
|
910
|
-
name =
|
|
1252
|
+
name = ON_APPOPEN_AD_HIDDEN_EVENT;
|
|
911
1253
|
}
|
|
912
1254
|
|
|
913
1255
|
[self sendReactNativeEventWithName: name body: [self adInfoForAd: ad]];
|
|
@@ -922,7 +1264,7 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
922
1264
|
return;
|
|
923
1265
|
}
|
|
924
1266
|
|
|
925
|
-
[self sendReactNativeEventWithName: ( MAAdFormat.mrec == adFormat ) ?
|
|
1267
|
+
[self sendReactNativeEventWithName: ( MAAdFormat.mrec == adFormat ) ? ON_MREC_AD_EXPANDED_EVENT : ON_BANNER_AD_EXPANDED_EVENT
|
|
926
1268
|
body: [self adInfoForAd: ad]];
|
|
927
1269
|
}
|
|
928
1270
|
|
|
@@ -935,7 +1277,7 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
935
1277
|
return;
|
|
936
1278
|
}
|
|
937
1279
|
|
|
938
|
-
[self sendReactNativeEventWithName: ( MAAdFormat.mrec == adFormat ) ?
|
|
1280
|
+
[self sendReactNativeEventWithName: ( MAAdFormat.mrec == adFormat ) ? ON_MREC_AD_COLLAPSED_EVENT : ON_BANNER_AD_COLLAPSED_EVENT
|
|
939
1281
|
body: [self adInfoForAd: ad]];
|
|
940
1282
|
}
|
|
941
1283
|
|
|
@@ -945,40 +1287,31 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
945
1287
|
MAAdFormat *adFormat = ad.format;
|
|
946
1288
|
if ( MAAdFormat.banner == adFormat || MAAdFormat.leader == adFormat )
|
|
947
1289
|
{
|
|
948
|
-
name =
|
|
1290
|
+
name = ON_BANNER_AD_REVENUE_PAID;
|
|
949
1291
|
}
|
|
950
1292
|
else if ( MAAdFormat.mrec == adFormat )
|
|
951
1293
|
{
|
|
952
|
-
name =
|
|
1294
|
+
name = ON_MREC_AD_REVENUE_PAID;
|
|
953
1295
|
}
|
|
954
1296
|
else if ( MAAdFormat.interstitial == adFormat )
|
|
955
1297
|
{
|
|
956
|
-
name =
|
|
1298
|
+
name = ON_INTERSTITIAL_AD_REVENUE_PAID;
|
|
957
1299
|
}
|
|
958
1300
|
else if ( MAAdFormat.rewarded == adFormat )
|
|
959
1301
|
{
|
|
960
|
-
name =
|
|
961
|
-
}
|
|
962
|
-
else if ( MAAdFormat.native == adFormat )
|
|
963
|
-
{
|
|
964
|
-
name = @"OnNativeAdRevenuePaid";
|
|
1302
|
+
name = ON_REWARDED_AD_REVENUE_PAID;
|
|
965
1303
|
}
|
|
966
1304
|
else if ( MAAdFormat.appOpen == adFormat )
|
|
967
1305
|
{
|
|
968
|
-
name =
|
|
1306
|
+
name = ON_APPOPEN_AD_REVENUE_PAID;
|
|
969
1307
|
}
|
|
970
1308
|
else
|
|
971
1309
|
{
|
|
972
1310
|
[self logInvalidAdFormat: adFormat];
|
|
973
1311
|
return;
|
|
974
1312
|
}
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
body[@"networkPlacement"] = ad.networkPlacement;
|
|
978
|
-
body[@"revenuePrecision"] = ad.revenuePrecision;
|
|
979
|
-
body[@"countryCode"] = self.sdk.configuration.countryCode;
|
|
980
|
-
|
|
981
|
-
[self sendReactNativeEventWithName: name body: body];
|
|
1313
|
+
|
|
1314
|
+
[self sendReactNativeEventWithName: name body: [self adRevenueInfoForAd: ad]];
|
|
982
1315
|
}
|
|
983
1316
|
|
|
984
1317
|
- (void)didCompleteRewardedVideoForAd:(MAAd *)ad
|
|
@@ -1008,7 +1341,7 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
1008
1341
|
@"rewardAmount": rewardAmount} mutableCopy];
|
|
1009
1342
|
[body addEntriesFromDictionary: [self adInfoForAd: ad]];
|
|
1010
1343
|
|
|
1011
|
-
[self sendReactNativeEventWithName:
|
|
1344
|
+
[self sendReactNativeEventWithName: ON_REWARDED_AD_RECEIVED_REWARD_EVENT body: body];
|
|
1012
1345
|
}
|
|
1013
1346
|
|
|
1014
1347
|
#pragma mark - Internal Methods
|
|
@@ -1153,6 +1486,17 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
1153
1486
|
});
|
|
1154
1487
|
}
|
|
1155
1488
|
|
|
1489
|
+
- (void)setAdViewLocalExtraParameterForAdUnitIdentifier:(NSString *)adUnitIdentifier adFormat:(MAAdFormat *)adFormat key:(NSString *)key value:(nullable NSString *)value
|
|
1490
|
+
{
|
|
1491
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1492
|
+
|
|
1493
|
+
[self log: @"Setting %@ local extra with key: \"%@\" value: \"%@\"", adFormat, key, value];
|
|
1494
|
+
|
|
1495
|
+
MAAdView *adView = [self retrieveAdViewForAdUnitIdentifier: adUnitIdentifier adFormat: adFormat];
|
|
1496
|
+
[adView setLocalExtraParameterForKey: key value: value];
|
|
1497
|
+
});
|
|
1498
|
+
}
|
|
1499
|
+
|
|
1156
1500
|
- (void)startAutoRefresh:(NSString *)adUnitIdentifier adFormat:(MAAdFormat *)adFormat
|
|
1157
1501
|
{
|
|
1158
1502
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
@@ -1363,7 +1707,7 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
1363
1707
|
adViewWidth = self.adViewWidths[adUnitIdentifier].floatValue;
|
|
1364
1708
|
}
|
|
1365
1709
|
// Top center / bottom center stretches full screen
|
|
1366
|
-
else if ( [adViewPosition isEqual:
|
|
1710
|
+
else if ( [adViewPosition isEqual: TOP_CENTER] || [adViewPosition isEqual: BOTTOM_CENTER] )
|
|
1367
1711
|
{
|
|
1368
1712
|
adViewWidth = CGRectGetWidth(KEY_WINDOW.bounds);
|
|
1369
1713
|
}
|
|
@@ -1403,14 +1747,14 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
1403
1747
|
}
|
|
1404
1748
|
|
|
1405
1749
|
// If top of bottom center, stretch width of screen
|
|
1406
|
-
if ( [adViewPosition isEqual:
|
|
1750
|
+
if ( [adViewPosition isEqual: TOP_CENTER] || [adViewPosition isEqual: BOTTOM_CENTER] )
|
|
1407
1751
|
{
|
|
1408
1752
|
// Non AdMob banners will still be of 50/90 points tall. Set the auto sizing mask such that the inner ad view is pinned to the bottom or top according to the ad view position.
|
|
1409
1753
|
if ( !isAdaptiveBannerDisabled )
|
|
1410
1754
|
{
|
|
1411
1755
|
adView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
|
|
1412
1756
|
|
|
1413
|
-
if ( [
|
|
1757
|
+
if ( [TOP_CENTER isEqual: adViewPosition] )
|
|
1414
1758
|
{
|
|
1415
1759
|
adView.autoresizingMask |= UIViewAutoresizingFlexibleBottomMargin;
|
|
1416
1760
|
}
|
|
@@ -1428,7 +1772,7 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
1428
1772
|
[self.safeAreaBackground.widthAnchor constraintEqualToConstant: adViewWidth],
|
|
1429
1773
|
[self.safeAreaBackground.centerXAnchor constraintEqualToAnchor: layoutGuide.centerXAnchor]]];
|
|
1430
1774
|
|
|
1431
|
-
if ( [adViewPosition isEqual:
|
|
1775
|
+
if ( [adViewPosition isEqual: TOP_CENTER] )
|
|
1432
1776
|
{
|
|
1433
1777
|
[constraints addObjectsFromArray: @[[adView.topAnchor constraintEqualToAnchor: layoutGuide.topAnchor],
|
|
1434
1778
|
[self.safeAreaBackground.topAnchor constraintEqualToAnchor: superview.topAnchor],
|
|
@@ -1450,7 +1794,7 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
1450
1794
|
[constraints addObjectsFromArray: @[[adView.widthAnchor constraintEqualToConstant: adViewWidth],
|
|
1451
1795
|
[adView.centerXAnchor constraintEqualToAnchor: layoutGuide.centerXAnchor]]];
|
|
1452
1796
|
|
|
1453
|
-
if ( [adViewPosition isEqual:
|
|
1797
|
+
if ( [adViewPosition isEqual: TOP_CENTER] )
|
|
1454
1798
|
{
|
|
1455
1799
|
[constraints addObject: [adView.topAnchor constraintEqualToAnchor: layoutGuide.topAnchor constant: yOffset]];
|
|
1456
1800
|
}
|
|
@@ -1468,27 +1812,27 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
1468
1812
|
// Assign constant width of 320 or 728
|
|
1469
1813
|
[constraints addObject: [adView.widthAnchor constraintEqualToConstant: adViewWidth]];
|
|
1470
1814
|
|
|
1471
|
-
if ( [adViewPosition isEqual:
|
|
1815
|
+
if ( [adViewPosition isEqual: TOP_LEFT] )
|
|
1472
1816
|
{
|
|
1473
1817
|
[constraints addObjectsFromArray: @[[adView.topAnchor constraintEqualToAnchor: layoutGuide.topAnchor constant: yOffset],
|
|
1474
1818
|
[adView.leftAnchor constraintEqualToAnchor: superview.leftAnchor constant: xOffset]]];
|
|
1475
1819
|
}
|
|
1476
|
-
else if ( [adViewPosition isEqual:
|
|
1820
|
+
else if ( [adViewPosition isEqual: TOP_RIGHT] )
|
|
1477
1821
|
{
|
|
1478
1822
|
[constraints addObjectsFromArray: @[[adView.topAnchor constraintEqualToAnchor: layoutGuide.topAnchor constant: yOffset],
|
|
1479
1823
|
[adView.rightAnchor constraintEqualToAnchor: superview.rightAnchor constant: xOffset]]];
|
|
1480
1824
|
}
|
|
1481
|
-
else if ( [adViewPosition isEqual:
|
|
1825
|
+
else if ( [adViewPosition isEqual: CENTERED] )
|
|
1482
1826
|
{
|
|
1483
1827
|
[constraints addObjectsFromArray: @[[adView.centerXAnchor constraintEqualToAnchor: layoutGuide.centerXAnchor],
|
|
1484
1828
|
[adView.centerYAnchor constraintEqualToAnchor: layoutGuide.centerYAnchor]]];
|
|
1485
1829
|
}
|
|
1486
|
-
else if ( [adViewPosition isEqual:
|
|
1830
|
+
else if ( [adViewPosition isEqual: BOTTOM_LEFT] )
|
|
1487
1831
|
{
|
|
1488
1832
|
[constraints addObjectsFromArray: @[[adView.bottomAnchor constraintEqualToAnchor: layoutGuide.bottomAnchor constant: yOffset],
|
|
1489
1833
|
[adView.leftAnchor constraintEqualToAnchor: superview.leftAnchor constant: xOffset]]];
|
|
1490
1834
|
}
|
|
1491
|
-
else if ( [adViewPosition isEqual:
|
|
1835
|
+
else if ( [adViewPosition isEqual: BOTTOM_RIGHT] )
|
|
1492
1836
|
{
|
|
1493
1837
|
[constraints addObjectsFromArray: @[[adView.bottomAnchor constraintEqualToAnchor: layoutGuide.bottomAnchor constant: yOffset],
|
|
1494
1838
|
[adView.rightAnchor constraintEqualToAnchor: superview.rightAnchor constant: xOffset]]];
|
|
@@ -1553,6 +1897,24 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
1553
1897
|
return ALGenderUnknown;
|
|
1554
1898
|
}
|
|
1555
1899
|
|
|
1900
|
+
- (NSString *)fromAppLovinGender:(ALGender)gender
|
|
1901
|
+
{
|
|
1902
|
+
if ( gender == ALGenderFemale )
|
|
1903
|
+
{
|
|
1904
|
+
return @"F";
|
|
1905
|
+
}
|
|
1906
|
+
else if ( gender == ALGenderMale )
|
|
1907
|
+
{
|
|
1908
|
+
return @"M";
|
|
1909
|
+
}
|
|
1910
|
+
else if ( gender == ALGenderOther )
|
|
1911
|
+
{
|
|
1912
|
+
return @"O";
|
|
1913
|
+
}
|
|
1914
|
+
|
|
1915
|
+
return @"U";
|
|
1916
|
+
}
|
|
1917
|
+
|
|
1556
1918
|
- (ALAdContentRating)toAppLovinAdContentRating:(nullable NSNumber *)maximumAdContentRating
|
|
1557
1919
|
{
|
|
1558
1920
|
if ( maximumAdContentRating )
|
|
@@ -1589,6 +1951,36 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
1589
1951
|
@"dspName" : ad.DSPName ?: @""};
|
|
1590
1952
|
}
|
|
1591
1953
|
|
|
1954
|
+
- (NSDictionary<NSString *, id> *)adLoadFailedInfoForAd:(NSString *)adUnitIdentifier withError:(MAError *)error
|
|
1955
|
+
{
|
|
1956
|
+
return ( error ) ?
|
|
1957
|
+
@{@"adUnitId": adUnitIdentifier,
|
|
1958
|
+
@"code" : @(error.code),
|
|
1959
|
+
@"message" : error.message,
|
|
1960
|
+
@"adLoadFailureInfo" : error.adLoadFailureInfo ?: @"",
|
|
1961
|
+
@"waterfall": [self createAdWaterfallInfo: error.waterfall]}
|
|
1962
|
+
:
|
|
1963
|
+
@{@"adUnitId": adUnitIdentifier,
|
|
1964
|
+
@"code" : @(MAErrorCodeUnspecified)};
|
|
1965
|
+
}
|
|
1966
|
+
|
|
1967
|
+
- (NSDictionary<NSString *, id> *)adDisplayFailedInfoForAd:(MAAd *)ad withError:(MAError *)error
|
|
1968
|
+
{
|
|
1969
|
+
NSMutableDictionary *body = [@{@"code" : @(error.code),
|
|
1970
|
+
@"message" : error.message} mutableCopy];
|
|
1971
|
+
[body addEntriesFromDictionary: [self adInfoForAd: ad]];
|
|
1972
|
+
return body;
|
|
1973
|
+
}
|
|
1974
|
+
|
|
1975
|
+
- (NSDictionary<NSString *, id> *)adRevenueInfoForAd:(MAAd *)ad
|
|
1976
|
+
{
|
|
1977
|
+
NSMutableDictionary *body = [self adInfoForAd: ad].mutableCopy;
|
|
1978
|
+
body[@"networkPlacement"] = ad.networkPlacement;
|
|
1979
|
+
body[@"revenuePrecision"] = ad.revenuePrecision;
|
|
1980
|
+
body[@"countryCode"] = self.sdk.configuration.countryCode;
|
|
1981
|
+
return body;
|
|
1982
|
+
}
|
|
1983
|
+
|
|
1592
1984
|
#pragma mark - Waterfall Information
|
|
1593
1985
|
|
|
1594
1986
|
- (NSDictionary<NSString *, id> *)createAdWaterfallInfo:(MAAdWaterfallInfo *)waterfallInfo
|
|
@@ -1661,49 +2053,99 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
|
|
|
1661
2053
|
// From RCTBridgeModule protocol
|
|
1662
2054
|
- (NSArray<NSString *> *)supportedEvents
|
|
1663
2055
|
{
|
|
1664
|
-
return @[
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
2056
|
+
return @[ON_MREC_AD_LOADED_EVENT,
|
|
2057
|
+
ON_MREC_AD_LOAD_FAILED_EVENT,
|
|
2058
|
+
ON_MREC_AD_CLICKED_EVENT,
|
|
2059
|
+
ON_MREC_AD_COLLAPSED_EVENT,
|
|
2060
|
+
ON_MREC_AD_EXPANDED_EVENT,
|
|
2061
|
+
ON_MREC_AD_REVENUE_PAID,
|
|
2062
|
+
|
|
2063
|
+
ON_BANNER_AD_LOADED_EVENT,
|
|
2064
|
+
ON_BANNER_AD_LOAD_FAILED_EVENT,
|
|
2065
|
+
ON_BANNER_AD_CLICKED_EVENT,
|
|
2066
|
+
ON_BANNER_AD_COLLAPSED_EVENT,
|
|
2067
|
+
ON_BANNER_AD_EXPANDED_EVENT,
|
|
2068
|
+
ON_BANNER_AD_REVENUE_PAID,
|
|
2069
|
+
|
|
2070
|
+
ON_INTERSTITIAL_LOADED_EVENT,
|
|
2071
|
+
ON_INTERSTITIAL_LOAD_FAILED_EVENT,
|
|
2072
|
+
ON_INTERSTITIAL_CLICKED_EVENT,
|
|
2073
|
+
ON_INTERSTITIAL_DISPLAYED_EVENT,
|
|
2074
|
+
ON_INTERSTITIAL_AD_FAILED_TO_DISPLAY_EVENT,
|
|
2075
|
+
ON_INTERSTITIAL_HIDDEN_EVENT,
|
|
2076
|
+
ON_INTERSTITIAL_AD_REVENUE_PAID,
|
|
2077
|
+
|
|
2078
|
+
ON_REWARDED_AD_LOADED_EVENT,
|
|
2079
|
+
ON_REWARDED_AD_LOAD_FAILED_EVENT,
|
|
2080
|
+
ON_REWARDED_AD_CLICKED_EVENT,
|
|
2081
|
+
ON_REWARDED_AD_DISPLAYED_EVENT,
|
|
2082
|
+
ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT,
|
|
2083
|
+
ON_REWARDED_AD_HIDDEN_EVENT,
|
|
2084
|
+
ON_REWARDED_AD_RECEIVED_REWARD_EVENT,
|
|
2085
|
+
ON_REWARDED_AD_REVENUE_PAID,
|
|
2086
|
+
|
|
2087
|
+
ON_APPOPEN_AD_LOADED_EVENT,
|
|
2088
|
+
ON_APPOPEN_AD_LOAD_FAILED_EVENT,
|
|
2089
|
+
ON_APPOPEN_AD_CLICKED_EVENT,
|
|
2090
|
+
ON_APPOPEN_AD_DISPLAYED_EVENT,
|
|
2091
|
+
ON_APPOPEN_AD_FAILED_TO_DISPLAY_EVENT,
|
|
2092
|
+
ON_APPOPEN_AD_HIDDEN_EVENT,
|
|
2093
|
+
ON_APPOPEN_AD_REVENUE_PAID];
|
|
2094
|
+
}
|
|
2095
|
+
|
|
2096
|
+
- (NSDictionary *)constantsToExport
|
|
2097
|
+
{
|
|
2098
|
+
return @{@"ON_MREC_AD_LOADED_EVENT": ON_MREC_AD_LOADED_EVENT,
|
|
2099
|
+
@"ON_MREC_AD_LOAD_FAILED_EVENT" : ON_MREC_AD_LOAD_FAILED_EVENT,
|
|
2100
|
+
@"ON_MREC_AD_CLICKED_EVENT" : ON_MREC_AD_CLICKED_EVENT,
|
|
2101
|
+
@"ON_MREC_AD_COLLAPSED_EVENT" : ON_MREC_AD_COLLAPSED_EVENT,
|
|
2102
|
+
@"ON_MREC_AD_EXPANDED_EVENT" : ON_MREC_AD_EXPANDED_EVENT,
|
|
2103
|
+
@"ON_MREC_AD_REVENUE_PAID" : ON_MREC_AD_REVENUE_PAID,
|
|
2104
|
+
|
|
2105
|
+
@"ON_BANNER_AD_LOADED_EVENT" : ON_BANNER_AD_LOADED_EVENT,
|
|
2106
|
+
@"ON_BANNER_AD_LOAD_FAILED_EVENT" : ON_BANNER_AD_LOAD_FAILED_EVENT,
|
|
2107
|
+
@"ON_BANNER_AD_CLICKED_EVENT" : ON_BANNER_AD_CLICKED_EVENT,
|
|
2108
|
+
@"ON_BANNER_AD_COLLAPSED_EVENT" : ON_BANNER_AD_COLLAPSED_EVENT,
|
|
2109
|
+
@"ON_BANNER_AD_EXPANDED_EVENT" : ON_BANNER_AD_EXPANDED_EVENT,
|
|
2110
|
+
@"ON_BANNER_AD_REVENUE_PAID" : ON_BANNER_AD_REVENUE_PAID,
|
|
1670
2111
|
|
|
1671
|
-
@"
|
|
1672
|
-
@"
|
|
1673
|
-
@"
|
|
1674
|
-
@"
|
|
1675
|
-
@"
|
|
1676
|
-
@"
|
|
2112
|
+
@"ON_INTERSTITIAL_LOADED_EVENT" : ON_INTERSTITIAL_LOADED_EVENT,
|
|
2113
|
+
@"ON_INTERSTITIAL_LOAD_FAILED_EVENT" : ON_INTERSTITIAL_LOAD_FAILED_EVENT,
|
|
2114
|
+
@"ON_INTERSTITIAL_CLICKED_EVENT" : ON_INTERSTITIAL_CLICKED_EVENT,
|
|
2115
|
+
@"ON_INTERSTITIAL_DISPLAYED_EVENT" : ON_INTERSTITIAL_DISPLAYED_EVENT,
|
|
2116
|
+
@"ON_INTERSTITIAL_AD_FAILED_TO_DISPLAY_EVENT" : ON_INTERSTITIAL_AD_FAILED_TO_DISPLAY_EVENT,
|
|
2117
|
+
@"ON_INTERSTITIAL_HIDDEN_EVENT" : ON_INTERSTITIAL_HIDDEN_EVENT,
|
|
2118
|
+
@"ON_INTERSTITIAL_AD_REVENUE_PAID" : ON_INTERSTITIAL_AD_REVENUE_PAID,
|
|
1677
2119
|
|
|
1678
|
-
@"
|
|
1679
|
-
@"
|
|
1680
|
-
@"
|
|
1681
|
-
@"
|
|
1682
|
-
@"
|
|
1683
|
-
@"
|
|
1684
|
-
@"
|
|
2120
|
+
@"ON_REWARDED_AD_LOADED_EVENT" : ON_REWARDED_AD_LOADED_EVENT,
|
|
2121
|
+
@"ON_REWARDED_AD_LOAD_FAILED_EVENT" : ON_REWARDED_AD_LOAD_FAILED_EVENT,
|
|
2122
|
+
@"ON_REWARDED_AD_CLICKED_EVENT" : ON_REWARDED_AD_CLICKED_EVENT,
|
|
2123
|
+
@"ON_REWARDED_AD_DISPLAYED_EVENT" : ON_REWARDED_AD_DISPLAYED_EVENT,
|
|
2124
|
+
@"ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT" : ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT,
|
|
2125
|
+
@"ON_REWARDED_AD_HIDDEN_EVENT" : ON_REWARDED_AD_HIDDEN_EVENT,
|
|
2126
|
+
@"ON_REWARDED_AD_RECEIVED_REWARD_EVENT" : ON_REWARDED_AD_RECEIVED_REWARD_EVENT,
|
|
2127
|
+
@"ON_REWARDED_AD_REVENUE_PAID" : ON_REWARDED_AD_REVENUE_PAID,
|
|
1685
2128
|
|
|
1686
|
-
@"
|
|
1687
|
-
@"
|
|
1688
|
-
@"
|
|
1689
|
-
@"
|
|
1690
|
-
@"
|
|
1691
|
-
@"
|
|
1692
|
-
@"
|
|
1693
|
-
@"OnRewardedAdRevenuePaid",
|
|
2129
|
+
@"ON_APPOPEN_AD_LOADED_EVENT" : ON_APPOPEN_AD_LOADED_EVENT,
|
|
2130
|
+
@"ON_APPOPEN_AD_LOAD_FAILED_EVENT" : ON_APPOPEN_AD_LOAD_FAILED_EVENT,
|
|
2131
|
+
@"ON_APPOPEN_AD_CLICKED_EVENT" : ON_APPOPEN_AD_CLICKED_EVENT,
|
|
2132
|
+
@"ON_APPOPEN_AD_DISPLAYED_EVENT" : ON_APPOPEN_AD_DISPLAYED_EVENT,
|
|
2133
|
+
@"ON_APPOPEN_AD_FAILED_TO_DISPLAY_EVENT" : ON_APPOPEN_AD_FAILED_TO_DISPLAY_EVENT,
|
|
2134
|
+
@"ON_APPOPEN_AD_HIDDEN_EVENT" : ON_APPOPEN_AD_HIDDEN_EVENT,
|
|
2135
|
+
@"ON_APPOPEN_AD_REVENUE_PAID" : ON_APPOPEN_AD_REVENUE_PAID,
|
|
1694
2136
|
|
|
1695
|
-
@"
|
|
1696
|
-
@"
|
|
1697
|
-
@"
|
|
1698
|
-
@"
|
|
1699
|
-
@"
|
|
1700
|
-
@"
|
|
1701
|
-
@"
|
|
2137
|
+
@"TOP_CENTER_POSITION" : TOP_CENTER,
|
|
2138
|
+
@"TOP_LEFT_POSITION" : TOP_LEFT,
|
|
2139
|
+
@"TOP_RIGHT_POSITION" : TOP_RIGHT,
|
|
2140
|
+
@"CENTERED_POSITION" : CENTERED,
|
|
2141
|
+
@"CENTER_LEFT_POSITION" : CENTER_LEFT,
|
|
2142
|
+
@"CENTER_RIGHT_POSITION" : CENTER_RIGHT,
|
|
2143
|
+
@"BOTTOM_LEFT_POSITION" : BOTTOM_LEFT,
|
|
2144
|
+
@"BOTTOM_CENTER_POSITION" : BOTTOM_CENTER,
|
|
2145
|
+
@"BOTTOM_RIGHT_POSITION" : BOTTOM_RIGHT,
|
|
1702
2146
|
|
|
1703
|
-
@"
|
|
1704
|
-
@"
|
|
1705
|
-
@"OnNativeAdClickedEvent",
|
|
1706
|
-
@"OnNativeAdRevenuePaid"];
|
|
2147
|
+
@"BANNER_AD_FORMAT_LABEL" : MAAdFormat.banner.label,
|
|
2148
|
+
@"MREC_AD_FORMAT_LABEL" : MAAdFormat.mrec.label};
|
|
1707
2149
|
}
|
|
1708
2150
|
|
|
1709
2151
|
- (void)startObserving
|