react-native-applovin-max 6.5.0 → 7.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 +46 -100
- package/android/gradle.properties +4 -4
- package/android/src/main/AndroidManifest.xml +2 -2
- package/android/src/main/AndroidManifestNew.xml +2 -0
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXAdView.java +123 -163
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXAdViewManager.java +24 -17
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXAdViewUiComponent.java +242 -0
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXModule.java +297 -336
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXNativeAdView.java +13 -12
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXNativeAdViewManager.java +11 -14
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXPackage.java +3 -3
- package/ios/AppLovinMAX.h +1 -1
- package/ios/AppLovinMAX.m +62 -12
- package/ios/AppLovinMAXAdView.h +12 -0
- package/ios/AppLovinMAXAdView.m +120 -142
- package/ios/AppLovinMAXAdViewUIComponent.h +27 -0
- package/ios/AppLovinMAXAdViewUIComponent.m +199 -0
- package/lib/commonjs/AdView.js +348 -0
- package/lib/commonjs/AdView.js.map +1 -0
- package/lib/commonjs/AppLovinMAX.js +52 -0
- package/lib/commonjs/AppLovinMAX.js.map +1 -0
- package/lib/commonjs/AppOpenAd.js +102 -0
- package/lib/commonjs/AppOpenAd.js.map +1 -0
- package/lib/commonjs/BannerAd.js +139 -0
- package/lib/commonjs/BannerAd.js.map +1 -0
- package/lib/commonjs/EventEmitter.js +32 -0
- package/lib/commonjs/EventEmitter.js.map +1 -0
- package/lib/commonjs/InterstitialAd.js +102 -0
- package/lib/commonjs/InterstitialAd.js.map +1 -0
- package/lib/commonjs/MRecAd.js +117 -0
- package/lib/commonjs/MRecAd.js.map +1 -0
- package/lib/commonjs/Privacy.js +12 -0
- package/lib/commonjs/Privacy.js.map +1 -0
- package/lib/commonjs/RewardedAd.js +116 -0
- package/lib/commonjs/RewardedAd.js.map +1 -0
- package/lib/commonjs/TargetingData.js +179 -0
- package/lib/commonjs/TargetingData.js.map +1 -0
- package/lib/commonjs/index.js +256 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/nativeAd/NativeAdView.js +147 -0
- package/lib/commonjs/nativeAd/NativeAdView.js.map +1 -0
- package/lib/commonjs/nativeAd/NativeAdViewComponents.js +197 -0
- package/lib/commonjs/nativeAd/NativeAdViewComponents.js.map +1 -0
- package/lib/commonjs/nativeAd/NativeAdViewProvider.js +37 -0
- package/lib/commonjs/nativeAd/NativeAdViewProvider.js.map +1 -0
- package/lib/commonjs/types/AdEvent.js +6 -0
- package/lib/commonjs/types/AdEvent.js.map +1 -0
- package/lib/commonjs/types/AdInfo.js +48 -0
- package/lib/commonjs/types/AdInfo.js.map +1 -0
- package/lib/commonjs/types/AdProps.js +6 -0
- package/lib/commonjs/types/AdProps.js.map +1 -0
- package/lib/commonjs/types/AdViewProps.js +6 -0
- package/lib/commonjs/types/AdViewProps.js.map +1 -0
- package/lib/commonjs/types/AppLovinMAX.js +6 -0
- package/lib/commonjs/types/AppLovinMAX.js.map +1 -0
- package/lib/commonjs/types/AppOpenAd.js +6 -0
- package/lib/commonjs/types/AppOpenAd.js.map +1 -0
- package/lib/commonjs/types/BannerAd.js +6 -0
- package/lib/commonjs/types/BannerAd.js.map +1 -0
- package/lib/commonjs/types/CMPError.js +6 -0
- package/lib/commonjs/types/CMPError.js.map +1 -0
- package/lib/commonjs/types/Configuration.js +6 -0
- package/lib/commonjs/types/Configuration.js.map +1 -0
- package/lib/commonjs/types/FullscreenAd.js +6 -0
- package/lib/commonjs/types/FullscreenAd.js.map +1 -0
- package/lib/commonjs/types/InterstitialAd.js +6 -0
- package/lib/commonjs/types/InterstitialAd.js.map +1 -0
- package/lib/commonjs/types/MRecAd.js +6 -0
- package/lib/commonjs/types/MRecAd.js.map +1 -0
- package/lib/commonjs/types/NativeAd.js +2 -0
- package/lib/commonjs/types/NativeAd.js.map +1 -0
- package/lib/commonjs/types/NativeAdViewProps.js +6 -0
- package/lib/commonjs/types/NativeAdViewProps.js.map +1 -0
- package/lib/commonjs/types/Privacy.js +2 -0
- package/lib/commonjs/types/Privacy.js.map +1 -0
- package/lib/commonjs/types/RewardedAd.js +6 -0
- package/lib/commonjs/types/RewardedAd.js.map +1 -0
- package/lib/commonjs/types/TargetingData.js +6 -0
- package/lib/commonjs/types/TargetingData.js.map +1 -0
- package/lib/commonjs/types/ViewAd.js +6 -0
- package/lib/commonjs/types/ViewAd.js.map +1 -0
- package/lib/commonjs/types/index.js +61 -0
- package/lib/commonjs/types/index.js.map +1 -0
- package/lib/module/AdView.js +335 -0
- package/lib/module/AdView.js.map +1 -0
- package/lib/module/AppLovinMAX.js +48 -0
- package/lib/module/AppLovinMAX.js.map +1 -0
- package/lib/module/AppOpenAd.js +96 -0
- package/lib/module/AppOpenAd.js.map +1 -0
- package/lib/module/BannerAd.js +133 -0
- package/lib/module/BannerAd.js.map +1 -0
- package/lib/module/EventEmitter.js +24 -0
- package/lib/module/EventEmitter.js.map +1 -0
- package/lib/module/InterstitialAd.js +96 -0
- package/lib/module/InterstitialAd.js.map +1 -0
- package/lib/module/MRecAd.js +111 -0
- package/lib/module/MRecAd.js.map +1 -0
- package/lib/module/Privacy.js +6 -0
- package/lib/module/Privacy.js.map +1 -0
- package/lib/module/RewardedAd.js +110 -0
- package/lib/module/RewardedAd.js.map +1 -0
- package/lib/module/TargetingData.js +175 -0
- package/lib/module/TargetingData.js.map +1 -0
- package/lib/module/index.js +14 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/nativeAd/NativeAdView.js +139 -0
- package/lib/module/nativeAd/NativeAdView.js.map +1 -0
- package/lib/module/nativeAd/NativeAdViewComponents.js +181 -0
- package/lib/module/nativeAd/NativeAdViewComponents.js.map +1 -0
- package/lib/module/nativeAd/NativeAdViewProvider.js +28 -0
- package/lib/module/nativeAd/NativeAdViewProvider.js.map +1 -0
- package/lib/module/types/AdEvent.js +2 -0
- package/lib/module/types/AdEvent.js.map +1 -0
- package/lib/module/types/AdInfo.js +52 -0
- package/lib/module/types/AdInfo.js.map +1 -0
- package/lib/module/types/AdProps.js +2 -0
- package/lib/module/types/AdProps.js.map +1 -0
- package/lib/module/types/AdViewProps.js +2 -0
- package/lib/module/types/AdViewProps.js.map +1 -0
- package/lib/module/types/AppLovinMAX.js +2 -0
- package/lib/module/types/AppLovinMAX.js.map +1 -0
- package/lib/module/types/AppOpenAd.js +2 -0
- package/lib/module/types/AppOpenAd.js.map +1 -0
- package/lib/module/types/BannerAd.js +2 -0
- package/lib/module/types/BannerAd.js.map +1 -0
- package/lib/module/types/CMPError.js +2 -0
- package/lib/module/types/CMPError.js.map +1 -0
- package/lib/module/types/Configuration.js +2 -0
- package/lib/module/types/Configuration.js.map +1 -0
- package/lib/module/types/FullscreenAd.js +2 -0
- package/lib/module/types/FullscreenAd.js.map +1 -0
- package/lib/module/types/InterstitialAd.js +2 -0
- package/lib/module/types/InterstitialAd.js.map +1 -0
- package/lib/module/types/MRecAd.js +2 -0
- package/lib/module/types/MRecAd.js.map +1 -0
- package/lib/module/types/NativeAd.js +2 -0
- package/lib/module/types/NativeAd.js.map +1 -0
- package/lib/module/types/NativeAdViewProps.js +2 -0
- package/lib/module/types/NativeAdViewProps.js.map +1 -0
- package/lib/module/types/Privacy.js +2 -0
- package/lib/module/types/Privacy.js.map +1 -0
- package/lib/module/types/RewardedAd.js +2 -0
- package/lib/module/types/RewardedAd.js.map +1 -0
- package/lib/module/types/TargetingData.js +2 -0
- package/lib/module/types/TargetingData.js.map +1 -0
- package/lib/module/types/ViewAd.js +2 -0
- package/lib/module/types/ViewAd.js.map +1 -0
- package/lib/module/types/index.js +6 -0
- package/lib/module/types/index.js.map +1 -0
- package/lib/typescript/src/AdView.d.ts +115 -0
- package/lib/typescript/src/AdView.d.ts.map +1 -0
- package/lib/typescript/src/AppLovinMAX.d.ts +73 -0
- package/lib/typescript/src/AppLovinMAX.d.ts.map +1 -0
- package/lib/typescript/src/AppOpenAd.d.ts +4 -0
- package/lib/typescript/src/AppOpenAd.d.ts.map +1 -0
- package/lib/typescript/src/BannerAd.d.ts +4 -0
- package/lib/typescript/src/BannerAd.d.ts.map +1 -0
- package/lib/typescript/src/EventEmitter.d.ts +4 -0
- package/lib/typescript/src/EventEmitter.d.ts.map +1 -0
- package/lib/typescript/src/InterstitialAd.d.ts +4 -0
- package/lib/typescript/src/InterstitialAd.d.ts.map +1 -0
- package/lib/typescript/src/MRecAd.d.ts +4 -0
- package/lib/typescript/src/MRecAd.d.ts.map +1 -0
- package/lib/typescript/src/Privacy.d.ts +3 -0
- package/lib/typescript/src/Privacy.d.ts.map +1 -0
- package/lib/typescript/src/RewardedAd.d.ts +4 -0
- package/lib/typescript/src/RewardedAd.d.ts.map +1 -0
- package/lib/typescript/src/TargetingData.d.ts +26 -0
- package/lib/typescript/src/TargetingData.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +14 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/nativeAd/NativeAdView.d.ts +42 -0
- package/lib/typescript/src/nativeAd/NativeAdView.d.ts.map +1 -0
- package/lib/typescript/src/nativeAd/NativeAdViewComponents.d.ts +11 -0
- package/lib/typescript/src/nativeAd/NativeAdViewComponents.d.ts.map +1 -0
- package/lib/typescript/src/nativeAd/NativeAdViewProvider.d.ts +16 -0
- package/lib/typescript/src/nativeAd/NativeAdViewProvider.d.ts.map +1 -0
- package/lib/typescript/src/types/AdEvent.d.ts +15 -0
- package/lib/typescript/src/types/AdEvent.d.ts.map +1 -0
- package/lib/typescript/src/types/AdInfo.d.ts +295 -0
- package/lib/typescript/src/types/AdInfo.d.ts.map +1 -0
- package/lib/typescript/src/types/AdProps.d.ts +58 -0
- package/lib/typescript/src/types/AdProps.d.ts.map +1 -0
- package/lib/typescript/src/types/AdViewProps.d.ts +73 -0
- package/lib/typescript/src/types/AdViewProps.d.ts.map +1 -0
- package/lib/typescript/src/types/AppLovinMAX.d.ts +133 -0
- package/lib/typescript/src/types/AppLovinMAX.d.ts.map +1 -0
- package/lib/typescript/src/types/AppOpenAd.d.ts +3 -0
- package/lib/typescript/src/types/AppOpenAd.d.ts.map +1 -0
- package/lib/typescript/src/types/BannerAd.d.ts +42 -0
- package/lib/typescript/src/types/BannerAd.d.ts.map +1 -0
- package/lib/typescript/src/types/CMPError.d.ts +20 -0
- package/lib/typescript/src/types/CMPError.d.ts.map +1 -0
- package/lib/typescript/src/types/Configuration.d.ts +33 -0
- package/lib/typescript/src/types/Configuration.d.ts.map +1 -0
- package/lib/typescript/src/types/FullscreenAd.d.ts +123 -0
- package/lib/typescript/src/types/FullscreenAd.d.ts.map +1 -0
- package/lib/typescript/src/types/InterstitialAd.d.ts +3 -0
- package/lib/typescript/src/types/InterstitialAd.d.ts.map +1 -0
- package/lib/typescript/src/types/MRecAd.d.ts +12 -0
- package/lib/typescript/src/types/MRecAd.d.ts.map +1 -0
- package/lib/typescript/src/types/NativeAd.d.ts +42 -0
- package/lib/typescript/src/types/NativeAd.d.ts.map +1 -0
- package/lib/typescript/src/types/NativeAdViewProps.d.ts +15 -0
- package/lib/typescript/src/types/NativeAdViewProps.d.ts.map +1 -0
- package/lib/typescript/src/types/Privacy.d.ts +35 -0
- package/lib/typescript/src/types/Privacy.d.ts.map +1 -0
- package/lib/typescript/src/types/RewardedAd.d.ts +18 -0
- package/lib/typescript/src/types/RewardedAd.d.ts.map +1 -0
- package/lib/typescript/src/types/TargetingData.d.ts +43 -0
- package/lib/typescript/src/types/TargetingData.d.ts.map +1 -0
- package/lib/typescript/src/types/ViewAd.d.ts +141 -0
- package/lib/typescript/src/types/ViewAd.d.ts.map +1 -0
- package/lib/typescript/src/types/index.d.ts +6 -0
- package/lib/typescript/src/types/index.d.ts.map +1 -0
- package/package.json +102 -21
- package/react-native-applovin-max.podspec +29 -5
- package/src/AdView.tsx +83 -26
- package/src/AppLovinMAX.ts +1 -1
- package/src/InterstitialAd.ts +1 -3
- package/src/MRecAd.ts +2 -8
- package/src/TargetingData.ts +2 -15
- package/src/index.ts +9 -10
- package/src/nativeAd/NativeAdView.tsx +33 -49
- package/src/nativeAd/NativeAdViewComponents.tsx +22 -31
- package/src/types/AdViewProps.ts +29 -1
- package/android/.project +0 -17
- package/android/.settings/org.eclipse.buildship.core.prefs +0 -13
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +0 -6
- package/android/gradlew +0 -172
- package/android/gradlew.bat +0 -84
- package/ios/AppLovinMAX.xcodeproj/project.pbxproj +0 -368
- package/ios/AppLovinMAX.xcodeproj/xcshareddata/xcschemes/AppLovinMAX.xcscheme +0 -67
- package/ios/AppLovinMAX.xcworkspace/contents.xcworkspacedata +0 -10
- package/ios/AppLovinMAX.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/ios/Podfile +0 -40
- package/ios/Podfile.lock +0 -373
package/ios/AppLovinMAXAdView.m
CHANGED
|
@@ -8,10 +8,11 @@
|
|
|
8
8
|
#import <AppLovinSDK/AppLovinSDK.h>
|
|
9
9
|
#import "AppLovinMAX.h"
|
|
10
10
|
#import "AppLovinMAXAdView.h"
|
|
11
|
+
#import "AppLovinMAXAdViewUIComponent.h"
|
|
11
12
|
|
|
12
|
-
@interface AppLovinMAXAdView()
|
|
13
|
+
@interface AppLovinMAXAdView()
|
|
13
14
|
|
|
14
|
-
@property (nonatomic, strong, nullable)
|
|
15
|
+
@property (nonatomic, strong, nullable) AppLovinMAXAdViewUIComponent *uiComponent; // nil when unmounted
|
|
15
16
|
|
|
16
17
|
// The following properties are updated from RN layer via the view manager
|
|
17
18
|
@property (nonatomic, copy) NSString *adUnitId;
|
|
@@ -24,51 +25,90 @@
|
|
|
24
25
|
@property (nonatomic, copy, nullable) NSDictionary *extraParameters;
|
|
25
26
|
@property (nonatomic, copy, nullable) NSDictionary *localExtraParameters;
|
|
26
27
|
|
|
27
|
-
@property (nonatomic, copy) RCTDirectEventBlock onAdLoadedEvent;
|
|
28
|
-
@property (nonatomic, copy) RCTDirectEventBlock onAdLoadFailedEvent;
|
|
29
|
-
@property (nonatomic, copy) RCTDirectEventBlock onAdDisplayFailedEvent;
|
|
30
|
-
@property (nonatomic, copy) RCTDirectEventBlock onAdClickedEvent;
|
|
31
|
-
@property (nonatomic, copy) RCTDirectEventBlock onAdExpandedEvent;
|
|
32
|
-
@property (nonatomic, copy) RCTDirectEventBlock onAdCollapsedEvent;
|
|
33
|
-
@property (nonatomic, copy) RCTDirectEventBlock onAdRevenuePaidEvent;
|
|
34
|
-
|
|
35
28
|
@end
|
|
36
29
|
|
|
37
30
|
@implementation AppLovinMAXAdView
|
|
38
31
|
|
|
39
|
-
static NSMutableDictionary<NSString *,
|
|
32
|
+
static NSMutableDictionary<NSString *, AppLovinMAXAdViewUIComponent *> *uiComponentInstances;
|
|
33
|
+
static NSMutableDictionary<NSString *, AppLovinMAXAdViewUIComponent *> *preloadedUIComponentInstances;
|
|
40
34
|
|
|
41
35
|
+ (void)initialize
|
|
42
36
|
{
|
|
43
37
|
[super initialize];
|
|
44
|
-
|
|
38
|
+
uiComponentInstances = [NSMutableDictionary dictionaryWithCapacity: 2];
|
|
39
|
+
preloadedUIComponentInstances = [NSMutableDictionary dictionaryWithCapacity: 2];
|
|
45
40
|
}
|
|
46
41
|
|
|
47
42
|
+ (MAAdView *)sharedWithAdUnitIdentifier:(NSString *)adUnitIdentifier
|
|
48
43
|
{
|
|
49
|
-
|
|
44
|
+
AppLovinMAXAdViewUIComponent *uiComponent = preloadedUIComponentInstances[adUnitIdentifier];
|
|
45
|
+
if ( !uiComponent ) uiComponent = uiComponentInstances[adUnitIdentifier];
|
|
46
|
+
return uiComponent ? uiComponent.adView : nil;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
+ (void)preloadNativeUIComponentAdView:(NSString *)adUnitIdentifier adFormat:(MAAdFormat *)adFormat placement:(NSString *)placement customData:(NSString *)customData extraParameters:(NSDictionary<NSString *, NSString *> *)extraParameters localExtraParameters:(NSDictionary<NSString *, NSString *> *)localExtraParameters withPromiseResolver:(RCTPromiseResolveBlock)resolve withPromiseRejecter:(RCTPromiseRejectBlock)reject
|
|
50
|
+
{
|
|
51
|
+
AppLovinMAXAdViewUIComponent *preloadedUIComponent = preloadedUIComponentInstances[ adUnitIdentifier];
|
|
52
|
+
if ( preloadedUIComponent )
|
|
53
|
+
{
|
|
54
|
+
reject(RCTErrorUnspecified, @"Cannot preload more than one for a single Ad Unit ID.", nil);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
preloadedUIComponent = [[AppLovinMAXAdViewUIComponent alloc] initWithAdUnitIdentifier: adUnitIdentifier adFormat: adFormat];
|
|
59
|
+
preloadedUIComponentInstances[adUnitIdentifier] = preloadedUIComponent;
|
|
60
|
+
|
|
61
|
+
preloadedUIComponent.placement = placement;
|
|
62
|
+
preloadedUIComponent.customData = customData;
|
|
63
|
+
preloadedUIComponent.extraParameters = extraParameters;
|
|
64
|
+
preloadedUIComponent.localExtraParameters = localExtraParameters;
|
|
65
|
+
|
|
66
|
+
[preloadedUIComponent loadAd];
|
|
67
|
+
|
|
68
|
+
resolve(nil);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
+ (void)destroyNativeUIComponentAdView:(NSString *)adUnitIdentifier withPromiseResolver:(RCTPromiseResolveBlock)resolve withPromiseRejecter:(RCTPromiseRejectBlock)reject
|
|
72
|
+
{
|
|
73
|
+
AppLovinMAXAdViewUIComponent *preloadedUIComponent = preloadedUIComponentInstances[adUnitIdentifier];
|
|
74
|
+
if ( !preloadedUIComponent )
|
|
75
|
+
{
|
|
76
|
+
reject(RCTErrorUnspecified, @"No native UI component found to destroy", nil);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if ( [preloadedUIComponent hasContainerView] )
|
|
81
|
+
{
|
|
82
|
+
reject(RCTErrorUnspecified, @"Cannot destroy - currently in use", nil);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
[preloadedUIComponentInstances removeObjectForKey: adUnitIdentifier];
|
|
87
|
+
|
|
88
|
+
[preloadedUIComponent detachAdView];
|
|
89
|
+
[preloadedUIComponent destroy];
|
|
90
|
+
|
|
91
|
+
resolve(nil);
|
|
50
92
|
}
|
|
51
93
|
|
|
52
94
|
- (void)setAdUnitId:(NSString *)adUnitId
|
|
53
95
|
{
|
|
54
96
|
// Ad Unit ID must be set prior to creating MAAdView
|
|
55
|
-
if ( self.
|
|
97
|
+
if ( self.uiComponent )
|
|
56
98
|
{
|
|
57
|
-
[[AppLovinMAX shared] log: @"Attempting to set Ad Unit ID %@ after
|
|
99
|
+
[[AppLovinMAX shared] log: @"Attempting to set Ad Unit ID %@ after the native UI component is created", adUnitId];
|
|
58
100
|
return;
|
|
59
101
|
}
|
|
60
102
|
|
|
61
103
|
_adUnitId = adUnitId;
|
|
62
|
-
|
|
63
|
-
[self attachAdViewIfNeeded];
|
|
64
|
-
}
|
|
104
|
+
}
|
|
65
105
|
|
|
66
106
|
- (void)setAdFormat:(NSString *)adFormat
|
|
67
107
|
{
|
|
68
108
|
// Ad format must be set prior to creating MAAdView
|
|
69
|
-
if ( self.
|
|
109
|
+
if ( self.uiComponent )
|
|
70
110
|
{
|
|
71
|
-
[[AppLovinMAX shared] log: @"Attempting to set ad format %@ after
|
|
111
|
+
[[AppLovinMAX shared] log: @"Attempting to set ad format %@ after the native UI component is created", adFormat];
|
|
72
112
|
return;
|
|
73
113
|
}
|
|
74
114
|
|
|
@@ -83,19 +123,16 @@ static NSMutableDictionary<NSString *, MAAdView *> *adViewInstances;
|
|
|
83
123
|
else
|
|
84
124
|
{
|
|
85
125
|
[[AppLovinMAX shared] log: @"Attempting to set an invalid ad format of \"%@\" for %@", adFormat, self.adUnitId];
|
|
86
|
-
return;
|
|
87
126
|
}
|
|
88
|
-
|
|
89
|
-
[self attachAdViewIfNeeded];
|
|
90
|
-
}
|
|
127
|
+
}
|
|
91
128
|
|
|
92
129
|
- (void)setPlacement:(NSString *)placement
|
|
93
130
|
{
|
|
94
131
|
_placement = placement;
|
|
95
132
|
|
|
96
|
-
if ( self.
|
|
133
|
+
if ( self.uiComponent )
|
|
97
134
|
{
|
|
98
|
-
self.
|
|
135
|
+
self.uiComponent.placement = placement;
|
|
99
136
|
}
|
|
100
137
|
}
|
|
101
138
|
|
|
@@ -103,9 +140,9 @@ static NSMutableDictionary<NSString *, MAAdView *> *adViewInstances;
|
|
|
103
140
|
{
|
|
104
141
|
_customData = customData;
|
|
105
142
|
|
|
106
|
-
if ( self.
|
|
143
|
+
if ( self.uiComponent )
|
|
107
144
|
{
|
|
108
|
-
self.
|
|
145
|
+
self.uiComponent.customData = customData;
|
|
109
146
|
}
|
|
110
147
|
}
|
|
111
148
|
|
|
@@ -113,9 +150,9 @@ static NSMutableDictionary<NSString *, MAAdView *> *adViewInstances;
|
|
|
113
150
|
{
|
|
114
151
|
_adaptiveBannerEnabled = adaptiveBannerEnabled;
|
|
115
152
|
|
|
116
|
-
if ( self.
|
|
153
|
+
if ( self.uiComponent )
|
|
117
154
|
{
|
|
118
|
-
|
|
155
|
+
self.uiComponent.adaptiveBannerEnabled = adaptiveBannerEnabled;
|
|
119
156
|
}
|
|
120
157
|
}
|
|
121
158
|
|
|
@@ -123,16 +160,9 @@ static NSMutableDictionary<NSString *, MAAdView *> *adViewInstances;
|
|
|
123
160
|
{
|
|
124
161
|
_autoRefresh = autoRefresh;
|
|
125
162
|
|
|
126
|
-
if ( self.
|
|
163
|
+
if ( self.uiComponent )
|
|
127
164
|
{
|
|
128
|
-
|
|
129
|
-
{
|
|
130
|
-
[self.adView startAutoRefresh];
|
|
131
|
-
}
|
|
132
|
-
else
|
|
133
|
-
{
|
|
134
|
-
[self.adView stopAutoRefresh];
|
|
135
|
-
}
|
|
165
|
+
self.uiComponent.autoRefresh = autoRefresh;
|
|
136
166
|
}
|
|
137
167
|
}
|
|
138
168
|
|
|
@@ -141,98 +171,87 @@ static NSMutableDictionary<NSString *, MAAdView *> *adViewInstances;
|
|
|
141
171
|
_loadOnMount = loadOnMount;
|
|
142
172
|
}
|
|
143
173
|
|
|
174
|
+
// Invoked after all the JavaScript properties are set when mounting AdView
|
|
175
|
+
- (void)didSetProps:(NSArray<NSString *> *)changedProps
|
|
176
|
+
{
|
|
177
|
+
[self attachAdViewIfNeeded];
|
|
178
|
+
}
|
|
179
|
+
|
|
144
180
|
- (void)attachAdViewIfNeeded
|
|
145
181
|
{
|
|
146
182
|
// Re-assign in case of race condition
|
|
147
183
|
NSString *adUnitId = self.adUnitId;
|
|
148
184
|
MAAdFormat *adFormat = self.adFormat;
|
|
149
185
|
|
|
150
|
-
|
|
151
|
-
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t) (0.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
|
186
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
152
187
|
|
|
153
188
|
if ( ![AppLovinMAX shared].sdk )
|
|
154
189
|
{
|
|
155
190
|
[[AppLovinMAX shared] logUninitializedAccessError: @"AppLovinMAXAdview.attachAdViewIfNeeded"];
|
|
156
191
|
return;
|
|
157
192
|
}
|
|
158
|
-
|
|
193
|
+
|
|
159
194
|
if ( ![adUnitId al_isValidString] )
|
|
160
195
|
{
|
|
161
|
-
[[AppLovinMAX shared] log: @"Attempting to attach
|
|
196
|
+
[[AppLovinMAX shared] log: @"Attempting to attach a native UI component without Ad Unit ID"];
|
|
162
197
|
return;
|
|
163
198
|
}
|
|
164
199
|
|
|
165
200
|
if ( !adFormat )
|
|
166
201
|
{
|
|
167
|
-
[[AppLovinMAX shared] log: @"Attempting to attach
|
|
202
|
+
[[AppLovinMAX shared] log: @"Attempting to attach a native UI component without ad format"];
|
|
168
203
|
return;
|
|
169
204
|
}
|
|
170
205
|
|
|
171
|
-
if ( self.
|
|
206
|
+
if ( self.uiComponent )
|
|
172
207
|
{
|
|
173
|
-
[[AppLovinMAX shared] log: @"Attempting to re-attach with existing
|
|
208
|
+
[[AppLovinMAX shared] log: @"Attempting to re-attach with existing native UI component: %@", self.uiComponent.adView];
|
|
174
209
|
return;
|
|
175
210
|
}
|
|
176
211
|
|
|
177
|
-
[[AppLovinMAX shared] log: @"Attaching
|
|
212
|
+
[[AppLovinMAX shared] log: @"Attaching a native UI component for %@", adUnitId];
|
|
178
213
|
|
|
179
|
-
self.
|
|
180
|
-
|
|
181
|
-
sdk: [AppLovinMAX shared].sdk];
|
|
182
|
-
self.adView.frame = (CGRect) { CGPointZero, self.frame.size };
|
|
183
|
-
self.adView.delegate = self;
|
|
184
|
-
self.adView.revenueDelegate = self;
|
|
185
|
-
self.adView.placement = self.placement;
|
|
186
|
-
self.adView.customData = self.customData;
|
|
187
|
-
[self.adView setExtraParameterForKey: @"adaptive_banner" value: [self isAdaptiveBannerEnabled] ? @"true" : @"false"];
|
|
188
|
-
// Set this extra parameter to work around a SDK bug that ignores calls to stopAutoRefresh()
|
|
189
|
-
[self.adView setExtraParameterForKey: @"allow_pause_auto_refresh_immediately" value: @"true"];
|
|
190
|
-
|
|
191
|
-
for ( NSString *key in self.extraParameters )
|
|
214
|
+
self.uiComponent = preloadedUIComponentInstances[adUnitId];
|
|
215
|
+
if ( self.uiComponent )
|
|
192
216
|
{
|
|
193
|
-
|
|
217
|
+
// Attach the preloaded uiComponent if possible, otherwise create a new one for the
|
|
218
|
+
// same adUnitId
|
|
219
|
+
if ( ![self.uiComponent hasContainerView] )
|
|
220
|
+
{
|
|
221
|
+
self.uiComponent.autoRefresh = self.isAutoRefresh;
|
|
222
|
+
[self.uiComponent attachAdView: self];
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
194
225
|
}
|
|
195
226
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
id value = self.localExtraParameters[key];
|
|
199
|
-
[self.adView setLocalExtraParameterForKey: key value: (value != [NSNull null] ? value : nil)];
|
|
200
|
-
}
|
|
227
|
+
self.uiComponent = [[AppLovinMAXAdViewUIComponent alloc] initWithAdUnitIdentifier: adUnitId adFormat: adFormat];
|
|
228
|
+
uiComponentInstances[adUnitId] = self.uiComponent;
|
|
201
229
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
230
|
+
self.uiComponent.placement = self.placement;
|
|
231
|
+
self.uiComponent.customData = self.customData;
|
|
232
|
+
self.uiComponent.extraParameters = self.extraParameters;
|
|
233
|
+
self.uiComponent.localExtraParameters = self.localExtraParameters;
|
|
234
|
+
self.uiComponent.adaptiveBannerEnabled = self.isAdaptiveBannerEnabled;
|
|
235
|
+
self.uiComponent.autoRefresh = self.isAutoRefresh;
|
|
236
|
+
|
|
237
|
+
[self.uiComponent attachAdView: self];
|
|
210
238
|
|
|
211
239
|
if ( [self isLoadOnMount] )
|
|
212
240
|
{
|
|
213
|
-
[self.
|
|
241
|
+
[self.uiComponent loadAd];
|
|
214
242
|
}
|
|
215
|
-
|
|
216
|
-
[self addSubview: self.adView];
|
|
217
|
-
|
|
218
|
-
[NSLayoutConstraint activateConstraints: @[[self.adView.widthAnchor constraintEqualToAnchor: self.widthAnchor],
|
|
219
|
-
[self.adView.heightAnchor constraintEqualToAnchor: self.heightAnchor],
|
|
220
|
-
[self.adView.centerXAnchor constraintEqualToAnchor: self.centerXAnchor],
|
|
221
|
-
[self.adView.centerYAnchor constraintEqualToAnchor: self.centerYAnchor]]];
|
|
222
|
-
|
|
223
|
-
adViewInstances[adUnitId] = self.adView;
|
|
224
243
|
});
|
|
225
244
|
}
|
|
226
245
|
|
|
227
246
|
- (void)loadAd
|
|
228
247
|
{
|
|
229
|
-
if ( !self.
|
|
248
|
+
if ( !self.uiComponent )
|
|
230
249
|
{
|
|
231
|
-
[[AppLovinMAX shared] log: @"Attempting to load uninitialized
|
|
250
|
+
[[AppLovinMAX shared] log: @"Attempting to load uninitialized native UI component for %@", self.adUnitId];
|
|
232
251
|
return;
|
|
233
252
|
}
|
|
234
|
-
|
|
235
|
-
[self.
|
|
253
|
+
|
|
254
|
+
[self.uiComponent loadAd];
|
|
236
255
|
}
|
|
237
256
|
|
|
238
257
|
- (void)didMoveToWindow
|
|
@@ -242,66 +261,25 @@ static NSMutableDictionary<NSString *, MAAdView *> *adViewInstances;
|
|
|
242
261
|
// This view is unmounted
|
|
243
262
|
if ( !self.window && !self.superview )
|
|
244
263
|
{
|
|
245
|
-
if ( self.
|
|
264
|
+
if ( self.uiComponent )
|
|
246
265
|
{
|
|
247
|
-
[[AppLovinMAX shared] log: @"Unmounting
|
|
266
|
+
[[AppLovinMAX shared] log: @"Unmounting the native UI component: %@", self.uiComponent.adView];
|
|
248
267
|
|
|
249
|
-
[
|
|
250
|
-
|
|
251
|
-
self.adView.delegate = nil;
|
|
252
|
-
self.adView.revenueDelegate = nil;
|
|
268
|
+
[self.uiComponent detachAdView];
|
|
253
269
|
|
|
254
|
-
[self.
|
|
270
|
+
AppLovinMAXAdViewUIComponent *preloadedUIComponent = preloadedUIComponentInstances[self.adUnitId];
|
|
255
271
|
|
|
256
|
-
self.
|
|
272
|
+
if ( self.uiComponent == preloadedUIComponent )
|
|
273
|
+
{
|
|
274
|
+
self.uiComponent.autoRefresh = NO;
|
|
275
|
+
}
|
|
276
|
+
else
|
|
277
|
+
{
|
|
278
|
+
[uiComponentInstances removeObjectForKey: self.adUnitId];
|
|
279
|
+
[self.uiComponent destroy];
|
|
280
|
+
}
|
|
257
281
|
}
|
|
258
282
|
}
|
|
259
283
|
}
|
|
260
284
|
|
|
261
|
-
#pragma mark - MAAdDelegate Protocol
|
|
262
|
-
|
|
263
|
-
- (void)didLoadAd:(MAAd *)ad
|
|
264
|
-
{
|
|
265
|
-
self.onAdLoadedEvent([[AppLovinMAX shared] adInfoForAd: ad]);
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
- (void)didFailToLoadAdForAdUnitIdentifier:(NSString *)adUnitIdentifier withError:(MAError *)error
|
|
269
|
-
{
|
|
270
|
-
self.onAdLoadFailedEvent([[AppLovinMAX shared] adLoadFailedInfoForAd: adUnitIdentifier withError: error]);
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
- (void)didFailToDisplayAd:(MAAd *)ad withError:(MAError *)error
|
|
274
|
-
{
|
|
275
|
-
self.onAdDisplayFailedEvent([[AppLovinMAX shared] adDisplayFailedInfoForAd: ad withError: error]);
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
- (void)didClickAd:(MAAd *)ad
|
|
279
|
-
{
|
|
280
|
-
self.onAdClickedEvent([[AppLovinMAX shared] adInfoForAd: ad]);
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
#pragma mark - MAAdViewAdDelegate Protocol
|
|
284
|
-
|
|
285
|
-
- (void)didExpandAd:(MAAd *)ad
|
|
286
|
-
{
|
|
287
|
-
self.onAdExpandedEvent([[AppLovinMAX shared] adInfoForAd: ad]);
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
- (void)didCollapseAd:(MAAd *)ad
|
|
291
|
-
{
|
|
292
|
-
self.onAdCollapsedEvent([[AppLovinMAX shared] adInfoForAd: ad]);
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
#pragma mark - MAAdRevenueDelegate Protocol
|
|
296
|
-
|
|
297
|
-
- (void)didPayRevenueForAd:(MAAd *)ad
|
|
298
|
-
{
|
|
299
|
-
self.onAdRevenuePaidEvent([[AppLovinMAX shared] adRevenueInfoForAd: ad]);
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
#pragma mark - Deprecated Callbacks
|
|
303
|
-
|
|
304
|
-
- (void)didDisplayAd:(MAAd *)ad {}
|
|
305
|
-
- (void)didHideAd:(MAAd *)ad {}
|
|
306
|
-
|
|
307
285
|
@end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#import <React/RCTUIManager.h>
|
|
2
|
+
|
|
3
|
+
@class MAAdView;
|
|
4
|
+
|
|
5
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
6
|
+
|
|
7
|
+
@interface AppLovinMAXAdViewUIComponent : NSObject
|
|
8
|
+
|
|
9
|
+
@property (nonatomic, strong, readonly) MAAdView *adView;
|
|
10
|
+
|
|
11
|
+
@property (nonatomic, copy, nullable) NSString *placement;
|
|
12
|
+
@property (nonatomic, copy, nullable) NSString *customData;
|
|
13
|
+
@property (nonatomic, copy, nullable) NSDictionary *extraParameters;
|
|
14
|
+
@property (nonatomic, copy, nullable) NSDictionary *localExtraParameters;
|
|
15
|
+
@property (nonatomic, assign) BOOL adaptiveBannerEnabled;
|
|
16
|
+
@property (nonatomic, assign) BOOL autoRefresh;
|
|
17
|
+
|
|
18
|
+
- (instancetype)initWithAdUnitIdentifier:(NSString *)adUnitIdentifier adFormat:(MAAdFormat *)adFormat;
|
|
19
|
+
- (void)loadAd;
|
|
20
|
+
- (BOOL)hasContainerView;
|
|
21
|
+
- (void)attachAdView:(AppLovinMAXAdView *)view;
|
|
22
|
+
- (void)detachAdView;
|
|
23
|
+
- (void)destroy;
|
|
24
|
+
|
|
25
|
+
@end
|
|
26
|
+
|
|
27
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
#import <AppLovinSDK/AppLovinSDK.h>
|
|
2
|
+
#import "AppLovinMAX.h"
|
|
3
|
+
#import "AppLovinMAXAdView.h"
|
|
4
|
+
#import "AppLovinMAXAdViewUIComponent.h"
|
|
5
|
+
|
|
6
|
+
@interface AppLovinMAXAdViewUIComponent()<MAAdViewAdDelegate, MAAdRevenueDelegate>
|
|
7
|
+
|
|
8
|
+
@property (nonatomic, strong) MAAdView *adView;
|
|
9
|
+
|
|
10
|
+
@property (nonatomic, weak, nullable) AppLovinMAXAdView *containerView;
|
|
11
|
+
|
|
12
|
+
@end
|
|
13
|
+
|
|
14
|
+
@implementation AppLovinMAXAdViewUIComponent
|
|
15
|
+
|
|
16
|
+
- (instancetype)initWithAdUnitIdentifier:(NSString *)adUnitIdentifier adFormat:(MAAdFormat *)adFormat
|
|
17
|
+
{
|
|
18
|
+
self = [super init];
|
|
19
|
+
if ( self )
|
|
20
|
+
{
|
|
21
|
+
self.adView = [[MAAdView alloc] initWithAdUnitIdentifier: adUnitIdentifier adFormat: adFormat sdk: [AppLovinMAX shared].sdk];
|
|
22
|
+
self.adView.delegate = self;
|
|
23
|
+
self.adView.revenueDelegate = self;
|
|
24
|
+
|
|
25
|
+
[self.adView setExtraParameterForKey: @"adaptive_banner" value: @"true"];
|
|
26
|
+
|
|
27
|
+
// Set this extra parameter to work around a SDK bug that ignores calls to stopAutoRefresh()
|
|
28
|
+
[self.adView setExtraParameterForKey: @"allow_pause_auto_refresh_immediately" value: @"true"];
|
|
29
|
+
|
|
30
|
+
// Set a frame size to suppress an error of zero area for MAAdView
|
|
31
|
+
self.adView.frame = (CGRect) { CGPointZero, adFormat.size };
|
|
32
|
+
}
|
|
33
|
+
return self;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
- (void)setPlacement:(NSString *)placement
|
|
37
|
+
{
|
|
38
|
+
self.adView.placement = placement;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
- (void)setCustomData:(NSString *)customData
|
|
42
|
+
{
|
|
43
|
+
self.adView.customData = customData;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
- (void)setAdaptiveBannerEnabled:(BOOL)adaptiveBannerEnabled
|
|
47
|
+
{
|
|
48
|
+
[self.adView setExtraParameterForKey: @"adaptive_banner" value: adaptiveBannerEnabled ? @"true" : @"false"];
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
- (void)setAutoRefresh:(BOOL)autoRefresh
|
|
52
|
+
{
|
|
53
|
+
if ( autoRefresh )
|
|
54
|
+
{
|
|
55
|
+
[self.adView startAutoRefresh];
|
|
56
|
+
}
|
|
57
|
+
else
|
|
58
|
+
{
|
|
59
|
+
[self.adView stopAutoRefresh];
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
-(void)setExtraParameters:(NSDictionary<NSString *, id> *)parameterDict
|
|
64
|
+
{
|
|
65
|
+
for (NSString *key in parameterDict)
|
|
66
|
+
{
|
|
67
|
+
NSString *value = (NSString *) parameterDict[key];
|
|
68
|
+
[self.adView setExtraParameterForKey:key value:value];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
-(void)setLocalExtraParameters:(NSDictionary<NSString *, id> *)parameterDict
|
|
73
|
+
{
|
|
74
|
+
for (NSString *key in parameterDict)
|
|
75
|
+
{
|
|
76
|
+
id value = parameterDict[key];
|
|
77
|
+
[self.adView setLocalExtraParameterForKey:key value:value];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
- (BOOL)hasContainerView
|
|
82
|
+
{
|
|
83
|
+
return self.containerView != nil;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
- (void)attachAdView:(AppLovinMAXAdView *)view
|
|
87
|
+
{
|
|
88
|
+
self.containerView = view;
|
|
89
|
+
|
|
90
|
+
self.adView.frame = (CGRect) { CGPointZero, view.frame.size };
|
|
91
|
+
|
|
92
|
+
[view addSubview: self.adView];
|
|
93
|
+
|
|
94
|
+
[NSLayoutConstraint activateConstraints: @[[self.adView.widthAnchor constraintEqualToAnchor: view.widthAnchor],
|
|
95
|
+
[self.adView.heightAnchor constraintEqualToAnchor: view.heightAnchor],
|
|
96
|
+
[self.adView.centerXAnchor constraintEqualToAnchor: view.centerXAnchor],
|
|
97
|
+
[self.adView.centerYAnchor constraintEqualToAnchor: view.centerYAnchor]]];
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
- (void)detachAdView
|
|
101
|
+
{
|
|
102
|
+
self.containerView = nil;
|
|
103
|
+
|
|
104
|
+
[self.adView removeFromSuperview];
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
- (void)loadAd
|
|
108
|
+
{
|
|
109
|
+
[self.adView loadAd];
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
- (void)destroy
|
|
113
|
+
{
|
|
114
|
+
[self detachAdView];
|
|
115
|
+
|
|
116
|
+
self.adView.delegate = nil;
|
|
117
|
+
self.adView.revenueDelegate = nil;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
#pragma mark - MAAdDelegate Protocol
|
|
121
|
+
|
|
122
|
+
- (void)didLoadAd:(MAAd *)ad
|
|
123
|
+
{
|
|
124
|
+
NSDictionary *adInfo = [[AppLovinMAX shared] adInfoForAd: ad];
|
|
125
|
+
|
|
126
|
+
[[AppLovinMAX shared] sendEventWithName:@"OnNativeUIComponentAdviewAdLoadedEvent" body: adInfo];
|
|
127
|
+
|
|
128
|
+
if ( self.containerView )
|
|
129
|
+
{
|
|
130
|
+
self.containerView.onAdLoadedEvent(adInfo);
|
|
131
|
+
}
|
|
132
|
+
else
|
|
133
|
+
{
|
|
134
|
+
[self setAutoRefresh: NO];
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
- (void)didFailToLoadAdForAdUnitIdentifier:(NSString *)adUnitIdentifier withError:(MAError *)error
|
|
139
|
+
{
|
|
140
|
+
NSDictionary *adLoadFailedInfo = [[AppLovinMAX shared] adLoadFailedInfoForAd: adUnitIdentifier withError: error];
|
|
141
|
+
|
|
142
|
+
[[AppLovinMAX shared] sendEventWithName:@"OnNativeUIComponentAdviewAdLoadFailedEvent" body: adLoadFailedInfo];
|
|
143
|
+
|
|
144
|
+
if ( self.containerView )
|
|
145
|
+
{
|
|
146
|
+
self.containerView.onAdLoadFailedEvent(adLoadFailedInfo);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
- (void)didFailToDisplayAd:(MAAd *)ad withError:(MAError *)error
|
|
151
|
+
{
|
|
152
|
+
if ( self.containerView )
|
|
153
|
+
{
|
|
154
|
+
self.containerView.onAdDisplayFailedEvent([[AppLovinMAX shared] adDisplayFailedInfoForAd: ad withError: error]);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
- (void)didClickAd:(MAAd *)ad
|
|
159
|
+
{
|
|
160
|
+
if ( self.containerView )
|
|
161
|
+
{
|
|
162
|
+
self.containerView.onAdClickedEvent([[AppLovinMAX shared] adInfoForAd: ad]);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
#pragma mark - MAAdViewAdDelegate Protocol
|
|
167
|
+
|
|
168
|
+
- (void)didExpandAd:(MAAd *)ad
|
|
169
|
+
{
|
|
170
|
+
if ( self.containerView )
|
|
171
|
+
{
|
|
172
|
+
self.containerView.onAdExpandedEvent([[AppLovinMAX shared] adInfoForAd: ad]);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
- (void)didCollapseAd:(MAAd *)ad
|
|
177
|
+
{
|
|
178
|
+
if ( self.containerView )
|
|
179
|
+
{
|
|
180
|
+
self.containerView.onAdCollapsedEvent([[AppLovinMAX shared] adInfoForAd: ad]);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
#pragma mark - MAAdRevenueDelegate Protocol
|
|
185
|
+
|
|
186
|
+
- (void)didPayRevenueForAd:(MAAd *)ad
|
|
187
|
+
{
|
|
188
|
+
if ( self.containerView )
|
|
189
|
+
{
|
|
190
|
+
self.containerView.onAdRevenuePaidEvent([[AppLovinMAX shared] adRevenueInfoForAd: ad]);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
#pragma mark - Deprecated Callbacks
|
|
195
|
+
|
|
196
|
+
- (void)didDisplayAd:(MAAd *)ad {}
|
|
197
|
+
- (void)didHideAd:(MAAd *)ad {}
|
|
198
|
+
|
|
199
|
+
@end
|