adwhale-sdk-react-native 2.7.100 → 2.7.102
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/README.md +3 -3
- package/android/proguard-rules.pro +1 -1
- package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationAdSettingModule.java +61 -0
- package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationAdView.java +32 -0
- package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationCustomNativeAdView.java +32 -0
- package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationInterstitialAd.java +33 -2
- package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationRewardAd.java +33 -0
- package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationTemplateNativeAdView.java +29 -2
- package/lib/module/AdWhaleBannerView.js.map +1 -1
- package/lib/module/AdWhaleInterstitialAd.js +12 -1
- package/lib/module/AdWhaleInterstitialAd.js.map +1 -1
- package/lib/module/AdWhaleMediationSdk.js +39 -9
- package/lib/module/AdWhaleMediationSdk.js.map +1 -1
- package/lib/module/AdWhaleNativeCustomView.js.map +1 -1
- package/lib/module/AdWhaleNativeTemplateView.js.map +1 -1
- package/lib/module/AdWhaleRewardAd.js +12 -1
- package/lib/module/AdWhaleRewardAd.js.map +1 -1
- package/lib/module/NativeAdwhaleSdkReactNative.js.map +1 -1
- package/lib/typescript/src/AdWhaleBannerView.d.ts +7 -0
- package/lib/typescript/src/AdWhaleBannerView.d.ts.map +1 -1
- package/lib/typescript/src/AdWhaleInterstitialAd.d.ts +9 -1
- package/lib/typescript/src/AdWhaleInterstitialAd.d.ts.map +1 -1
- package/lib/typescript/src/AdWhaleMediationSdk.d.ts.map +1 -1
- package/lib/typescript/src/AdWhaleNativeCustomView.d.ts +7 -0
- package/lib/typescript/src/AdWhaleNativeCustomView.d.ts.map +1 -1
- package/lib/typescript/src/AdWhaleNativeTemplateView.d.ts +7 -0
- package/lib/typescript/src/AdWhaleNativeTemplateView.d.ts.map +1 -1
- package/lib/typescript/src/AdWhaleRewardAd.d.ts +9 -1
- package/lib/typescript/src/AdWhaleRewardAd.d.ts.map +1 -1
- package/lib/typescript/src/NativeAdwhaleSdkReactNative.d.ts +12 -0
- package/lib/typescript/src/NativeAdwhaleSdkReactNative.d.ts.map +1 -1
- package/package.json +1 -1
- package/react-native.config.js +4 -14
- package/src/AdWhaleBannerView.tsx +8 -0
- package/src/AdWhaleInterstitialAd.ts +27 -1
- package/src/AdWhaleMediationSdk.ts +40 -34
- package/src/AdWhaleNativeCustomView.tsx +8 -0
- package/src/AdWhaleNativeTemplateView.tsx +8 -0
- package/src/AdWhaleRewardAd.ts +27 -1
- package/src/NativeAdwhaleSdkReactNative.ts +12 -0
package/README.md
CHANGED
|
@@ -43,7 +43,7 @@ npm install adwhale-sdk-react-native
|
|
|
43
43
|
운영 안정성을 중시하는 경우
|
|
44
44
|
```json
|
|
45
45
|
{
|
|
46
|
-
"adwhale-sdk-react-native": "~2.7.
|
|
46
|
+
"adwhale-sdk-react-native": "~2.7.102"
|
|
47
47
|
}
|
|
48
48
|
```
|
|
49
49
|
- Android SDK 2.7.1 기반 유지
|
|
@@ -52,7 +52,7 @@ npm install adwhale-sdk-react-native
|
|
|
52
52
|
### 동일한 Android SDK 기반의 최신 RN 수정만 사용
|
|
53
53
|
```json
|
|
54
54
|
{
|
|
55
|
-
"adwhale-sdk-react-native": "^2.7.
|
|
55
|
+
"adwhale-sdk-react-native": "^2.7.102"
|
|
56
56
|
}
|
|
57
57
|
```
|
|
58
58
|
- Android SDK 2.7.x 범위 내 최신 RN 수정 자동 반영
|
|
@@ -62,7 +62,7 @@ npm install adwhale-sdk-react-native
|
|
|
62
62
|
### 특정 버전을 완전히 고정하여 사용하는 경우
|
|
63
63
|
```json
|
|
64
64
|
{
|
|
65
|
-
"adwhale-sdk-react-native": "2.7.
|
|
65
|
+
"adwhale-sdk-react-native": "2.7.102"
|
|
66
66
|
}
|
|
67
67
|
```
|
|
68
68
|
|
|
@@ -244,4 +244,4 @@
|
|
|
244
244
|
public static net.adwhale.sdk.levelplay.adapter.LevelPlayPrivacyAdapter getInstance();
|
|
245
245
|
}
|
|
246
246
|
|
|
247
|
-
#================== AdWhale LevelPlay Adapter SDK Proguard for Release 적용 코드 끝 ==================
|
|
247
|
+
#================== AdWhale LevelPlay Adapter SDK Proguard for Release 적용 코드 끝 ==================
|
package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationAdSettingModule.java
CHANGED
|
@@ -5,13 +5,16 @@ import android.util.Log;
|
|
|
5
5
|
|
|
6
6
|
import androidx.annotation.Nullable;
|
|
7
7
|
|
|
8
|
+
import com.facebook.react.bridge.Arguments;
|
|
8
9
|
import com.facebook.react.bridge.Promise;
|
|
9
10
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
10
11
|
import com.facebook.react.bridge.ReactMethod;
|
|
12
|
+
import com.facebook.react.bridge.WritableMap;
|
|
11
13
|
import com.facebook.react.module.annotations.ReactModule;
|
|
12
14
|
|
|
13
15
|
import net.adwhale.sdk.mediation.ads.AdWhaleMediationAds;
|
|
14
16
|
import net.adwhale.sdk.mediation.ads.AdWhaleMediationOnInitCompleteListener;
|
|
17
|
+
import net.adwhale.sdk.mediation.ads.GdprConsentStatus;
|
|
15
18
|
import net.adwhale.sdk.utils.AdWhaleLog;
|
|
16
19
|
|
|
17
20
|
import java.util.HashMap;
|
|
@@ -34,6 +37,64 @@ public class RNAdWhaleMediationAdSettingModule extends NativeAdwhaleSdkReactNati
|
|
|
34
37
|
return REACT_CLASS_NAME;
|
|
35
38
|
}
|
|
36
39
|
|
|
40
|
+
@ReactMethod
|
|
41
|
+
public void setCoppa(boolean isEnabled) {
|
|
42
|
+
AdWhaleMediationAds.setCoppa(isEnabled);
|
|
43
|
+
Log.d(REACT_CLASS_NAME, "COPPA setting applied: " + isEnabled);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@ReactMethod
|
|
47
|
+
public void requestGdprConsent(final Promise promise) {
|
|
48
|
+
Activity currentActivity = getCurrentActivity();
|
|
49
|
+
if (currentActivity == null) {
|
|
50
|
+
promise.reject("NO_ACTIVITY", "Current activity is null.");
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
currentActivity.runOnUiThread(() ->
|
|
54
|
+
AdWhaleMediationAds.requestGdprConsent(currentActivity, (isSuccess, message) -> {
|
|
55
|
+
WritableMap result = Arguments.createMap();
|
|
56
|
+
result.putBoolean("isSuccess", isSuccess);
|
|
57
|
+
result.putString("message", message);
|
|
58
|
+
promise.resolve(result);
|
|
59
|
+
})
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@ReactMethod
|
|
64
|
+
public void getConsentStatus(Promise promise) {
|
|
65
|
+
Activity currentActivity = getCurrentActivity();
|
|
66
|
+
if (currentActivity == null) {
|
|
67
|
+
promise.reject("NO_ACTIVITY", "Current activity is null.");
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
boolean coppa = AdWhaleMediationAds.isCoppaApplied();
|
|
72
|
+
GdprConsentStatus gdpr = AdWhaleMediationAds.getGdprConsentStatus(currentActivity);
|
|
73
|
+
boolean personalizedConsent = AdWhaleMediationAds.getAdwhaleGDPR(currentActivity);
|
|
74
|
+
|
|
75
|
+
WritableMap statusMap = Arguments.createMap();
|
|
76
|
+
statusMap.putBoolean("coppa", coppa);
|
|
77
|
+
statusMap.putString("gdpr", gdpr.name());
|
|
78
|
+
statusMap.putBoolean("personalizedConsent", personalizedConsent);
|
|
79
|
+
|
|
80
|
+
promise.resolve(statusMap);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@ReactMethod
|
|
84
|
+
public void resetGdprConsentStatus() {
|
|
85
|
+
Activity currentActivity = getCurrentActivity();
|
|
86
|
+
if (currentActivity != null) {
|
|
87
|
+
currentActivity.runOnUiThread(() -> AdWhaleMediationAds.resetGdprConsentStatus(currentActivity));
|
|
88
|
+
Log.d(REACT_CLASS_NAME, "GDPR consent status has been reset.");
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
@ReactMethod
|
|
93
|
+
public void setGdpr(boolean consent) {
|
|
94
|
+
AdWhaleMediationAds.setGdpr(consent);
|
|
95
|
+
Log.d(REACT_CLASS_NAME, "Personalized Consent set to: " + consent);
|
|
96
|
+
}
|
|
97
|
+
|
|
37
98
|
@ReactMethod(isBlockingSynchronousMethod = true)
|
|
38
99
|
public void initialize(final Promise promise) {
|
|
39
100
|
Log.i(REACT_CLASS_NAME, ".initialize()");
|
|
@@ -11,6 +11,7 @@ import androidx.annotation.Nullable;
|
|
|
11
11
|
|
|
12
12
|
import com.facebook.react.bridge.Arguments;
|
|
13
13
|
import com.facebook.react.bridge.ReactContext;
|
|
14
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
14
15
|
import com.facebook.react.bridge.WritableMap;
|
|
15
16
|
import com.facebook.react.common.MapBuilder;
|
|
16
17
|
import com.facebook.react.uimanager.ThemedReactContext;
|
|
@@ -133,6 +134,37 @@ public class RNAdWhaleMediationAdView extends ViewGroupManager<RNWrapperView> {
|
|
|
133
134
|
}
|
|
134
135
|
}
|
|
135
136
|
|
|
137
|
+
@ReactProp(name = "placementName")
|
|
138
|
+
public void setPlacementName(RNWrapperView view, String placementName) {
|
|
139
|
+
Log.e(REACT_CLASS_NAME, "placementName: " + placementName);
|
|
140
|
+
AdWhaleMediationAdView adView = getAdWhaleMediationAdView(view);
|
|
141
|
+
if (adView != null) {
|
|
142
|
+
adView.setPlacementName(placementName);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
@ReactProp(name = "region")
|
|
147
|
+
public void setRegion(RNWrapperView view, String region) {
|
|
148
|
+
Log.e(REACT_CLASS_NAME, "region: " + region);
|
|
149
|
+
AdWhaleMediationAdView adView = getAdWhaleMediationAdView(view);
|
|
150
|
+
if (adView != null) {
|
|
151
|
+
adView.setRegion(region);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
@ReactProp(name = "gcoder")
|
|
156
|
+
public void setGcoder(RNWrapperView view, ReadableMap gcoderMap) {
|
|
157
|
+
Log.e(REACT_CLASS_NAME, "gcoderMap: " + gcoderMap);
|
|
158
|
+
AdWhaleMediationAdView adView = getAdWhaleMediationAdView(view);
|
|
159
|
+
|
|
160
|
+
if (adView != null && gcoderMap != null) {
|
|
161
|
+
double lt = gcoderMap.hasKey("lt") ? gcoderMap.getDouble("lt") : 0.0;
|
|
162
|
+
double lng = gcoderMap.hasKey("lng") ? gcoderMap.getDouble("lng") : 0.0;
|
|
163
|
+
|
|
164
|
+
adView.setGcoder(lt, lng);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
136
168
|
private AdWhaleMediationAdView getAdWhaleMediationAdView(RNWrapperView parent) {
|
|
137
169
|
if (parent != null && parent.getChildCount() > 0 && parent.getChildAt(0) instanceof AdWhaleMediationAdView) {
|
|
138
170
|
return (AdWhaleMediationAdView) parent.getChildAt(0);
|
package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationCustomNativeAdView.java
CHANGED
|
@@ -11,6 +11,7 @@ import androidx.annotation.Nullable;
|
|
|
11
11
|
import com.facebook.react.bridge.Arguments;
|
|
12
12
|
import com.facebook.react.bridge.ReactContext;
|
|
13
13
|
import com.facebook.react.bridge.ReadableArray;
|
|
14
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
14
15
|
import com.facebook.react.bridge.WritableMap;
|
|
15
16
|
import com.facebook.react.common.MapBuilder;
|
|
16
17
|
import com.facebook.react.uimanager.SimpleViewManager;
|
|
@@ -18,6 +19,7 @@ import com.facebook.react.uimanager.ThemedReactContext;
|
|
|
18
19
|
import com.facebook.react.uimanager.annotations.ReactProp;
|
|
19
20
|
import com.facebook.react.uimanager.events.RCTEventEmitter;
|
|
20
21
|
|
|
22
|
+
import net.adwhale.sdk.mediation.ads.AdWhaleMediationAdView;
|
|
21
23
|
import net.adwhale.sdk.mediation.ads.AdWhaleMediationNativeAdView;
|
|
22
24
|
import net.adwhale.sdk.mediation.ads.AdWhaleMediationNativeAdViewListener;
|
|
23
25
|
import net.adwhale.sdk.mediation.ads.AdWhaleNativeAdBinder;
|
|
@@ -32,6 +34,7 @@ public class RNAdWhaleMediationCustomNativeAdView extends SimpleViewManager<RNWr
|
|
|
32
34
|
|
|
33
35
|
private String placementUid;
|
|
34
36
|
private String layoutName;
|
|
37
|
+
private String placementName;
|
|
35
38
|
|
|
36
39
|
@NonNull
|
|
37
40
|
@Override
|
|
@@ -55,6 +58,35 @@ public class RNAdWhaleMediationCustomNativeAdView extends SimpleViewManager<RNWr
|
|
|
55
58
|
this.layoutName = name;
|
|
56
59
|
}
|
|
57
60
|
|
|
61
|
+
|
|
62
|
+
@ReactProp(name = "placementName")
|
|
63
|
+
public void setPlacementName(RNWrapperView view, String placementName) {
|
|
64
|
+
Log.e(REACT_CLASS_NAME, "placementName: " + placementName);
|
|
65
|
+
this.placementName = placementName;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
@ReactProp(name = "region")
|
|
69
|
+
public void setRegion(RNWrapperView view, String region) {
|
|
70
|
+
Log.e(REACT_CLASS_NAME, "region: " + region);
|
|
71
|
+
AdWhaleMediationNativeAdView adView = getAdWhaleMediationNativeAdView(view);
|
|
72
|
+
if (adView != null) {
|
|
73
|
+
adView.setRegion(region);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@ReactProp(name = "gcoder")
|
|
78
|
+
public void setGcoder(RNWrapperView view, ReadableMap gcoderMap) {
|
|
79
|
+
Log.e(REACT_CLASS_NAME, "gcoderMap: " + gcoderMap);
|
|
80
|
+
AdWhaleMediationNativeAdView adView = getAdWhaleMediationNativeAdView(view);
|
|
81
|
+
|
|
82
|
+
if (adView != null && gcoderMap != null) {
|
|
83
|
+
double lt = gcoderMap.hasKey("lt") ? gcoderMap.getDouble("lt") : 0.0;
|
|
84
|
+
double lng = gcoderMap.hasKey("lng") ? gcoderMap.getDouble("lng") : 0.0;
|
|
85
|
+
|
|
86
|
+
adView.setGcoder(lt, lng);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
58
90
|
@Nullable
|
|
59
91
|
@Override
|
|
60
92
|
public Map<String, Integer> getCommandsMap() {
|
package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationInterstitialAd.java
CHANGED
|
@@ -6,14 +6,13 @@ import androidx.annotation.NonNull;
|
|
|
6
6
|
import androidx.annotation.Nullable;
|
|
7
7
|
|
|
8
8
|
import com.facebook.react.bridge.Arguments;
|
|
9
|
-
import com.facebook.react.bridge.Promise;
|
|
10
9
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
11
10
|
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
12
11
|
import com.facebook.react.bridge.ReactMethod;
|
|
12
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
13
13
|
import com.facebook.react.bridge.UiThreadUtil;
|
|
14
14
|
import com.facebook.react.bridge.WritableMap;
|
|
15
15
|
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
|
16
|
-
import com.facebook.react.uimanager.events.RCTEventEmitter;
|
|
17
16
|
|
|
18
17
|
import net.adwhale.sdk.mediation.ads.AdWhaleMediationInterstitialAd;
|
|
19
18
|
import net.adwhale.sdk.mediation.ads.AdWhaleMediationInterstitialAdListener;
|
|
@@ -30,6 +29,10 @@ public class RNAdWhaleMediationInterstitialAd extends ReactContextBaseJavaModule
|
|
|
30
29
|
public static final String REACT_CLASS_NAME = RNAdWhaleMediationInterstitialAd.class.getSimpleName();
|
|
31
30
|
private AdWhaleMediationInterstitialAd adWhaleMediationInterstitialAd;
|
|
32
31
|
private String placementUid;
|
|
32
|
+
private String placementName;
|
|
33
|
+
private String region;
|
|
34
|
+
private double lt;
|
|
35
|
+
private double lng;
|
|
33
36
|
|
|
34
37
|
public RNAdWhaleMediationInterstitialAd(ReactApplicationContext context) {
|
|
35
38
|
super(context);
|
|
@@ -41,12 +44,40 @@ public class RNAdWhaleMediationInterstitialAd extends ReactContextBaseJavaModule
|
|
|
41
44
|
return REACT_CLASS_NAME;
|
|
42
45
|
}
|
|
43
46
|
|
|
47
|
+
@ReactMethod
|
|
48
|
+
public void setPlacementName(String placementName) {
|
|
49
|
+
Log.e(REACT_CLASS_NAME, "placementName: " + placementName);
|
|
50
|
+
this.placementName = placementName;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@ReactMethod
|
|
54
|
+
public void setRegion(String region) {
|
|
55
|
+
Log.e(REACT_CLASS_NAME, "region: " + region);
|
|
56
|
+
this.region = region;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@ReactMethod
|
|
60
|
+
public void setGcoder(ReadableMap gcoderMap) {
|
|
61
|
+
Log.e(REACT_CLASS_NAME, "gcoderMap: " + gcoderMap);
|
|
62
|
+
|
|
63
|
+
if (gcoderMap != null) {
|
|
64
|
+
double lt = gcoderMap.hasKey("lt") ? gcoderMap.getDouble("lt") : 0.0;
|
|
65
|
+
double lng = gcoderMap.hasKey("lng") ? gcoderMap.getDouble("lng") : 0.0;
|
|
66
|
+
|
|
67
|
+
this.lt = lt;
|
|
68
|
+
this.lng = lng;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
44
72
|
@ReactMethod
|
|
45
73
|
public void loadAd(String placementUid) {
|
|
46
74
|
Log.e(REACT_CLASS_NAME, ".loadAd()");
|
|
47
75
|
this.placementUid = placementUid;
|
|
48
76
|
adWhaleMediationInterstitialAd = new AdWhaleMediationInterstitialAd(placementUid);
|
|
49
77
|
adWhaleMediationInterstitialAd.setAdWhaleMediationInterstitialAdListener(this);
|
|
78
|
+
adWhaleMediationInterstitialAd.setPlacementName(placementName);
|
|
79
|
+
adWhaleMediationInterstitialAd.setRegion(region);
|
|
80
|
+
adWhaleMediationInterstitialAd.setGcoder(lt, lng);
|
|
50
81
|
|
|
51
82
|
UiThreadUtil.runOnUiThread(() -> {
|
|
52
83
|
adWhaleMediationInterstitialAd.loadAd();
|
|
@@ -9,6 +9,7 @@ import com.facebook.react.bridge.Arguments;
|
|
|
9
9
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
10
10
|
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
11
11
|
import com.facebook.react.bridge.ReactMethod;
|
|
12
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
12
13
|
import com.facebook.react.bridge.UiThreadUtil;
|
|
13
14
|
import com.facebook.react.bridge.WritableMap;
|
|
14
15
|
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
|
@@ -31,6 +32,10 @@ public class RNAdWhaleMediationRewardAd extends ReactContextBaseJavaModule imple
|
|
|
31
32
|
public static final String REACT_CLASS_NAME = RNAdWhaleMediationRewardAd.class.getSimpleName();
|
|
32
33
|
private AdWhaleMediationRewardAd adWhaleMediationRewardAd;
|
|
33
34
|
private String placementUid;
|
|
35
|
+
private String placementName;
|
|
36
|
+
private String region;
|
|
37
|
+
private double lt;
|
|
38
|
+
private double lng;
|
|
34
39
|
private final ReactApplicationContext reactContext;
|
|
35
40
|
|
|
36
41
|
public RNAdWhaleMediationRewardAd(ReactApplicationContext context) {
|
|
@@ -45,12 +50,40 @@ public class RNAdWhaleMediationRewardAd extends ReactContextBaseJavaModule imple
|
|
|
45
50
|
return REACT_CLASS_NAME;
|
|
46
51
|
}
|
|
47
52
|
|
|
53
|
+
@ReactMethod
|
|
54
|
+
public void setPlacementName(String placementName) {
|
|
55
|
+
Log.e(REACT_CLASS_NAME, "placementName: " + placementName);
|
|
56
|
+
this.placementName = placementName;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@ReactMethod
|
|
60
|
+
public void setRegion(String region) {
|
|
61
|
+
Log.e(REACT_CLASS_NAME, "region: " + region);
|
|
62
|
+
this.region = region;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@ReactMethod
|
|
66
|
+
public void setGcoder(ReadableMap gcoderMap) {
|
|
67
|
+
Log.e(REACT_CLASS_NAME, "gcoderMap: " + gcoderMap);
|
|
68
|
+
|
|
69
|
+
if (gcoderMap != null) {
|
|
70
|
+
double lt = gcoderMap.hasKey("lt") ? gcoderMap.getDouble("lt") : 0.0;
|
|
71
|
+
double lng = gcoderMap.hasKey("lng") ? gcoderMap.getDouble("lng") : 0.0;
|
|
72
|
+
|
|
73
|
+
this.lt = lt;
|
|
74
|
+
this.lng = lng;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
48
78
|
@ReactMethod
|
|
49
79
|
public void loadAd(String placementUid) {
|
|
50
80
|
Log.e(REACT_CLASS_NAME, "loadAd()");
|
|
51
81
|
this.placementUid = placementUid;
|
|
52
82
|
adWhaleMediationRewardAd = new AdWhaleMediationRewardAd(placementUid);
|
|
53
83
|
adWhaleMediationRewardAd.setAdWhaleMediationFullScreenContentCallback(this);
|
|
84
|
+
adWhaleMediationRewardAd.setPlacementName(placementName);
|
|
85
|
+
adWhaleMediationRewardAd.setRegion(region);
|
|
86
|
+
adWhaleMediationRewardAd.setGcoder(lt, lng);
|
|
54
87
|
|
|
55
88
|
UiThreadUtil.runOnUiThread(() -> {
|
|
56
89
|
adWhaleMediationRewardAd.loadAd(this);
|
package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationTemplateNativeAdView.java
CHANGED
|
@@ -4,13 +4,11 @@ import android.os.Handler;
|
|
|
4
4
|
import android.os.Looper;
|
|
5
5
|
import android.util.Log;
|
|
6
6
|
import android.view.View;
|
|
7
|
-
import android.widget.RelativeLayout;
|
|
8
7
|
|
|
9
8
|
import androidx.annotation.NonNull;
|
|
10
9
|
import androidx.annotation.Nullable;
|
|
11
10
|
|
|
12
11
|
import com.facebook.react.bridge.Arguments;
|
|
13
|
-
import com.facebook.react.bridge.ReactContext;
|
|
14
12
|
import com.facebook.react.bridge.WritableMap;
|
|
15
13
|
import com.facebook.react.common.MapBuilder;
|
|
16
14
|
import com.facebook.react.bridge.ReadableMap;
|
|
@@ -38,6 +36,7 @@ public class RNAdWhaleMediationTemplateNativeAdView extends SimpleViewManager<RN
|
|
|
38
36
|
private String placementUid = "";
|
|
39
37
|
private ADWHALE_NATIVE_TEMPLATE template = ADWHALE_NATIVE_TEMPLATE.SMALL;
|
|
40
38
|
private AdWhaleMediationNativeTemplateStyle templateStyle = null;
|
|
39
|
+
private String placementName;
|
|
41
40
|
|
|
42
41
|
@NonNull
|
|
43
42
|
@Override
|
|
@@ -115,6 +114,34 @@ public class RNAdWhaleMediationTemplateNativeAdView extends SimpleViewManager<RN
|
|
|
115
114
|
return builder.build();
|
|
116
115
|
}
|
|
117
116
|
|
|
117
|
+
@ReactProp(name = "placementName")
|
|
118
|
+
public void setPlacementName(RNWrapperView view, String placementName) {
|
|
119
|
+
Log.e(REACT_CLASS, "placementName: " + placementName);
|
|
120
|
+
this.placementName = placementName;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
@ReactProp(name = "region")
|
|
124
|
+
public void setRegion(RNWrapperView view, String region) {
|
|
125
|
+
Log.e(REACT_CLASS, "region: " + region);
|
|
126
|
+
AdWhaleMediationNativeAdView adView = getAdWhaleMediationNativeAdView(view);
|
|
127
|
+
if (adView != null) {
|
|
128
|
+
adView.setRegion(region);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
@ReactProp(name = "gcoder")
|
|
133
|
+
public void setGcoder(RNWrapperView view, ReadableMap gcoderMap) {
|
|
134
|
+
Log.e(REACT_CLASS, "gcoderMap: " + gcoderMap);
|
|
135
|
+
AdWhaleMediationNativeAdView adView = getAdWhaleMediationNativeAdView(view);
|
|
136
|
+
|
|
137
|
+
if (adView != null && gcoderMap != null) {
|
|
138
|
+
double lt = gcoderMap.hasKey("lt") ? gcoderMap.getDouble("lt") : 0.0;
|
|
139
|
+
double lng = gcoderMap.hasKey("lng") ? gcoderMap.getDouble("lng") : 0.0;
|
|
140
|
+
|
|
141
|
+
adView.setGcoder(lt, lng);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
118
145
|
@ReactProp(name = "templateStyle")
|
|
119
146
|
public void setTemplateStyle(RNWrapperView view, @Nullable ReadableMap styleMap) {
|
|
120
147
|
if (styleMap == null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","requireNativeComponent","jsx","_jsx","RNAdWhaleMediationAdView","AdWhaleBannerView","onAdLoadFailed","restProps","handleAdLoadFailed","e","nativeEvent","undefined"],"sourceRoot":"../../src","sources":["AdWhaleBannerView.tsx"],"mappings":";;AAAA;AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,sBAAsB,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;
|
|
1
|
+
{"version":3,"names":["React","requireNativeComponent","jsx","_jsx","RNAdWhaleMediationAdView","AdWhaleBannerView","onAdLoadFailed","restProps","handleAdLoadFailed","e","nativeEvent","undefined"],"sourceRoot":"../../src","sources":["AdWhaleBannerView.tsx"],"mappings":";;AAAA;AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,sBAAsB,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAyCtD,MAAMC,wBAAwB,GAC5BH,sBAAsB,CAAoB,0BAA0B,CAAC;AAEvE,OAAO,MAAMI,iBAAmD,GAAGA,CAAC;EAClEC,cAAc;EACd,GAAGC;AACL,CAAC,KAAK;EACJ,MAAMC,kBAAuD,GAAGC,CAAC,IAAI;IACnEH,cAAc,GAAGG,CAAC,CAACC,WAAW,CAAC;EACjC,CAAC;EAED,oBACEP,IAAA,CAACC,wBAAwB;IAAA,GACnBG,SAAS;IACbD,cAAc,EAAEA,cAAc,GAAGE,kBAAkB,GAAGG;EAAU,CACjE,CAAC;AAEN,CAAC","ignoreList":[]}
|
|
@@ -7,7 +7,18 @@ const {
|
|
|
7
7
|
} = NativeModules;
|
|
8
8
|
const interstitialEmitter = new NativeEventEmitter(RNAdWhaleMediationInterstitialAd);
|
|
9
9
|
export const AdWhaleInterstitialAd = {
|
|
10
|
-
loadAd(placementUid) {
|
|
10
|
+
loadAd(placementUid, options) {
|
|
11
|
+
// 먼저 옵션들을 설정
|
|
12
|
+
if (options?.placementName) {
|
|
13
|
+
RNAdWhaleMediationInterstitialAd.setPlacementName(options.placementName);
|
|
14
|
+
}
|
|
15
|
+
if (options?.region) {
|
|
16
|
+
RNAdWhaleMediationInterstitialAd.setRegion(options.region);
|
|
17
|
+
}
|
|
18
|
+
if (options?.gcoder) {
|
|
19
|
+
RNAdWhaleMediationInterstitialAd.setGcoder(options.gcoder);
|
|
20
|
+
}
|
|
21
|
+
// 그 다음 loadAd 호출
|
|
11
22
|
RNAdWhaleMediationInterstitialAd.loadAd(placementUid);
|
|
12
23
|
},
|
|
13
24
|
showAd() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeEventEmitter","NativeModules","RNAdWhaleMediationInterstitialAd","interstitialEmitter","AdWhaleInterstitialAd","loadAd","placementUid","showAd","addEventListeners","listeners","subs","onLoaded","push","addListener","onLoadFailed","event","onShowed","onShowFailed","onClosed","onClicked"],"sourceRoot":"../../src","sources":["AdWhaleInterstitialAd.ts"],"mappings":";;AAAA;AACA,SAASA,kBAAkB,EAAEC,aAAa,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["NativeEventEmitter","NativeModules","RNAdWhaleMediationInterstitialAd","interstitialEmitter","AdWhaleInterstitialAd","loadAd","placementUid","options","placementName","setPlacementName","region","setRegion","gcoder","setGcoder","showAd","addEventListeners","listeners","subs","onLoaded","push","addListener","onLoadFailed","event","onShowed","onShowFailed","onClosed","onClicked"],"sourceRoot":"../../src","sources":["AdWhaleInterstitialAd.ts"],"mappings":";;AAAA;AACA,SAASA,kBAAkB,EAAEC,aAAa,QAAQ,cAAc;AAgChE,MAAM;EAAEC;AAAiC,CAAC,GAAGD,aAE5C;AAED,MAAME,mBAAmB,GAAG,IAAIH,kBAAkB,CAChDE,gCACF,CAAC;AAED,OAAO,MAAME,qBAAqB,GAAG;EACnCC,MAAMA,CACJC,YAAoB,EACpBC,OAIC,EACD;IACA;IACA,IAAIA,OAAO,EAAEC,aAAa,EAAE;MAC1BN,gCAAgC,CAACO,gBAAgB,CAACF,OAAO,CAACC,aAAa,CAAC;IAC1E;IACA,IAAID,OAAO,EAAEG,MAAM,EAAE;MACnBR,gCAAgC,CAACS,SAAS,CAACJ,OAAO,CAACG,MAAM,CAAC;IAC5D;IACA,IAAIH,OAAO,EAAEK,MAAM,EAAE;MACnBV,gCAAgC,CAACW,SAAS,CAACN,OAAO,CAACK,MAAM,CAAC;IAC5D;IACA;IACAV,gCAAgC,CAACG,MAAM,CAACC,YAAY,CAAC;EACvD,CAAC;EAEDQ,MAAMA,CAAA,EAAG;IACPZ,gCAAgC,CAACY,MAAM,CAAC,CAAC;EAC3C,CAAC;EAEDC,iBAAiBA,CAACC,SAAoC,EAAyB;IAC7E,MAAMC,IAA2B,GAAG,EAAE;IAEtC,IAAID,SAAS,CAACE,QAAQ,EAAE;MACtBD,IAAI,CAACE,IAAI,CACPhB,mBAAmB,CAACiB,WAAW,CAAC,wBAAwB,EAAE,MAAM;QAC9DJ,SAAS,CAACE,QAAQ,GAAG,CAAC;MACxB,CAAC,CACH,CAAC;IACH;IACA,IAAIF,SAAS,CAACK,YAAY,EAAE;MAC1BJ,IAAI,CAACE,IAAI,CACPhB,mBAAmB,CAACiB,WAAW,CAC7B,4BAA4B,EAC5BE,KAAK,IAAIN,SAAS,CAACK,YAAY,GAAGC,KAAsC,CAC1E,CACF,CAAC;IACH;IACA,IAAIN,SAAS,CAACO,QAAQ,EAAE;MACtBN,IAAI,CAACE,IAAI,CACPhB,mBAAmB,CAACiB,WAAW,CAAC,wBAAwB,EAAE,MAAM;QAC9DJ,SAAS,CAACO,QAAQ,GAAG,CAAC;MACxB,CAAC,CACH,CAAC;IACH;IACA,IAAIP,SAAS,CAACQ,YAAY,EAAE;MAC1BP,IAAI,CAACE,IAAI,CACPhB,mBAAmB,CAACiB,WAAW,CAC7B,4BAA4B,EAC5BE,KAAK,IAAIN,SAAS,CAACQ,YAAY,GAAGF,KAAsC,CAC1E,CACF,CAAC;IACH;IACA,IAAIN,SAAS,CAACS,QAAQ,EAAE;MACtBR,IAAI,CAACE,IAAI,CACPhB,mBAAmB,CAACiB,WAAW,CAAC,wBAAwB,EAAE,MAAM;QAC9DJ,SAAS,CAACS,QAAQ,GAAG,CAAC;MACxB,CAAC,CACH,CAAC;IACH;IACA,IAAIT,SAAS,CAACU,SAAS,EAAE;MACvBT,IAAI,CAACE,IAAI,CACPhB,mBAAmB,CAACiB,WAAW,CAAC,yBAAyB,EAAE,MAAM;QAC/DJ,SAAS,CAACU,SAAS,GAAG,CAAC;MACzB,CAAC,CACH,CAAC;IACH;IAEA,OAAOT,IAAI;EACb;AACF,CAAC","ignoreList":[]}
|
|
@@ -2,16 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
// src/AdWhaleMediationSdk.ts
|
|
4
4
|
import { NativeModules, Platform } from 'react-native';
|
|
5
|
+
import NativeAdwhaleSdkReactNative from "./NativeAdwhaleSdkReactNative.js";
|
|
5
6
|
const LINKING_ERROR = `AdWhale Mediation SDK native modules not linked.\n` + `Make sure:\n` + ` • Android: AdwhaleSdkReactNative / RNAdWhaleMediationLoggerModule 등록 여부\n` + ` • iOS: Pod install 및 빌드 완료 여부\n` + ` • Web 환경에서 실행 중이 아닌지\n` + `Platform: ${Platform.OS}`;
|
|
6
|
-
|
|
7
|
-
// 네이티브 이름에 맞게 수정 👇
|
|
8
|
-
|
|
9
7
|
const {
|
|
10
|
-
AdwhaleSdkReactNative,
|
|
11
8
|
RNAdWhaleMediationLoggerModule
|
|
12
9
|
} = NativeModules;
|
|
10
|
+
|
|
11
|
+
// TurboModule spec을 통해 접근
|
|
12
|
+
const AdwhaleSdkReactNative = NativeAdwhaleSdkReactNative;
|
|
13
13
|
if (!AdwhaleSdkReactNative) {
|
|
14
14
|
console.warn(LINKING_ERROR);
|
|
15
|
+
} else {
|
|
16
|
+
console.log('[AdWhaleMediationSdk] Native module linked:', {
|
|
17
|
+
hasInitialize: !!AdwhaleSdkReactNative.initialize,
|
|
18
|
+
hasRequestGdprConsent: !!AdwhaleSdkReactNative.requestGdprConsent,
|
|
19
|
+
hasGetConsentStatus: !!AdwhaleSdkReactNative.getConsentStatus,
|
|
20
|
+
hasResetGdprConsentStatus: !!AdwhaleSdkReactNative.resetGdprConsentStatus,
|
|
21
|
+
hasSetGdpr: !!AdwhaleSdkReactNative.setGdpr,
|
|
22
|
+
hasSetCoppa: !!AdwhaleSdkReactNative.setCoppa
|
|
23
|
+
});
|
|
15
24
|
}
|
|
16
25
|
export const AdWhaleMediationSdk = {
|
|
17
26
|
initialize() {
|
|
@@ -24,25 +33,46 @@ export const AdWhaleMediationSdk = {
|
|
|
24
33
|
RNAdWhaleMediationLoggerModule?.setLogLevel?.(enabled);
|
|
25
34
|
},
|
|
26
35
|
setCoppa(enabled) {
|
|
27
|
-
|
|
36
|
+
console.log('[AdWhaleMediationSdk] setCoppa called:', enabled);
|
|
37
|
+
if (!AdwhaleSdkReactNative?.setCoppa) {
|
|
38
|
+
console.warn('[AdWhaleMediationSdk] setCoppa is not implemented in native module');
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
AdwhaleSdkReactNative.setCoppa(enabled);
|
|
28
42
|
},
|
|
29
43
|
requestGdprConsent() {
|
|
44
|
+
console.log('[AdWhaleMediationSdk] requestGdprConsent called');
|
|
30
45
|
if (!AdwhaleSdkReactNative?.requestGdprConsent) {
|
|
31
|
-
|
|
46
|
+
const error = new Error('requestGdprConsent is not implemented in native module');
|
|
47
|
+
console.error('[AdWhaleMediationSdk]', error);
|
|
48
|
+
return Promise.reject(error);
|
|
32
49
|
}
|
|
33
50
|
return AdwhaleSdkReactNative.requestGdprConsent();
|
|
34
51
|
},
|
|
35
52
|
getConsentStatus() {
|
|
53
|
+
console.log('[AdWhaleMediationSdk] getConsentStatus called');
|
|
36
54
|
if (!AdwhaleSdkReactNative?.getConsentStatus) {
|
|
37
|
-
|
|
55
|
+
const error = new Error('getConsentStatus is not implemented in native module');
|
|
56
|
+
console.error('[AdWhaleMediationSdk]', error);
|
|
57
|
+
return Promise.reject(error);
|
|
38
58
|
}
|
|
39
59
|
return AdwhaleSdkReactNative.getConsentStatus();
|
|
40
60
|
},
|
|
41
61
|
resetGdprConsentStatus() {
|
|
42
|
-
|
|
62
|
+
console.log('[AdWhaleMediationSdk] resetGdprConsentStatus called');
|
|
63
|
+
if (!AdwhaleSdkReactNative?.resetGdprConsentStatus) {
|
|
64
|
+
console.warn('[AdWhaleMediationSdk] resetGdprConsentStatus is not implemented in native module');
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
AdwhaleSdkReactNative.resetGdprConsentStatus();
|
|
43
68
|
},
|
|
44
69
|
setGdpr(consent) {
|
|
45
|
-
|
|
70
|
+
console.log('[AdWhaleMediationSdk] setGdpr called:', consent);
|
|
71
|
+
if (!AdwhaleSdkReactNative?.setGdpr) {
|
|
72
|
+
console.warn('[AdWhaleMediationSdk] setGdpr is not implemented in native module');
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
AdwhaleSdkReactNative.setGdpr(consent);
|
|
46
76
|
}
|
|
47
77
|
};
|
|
48
78
|
//# sourceMappingURL=AdWhaleMediationSdk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","OS","
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","NativeAdwhaleSdkReactNative","LINKING_ERROR","OS","RNAdWhaleMediationLoggerModule","AdwhaleSdkReactNative","console","warn","log","hasInitialize","initialize","hasRequestGdprConsent","requestGdprConsent","hasGetConsentStatus","getConsentStatus","hasResetGdprConsentStatus","resetGdprConsentStatus","hasSetGdpr","setGdpr","hasSetCoppa","setCoppa","AdWhaleMediationSdk","Promise","reject","Error","setLoggerEnabled","enabled","setLogLevel","error","consent"],"sourceRoot":"../../src","sources":["AdWhaleMediationSdk.ts"],"mappings":";;AAAA;AACA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AACtD,OAAOC,2BAA2B,MAAM,kCAA+B;AAEvE,MAAMC,aAAa,GACjB,oDAAoD,GACpD,cAAc,GACd,6EAA6E,GAC7E,mCAAmC,GACnC,0BAA0B,GAC1B,aAAaF,QAAQ,CAACG,EAAE,EAAE;AAM5B,MAAM;EAAEC;AAA+B,CAAC,GAAGL,aAE1C;;AAED;AACA,MAAMM,qBAAqB,GAAGJ,2BAA2B;AAEzD,IAAI,CAACI,qBAAqB,EAAE;EAC1BC,OAAO,CAACC,IAAI,CAACL,aAAa,CAAC;AAC7B,CAAC,MAAM;EACLI,OAAO,CAACE,GAAG,CAAC,6CAA6C,EAAE;IACzDC,aAAa,EAAE,CAAC,CAACJ,qBAAqB,CAACK,UAAU;IACjDC,qBAAqB,EAAE,CAAC,CAACN,qBAAqB,CAACO,kBAAkB;IACjEC,mBAAmB,EAAE,CAAC,CAACR,qBAAqB,CAACS,gBAAgB;IAC7DC,yBAAyB,EAAE,CAAC,CAACV,qBAAqB,CAACW,sBAAsB;IACzEC,UAAU,EAAE,CAAC,CAACZ,qBAAqB,CAACa,OAAO;IAC3CC,WAAW,EAAE,CAAC,CAACd,qBAAqB,CAACe;EACvC,CAAC,CAAC;AACJ;AAEA,OAAO,MAAMC,mBAAmB,GAAG;EACjCX,UAAUA,CAAA,EAAoB;IAC5B,IAAI,CAACL,qBAAqB,EAAEK,UAAU,EAAE;MACtC,OAAOY,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAACtB,aAAa,CAAC,CAAC;IACjD;IACA,OAAOG,qBAAqB,CAACK,UAAU,CAAC,CAAC;EAC3C,CAAC;EAEDe,gBAAgBA,CAACC,OAAgB,EAAE;IACjCtB,8BAA8B,EAAEuB,WAAW,GAAGD,OAAO,CAAC;EACxD,CAAC;EAEDN,QAAQA,CAACM,OAAgB,EAAE;IACzBpB,OAAO,CAACE,GAAG,CAAC,wCAAwC,EAAEkB,OAAO,CAAC;IAC9D,IAAI,CAACrB,qBAAqB,EAAEe,QAAQ,EAAE;MACpCd,OAAO,CAACC,IAAI,CAAC,oEAAoE,CAAC;MAClF;IACF;IACAF,qBAAqB,CAACe,QAAQ,CAACM,OAAO,CAAC;EACzC,CAAC;EAEDd,kBAAkBA,CAAA,EAAqD;IACrEN,OAAO,CAACE,GAAG,CAAC,iDAAiD,CAAC;IAC9D,IAAI,CAACH,qBAAqB,EAAEO,kBAAkB,EAAE;MAC9C,MAAMgB,KAAK,GAAG,IAAIJ,KAAK,CAAC,wDAAwD,CAAC;MACjFlB,OAAO,CAACsB,KAAK,CAAC,uBAAuB,EAAEA,KAAK,CAAC;MAC7C,OAAON,OAAO,CAACC,MAAM,CAACK,KAAK,CAAC;IAC9B;IACA,OAAOvB,qBAAqB,CAACO,kBAAkB,CAAC,CAAC;EACnD,CAAC;EAEDE,gBAAgBA,CAAA,EAIb;IACDR,OAAO,CAACE,GAAG,CAAC,+CAA+C,CAAC;IAC5D,IAAI,CAACH,qBAAqB,EAAES,gBAAgB,EAAE;MAC5C,MAAMc,KAAK,GAAG,IAAIJ,KAAK,CAAC,sDAAsD,CAAC;MAC/ElB,OAAO,CAACsB,KAAK,CAAC,uBAAuB,EAAEA,KAAK,CAAC;MAC7C,OAAON,OAAO,CAACC,MAAM,CAACK,KAAK,CAAC;IAC9B;IACA,OAAOvB,qBAAqB,CAACS,gBAAgB,CAAC,CAAC;EACjD,CAAC;EAEDE,sBAAsBA,CAAA,EAAG;IACvBV,OAAO,CAACE,GAAG,CAAC,qDAAqD,CAAC;IAClE,IAAI,CAACH,qBAAqB,EAAEW,sBAAsB,EAAE;MAClDV,OAAO,CAACC,IAAI,CAAC,kFAAkF,CAAC;MAChG;IACF;IACAF,qBAAqB,CAACW,sBAAsB,CAAC,CAAC;EAChD,CAAC;EAEDE,OAAOA,CAACW,OAAgB,EAAE;IACxBvB,OAAO,CAACE,GAAG,CAAC,uCAAuC,EAAEqB,OAAO,CAAC;IAC7D,IAAI,CAACxB,qBAAqB,EAAEa,OAAO,EAAE;MACnCZ,OAAO,CAACC,IAAI,CAAC,mEAAmE,CAAC;MACjF;IACF;IACAF,qBAAqB,CAACa,OAAO,CAACW,OAAO,CAAC;EACxC;AACF,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","useImperativeHandle","useRef","requireNativeComponent","UIManager","findNodeHandle","jsx","_jsx","VIEW_MANAGER_NAME","NativeComponent","AdWhaleNativeCustomView","props","ref","innerRef","loadAd","handle","current","config","getViewManagerConfig","Commands","dispatchViewManagerCommand","showAd","handleFailedToLoad","e","onAdFailedToLoad","nativeEvent","undefined"],"sourceRoot":"../../src","sources":["AdWhaleNativeCustomView.tsx"],"mappings":";;AAAA;AACA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,mBAAmB,EAAEC,MAAM,QAAQ,OAAO;AACtE,SAASC,sBAAsB,EAAEC,SAAS,EAAEC,cAAc,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useImperativeHandle","useRef","requireNativeComponent","UIManager","findNodeHandle","jsx","_jsx","VIEW_MANAGER_NAME","NativeComponent","AdWhaleNativeCustomView","props","ref","innerRef","loadAd","handle","current","config","getViewManagerConfig","Commands","dispatchViewManagerCommand","showAd","handleFailedToLoad","e","onAdFailedToLoad","nativeEvent","undefined"],"sourceRoot":"../../src","sources":["AdWhaleNativeCustomView.tsx"],"mappings":";;AAAA;AACA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,mBAAmB,EAAEC,MAAM,QAAQ,OAAO;AACtE,SAASC,sBAAsB,EAAEC,SAAS,EAAEC,cAAc,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAyCjF,MAAMC,iBAAiB,GAAG,sCAAsC;AAEhE,MAAMC,eAAe,GACnBN,sBAAsB,CAAcK,iBAAiB,CAAC;AAExD,OAAO,MAAME,uBAAuB,gBAAGV,UAAU,CAG/C,CAACW,KAAK,EAAEC,GAAG,KAAK;EAChB,MAAMC,QAAQ,GAAGX,MAAM,CAA2C,IAAI,CAAC;EAEvED,mBAAmB,CAACW,GAAG,EAAE,OAAO;IAC9BE,MAAMA,CAAA,EAAG;MACP,MAAMC,MAAM,GAAGV,cAAc,CAACQ,QAAQ,CAACG,OAAO,CAAC;MAC/C,IAAI,CAACD,MAAM,EAAE;MACb,MAAME,MAAM,GAAGb,SAAS,CAACc,oBAAoB,CAACV,iBAAiB,CAElD;MACb,IAAI,CAACS,MAAM,EAAEE,QAAQ,EAAEL,MAAM,EAAE;MAC/BV,SAAS,CAACgB,0BAA0B,CAClCL,MAAM,EACNE,MAAM,CAACE,QAAQ,CAACL,MAAM,EACtB,EACF,CAAC;IACH,CAAC;IACDO,MAAMA,CAAA,EAAG;MACP,MAAMN,MAAM,GAAGV,cAAc,CAACQ,QAAQ,CAACG,OAAO,CAAC;MAC/C,IAAI,CAACD,MAAM,EAAE;MACb,MAAME,MAAM,GAAGb,SAAS,CAACc,oBAAoB,CAACV,iBAAiB,CAElD;MACb,IAAI,CAACS,MAAM,EAAEE,QAAQ,EAAEE,MAAM,EAAE;MAC/BjB,SAAS,CAACgB,0BAA0B,CAClCL,MAAM,EACNE,MAAM,CAACE,QAAQ,CAACE,MAAM,EACtB,EACF,CAAC;IACH;EACF,CAAC,CAAC,CAAC;EAEH,MAAMC,kBAAmD,GAAGC,CAAC,IAAI;IAC/DZ,KAAK,CAACa,gBAAgB,GAAGD,CAAC,CAACE,WAAW,CAAC;EACzC,CAAC;EAED,oBACElB,IAAA,CAACE,eAAe;IACdG,GAAG,EAAEC,QAAS;IAAA,GACVF,KAAK;IACTa,gBAAgB,EAAEb,KAAK,CAACa,gBAAgB,GAAGF,kBAAkB,GAAGI;EAAU,CAC3E,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","useImperativeHandle","useRef","requireNativeComponent","UIManager","findNodeHandle","jsx","_jsx","VIEW_MANAGER_NAME","NativeComponent","AdWhaleNativeTemplateView","props","ref","innerRef","loadAd","handle","current","config","getViewManagerConfig","Commands","dispatchViewManagerCommand","showAd","handleFailedToLoad","e","onAdFailedToLoad","nativeEvent","handleShowFailed","onAdShowFailed","undefined"],"sourceRoot":"../../src","sources":["AdWhaleNativeTemplateView.tsx"],"mappings":";;AAAA;AACA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,mBAAmB,EAAEC,MAAM,QAAQ,OAAO;AACtE,SAASC,sBAAsB,EAAEC,SAAS,EAAEC,cAAc,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useImperativeHandle","useRef","requireNativeComponent","UIManager","findNodeHandle","jsx","_jsx","VIEW_MANAGER_NAME","NativeComponent","AdWhaleNativeTemplateView","props","ref","innerRef","loadAd","handle","current","config","getViewManagerConfig","Commands","dispatchViewManagerCommand","showAd","handleFailedToLoad","e","onAdFailedToLoad","nativeEvent","handleShowFailed","onAdShowFailed","undefined"],"sourceRoot":"../../src","sources":["AdWhaleNativeTemplateView.tsx"],"mappings":";;AAAA;AACA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,mBAAmB,EAAEC,MAAM,QAAQ,OAAO;AACtE,SAASC,sBAAsB,EAAEC,SAAS,EAAEC,cAAc,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAoEjF,MAAMC,iBAAiB,GAAG,wCAAwC;AAElE,MAAMC,eAAe,GACnBN,sBAAsB,CAAcK,iBAAiB,CAAC;AAExD,OAAO,MAAME,yBAAyB,gBAAGV,UAAU,CAGjD,CAACW,KAAK,EAAEC,GAAG,KAAK;EAChB,MAAMC,QAAQ,GAAGX,MAAM,CAA2C,IAAI,CAAC;EAEvED,mBAAmB,CAACW,GAAG,EAAE,OAAO;IAC9BE,MAAMA,CAAA,EAAG;MACP,MAAMC,MAAM,GAAGV,cAAc,CAACQ,QAAQ,CAACG,OAAO,CAAC;MAC/C,IAAI,CAACD,MAAM,EAAE;MACb,MAAME,MAAM,GAAGb,SAAS,CAACc,oBAAoB,CAACV,iBAAiB,CAElD;MACb,IAAI,CAACS,MAAM,EAAEE,QAAQ,EAAEL,MAAM,EAAE;MAC/BV,SAAS,CAACgB,0BAA0B,CAClCL,MAAM,EACNE,MAAM,CAACE,QAAQ,CAACL,MAAM,EACtB,EACF,CAAC;IACH,CAAC;IACDO,MAAMA,CAAA,EAAG;MACP,MAAMN,MAAM,GAAGV,cAAc,CAACQ,QAAQ,CAACG,OAAO,CAAC;MAC/C,IAAI,CAACD,MAAM,EAAE;MACb,MAAME,MAAM,GAAGb,SAAS,CAACc,oBAAoB,CAACV,iBAAiB,CAElD;MACb,IAAI,CAACS,MAAM,EAAEE,QAAQ,EAAEE,MAAM,EAAE;MAC/BjB,SAAS,CAACgB,0BAA0B,CAClCL,MAAM,EACNE,MAAM,CAACE,QAAQ,CAACE,MAAM,EACtB,EACF,CAAC;IACH;EACF,CAAC,CAAC,CAAC;EAEH,MAAMC,kBAAmD,GAAGC,CAAC,IAAI;IAC/DZ,KAAK,CAACa,gBAAgB,GAAGD,CAAC,CAACE,WAAW,CAAC;EACzC,CAAC;EAED,MAAMC,gBAA+C,GAAGH,CAAC,IAAI;IAC3DZ,KAAK,CAACgB,cAAc,GAAGJ,CAAC,CAACE,WAAW,CAAC;EACvC,CAAC;EAED,oBACElB,IAAA,CAACE,eAAe;IACdG,GAAG,EAAEC,QAAS;IAAA,GACVF,KAAK;IACTa,gBAAgB,EAAEb,KAAK,CAACa,gBAAgB,GAAGF,kBAAkB,GAAGM,SAAU;IAC1ED,cAAc,EAAEhB,KAAK,CAACgB,cAAc,GAAGD,gBAAgB,GAAGE;EAAU,CACrE,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -7,7 +7,18 @@ const {
|
|
|
7
7
|
} = NativeModules;
|
|
8
8
|
const rewardEmitter = new NativeEventEmitter(RNAdWhaleMediationRewardAd);
|
|
9
9
|
export const AdWhaleRewardAd = {
|
|
10
|
-
loadAd(placementUid) {
|
|
10
|
+
loadAd(placementUid, options) {
|
|
11
|
+
// 먼저 옵션들을 설정
|
|
12
|
+
if (options?.placementName) {
|
|
13
|
+
RNAdWhaleMediationRewardAd.setPlacementName(options.placementName);
|
|
14
|
+
}
|
|
15
|
+
if (options?.region) {
|
|
16
|
+
RNAdWhaleMediationRewardAd.setRegion(options.region);
|
|
17
|
+
}
|
|
18
|
+
if (options?.gcoder) {
|
|
19
|
+
RNAdWhaleMediationRewardAd.setGcoder(options.gcoder);
|
|
20
|
+
}
|
|
21
|
+
// 그 다음 loadAd 호출
|
|
11
22
|
RNAdWhaleMediationRewardAd.loadAd(placementUid);
|
|
12
23
|
},
|
|
13
24
|
showAd() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeEventEmitter","NativeModules","RNAdWhaleMediationRewardAd","rewardEmitter","AdWhaleRewardAd","loadAd","placementUid","showAd","addEventListeners","listeners","subs","onLoaded","push","addListener","onLoadFailed","event","onShowed","onShowFailed","onDismissed","onClicked","onUserRewarded"],"sourceRoot":"../../src","sources":["AdWhaleRewardAd.ts"],"mappings":";;AAAA;AACA,SAASA,kBAAkB,EAAEC,aAAa,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["NativeEventEmitter","NativeModules","RNAdWhaleMediationRewardAd","rewardEmitter","AdWhaleRewardAd","loadAd","placementUid","options","placementName","setPlacementName","region","setRegion","gcoder","setGcoder","showAd","addEventListeners","listeners","subs","onLoaded","push","addListener","onLoadFailed","event","onShowed","onShowFailed","onDismissed","onClicked","onUserRewarded"],"sourceRoot":"../../src","sources":["AdWhaleRewardAd.ts"],"mappings":";;AAAA;AACA,SAASA,kBAAkB,EAAEC,aAAa,QAAQ,cAAc;AAsChE,MAAM;EAAEC;AAA2B,CAAC,GAAGD,aAEtC;AAED,MAAME,aAAa,GAAG,IAAIH,kBAAkB,CAACE,0BAA0B,CAAC;AAExE,OAAO,MAAME,eAAe,GAAG;EAC7BC,MAAMA,CACJC,YAAoB,EACpBC,OAIC,EACD;IACA;IACA,IAAIA,OAAO,EAAEC,aAAa,EAAE;MAC1BN,0BAA0B,CAACO,gBAAgB,CAACF,OAAO,CAACC,aAAa,CAAC;IACpE;IACA,IAAID,OAAO,EAAEG,MAAM,EAAE;MACnBR,0BAA0B,CAACS,SAAS,CAACJ,OAAO,CAACG,MAAM,CAAC;IACtD;IACA,IAAIH,OAAO,EAAEK,MAAM,EAAE;MACnBV,0BAA0B,CAACW,SAAS,CAACN,OAAO,CAACK,MAAM,CAAC;IACtD;IACA;IACAV,0BAA0B,CAACG,MAAM,CAACC,YAAY,CAAC;EACjD,CAAC;EAEDQ,MAAMA,CAAA,EAAG;IACPZ,0BAA0B,CAACY,MAAM,CAAC,CAAC;EACrC,CAAC;EAEDC,iBAAiBA,CAACC,SAA8B,EAAyB;IACvE,MAAMC,IAA2B,GAAG,EAAE;IAEtC,IAAID,SAAS,CAACE,QAAQ,EAAE;MACtBD,IAAI,CAACE,IAAI,CACPhB,aAAa,CAACiB,WAAW,CAAC,kBAAkB,EAAE,MAAM;QAClDJ,SAAS,CAACE,QAAQ,GAAG,CAAC;MACxB,CAAC,CACH,CAAC;IACH;IACA,IAAIF,SAAS,CAACK,YAAY,EAAE;MAC1BJ,IAAI,CAACE,IAAI,CACPhB,aAAa,CAACiB,WAAW,CACvB,wBAAwB,EACxBE,KAAK,IAAIN,SAAS,CAACK,YAAY,GAAGC,KAAgC,CACpE,CACF,CAAC;IACH;IACA,IAAIN,SAAS,CAACO,QAAQ,EAAE;MACtBN,IAAI,CAACE,IAAI,CACPhB,aAAa,CAACiB,WAAW,CAAC,kBAAkB,EAAE,MAAM;QAClDJ,SAAS,CAACO,QAAQ,GAAG,CAAC;MACxB,CAAC,CACH,CAAC;IACH;IACA,IAAIP,SAAS,CAACQ,YAAY,EAAE;MAC1BP,IAAI,CAACE,IAAI,CACPhB,aAAa,CAACiB,WAAW,CACvB,wBAAwB,EACxBE,KAAK,IAAIN,SAAS,CAACQ,YAAY,GAAGF,KAAgC,CACpE,CACF,CAAC;IACH;IACA,IAAIN,SAAS,CAACS,WAAW,EAAE;MACzBR,IAAI,CAACE,IAAI,CACPhB,aAAa,CAACiB,WAAW,CAAC,qBAAqB,EAAE,MAAM;QACrDJ,SAAS,CAACS,WAAW,GAAG,CAAC;MAC3B,CAAC,CACH,CAAC;IACH;IACA,IAAIT,SAAS,CAACU,SAAS,EAAE;MACvBT,IAAI,CAACE,IAAI,CACPhB,aAAa,CAACiB,WAAW,CAAC,mBAAmB,EAAE,MAAM;QACnDJ,SAAS,CAACU,SAAS,GAAG,CAAC;MACzB,CAAC,CACH,CAAC;IACH;IACA,IAAIV,SAAS,CAACW,cAAc,EAAE;MAC5BV,IAAI,CAACE,IAAI,CACPhB,aAAa,CAACiB,WAAW,CACvB,gBAAgB,EAChBE,KAAK,IACHN,SAAS,CAACW,cAAc,GAAGL,KAAuC,CACtE,CACF,CAAC;IACH;IAEA,OAAOL,IAAI;EACb;AACF,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeAdwhaleSdkReactNative.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeAdwhaleSdkReactNative.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;AAkBpE,eAAeA,mBAAmB,CAACC,YAAY,CAAO,uBAAuB,CAAC","ignoreList":[]}
|
|
@@ -5,9 +5,16 @@ export interface AdWhaleBannerError {
|
|
|
5
5
|
statusCode: number;
|
|
6
6
|
message: string;
|
|
7
7
|
}
|
|
8
|
+
export interface AdWhaleBannerGcoder {
|
|
9
|
+
lt: number;
|
|
10
|
+
lng: number;
|
|
11
|
+
}
|
|
8
12
|
export interface AdWhaleBannerViewProps {
|
|
9
13
|
style?: StyleProp<ViewStyle>;
|
|
10
14
|
placementUid: string;
|
|
15
|
+
placementName?: string;
|
|
16
|
+
region?: string;
|
|
17
|
+
gcoder?: AdWhaleBannerGcoder;
|
|
11
18
|
adSize: AdWhaleBannerSize;
|
|
12
19
|
loadAd?: boolean;
|
|
13
20
|
onAdLoaded?: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdWhaleBannerView.d.ts","sourceRoot":"","sources":["../../../src/AdWhaleBannerView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAwB,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE/E,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,SAAS,GACT,SAAS,GACT,SAAS,GACT,iBAAiB,CAAC;AAEtB,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACrD,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAYD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAc9D,CAAC"}
|
|
1
|
+
{"version":3,"file":"AdWhaleBannerView.d.ts","sourceRoot":"","sources":["../../../src/AdWhaleBannerView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAwB,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE/E,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,SAAS,GACT,SAAS,GACT,SAAS,GACT,iBAAiB,CAAC;AAEtB,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACrD,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAYD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAc9D,CAAC"}
|
|
@@ -11,8 +11,16 @@ export interface AdWhaleInterstitialEvents {
|
|
|
11
11
|
onClosed?: () => void;
|
|
12
12
|
onClicked?: () => void;
|
|
13
13
|
}
|
|
14
|
+
export interface AdWhaleInterstitialGcoder {
|
|
15
|
+
lt: number;
|
|
16
|
+
lng: number;
|
|
17
|
+
}
|
|
14
18
|
export declare const AdWhaleInterstitialAd: {
|
|
15
|
-
loadAd(placementUid: string
|
|
19
|
+
loadAd(placementUid: string, options?: {
|
|
20
|
+
placementName?: string;
|
|
21
|
+
region?: string;
|
|
22
|
+
gcoder?: AdWhaleInterstitialGcoder;
|
|
23
|
+
}): void;
|
|
16
24
|
showAd(): void;
|
|
17
25
|
addEventListeners(listeners: AdWhaleInterstitialEvents): EmitterSubscription[];
|
|
18
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdWhaleInterstitialAd.d.ts","sourceRoot":"","sources":["../../../src/AdWhaleInterstitialAd.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,WAAW,6BAA6B;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,6BAA6B,KAAK,IAAI,CAAC;IAC9D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,6BAA6B,KAAK,IAAI,CAAC;IAC9D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"AdWhaleInterstitialAd.d.ts","sourceRoot":"","sources":["../../../src/AdWhaleInterstitialAd.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,WAAW,6BAA6B;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,6BAA6B,KAAK,IAAI,CAAC;IAC9D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,6BAA6B,KAAK,IAAI,CAAC;IAC9D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AAoBD,eAAO,MAAM,qBAAqB;yBAEhB,MAAM,YACV;QACR,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,yBAAyB,CAAC;KACpC;;iCAoB0B,yBAAyB,GAAG,mBAAmB,EAAE;CAkD/E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdWhaleMediationSdk.d.ts","sourceRoot":"","sources":["../../../src/AdWhaleMediationSdk.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AdWhaleMediationSdk.d.ts","sourceRoot":"","sources":["../../../src/AdWhaleMediationSdk.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,mBAAmB;kBAChB,OAAO,CAAC,MAAM,CAAC;8BAOH,OAAO;sBAIf,OAAO;0BASH,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;wBAUlD,OAAO,CAAC;QAC1B,KAAK,EAAE,OAAO,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,mBAAmB,EAAE,OAAO,CAAC;KAC9B,CAAC;;qBAmBe,OAAO;CAQzB,CAAC"}
|
|
@@ -4,9 +4,16 @@ export interface AdWhaleNativeCustomError {
|
|
|
4
4
|
errorCode: number;
|
|
5
5
|
errorMessage: string;
|
|
6
6
|
}
|
|
7
|
+
export interface AdWhaleNativeCustomGcoder {
|
|
8
|
+
lt: number;
|
|
9
|
+
lng: number;
|
|
10
|
+
}
|
|
7
11
|
export interface AdWhaleNativeCustomViewProps {
|
|
8
12
|
style?: StyleProp<ViewStyle>;
|
|
9
13
|
placementUid: string;
|
|
14
|
+
placementName?: string;
|
|
15
|
+
region?: string;
|
|
16
|
+
gcoder?: AdWhaleNativeCustomGcoder;
|
|
10
17
|
layoutName: string;
|
|
11
18
|
onAdLoaded?: () => void;
|
|
12
19
|
onAdFailedToLoad?: (event: AdWhaleNativeCustomError) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdWhaleNativeCustomView.d.ts","sourceRoot":"","sources":["../../../src/AdWhaleNativeCustomView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,KAAK,EAEV,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IAEnB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,IAAI,IAAI,CAAC;CAChB;AAcD,eAAO,MAAM,uBAAuB,gHA8ClC,CAAC"}
|
|
1
|
+
{"version":3,"file":"AdWhaleNativeCustomView.d.ts","sourceRoot":"","sources":["../../../src/AdWhaleNativeCustomView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,KAAK,EAEV,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IAEnB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,IAAI,IAAI,CAAC;CAChB;AAcD,eAAO,MAAM,uBAAuB,gHA8ClC,CAAC"}
|
|
@@ -23,9 +23,16 @@ export interface AdWhaleNativeTemplateError {
|
|
|
23
23
|
errorCode: number;
|
|
24
24
|
errorMessage: string;
|
|
25
25
|
}
|
|
26
|
+
export interface AdWhaleNativeTemplateGcoder {
|
|
27
|
+
lt: number;
|
|
28
|
+
lng: number;
|
|
29
|
+
}
|
|
26
30
|
export interface AdWhaleNativeTemplateViewProps {
|
|
27
31
|
style?: StyleProp<ViewStyle>;
|
|
28
32
|
placementUid: string;
|
|
33
|
+
placementName?: string;
|
|
34
|
+
region?: string;
|
|
35
|
+
gcoder?: AdWhaleNativeTemplateGcoder;
|
|
29
36
|
template: AdWhaleNativeTemplateType;
|
|
30
37
|
templateStyle?: AdWhaleNativeTemplateStyle;
|
|
31
38
|
onAdLoaded?: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdWhaleNativeTemplateView.d.ts","sourceRoot":"","sources":["../../../src/AdWhaleNativeTemplateView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,KAAK,EAEV,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,yBAAyB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE3D,MAAM,WAAW,0BAA0B;IACzC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,mBAAmB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxC,qBAAqB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1C,wBAAwB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC9C;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,8BAA8B;IAC7C,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,yBAAyB,CAAC;IACpC,aAAa,CAAC,EAAE,0BAA0B,CAAC;IAE3C,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IAC/D,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,IAAI,IAAI,CAAC;CAChB;AAkBD,eAAO,MAAM,yBAAyB,oHAmDpC,CAAC"}
|
|
1
|
+
{"version":3,"file":"AdWhaleNativeTemplateView.d.ts","sourceRoot":"","sources":["../../../src/AdWhaleNativeTemplateView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,KAAK,EAEV,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,yBAAyB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE3D,MAAM,WAAW,0BAA0B;IACzC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,mBAAmB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxC,qBAAqB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1C,wBAAwB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC9C;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,8BAA8B;IAC7C,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,2BAA2B,CAAC;IACrC,QAAQ,EAAE,yBAAyB,CAAC;IACpC,aAAa,CAAC,EAAE,0BAA0B,CAAC;IAE3C,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IAC/D,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,IAAI,IAAI,CAAC;CAChB;AAkBD,eAAO,MAAM,yBAAyB,oHAmDpC,CAAC"}
|
|
@@ -16,8 +16,16 @@ export interface AdWhaleRewardEvents {
|
|
|
16
16
|
onClicked?: () => void;
|
|
17
17
|
onUserRewarded?: (event: AdWhaleRewardUserRewardedEvent) => void;
|
|
18
18
|
}
|
|
19
|
+
export interface AdWhaleRewardGcoder {
|
|
20
|
+
lt: number;
|
|
21
|
+
lng: number;
|
|
22
|
+
}
|
|
19
23
|
export declare const AdWhaleRewardAd: {
|
|
20
|
-
loadAd(placementUid: string
|
|
24
|
+
loadAd(placementUid: string, options?: {
|
|
25
|
+
placementName?: string;
|
|
26
|
+
region?: string;
|
|
27
|
+
gcoder?: AdWhaleRewardGcoder;
|
|
28
|
+
}): void;
|
|
21
29
|
showAd(): void;
|
|
22
30
|
addEventListeners(listeners: AdWhaleRewardEvents): EmitterSubscription[];
|
|
23
31
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdWhaleRewardAd.d.ts","sourceRoot":"","sources":["../../../src/AdWhaleRewardAd.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACxD,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,8BAA8B,KAAK,IAAI,CAAC;CAClE;
|
|
1
|
+
{"version":3,"file":"AdWhaleRewardAd.d.ts","sourceRoot":"","sources":["../../../src/AdWhaleRewardAd.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACxD,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,8BAA8B,KAAK,IAAI,CAAC;CAClE;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AAkBD,eAAO,MAAM,eAAe;yBAEV,MAAM,YACV;QACR,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,mBAAmB,CAAC;KAC9B;;iCAoB0B,mBAAmB,GAAG,mBAAmB,EAAE;CA2DzE,CAAC"}
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import { type TurboModule } from 'react-native';
|
|
2
2
|
export interface Spec extends TurboModule {
|
|
3
3
|
initialize(): Promise<number>;
|
|
4
|
+
setCoppa(isEnabled: boolean): void;
|
|
5
|
+
requestGdprConsent(): Promise<{
|
|
6
|
+
isSuccess: boolean;
|
|
7
|
+
message: string;
|
|
8
|
+
}>;
|
|
9
|
+
getConsentStatus(): Promise<{
|
|
10
|
+
coppa: boolean;
|
|
11
|
+
gdpr: string;
|
|
12
|
+
personalizedConsent: boolean;
|
|
13
|
+
}>;
|
|
14
|
+
resetGdprConsentStatus(): void;
|
|
15
|
+
setGdpr(consent: boolean): void;
|
|
4
16
|
}
|
|
5
17
|
declare const _default: Spec;
|
|
6
18
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeAdwhaleSdkReactNative.d.ts","sourceRoot":"","sources":["../../../src/NativeAdwhaleSdkReactNative.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeAdwhaleSdkReactNative.d.ts","sourceRoot":"","sources":["../../../src/NativeAdwhaleSdkReactNative.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,kBAAkB,IAAI,OAAO,CAAC;QAC5B,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,gBAAgB,IAAI,OAAO,CAAC;QAC1B,KAAK,EAAE,OAAO,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,mBAAmB,EAAE,OAAO,CAAC;KAC9B,CAAC,CAAC;IACH,sBAAsB,IAAI,IAAI,CAAC;IAC/B,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACjC;;AAED,wBAA+E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adwhale-sdk-react-native",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.102",
|
|
4
4
|
"description": "Adwhale SDK React Native library for integrating Adwhale advertising mediation SDK into React Native applications.",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"react-native": "./lib/module/index.js",
|
package/react-native.config.js
CHANGED
|
@@ -1,20 +1,10 @@
|
|
|
1
1
|
const path = require('path');
|
|
2
2
|
|
|
3
3
|
module.exports = {
|
|
4
|
-
dependencies
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
android: {
|
|
9
|
-
sourceDir: path.join(__dirname, 'android'),
|
|
10
|
-
},
|
|
11
|
-
ios: {
|
|
12
|
-
// iOS는 나중에 구현할 예정이라면 비워둬도 됨
|
|
13
|
-
// podspec이 있으므로 autolinking은 자동됨
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
},
|
|
4
|
+
// dependencies 섹션은 제거 - 라이브러리 프로젝트 자체에서는 불필요하며
|
|
5
|
+
// autolinking 충돌을 일으킬 수 있음
|
|
6
|
+
// 다른 프로젝트에서 이 라이브러리를 사용할 때는 package.json의 설정을 기반으로
|
|
7
|
+
// 자동으로 autolinking이 동작함
|
|
18
8
|
|
|
19
9
|
// TurboModule codegen 위치 지정
|
|
20
10
|
project: {
|
|
@@ -15,9 +15,17 @@ export interface AdWhaleBannerError {
|
|
|
15
15
|
message: string;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
export interface AdWhaleBannerGcoder {
|
|
19
|
+
lt: number;
|
|
20
|
+
lng: number;
|
|
21
|
+
}
|
|
22
|
+
|
|
18
23
|
export interface AdWhaleBannerViewProps {
|
|
19
24
|
style?: StyleProp<ViewStyle>;
|
|
20
25
|
placementUid: string;
|
|
26
|
+
placementName?: string;
|
|
27
|
+
region?: string;
|
|
28
|
+
gcoder?: AdWhaleBannerGcoder;
|
|
21
29
|
adSize: AdWhaleBannerSize;
|
|
22
30
|
loadAd?: boolean;
|
|
23
31
|
|
|
@@ -16,7 +16,15 @@ export interface AdWhaleInterstitialEvents {
|
|
|
16
16
|
onClicked?: () => void;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
export interface AdWhaleInterstitialGcoder {
|
|
20
|
+
lt: number;
|
|
21
|
+
lng: number;
|
|
22
|
+
}
|
|
23
|
+
|
|
19
24
|
interface RNAdWhaleMediationInterstitialAdNativeModule {
|
|
25
|
+
setPlacementName(placementName: string): void;
|
|
26
|
+
setRegion(region: string): void;
|
|
27
|
+
setGcoder(gcoder: { lt: number; lng: number }): void;
|
|
20
28
|
loadAd(placementUid: string): void;
|
|
21
29
|
showAd(): void;
|
|
22
30
|
addListener(eventName: string): void;
|
|
@@ -32,7 +40,25 @@ const interstitialEmitter = new NativeEventEmitter(
|
|
|
32
40
|
);
|
|
33
41
|
|
|
34
42
|
export const AdWhaleInterstitialAd = {
|
|
35
|
-
loadAd(
|
|
43
|
+
loadAd(
|
|
44
|
+
placementUid: string,
|
|
45
|
+
options?: {
|
|
46
|
+
placementName?: string;
|
|
47
|
+
region?: string;
|
|
48
|
+
gcoder?: AdWhaleInterstitialGcoder;
|
|
49
|
+
},
|
|
50
|
+
) {
|
|
51
|
+
// 먼저 옵션들을 설정
|
|
52
|
+
if (options?.placementName) {
|
|
53
|
+
RNAdWhaleMediationInterstitialAd.setPlacementName(options.placementName);
|
|
54
|
+
}
|
|
55
|
+
if (options?.region) {
|
|
56
|
+
RNAdWhaleMediationInterstitialAd.setRegion(options.region);
|
|
57
|
+
}
|
|
58
|
+
if (options?.gcoder) {
|
|
59
|
+
RNAdWhaleMediationInterstitialAd.setGcoder(options.gcoder);
|
|
60
|
+
}
|
|
61
|
+
// 그 다음 loadAd 호출
|
|
36
62
|
RNAdWhaleMediationInterstitialAd.loadAd(placementUid);
|
|
37
63
|
},
|
|
38
64
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// src/AdWhaleMediationSdk.ts
|
|
2
2
|
import { NativeModules, Platform } from 'react-native';
|
|
3
|
+
import NativeAdwhaleSdkReactNative from './NativeAdwhaleSdkReactNative';
|
|
3
4
|
|
|
4
5
|
const LINKING_ERROR =
|
|
5
6
|
`AdWhale Mediation SDK native modules not linked.\n` +
|
|
@@ -9,40 +10,28 @@ const LINKING_ERROR =
|
|
|
9
10
|
` • Web 환경에서 실행 중이 아닌지\n` +
|
|
10
11
|
`Platform: ${Platform.OS}`;
|
|
11
12
|
|
|
12
|
-
// 네이티브 이름에 맞게 수정 👇
|
|
13
|
-
interface AdwhaleSdkReactNativeModule {
|
|
14
|
-
initialize(): Promise<number>;
|
|
15
|
-
|
|
16
|
-
// 아래 메서드들은 네이티브에 없으면 자동으로 undefined라서
|
|
17
|
-
// JS에서 optional로 안전하게 처리됨
|
|
18
|
-
setCoppa?(enabled: boolean): void;
|
|
19
|
-
requestGdprConsent?(): Promise<{
|
|
20
|
-
isSuccess: boolean;
|
|
21
|
-
message: string;
|
|
22
|
-
}>;
|
|
23
|
-
getConsentStatus?(): Promise<{
|
|
24
|
-
coppa: boolean;
|
|
25
|
-
gdpr: string;
|
|
26
|
-
personalizedConsent: boolean;
|
|
27
|
-
}>;
|
|
28
|
-
resetGdprConsentStatus?(): void;
|
|
29
|
-
setGdpr?(consent: boolean): void;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
13
|
interface RNAdWhaleMediationLoggerModule {
|
|
33
14
|
setLogLevel?(enabled: boolean): void;
|
|
34
15
|
}
|
|
35
16
|
|
|
36
|
-
const {
|
|
37
|
-
AdwhaleSdkReactNative,
|
|
38
|
-
RNAdWhaleMediationLoggerModule,
|
|
39
|
-
} = NativeModules as {
|
|
40
|
-
AdwhaleSdkReactNative?: AdwhaleSdkReactNativeModule;
|
|
17
|
+
const { RNAdWhaleMediationLoggerModule } = NativeModules as {
|
|
41
18
|
RNAdWhaleMediationLoggerModule?: RNAdWhaleMediationLoggerModule;
|
|
42
19
|
};
|
|
43
20
|
|
|
21
|
+
// TurboModule spec을 통해 접근
|
|
22
|
+
const AdwhaleSdkReactNative = NativeAdwhaleSdkReactNative;
|
|
23
|
+
|
|
44
24
|
if (!AdwhaleSdkReactNative) {
|
|
45
25
|
console.warn(LINKING_ERROR);
|
|
26
|
+
} else {
|
|
27
|
+
console.log('[AdWhaleMediationSdk] Native module linked:', {
|
|
28
|
+
hasInitialize: !!AdwhaleSdkReactNative.initialize,
|
|
29
|
+
hasRequestGdprConsent: !!AdwhaleSdkReactNative.requestGdprConsent,
|
|
30
|
+
hasGetConsentStatus: !!AdwhaleSdkReactNative.getConsentStatus,
|
|
31
|
+
hasResetGdprConsentStatus: !!AdwhaleSdkReactNative.resetGdprConsentStatus,
|
|
32
|
+
hasSetGdpr: !!AdwhaleSdkReactNative.setGdpr,
|
|
33
|
+
hasSetCoppa: !!AdwhaleSdkReactNative.setCoppa,
|
|
34
|
+
});
|
|
46
35
|
}
|
|
47
36
|
|
|
48
37
|
export const AdWhaleMediationSdk = {
|
|
@@ -58,14 +47,20 @@ export const AdWhaleMediationSdk = {
|
|
|
58
47
|
},
|
|
59
48
|
|
|
60
49
|
setCoppa(enabled: boolean) {
|
|
61
|
-
|
|
50
|
+
console.log('[AdWhaleMediationSdk] setCoppa called:', enabled);
|
|
51
|
+
if (!AdwhaleSdkReactNative?.setCoppa) {
|
|
52
|
+
console.warn('[AdWhaleMediationSdk] setCoppa is not implemented in native module');
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
AdwhaleSdkReactNative.setCoppa(enabled);
|
|
62
56
|
},
|
|
63
57
|
|
|
64
58
|
requestGdprConsent(): Promise<{ isSuccess: boolean; message: string }> {
|
|
59
|
+
console.log('[AdWhaleMediationSdk] requestGdprConsent called');
|
|
65
60
|
if (!AdwhaleSdkReactNative?.requestGdprConsent) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
);
|
|
61
|
+
const error = new Error('requestGdprConsent is not implemented in native module');
|
|
62
|
+
console.error('[AdWhaleMediationSdk]', error);
|
|
63
|
+
return Promise.reject(error);
|
|
69
64
|
}
|
|
70
65
|
return AdwhaleSdkReactNative.requestGdprConsent();
|
|
71
66
|
},
|
|
@@ -75,19 +70,30 @@ export const AdWhaleMediationSdk = {
|
|
|
75
70
|
gdpr: string;
|
|
76
71
|
personalizedConsent: boolean;
|
|
77
72
|
}> {
|
|
73
|
+
console.log('[AdWhaleMediationSdk] getConsentStatus called');
|
|
78
74
|
if (!AdwhaleSdkReactNative?.getConsentStatus) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
);
|
|
75
|
+
const error = new Error('getConsentStatus is not implemented in native module');
|
|
76
|
+
console.error('[AdWhaleMediationSdk]', error);
|
|
77
|
+
return Promise.reject(error);
|
|
82
78
|
}
|
|
83
79
|
return AdwhaleSdkReactNative.getConsentStatus();
|
|
84
80
|
},
|
|
85
81
|
|
|
86
82
|
resetGdprConsentStatus() {
|
|
87
|
-
|
|
83
|
+
console.log('[AdWhaleMediationSdk] resetGdprConsentStatus called');
|
|
84
|
+
if (!AdwhaleSdkReactNative?.resetGdprConsentStatus) {
|
|
85
|
+
console.warn('[AdWhaleMediationSdk] resetGdprConsentStatus is not implemented in native module');
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
AdwhaleSdkReactNative.resetGdprConsentStatus();
|
|
88
89
|
},
|
|
89
90
|
|
|
90
91
|
setGdpr(consent: boolean) {
|
|
91
|
-
|
|
92
|
+
console.log('[AdWhaleMediationSdk] setGdpr called:', consent);
|
|
93
|
+
if (!AdwhaleSdkReactNative?.setGdpr) {
|
|
94
|
+
console.warn('[AdWhaleMediationSdk] setGdpr is not implemented in native module');
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
AdwhaleSdkReactNative.setGdpr(consent);
|
|
92
98
|
},
|
|
93
99
|
};
|
|
@@ -12,9 +12,17 @@ export interface AdWhaleNativeCustomError {
|
|
|
12
12
|
errorMessage: string;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
export interface AdWhaleNativeCustomGcoder {
|
|
16
|
+
lt: number;
|
|
17
|
+
lng: number;
|
|
18
|
+
}
|
|
19
|
+
|
|
15
20
|
export interface AdWhaleNativeCustomViewProps {
|
|
16
21
|
style?: StyleProp<ViewStyle>;
|
|
17
22
|
placementUid: string;
|
|
23
|
+
placementName?: string;
|
|
24
|
+
region?: string;
|
|
25
|
+
gcoder?: AdWhaleNativeCustomGcoder;
|
|
18
26
|
layoutName: string;
|
|
19
27
|
|
|
20
28
|
onAdLoaded?: () => void;
|
|
@@ -33,9 +33,17 @@ export interface AdWhaleNativeTemplateError {
|
|
|
33
33
|
errorMessage: string;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
+
export interface AdWhaleNativeTemplateGcoder {
|
|
37
|
+
lt: number;
|
|
38
|
+
lng: number;
|
|
39
|
+
}
|
|
40
|
+
|
|
36
41
|
export interface AdWhaleNativeTemplateViewProps {
|
|
37
42
|
style?: StyleProp<ViewStyle>;
|
|
38
43
|
placementUid: string;
|
|
44
|
+
placementName?: string;
|
|
45
|
+
region?: string;
|
|
46
|
+
gcoder?: AdWhaleNativeTemplateGcoder;
|
|
39
47
|
template: AdWhaleNativeTemplateType;
|
|
40
48
|
templateStyle?: AdWhaleNativeTemplateStyle;
|
|
41
49
|
|
package/src/AdWhaleRewardAd.ts
CHANGED
|
@@ -22,7 +22,15 @@ export interface AdWhaleRewardEvents {
|
|
|
22
22
|
onUserRewarded?: (event: AdWhaleRewardUserRewardedEvent) => void;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
export interface AdWhaleRewardGcoder {
|
|
26
|
+
lt: number;
|
|
27
|
+
lng: number;
|
|
28
|
+
}
|
|
29
|
+
|
|
25
30
|
interface RNAdWhaleMediationRewardAdNativeModule {
|
|
31
|
+
setPlacementName(placementName: string): void;
|
|
32
|
+
setRegion(region: string): void;
|
|
33
|
+
setGcoder(gcoder: { lt: number; lng: number }): void;
|
|
26
34
|
loadAd(placementUid: string): void;
|
|
27
35
|
showAd(): void;
|
|
28
36
|
addListener(eventName: string): void;
|
|
@@ -36,7 +44,25 @@ const { RNAdWhaleMediationRewardAd } = NativeModules as {
|
|
|
36
44
|
const rewardEmitter = new NativeEventEmitter(RNAdWhaleMediationRewardAd);
|
|
37
45
|
|
|
38
46
|
export const AdWhaleRewardAd = {
|
|
39
|
-
loadAd(
|
|
47
|
+
loadAd(
|
|
48
|
+
placementUid: string,
|
|
49
|
+
options?: {
|
|
50
|
+
placementName?: string;
|
|
51
|
+
region?: string;
|
|
52
|
+
gcoder?: AdWhaleRewardGcoder;
|
|
53
|
+
},
|
|
54
|
+
) {
|
|
55
|
+
// 먼저 옵션들을 설정
|
|
56
|
+
if (options?.placementName) {
|
|
57
|
+
RNAdWhaleMediationRewardAd.setPlacementName(options.placementName);
|
|
58
|
+
}
|
|
59
|
+
if (options?.region) {
|
|
60
|
+
RNAdWhaleMediationRewardAd.setRegion(options.region);
|
|
61
|
+
}
|
|
62
|
+
if (options?.gcoder) {
|
|
63
|
+
RNAdWhaleMediationRewardAd.setGcoder(options.gcoder);
|
|
64
|
+
}
|
|
65
|
+
// 그 다음 loadAd 호출
|
|
40
66
|
RNAdWhaleMediationRewardAd.loadAd(placementUid);
|
|
41
67
|
},
|
|
42
68
|
|
|
@@ -2,6 +2,18 @@ import { TurboModuleRegistry, type TurboModule } from 'react-native';
|
|
|
2
2
|
|
|
3
3
|
export interface Spec extends TurboModule {
|
|
4
4
|
initialize(): Promise<number>;
|
|
5
|
+
setCoppa(isEnabled: boolean): void;
|
|
6
|
+
requestGdprConsent(): Promise<{
|
|
7
|
+
isSuccess: boolean;
|
|
8
|
+
message: string;
|
|
9
|
+
}>;
|
|
10
|
+
getConsentStatus(): Promise<{
|
|
11
|
+
coppa: boolean;
|
|
12
|
+
gdpr: string;
|
|
13
|
+
personalizedConsent: boolean;
|
|
14
|
+
}>;
|
|
15
|
+
resetGdprConsentStatus(): void;
|
|
16
|
+
setGdpr(consent: boolean): void;
|
|
5
17
|
}
|
|
6
18
|
|
|
7
19
|
export default TurboModuleRegistry.getEnforcing<Spec>('AdwhaleSdkReactNative');
|