adwhale-sdk-react-native 2.7.204 → 2.7.300

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.
Files changed (108) hide show
  1. package/AdwhaleSdkReactNative.podspec +22 -0
  2. package/README.md +80 -37
  3. package/android/proguard-rules.pro +56 -0
  4. package/android/src/main/java/com/adwhalesdkreactnative/AdWhaleCustomNativeBinderFactory.java +18 -0
  5. package/android/src/main/java/com/adwhalesdkreactnative/AdwhaleSdkReactNativePackage.java +51 -6
  6. package/android/src/main/java/com/adwhalesdkreactnative/BinderFactory.java +9 -0
  7. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationAdSettingModule.java +148 -49
  8. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationAdView.java +46 -27
  9. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationAppOpenAd.java +136 -0
  10. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationCustomNativeAdView.java +37 -46
  11. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationExitPopupAd.java +240 -0
  12. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationInterstitialAd.java +189 -0
  13. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationLoggerModule.java +2 -1
  14. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationNativeAdViewListenerBridge.java +83 -0
  15. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationRewardAd.java +255 -6
  16. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationTemplateNativeAdView.java +191 -70
  17. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationTransitionPopupAd.java +218 -0
  18. package/android/src/main/java/com/adwhalesdkreactnative/RNWrapperView.java +137 -0
  19. package/android/src/main/java/com/adwhalesdkreactnative/SimpleBinderFactory.java +1 -1
  20. package/android/src/main/java/com/adwhalesdkreactnative/common/RNMethodArgConst.java +112 -0
  21. package/android/src/main/java/com/adwhalesdkreactnative/common/RNMethodCallConst.java +113 -0
  22. package/android/src/main/java/com/adwhalesdkreactnative/common/RNMethodResultConst.java +28 -0
  23. package/build/generated/ios/ReactAppDependencyProvider.podspec +34 -0
  24. package/ios/AdWhaleNativeCustomViewFactoryRegistry.swift +56 -0
  25. package/ios/AdwhaleSdkReactNative.mm +96 -5
  26. package/ios/AdwhaleSdkReactNativeModule.swift +148 -0
  27. package/ios/RNAdWhaleMediationAdViewManager.m +38 -0
  28. package/ios/RNAdWhaleMediationAdViewManager.swift +14 -0
  29. package/ios/RNAdWhaleMediationAppOpenAd.m +18 -0
  30. package/ios/RNAdWhaleMediationAppOpenAd.swift +175 -0
  31. package/ios/RNAdWhaleMediationCustomNativeAdViewManager.m +22 -0
  32. package/ios/RNAdWhaleMediationCustomNativeAdViewManager.swift +239 -0
  33. package/ios/RNAdWhaleMediationInterstitialAd.m +18 -0
  34. package/ios/RNAdWhaleMediationInterstitialAd.swift +161 -0
  35. package/ios/RNAdWhaleMediationRewardAd.m +18 -0
  36. package/ios/RNAdWhaleMediationRewardAd.swift +172 -0
  37. package/ios/WhaleMediationBannerContainer.swift +182 -0
  38. package/lib/module/AdWhaleAdView.js +58 -3
  39. package/lib/module/AdWhaleAdView.js.map +1 -1
  40. package/lib/module/AdWhaleAppOpenAd.js +223 -25
  41. package/lib/module/AdWhaleAppOpenAd.js.map +1 -1
  42. package/lib/module/AdWhaleExitPopupAd.js +93 -0
  43. package/lib/module/AdWhaleExitPopupAd.js.map +1 -0
  44. package/lib/module/AdWhaleInterstitialAd.js +146 -22
  45. package/lib/module/AdWhaleInterstitialAd.js.map +1 -1
  46. package/lib/module/AdWhaleMediationAds.js +75 -4
  47. package/lib/module/AdWhaleMediationAds.js.map +1 -1
  48. package/lib/module/AdWhaleNativeCustomView.js +59 -8
  49. package/lib/module/AdWhaleNativeCustomView.js.map +1 -1
  50. package/lib/module/AdWhaleNativeTemplateView.js +37 -19
  51. package/lib/module/AdWhaleNativeTemplateView.js.map +1 -1
  52. package/lib/module/AdWhaleRewardAd.js +169 -24
  53. package/lib/module/AdWhaleRewardAd.js.map +1 -1
  54. package/lib/module/AdWhaleTransitionPopupAd.js +87 -0
  55. package/lib/module/AdWhaleTransitionPopupAd.js.map +1 -0
  56. package/lib/module/NativeAdwhaleSdkReactNative.js +16 -1
  57. package/lib/module/NativeAdwhaleSdkReactNative.js.map +1 -1
  58. package/lib/module/constants/AdWhaleMethodArgConst.js +53 -0
  59. package/lib/module/constants/AdWhaleMethodArgConst.js.map +1 -0
  60. package/lib/module/constants/AdWhaleMethodCallConst.js +56 -0
  61. package/lib/module/constants/AdWhaleMethodCallConst.js.map +1 -0
  62. package/lib/module/constants/AdWhaleMethodResultConst.js +16 -0
  63. package/lib/module/constants/AdWhaleMethodResultConst.js.map +1 -0
  64. package/lib/module/index.js +10 -1
  65. package/lib/module/index.js.map +1 -1
  66. package/lib/typescript/src/AdWhaleAdView.d.ts +20 -2
  67. package/lib/typescript/src/AdWhaleAdView.d.ts.map +1 -1
  68. package/lib/typescript/src/AdWhaleAppOpenAd.d.ts +10 -0
  69. package/lib/typescript/src/AdWhaleAppOpenAd.d.ts.map +1 -1
  70. package/lib/typescript/src/AdWhaleExitPopupAd.d.ts +36 -0
  71. package/lib/typescript/src/AdWhaleExitPopupAd.d.ts.map +1 -0
  72. package/lib/typescript/src/AdWhaleInterstitialAd.d.ts +16 -0
  73. package/lib/typescript/src/AdWhaleInterstitialAd.d.ts.map +1 -1
  74. package/lib/typescript/src/AdWhaleMediationAds.d.ts +13 -5
  75. package/lib/typescript/src/AdWhaleMediationAds.d.ts.map +1 -1
  76. package/lib/typescript/src/AdWhaleNativeCustomView.d.ts +7 -4
  77. package/lib/typescript/src/AdWhaleNativeCustomView.d.ts.map +1 -1
  78. package/lib/typescript/src/AdWhaleNativeTemplateView.d.ts +20 -7
  79. package/lib/typescript/src/AdWhaleNativeTemplateView.d.ts.map +1 -1
  80. package/lib/typescript/src/AdWhaleRewardAd.d.ts +18 -2
  81. package/lib/typescript/src/AdWhaleRewardAd.d.ts.map +1 -1
  82. package/lib/typescript/src/AdWhaleTransitionPopupAd.d.ts +33 -0
  83. package/lib/typescript/src/AdWhaleTransitionPopupAd.d.ts.map +1 -0
  84. package/lib/typescript/src/NativeAdwhaleSdkReactNative.d.ts +28 -6
  85. package/lib/typescript/src/NativeAdwhaleSdkReactNative.d.ts.map +1 -1
  86. package/lib/typescript/src/constants/AdWhaleMethodArgConst.d.ts +51 -0
  87. package/lib/typescript/src/constants/AdWhaleMethodArgConst.d.ts.map +1 -0
  88. package/lib/typescript/src/constants/AdWhaleMethodCallConst.d.ts +53 -0
  89. package/lib/typescript/src/constants/AdWhaleMethodCallConst.d.ts.map +1 -0
  90. package/lib/typescript/src/constants/AdWhaleMethodResultConst.d.ts +14 -0
  91. package/lib/typescript/src/constants/AdWhaleMethodResultConst.d.ts.map +1 -0
  92. package/lib/typescript/src/index.d.ts +9 -1
  93. package/lib/typescript/src/index.d.ts.map +1 -1
  94. package/package.json +1 -1
  95. package/src/AdWhaleAdView.tsx +92 -4
  96. package/src/AdWhaleAppOpenAd.ts +293 -38
  97. package/src/AdWhaleExitPopupAd.ts +183 -0
  98. package/src/AdWhaleInterstitialAd.ts +206 -36
  99. package/src/AdWhaleMediationAds.ts +108 -4
  100. package/src/AdWhaleNativeCustomView.tsx +85 -23
  101. package/src/AdWhaleNativeTemplateView.tsx +79 -42
  102. package/src/AdWhaleRewardAd.ts +245 -43
  103. package/src/AdWhaleTransitionPopupAd.ts +171 -0
  104. package/src/NativeAdwhaleSdkReactNative.ts +30 -6
  105. package/src/constants/AdWhaleMethodArgConst.ts +50 -0
  106. package/src/constants/AdWhaleMethodCallConst.ts +60 -0
  107. package/src/constants/AdWhaleMethodResultConst.ts +13 -0
  108. package/src/index.ts +33 -0
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ // src/AdWhaleTransitionPopupAd.ts
4
+ import { NativeEventEmitter, NativeModules, Platform } from 'react-native';
5
+ const LINKING_ERROR = Platform.OS === 'android' ? 'RNAdWhaleMediationTransitionPopupAd native module is not linked.' : 'Transition Popup Ad is only supported on Android.';
6
+ const {
7
+ RNAdWhaleMediationTransitionPopupAd
8
+ } = NativeModules;
9
+ const transitionPopupEmitter = RNAdWhaleMediationTransitionPopupAd ? new NativeEventEmitter(RNAdWhaleMediationTransitionPopupAd) : null;
10
+ export const AdWhaleTransitionPopupAd = {
11
+ loadAd(placementUid, options) {
12
+ if (!RNAdWhaleMediationTransitionPopupAd) {
13
+ console.warn(LINKING_ERROR);
14
+ return;
15
+ }
16
+ if (options?.placementName != null) {
17
+ RNAdWhaleMediationTransitionPopupAd.setPlacementName(options.placementName);
18
+ }
19
+ if (options?.region != null) {
20
+ RNAdWhaleMediationTransitionPopupAd.setRegion(options.region);
21
+ }
22
+ if (options?.gcoder) {
23
+ RNAdWhaleMediationTransitionPopupAd.setGcoder(options.gcoder);
24
+ }
25
+ RNAdWhaleMediationTransitionPopupAd.loadAd(placementUid);
26
+ },
27
+ showAd() {
28
+ if (!RNAdWhaleMediationTransitionPopupAd) {
29
+ console.warn(LINKING_ERROR);
30
+ return;
31
+ }
32
+ RNAdWhaleMediationTransitionPopupAd.showAd();
33
+ },
34
+ destroy() {
35
+ if (!RNAdWhaleMediationTransitionPopupAd) {
36
+ console.warn(LINKING_ERROR);
37
+ return;
38
+ }
39
+ RNAdWhaleMediationTransitionPopupAd.destroy();
40
+ },
41
+ resume() {
42
+ if (!RNAdWhaleMediationTransitionPopupAd) {
43
+ console.warn(LINKING_ERROR);
44
+ return;
45
+ }
46
+ RNAdWhaleMediationTransitionPopupAd.resume();
47
+ },
48
+ addEventListeners(listeners) {
49
+ if (!transitionPopupEmitter) {
50
+ console.warn(LINKING_ERROR);
51
+ return [];
52
+ }
53
+ const subs = [];
54
+ if (listeners.onLoaded) {
55
+ subs.push(transitionPopupEmitter.addListener('onTransitionPopupAdLoaded', () => {
56
+ listeners.onLoaded?.();
57
+ }));
58
+ }
59
+ if (listeners.onLoadFailed) {
60
+ subs.push(transitionPopupEmitter.addListener('onTransitionPopupAdLoadFailed', event => {
61
+ listeners.onLoadFailed?.(event);
62
+ }));
63
+ }
64
+ if (listeners.onShowed) {
65
+ subs.push(transitionPopupEmitter.addListener('onTransitionPopupAdShowed', () => {
66
+ listeners.onShowed?.();
67
+ }));
68
+ }
69
+ if (listeners.onShowFailed) {
70
+ subs.push(transitionPopupEmitter.addListener('onTransitionPopupAdShowFailed', event => {
71
+ listeners.onShowFailed?.(event);
72
+ }));
73
+ }
74
+ if (listeners.onClicked) {
75
+ subs.push(transitionPopupEmitter.addListener('onTransitionPopupAdClicked', () => {
76
+ listeners.onClicked?.();
77
+ }));
78
+ }
79
+ if (listeners.onClosed) {
80
+ subs.push(transitionPopupEmitter.addListener('onTransitionPopupAdClosed', event => {
81
+ listeners.onClosed?.(event);
82
+ }));
83
+ }
84
+ return subs;
85
+ }
86
+ };
87
+ //# sourceMappingURL=AdWhaleTransitionPopupAd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeEventEmitter","NativeModules","Platform","LINKING_ERROR","OS","RNAdWhaleMediationTransitionPopupAd","transitionPopupEmitter","AdWhaleTransitionPopupAd","loadAd","placementUid","options","console","warn","placementName","setPlacementName","region","setRegion","gcoder","setGcoder","showAd","destroy","resume","addEventListeners","listeners","subs","onLoaded","push","addListener","onLoadFailed","event","onShowed","onShowFailed","onClicked","onClosed"],"sourceRoot":"../../src","sources":["AdWhaleTransitionPopupAd.ts"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,20 @@
1
1
  "use strict";
2
2
 
3
3
  import { TurboModuleRegistry } from 'react-native';
4
- export default TurboModuleRegistry.getEnforcing('AdwhaleSdkReactNative');
4
+
5
+ /**
6
+ * Flutter `AdWhaleInitResult` / 네이티브 초기화 성공 맵과 동일: `statusCode`, `message` 만.
7
+ * 성공 여부는 `statusCode === 100` (Flutter 와 동일).
8
+ * TurboModule codegen 은 메서드명 `initialize` 를 사용합니다 (Flutter MethodChannel 은 `_init`).
9
+ */
10
+
11
+ /** Flutter GDPR `requestGdprConsent` 응답 맵: `success`, `message` */
12
+
13
+ /** Ad Inspector 닫힘 콜백과 동일한 status/message (Flutter 와 키 정렬) */
14
+
15
+ /**
16
+ * iOS/Android 네이티브에 모듈이 없거나 링크되지 않은 경우 null.
17
+ * (getEnforcing 는 로드 시점에 앱 전체가 크래시하므로 get 사용)
18
+ */
19
+ export default TurboModuleRegistry.get('AdwhaleSdkReactNative');
5
20
  //# sourceMappingURL=NativeAdwhaleSdkReactNative.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeAdwhaleSdkReactNative.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;AAwBpE,eAAeA,mBAAmB,CAACC,YAAY,CAAO,uBAAuB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeAdwhaleSdkReactNative.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;;AAEpE;AACA;AACA;AACA;AACA;;AAMA;;AAMA;;AA0BA;AACA;AACA;AACA;AACA,eAAeA,mBAAmB,CAACC,GAAG,CAAO,uBAAuB,CAAC","ignoreList":[]}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Flutter `lib/src/flutter_method_arg_const.dart` / Android `FlutterMethodArgConst` 와
5
+ * 동일한 키 문자열을 유지합니다. RN 전용 키는 주석으로 표시합니다.
6
+ */
7
+ export const AdWhaleMethodArgConst = {
8
+ sendStatusCode: 'statusCode',
9
+ sendMessage: 'message',
10
+ /** Flutter GDPR 등 */
11
+ sendSuccess: 'success',
12
+ /** RN 레거시 — init/showAdInspector 는 `sendStatusCode`(100) 로 성공 판별 */
13
+ sendIsSuccess: 'isSuccess',
14
+ sendCode: 'code',
15
+ sendEventName: 'eventName',
16
+ sendErrorMessage: 'errorMessage',
17
+ sendErrorCode: 'errorCode',
18
+ sendRewardAmount: 'RewardAmount',
19
+ sendRewardType: 'RewardType',
20
+ sendHeightPx: 'heightPx',
21
+ sendReason: 'reason',
22
+ receiveAdId: 'adId',
23
+ receivePlacementUid: 'placementUid',
24
+ receiveRating: 'rating',
25
+ receiveHasConsent: 'hasConsent',
26
+ receiveValue: 'value',
27
+ receiveTfuaMode: 'tfuaMode',
28
+ receiveIds: 'ids',
29
+ receiveRequestId: 'requestId',
30
+ receiveIsChildDirected: 'isChildDirected',
31
+ receiveEnabled: 'enabled',
32
+ receiveIsMuted: 'isMuted',
33
+ receivedVolume: 'volume',
34
+ receiveRegion: 'region',
35
+ receiveGcoder: 'gcoder',
36
+ receiveLt: 'lt',
37
+ receiveLng: 'lng',
38
+ receivePlacementName: 'placementName',
39
+ receivePrimaryButtonText: 'primaryButtonText',
40
+ receiveSecondaryButtonText: 'secondaryButtonText',
41
+ receiveCustomDescription: 'customDescription',
42
+ receiveOptions: 'options',
43
+ receiveAdaptiveAnchorWidth: 'adaptiveAnchorWidth',
44
+ receiveAndroidPlacementUid: 'androidPlacementUid',
45
+ receiveBannerHeight: 'bannerHeight',
46
+ receiveNativeAdOptions: 'nativeAdOptions',
47
+ receiveTemplateStyle: 'templateStyle',
48
+ sendCoppa: 'coppa',
49
+ sendGdpr: 'gdpr',
50
+ sendPersonalizedConsent: 'personalizedConsent',
51
+ sendRegistrationName: 'registrationName'
52
+ };
53
+ //# sourceMappingURL=AdWhaleMethodArgConst.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AdWhaleMethodArgConst","sendStatusCode","sendMessage","sendSuccess","sendIsSuccess","sendCode","sendEventName","sendErrorMessage","sendErrorCode","sendRewardAmount","sendRewardType","sendHeightPx","sendReason","receiveAdId","receivePlacementUid","receiveRating","receiveHasConsent","receiveValue","receiveTfuaMode","receiveIds","receiveRequestId","receiveIsChildDirected","receiveEnabled","receiveIsMuted","receivedVolume","receiveRegion","receiveGcoder","receiveLt","receiveLng","receivePlacementName","receivePrimaryButtonText","receiveSecondaryButtonText","receiveCustomDescription","receiveOptions","receiveAdaptiveAnchorWidth","receiveAndroidPlacementUid","receiveBannerHeight","receiveNativeAdOptions","receiveTemplateStyle","sendCoppa","sendGdpr","sendPersonalizedConsent","sendRegistrationName"],"sourceRoot":"../../../src","sources":["constants/AdWhaleMethodArgConst.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA,OAAO,MAAMA,qBAAqB,GAAG;EACnCC,cAAc,EAAE,YAAY;EAC5BC,WAAW,EAAE,SAAS;EACtB;EACAC,WAAW,EAAE,SAAS;EACtB;EACAC,aAAa,EAAE,WAAW;EAC1BC,QAAQ,EAAE,MAAM;EAChBC,aAAa,EAAE,WAAW;EAC1BC,gBAAgB,EAAE,cAAc;EAChCC,aAAa,EAAE,WAAW;EAC1BC,gBAAgB,EAAE,cAAc;EAChCC,cAAc,EAAE,YAAY;EAC5BC,YAAY,EAAE,UAAU;EACxBC,UAAU,EAAE,QAAQ;EACpBC,WAAW,EAAE,MAAM;EACnBC,mBAAmB,EAAE,cAAc;EACnCC,aAAa,EAAE,QAAQ;EACvBC,iBAAiB,EAAE,YAAY;EAC/BC,YAAY,EAAE,OAAO;EACrBC,eAAe,EAAE,UAAU;EAC3BC,UAAU,EAAE,KAAK;EACjBC,gBAAgB,EAAE,WAAW;EAC7BC,sBAAsB,EAAE,iBAAiB;EACzCC,cAAc,EAAE,SAAS;EACzBC,cAAc,EAAE,SAAS;EACzBC,cAAc,EAAE,QAAQ;EACxBC,aAAa,EAAE,QAAQ;EACvBC,aAAa,EAAE,QAAQ;EACvBC,SAAS,EAAE,IAAI;EACfC,UAAU,EAAE,KAAK;EACjBC,oBAAoB,EAAE,eAAe;EACrCC,wBAAwB,EAAE,mBAAmB;EAC7CC,0BAA0B,EAAE,qBAAqB;EACjDC,wBAAwB,EAAE,mBAAmB;EAC7CC,cAAc,EAAE,SAAS;EACzBC,0BAA0B,EAAE,qBAAqB;EACjDC,0BAA0B,EAAE,qBAAqB;EACjDC,mBAAmB,EAAE,cAAc;EACnCC,sBAAsB,EAAE,iBAAiB;EACzCC,oBAAoB,EAAE,eAAe;EACrCC,SAAS,EAAE,OAAO;EAClBC,QAAQ,EAAE,MAAM;EAChBC,uBAAuB,EAAE,qBAAqB;EAC9CC,oBAAoB,EAAE;AACxB,CAAU","ignoreList":[]}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Flutter `lib/src/flutter_method_call_const.dart` 와 동일한 메서드·이벤트 이름.
5
+ * RN ViewManager 전용 prop 은 주석으로 구분합니다.
6
+ */
7
+ export const AdWhaleMethodCallConst = {
8
+ // 글로벌 (TurboModule)
9
+ /** RN TurboModule codegen — Java {@code initialize(Promise)} */
10
+ initialize: 'initialize',
11
+ /** Flutter MethodChannel 전용 (TurboModule 과 다름) */
12
+ flutterInit: '_init',
13
+ requestGdprConsent: 'requestGdprConsent',
14
+ resetGdprConsentStatus: 'resetGdprConsentStatus',
15
+ setGdpr: 'setGdpr',
16
+ getConsentStatus: 'getConsentStatus',
17
+ setTagForUnderAgeOfConsent: 'setTagForUnderAgeOfConsent',
18
+ setMaxAdContentRating: 'setMaxAdContentRating',
19
+ setTestDeviceIdentifiers: 'setTestDeviceIdentifiers',
20
+ showAdInspector: 'showAdInspector',
21
+ setCoppa: 'setCoppa',
22
+ setLoggerEnabled: 'setLoggerEnabled',
23
+ getLogLevel: 'getLogLevel',
24
+ setAppMuted: 'setAppMuted',
25
+ setAppVolume: 'setAppVolume',
26
+ // Flutter: adId 기반 배너 (RN 에는 추후 TurboModule 로 대응 가능)
27
+ loadBannerAd: 'loadBannerAd',
28
+ resumeBannerAd: 'resumeBannerAd',
29
+ pauseBannerAd: 'pauseBannerAd',
30
+ destroyBannerAd: 'destroyBannerAd',
31
+ /** RN Android 에는 아직 네이티브 구현 없음 — 상수만 동기화 */
32
+ loadPreloadBannerAd: 'loadPreloadBannerAd',
33
+ showPreloadBannerAd: 'showPreloadBannerAd',
34
+ resumePreloadBannerAd: 'resumePreloadBannerAd',
35
+ pausePreloadBannerAd: 'pausePreloadBannerAd',
36
+ destroyPreloadBannerAd: 'destroyPreloadBannerAd',
37
+ /** RN 배너 View — Flutter loadBannerAd 와 역할 유사한 prop */
38
+ loadAd: 'loadAd',
39
+ showAd: 'showAd',
40
+ placementUid: 'placementUid',
41
+ adSize: 'adSize',
42
+ factoryId: 'factoryId',
43
+ onAdInspectorClosed: 'onAdInspectorClosed',
44
+ onInitComplete: 'onInitComplete',
45
+ onAdLoaded: 'onAdLoaded',
46
+ onAdLoadFailed: 'onAdLoadFailed',
47
+ onAdFailedToLoad: 'onAdFailedToLoad',
48
+ onAdClicked: 'onAdClicked',
49
+ onNativeAdLoaded: 'onNativeAdLoaded',
50
+ onNativeAdFailedToLoad: 'onNativeAdFailedToLoad',
51
+ onNativeAdShowFailed: 'onNativeAdShowFailed',
52
+ onNativeAdClicked: 'onNativeAdClicked',
53
+ onNativeAdClosed: 'onNativeAdClosed',
54
+ onNativeAdViewHeight: 'onNativeAdViewHeight'
55
+ };
56
+ //# sourceMappingURL=AdWhaleMethodCallConst.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AdWhaleMethodCallConst","initialize","flutterInit","requestGdprConsent","resetGdprConsentStatus","setGdpr","getConsentStatus","setTagForUnderAgeOfConsent","setMaxAdContentRating","setTestDeviceIdentifiers","showAdInspector","setCoppa","setLoggerEnabled","getLogLevel","setAppMuted","setAppVolume","loadBannerAd","resumeBannerAd","pauseBannerAd","destroyBannerAd","loadPreloadBannerAd","showPreloadBannerAd","resumePreloadBannerAd","pausePreloadBannerAd","destroyPreloadBannerAd","loadAd","showAd","placementUid","adSize","factoryId","onAdInspectorClosed","onInitComplete","onAdLoaded","onAdLoadFailed","onAdFailedToLoad","onAdClicked","onNativeAdLoaded","onNativeAdFailedToLoad","onNativeAdShowFailed","onNativeAdClicked","onNativeAdClosed","onNativeAdViewHeight"],"sourceRoot":"../../../src","sources":["constants/AdWhaleMethodCallConst.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA,OAAO,MAAMA,sBAAsB,GAAG;EACpC;EACA;EACAC,UAAU,EAAE,YAAY;EACxB;EACAC,WAAW,EAAE,OAAO;EACpBC,kBAAkB,EAAE,oBAAoB;EACxCC,sBAAsB,EAAE,wBAAwB;EAChDC,OAAO,EAAE,SAAS;EAClBC,gBAAgB,EAAE,kBAAkB;EACpCC,0BAA0B,EAAE,4BAA4B;EACxDC,qBAAqB,EAAE,uBAAuB;EAC9CC,wBAAwB,EAAE,0BAA0B;EACpDC,eAAe,EAAE,iBAAiB;EAClCC,QAAQ,EAAE,UAAU;EACpBC,gBAAgB,EAAE,kBAAkB;EACpCC,WAAW,EAAE,aAAa;EAC1BC,WAAW,EAAE,aAAa;EAC1BC,YAAY,EAAE,cAAc;EAE5B;EACAC,YAAY,EAAE,cAAc;EAC5BC,cAAc,EAAE,gBAAgB;EAChCC,aAAa,EAAE,eAAe;EAC9BC,eAAe,EAAE,iBAAiB;EAElC;EACAC,mBAAmB,EAAE,qBAAqB;EAC1CC,mBAAmB,EAAE,qBAAqB;EAC1CC,qBAAqB,EAAE,uBAAuB;EAC9CC,oBAAoB,EAAE,sBAAsB;EAC5CC,sBAAsB,EAAE,wBAAwB;EAEhD;EACAC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE,QAAQ;EAChBC,YAAY,EAAE,cAAc;EAC5BC,MAAM,EAAE,QAAQ;EAChBC,SAAS,EAAE,WAAW;EAEtBC,mBAAmB,EAAE,qBAAqB;EAC1CC,cAAc,EAAE,gBAAgB;EAChCC,UAAU,EAAE,YAAY;EACxBC,cAAc,EAAE,gBAAgB;EAChCC,gBAAgB,EAAE,kBAAkB;EACpCC,WAAW,EAAE,aAAa;EAE1BC,gBAAgB,EAAE,kBAAkB;EACpCC,sBAAsB,EAAE,wBAAwB;EAChDC,oBAAoB,EAAE,sBAAsB;EAC5CC,iBAAiB,EAAE,mBAAmB;EACtCC,gBAAgB,EAAE,kBAAkB;EACpCC,oBAAoB,EAAE;AACxB,CAAU","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Flutter `FlutterMethodResultConst` 와 동일한 Promise.reject / result.error 코드 문자열.
5
+ */
6
+ export const AdWhaleMethodResultConst = {
7
+ noActivity: 'NoActivity',
8
+ invalidArgs: 'InvalidArgs',
9
+ nativeAdError: 'NativeAdError',
10
+ preloadBannerError: 'PreloadBannerError',
11
+ bannerAdError: 'BannerAdError',
12
+ adShowError: 'AdShowError',
13
+ openInspectorFailed: 'OpenInspectorFailed',
14
+ getLogLevelError: 'GetLogLevelError'
15
+ };
16
+ //# sourceMappingURL=AdWhaleMethodResultConst.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AdWhaleMethodResultConst","noActivity","invalidArgs","nativeAdError","preloadBannerError","bannerAdError","adShowError","openInspectorFailed","getLogLevelError"],"sourceRoot":"../../../src","sources":["constants/AdWhaleMethodResultConst.ts"],"mappings":";;AAAA;AACA;AACA;AACA,OAAO,MAAMA,wBAAwB,GAAG;EACtCC,UAAU,EAAE,YAAY;EACxBC,WAAW,EAAE,aAAa;EAC1BC,aAAa,EAAE,eAAe;EAC9BC,kBAAkB,EAAE,oBAAoB;EACxCC,aAAa,EAAE,eAAe;EAC9BC,WAAW,EAAE,aAAa;EAC1BC,mBAAmB,EAAE,qBAAqB;EAC1CC,gBAAgB,EAAE;AACpB,CAAU","ignoreList":[]}
@@ -13,14 +13,23 @@ export { AdWhaleMediationAds } from "./AdWhaleMediationAds.js";
13
13
  // AdWhaleMediationAds.resetGdprConsentStatus()
14
14
  // AdWhaleMediationAds.setGdpr(true)
15
15
 
16
+ // Flutter 브릿지 상수와 동일 문자열 유지 (유지보수 시 Flutter 저장소와 대조)
17
+ export { AdWhaleMethodCallConst } from "./constants/AdWhaleMethodCallConst.js";
18
+ export { AdWhaleMethodArgConst } from "./constants/AdWhaleMethodArgConst.js";
19
+ export { AdWhaleMethodResultConst } from "./constants/AdWhaleMethodResultConst.js";
20
+
16
21
  // ✅ 2) 배너 광고 View 컴포넌트
17
- export { AdWhaleAdView, AdWhaleAdSize } from "./AdWhaleAdView.js";
22
+ export { AdWhaleAdView, AdWhaleAdSize, ADWHALE_BANNER_IOS_UNSUPPORTED_STATUS_CODE, isAdWhaleBannerAdSizeSupportedOnIos } from "./AdWhaleAdView.js";
18
23
  // ✅ 3) 전면 광고 API
19
24
  export { AdWhaleInterstitialAd } from "./AdWhaleInterstitialAd.js";
20
25
  // ✅ 4) 리워드 광고 API
21
26
  export { AdWhaleRewardAd } from "./AdWhaleRewardAd.js";
22
27
  // ✅ 5) 앱 오프닝 광고 API
23
28
  export { AdWhaleAppOpenAd } from "./AdWhaleAppOpenAd.js";
29
+ // ✅ 5.1) 종료 팝업 광고 API (Android)
30
+ export { AdWhaleExitPopupAd } from "./AdWhaleExitPopupAd.js";
31
+ // ✅ 5.2) 앱 전환 팝업 광고 API (Android)
32
+ export { AdWhaleTransitionPopupAd } from "./AdWhaleTransitionPopupAd.js";
24
33
  // ✅ 6) 네이티브 커스텀 뷰 (네이티브 템플릿/커스텀용)
25
34
  export { AdWhaleNativeCustomView } from "./AdWhaleNativeCustomView.js";
26
35
  // ✅ 7) (선택) 네이티브 템플릿 뷰가 있다면 그대로 유지
@@ -1 +1 @@
1
- {"version":3,"names":["AdWhaleMediationAds","AdWhaleAdView","AdWhaleAdSize","AdWhaleInterstitialAd","AdWhaleRewardAd","AdWhaleAppOpenAd","AdWhaleNativeCustomView"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;;AAEA;AACA,SAASA,mBAAmB,QAAQ,0BAAuB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA,SACEC,aAAa,EACbC,aAAa,QACR,oBAAiB;AAOxB;AACA,SACEC,qBAAqB,QAChB,4BAAyB;AAOhC;AACA,SACEC,eAAe,QACV,sBAAmB;AAQ1B;AACA,SACEC,gBAAgB,QACX,uBAAoB;AAO3B;AACA,SACEC,uBAAuB,QAClB,8BAA2B;AAQlC;AACA;AACA;AACA,cAAc,gCAA6B","ignoreList":[]}
1
+ {"version":3,"names":["AdWhaleMediationAds","AdWhaleMethodCallConst","AdWhaleMethodArgConst","AdWhaleMethodResultConst","AdWhaleAdView","AdWhaleAdSize","ADWHALE_BANNER_IOS_UNSUPPORTED_STATUS_CODE","isAdWhaleBannerAdSizeSupportedOnIos","AdWhaleInterstitialAd","AdWhaleRewardAd","AdWhaleAppOpenAd","AdWhaleExitPopupAd","AdWhaleTransitionPopupAd","AdWhaleNativeCustomView"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;;AAEA;AACA,SAASA,mBAAmB,QAAQ,0BAAuB;AAM3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SACEC,sBAAsB,QAEjB,uCAAoC;AAC3C,SAASC,qBAAqB,QAAQ,sCAAmC;AACzE,SAASC,wBAAwB,QAAQ,yCAAsC;;AAE/E;AACA,SACEC,aAAa,EACbC,aAAa,EACbC,0CAA0C,EAC1CC,mCAAmC,QAC9B,oBAAiB;AAOxB;AACA,SACEC,qBAAqB,QAChB,4BAAyB;AAOhC;AACA,SACEC,eAAe,QACV,sBAAmB;AAQ1B;AACA,SACEC,gBAAgB,QACX,uBAAoB;AAO3B;AACA,SAASC,kBAAkB,QAAQ,yBAAsB;AAQzD;AACA,SAASC,wBAAwB,QAAQ,+BAA4B;AASrE;AACA,SACEC,uBAAuB,QAClB,8BAA2B;AAQlC;AACA;AACA;AACA,cAAc,gCAA6B","ignoreList":[]}
@@ -11,21 +11,39 @@ export declare enum AdWhaleAdSize {
11
11
  BANNER_320x100 = "BANNER320x100",
12
12
  /** 중간 직사각형 (300x250) */
13
13
  BANNER_300x250 = "BANNER300x250",
14
- /** 정사각형 (250x250) */
14
+ /**
15
+ * 정사각형 (250x250)
16
+ * iOS: AdWhale iOS SDK 미지원 — 네이티브에서 로드하지 않으며 `onAdLoadFailed`(statusCode -100) 가 호출됩니다.
17
+ */
15
18
  BANNER_250x250 = "BANNER250x250",
16
- /** 적응형 앵커 배너 - adaptiveAnchorWidth와 함께 사용 */
19
+ /**
20
+ * 적응형 앵커 배너 - adaptiveAnchorWidth와 함께 사용
21
+ * iOS: AdWhale iOS SDK 미지원 — 네이티브에서 로드하지 않으며 `onAdLoadFailed`(statusCode -100) 가 호출됩니다.
22
+ */
17
23
  ADAPTIVE_ANCHOR = "ADAPTIVE_ANCHOR"
18
24
  }
25
+ /**
26
+ * AdWhale iOS SDK 가 해당 배너 사이즈를 지원하는지 (UI 비활성화 등에 사용).
27
+ * Android / 기타 플랫폼에서는 항상 true.
28
+ */
29
+ export declare function isAdWhaleBannerAdSizeSupportedOnIos(adSize: AdWhaleAdSize): boolean;
19
30
  export interface AdWhaleBannerError {
20
31
  statusCode: number;
21
32
  message: string;
22
33
  }
34
+ /** iOS: BANNER250x250 / ADAPTIVE_ANCHOR 요청 시 네이티브 `onAdLoadFailed` 의 statusCode */
35
+ export declare const ADWHALE_BANNER_IOS_UNSUPPORTED_STATUS_CODE = -100;
23
36
  export interface AdWhaleBannerGcoder {
24
37
  lt: number;
25
38
  lng: number;
26
39
  }
27
40
  export interface AdWhaleBannerViewProps {
28
41
  style?: StyleProp<ViewStyle>;
42
+ /**
43
+ * Flutter와 동일한 개념의 배너 인스턴스 식별자.
44
+ * RN은 View 기반이므로, 여러 배너를 동시에 운용할 때 이벤트 라우팅/로그 추적 용도로 사용합니다.
45
+ */
46
+ adId?: number;
29
47
  placementUid: string;
30
48
  placementName?: string;
31
49
  region?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"AdWhaleAdView.d.ts","sourceRoot":"","sources":["../../../src/AdWhaleAdView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAwB,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE/E;;;GAGG;AACH,oBAAY,aAAa;IACvB,qBAAqB;IACrB,aAAa,iBAAiB;IAC9B,qBAAqB;IACrB,cAAc,kBAAkB;IAChC,wBAAwB;IACxB,cAAc,kBAAkB;IAChC,qBAAqB;IACrB,cAAc,kBAAkB;IAChC,6CAA6C;IAC7C,eAAe,oBAAoB;CACpC;AAED,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;;;OAGG;IACH,MAAM,EAAE,aAAa,CAAC;IACtB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,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,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAsB1D,CAAC"}
1
+ {"version":3,"file":"AdWhaleAdView.d.ts","sourceRoot":"","sources":["../../../src/AdWhaleAdView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAwB,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE/E;;;GAGG;AACH,oBAAY,aAAa;IACvB,qBAAqB;IACrB,aAAa,iBAAiB;IAC9B,qBAAqB;IACrB,cAAc,kBAAkB;IAChC,wBAAwB;IACxB,cAAc,kBAAkB;IAChC;;;OAGG;IACH,cAAc,kBAAkB;IAChC;;;OAGG;IACH,eAAe,oBAAoB;CACpC;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,aAAa,GACpB,OAAO,CAQT;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,mFAAmF;AACnF,eAAO,MAAM,0CAA0C,OAAO,CAAC;AAE/D,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;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B;;;OAGG;IACH,MAAM,EAAE,aAAa,CAAC;IACtB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,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;AAoBD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAwE1D,CAAC"}
@@ -22,6 +22,16 @@ export declare const AdWhaleAppOpenAd: {
22
22
  gcoder?: AdWhaleAppOpenAdGcoder;
23
23
  }): void;
24
24
  showAd(): void;
25
+ /** Flutter와 동일한 신규 API (권장) */
26
+ loadAppOpenAd(adId: number, placementUid: string, options?: {
27
+ placementName?: string;
28
+ region?: string;
29
+ gcoder?: AdWhaleAppOpenAdGcoder;
30
+ }): void;
31
+ showAdWithoutView(adId: number): void;
32
+ destroyAd(adId: number): void;
25
33
  addEventListeners(listeners: AdWhaleAppOpenEvents): EmitterSubscription[];
34
+ /** Flutter `onAdEvent` 스타일 (adId 필터링) */
35
+ addAdEventListenersById(adId: number, listeners: AdWhaleAppOpenEvents): EmitterSubscription[];
26
36
  };
27
37
  //# sourceMappingURL=AdWhaleAppOpenAd.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdWhaleAppOpenAd.d.ts","sourceRoot":"","sources":["../../../src/AdWhaleAppOpenAd.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACzD,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AAkBD,eAAO,MAAM,gBAAgB;yBAEX,MAAM,YACV;QACR,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,sBAAsB,CAAC;KACjC;;iCAoB0B,oBAAoB,GAAG,mBAAmB,EAAE;CAkD1E,CAAC"}
1
+ {"version":3,"file":"AdWhaleAppOpenAd.d.ts","sourceRoot":"","sources":["../../../src/AdWhaleAppOpenAd.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACzD,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AAgCD,eAAO,MAAM,gBAAgB;yBAEX,MAAM,YACV;QACR,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,sBAAsB,CAAC;KACjC;;IAuDH,+BAA+B;wBAEvB,MAAM,gBACE,MAAM,YACV;QACR,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,sBAAsB,CAAC;KACjC;4BAmBqB,MAAM;oBAYd,MAAM;iCAIO,oBAAoB,GAAG,mBAAmB,EAAE;IAmIzE,yCAAyC;kCAEjC,MAAM,aACD,oBAAoB,GAC9B,mBAAmB,EAAE;CA8EzB,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { EmitterSubscription } from 'react-native';
2
+ export interface AdWhaleExitPopupAdErrorEvent {
3
+ statusCode: number;
4
+ message: string;
5
+ }
6
+ export interface AdWhaleExitPopupAdClosedEvent {
7
+ reasonId: number;
8
+ reasonMessage: string;
9
+ }
10
+ export interface AdWhaleExitPopupAdEvents {
11
+ onLoaded?: () => void;
12
+ onLoadFailed?: (event: AdWhaleExitPopupAdErrorEvent) => void;
13
+ onShowed?: () => void;
14
+ onShowFailed?: (event: AdWhaleExitPopupAdErrorEvent) => void;
15
+ onClicked?: () => void;
16
+ onClosed?: (event: AdWhaleExitPopupAdClosedEvent) => void;
17
+ }
18
+ export interface AdWhaleExitPopupGcoder {
19
+ lt: number;
20
+ lng: number;
21
+ }
22
+ export declare const AdWhaleExitPopupAd: {
23
+ loadAd(placementUid: string, options?: {
24
+ placementName?: string;
25
+ region?: string;
26
+ gcoder?: AdWhaleExitPopupGcoder;
27
+ primaryButtonText?: string;
28
+ secondaryButtonText?: string;
29
+ descriptionText?: string;
30
+ }): void;
31
+ showAd(): void;
32
+ destroy(): void;
33
+ resume(): void;
34
+ addEventListeners(listeners: AdWhaleExitPopupAdEvents): EmitterSubscription[];
35
+ };
36
+ //# sourceMappingURL=AdWhaleExitPopupAd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdWhaleExitPopupAd.d.ts","sourceRoot":"","sources":["../../../src/AdWhaleExitPopupAd.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,WAAW,4BAA4B;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,CAAC;IAC7D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,CAAC;IAC7D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,6BAA6B,KAAK,IAAI,CAAC;CAC3D;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AAgCD,eAAO,MAAM,kBAAkB;yBAEb,MAAM,YACV;QACR,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,sBAAsB,CAAC;QAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B;;;;iCAyDU,wBAAwB,GAClC,mBAAmB,EAAE;CAoDzB,CAAC"}
@@ -22,6 +22,22 @@ export declare const AdWhaleInterstitialAd: {
22
22
  gcoder?: AdWhaleInterstitialGcoder;
23
23
  }): void;
24
24
  showAd(): void;
25
+ /**
26
+ * Flutter와 동일한 형태로 맞춘 신규 API (권장).
27
+ * - 광고를 여러 개 동시에 운용하려면 adId를 사용하세요.
28
+ */
29
+ loadInterstitialAd(adId: number, placementUid: string, options?: {
30
+ placementName?: string;
31
+ region?: string;
32
+ gcoder?: AdWhaleInterstitialGcoder;
33
+ }): void;
34
+ showAdWithoutView(adId: number): void;
35
+ destroyAd(adId: number): void;
25
36
  addEventListeners(listeners: AdWhaleInterstitialEvents): EmitterSubscription[];
37
+ /**
38
+ * Flutter `onAdEvent` 스타일: payload에 eventName + adId를 포함.
39
+ * 네이티브가 지원하는 경우, 특정 adId만 필터링해서 이벤트를 받을 수 있습니다.
40
+ */
41
+ addAdEventListenersById(adId: number, listeners: AdWhaleInterstitialEvents): EmitterSubscription[];
26
42
  };
27
43
  //# sourceMappingURL=AdWhaleInterstitialAd.d.ts.map
@@ -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;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
+ {"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;AAmCD,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;;IAyDH;;;OAGG;6BAEK,MAAM,gBACE,MAAM,YACV;QACR,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,yBAAyB,CAAC;KACpC;4BAoBqB,MAAM;oBAad,MAAM;iCAIO,yBAAyB,GAAG,mBAAmB,EAAE;IAkE9E;;;OAGG;kCAEK,MAAM,aACD,yBAAyB,GACnC,mBAAmB,EAAE;CA+CzB,CAAC"}
@@ -1,13 +1,14 @@
1
- import { type InitializeResult } from './NativeAdwhaleSdkReactNative';
1
+ import { type AdInspectorResult, type GdprConsentResult, type InitializeResult } from './NativeAdwhaleSdkReactNative';
2
2
  export declare const AdWhaleMediationAds: {
3
+ /**
4
+ * Flutter `AdWhaleMediationAds.instance.initialize()` 와 동일.
5
+ * 네이티브 TurboModule 은 codegen 에 따라 `initialize` 를 호출하며, 성공 맵은 `statusCode` + `message` 만 반환합니다.
6
+ */
3
7
  initialize(): Promise<InitializeResult>;
4
8
  setLoggerEnabled(enabled: boolean): void;
5
9
  getLogLevel(): Promise<string>;
6
10
  setCoppa(enabled: boolean): void;
7
- requestGdprConsent(): Promise<{
8
- isSuccess: boolean;
9
- message: string;
10
- }>;
11
+ requestGdprConsent(): Promise<GdprConsentResult>;
11
12
  getConsentStatus(): Promise<{
12
13
  coppa: boolean;
13
14
  gdpr: string;
@@ -15,5 +16,12 @@ export declare const AdWhaleMediationAds: {
15
16
  }>;
16
17
  resetGdprConsentStatus(): void;
17
18
  setGdpr(consent: boolean): void;
19
+ setTagForUnderAgeOfConsent(tag: boolean): void;
20
+ setMaxAdContentRating(rating: string | null | undefined): void;
21
+ setTestDeviceIdentifiers(testDeviceIds: string[] | null | undefined): void;
22
+ showAdInspector(): Promise<AdInspectorResult>;
23
+ setAppMuted(isMuted: boolean): void;
24
+ setAppVolume(volume: number): void;
18
25
  };
26
+ export type { InitializeResult, GdprConsentResult, AdInspectorResult };
19
27
  //# sourceMappingURL=AdWhaleMediationAds.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdWhaleMediationAds.d.ts","sourceRoot":"","sources":["../../../src/AdWhaleMediationAds.ts"],"names":[],"mappings":"AAEA,OAAoC,EAAE,KAAK,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAmCnG,eAAO,MAAM,mBAAmB;kBAChB,OAAO,CAAC,gBAAgB,CAAC;8BAOb,OAAO;mBAIlB,OAAO,CAAC,MAAM,CAAC;sBASZ,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"}
1
+ {"version":3,"file":"AdWhaleMediationAds.d.ts","sourceRoot":"","sources":["../../../src/AdWhaleMediationAds.ts"],"names":[],"mappings":"AAEA,OAAoC,EAClC,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,+BAA+B,CAAC;AA6CvC,eAAO,MAAM,mBAAmB;IAC9B;;;OAGG;kBACW,OAAO,CAAC,gBAAgB,CAAC;8BAUb,OAAO;mBAQlB,OAAO,CAAC,MAAM,CAAC;sBAcZ,OAAO;0BASH,OAAO,CAAC,iBAAiB,CAAC;wBAU5B,OAAO,CAAC;QAC1B,KAAK,EAAE,OAAO,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,mBAAmB,EAAE,OAAO,CAAC;KAC9B,CAAC;;qBAmBe,OAAO;oCAeQ,OAAO;kCAUT,MAAM,GAAG,IAAI,GAAG,SAAS;4CAcf,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS;uBAahD,OAAO,CAAC,iBAAiB,CAAC;yBASxB,OAAO;yBAUP,MAAM;CAS5B,CAAC;AAEF,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import type { StyleProp, ViewStyle } from 'react-native';
3
3
  export interface AdWhaleNativeCustomError {
4
- errorCode: number;
5
- errorMessage: string;
4
+ statusCode: number;
5
+ message: string;
6
6
  }
7
7
  export interface AdWhaleNativeCustomGcoder {
8
8
  lt: number;
@@ -15,8 +15,11 @@ export interface AdWhaleNativeCustomViewProps {
15
15
  placementName?: string;
16
16
  region?: string;
17
17
  gcoder?: AdWhaleNativeCustomGcoder;
18
- onAdLoaded?: () => void;
19
- onAdFailedToLoad?: (event: AdWhaleNativeCustomError) => void;
18
+ onNativeAdLoaded?: () => void;
19
+ onNativeAdFailedToLoad?: (event: AdWhaleNativeCustomError) => void;
20
+ onNativeAdShowFailed?: (event: AdWhaleNativeCustomError) => void;
21
+ onNativeAdClicked?: () => void;
22
+ onNativeAdClosed?: () => void;
20
23
  }
21
24
  export interface AdWhaleNativeCustomHandle {
22
25
  loadAd(): 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,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,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,yBAAyB,CAAC;IAEnC,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,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;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,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,yBAAyB,CAAC;IAEnC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACnE,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACjE,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,IAAI,IAAI,CAAC;CAChB;AAmBD,eAAO,MAAM,uBAAuB,gHAoGlC,CAAC"}
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import type { StyleProp, ViewStyle } from 'react-native';
3
2
  export type AdWhaleNativeTemplateType = 'SMALL' | 'MEDIUM' | 'FULLSCREEN';
4
3
  export interface AdWhaleNativeTemplateStyle {
@@ -20,8 +19,8 @@ export interface AdWhaleNativeTemplateStyle {
20
19
  callToActionTextTypeface?: 'bold' | 'italic';
21
20
  }
22
21
  export interface AdWhaleNativeTemplateError {
23
- errorCode: number;
24
- errorMessage: string;
22
+ statusCode: number;
23
+ message: string;
25
24
  }
26
25
  export interface AdWhaleNativeTemplateGcoder {
27
26
  lt: number;
@@ -35,13 +34,27 @@ export interface AdWhaleNativeTemplateViewProps {
35
34
  gcoder?: AdWhaleNativeTemplateGcoder;
36
35
  template: AdWhaleNativeTemplateType;
37
36
  templateStyle?: AdWhaleNativeTemplateStyle;
38
- onAdLoaded?: () => void;
39
- onAdFailedToLoad?: (event: AdWhaleNativeTemplateError) => void;
40
- onAdShowFailed?: (event: AdWhaleNativeTemplateError) => void;
37
+ /**
38
+ * Android Fabric: `ref.loadAd()` 대신 부모 state로 증가시키는 방식(권장).
39
+ * 지정 0은 무시, 1 이상이 바뀔 때마다 네이티브 load. 타입 전환 시 0으로 리셋 후 증가.
40
+ */
41
+ loadSignal?: number;
42
+ /** {@link loadSignal}과 동일하게 표시 트리거 */
43
+ showSignal?: number;
44
+ /**
45
+ * 템플릿/스타일 전환 시마다 바꿔 주는 논리 인스턴스 키(예: `adViewKey`).
46
+ * `loadSignal`이 다시 1이 되어도 네이티브가 이전 인스턴스와 동일 요청으로 오인해 스킵하지 않게 합니다.
47
+ */
48
+ viewSyncKey?: number;
49
+ onNativeAdLoaded?: () => void;
50
+ onNativeAdFailedToLoad?: (event: AdWhaleNativeTemplateError) => void;
51
+ onNativeAdShowFailed?: (event: AdWhaleNativeTemplateError) => void;
52
+ onNativeAdClicked?: () => void;
53
+ onNativeAdClosed?: () => void;
41
54
  }
42
55
  export interface AdWhaleNativeTemplateHandle {
43
56
  loadAd(): void;
44
57
  showAd(): void;
45
58
  }
46
- export declare const AdWhaleNativeTemplateView: React.ForwardRefExoticComponent<AdWhaleNativeTemplateViewProps & React.RefAttributes<AdWhaleNativeTemplateHandle>>;
59
+ export declare const AdWhaleNativeTemplateView: import("react").ForwardRefExoticComponent<AdWhaleNativeTemplateViewProps & import("react").RefAttributes<AdWhaleNativeTemplateHandle>>;
47
60
  //# sourceMappingURL=AdWhaleNativeTemplateView.d.ts.map
@@ -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,GAAG,YAAY,CAAC;AAE1E,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"}
1
+ {"version":3,"file":"AdWhaleNativeTemplateView.d.ts","sourceRoot":"","sources":["../../../src/AdWhaleNativeTemplateView.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,SAAS,EAET,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,yBAAyB,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE1E,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,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;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;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACrE,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACnE,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,IAAI,IAAI,CAAC;CAChB;AA2BD,eAAO,MAAM,yBAAyB,wIA+DpC,CAAC"}
@@ -4,8 +4,14 @@ export interface AdWhaleRewardErrorEvent {
4
4
  message: string;
5
5
  }
6
6
  export interface AdWhaleRewardUserRewardedEvent {
7
- type: string;
8
- amount: number;
7
+ /** Flutter payload key */
8
+ RewardType?: string;
9
+ /** Flutter payload key */
10
+ RewardAmount?: number;
11
+ /** 레거시 호환 */
12
+ type?: string;
13
+ /** 레거시 호환 */
14
+ amount?: number;
9
15
  }
10
16
  export interface AdWhaleRewardEvents {
11
17
  onLoaded?: () => void;
@@ -27,6 +33,16 @@ export declare const AdWhaleRewardAd: {
27
33
  gcoder?: AdWhaleRewardGcoder;
28
34
  }): void;
29
35
  showAd(): void;
36
+ /** Flutter와 동일한 신규 API (권장) */
37
+ loadRewardAd(adId: number, placementUid: string, options?: {
38
+ placementName?: string;
39
+ region?: string;
40
+ gcoder?: AdWhaleRewardGcoder;
41
+ }): void;
42
+ showAdWithoutView(adId: number): void;
43
+ destroyAd(adId: number): void;
30
44
  addEventListeners(listeners: AdWhaleRewardEvents): EmitterSubscription[];
45
+ /** Flutter `onAdEvent` 스타일 (adId 필터링) */
46
+ addAdEventListenersById(adId: number, listeners: AdWhaleRewardEvents): EmitterSubscription[];
31
47
  };
32
48
  //# sourceMappingURL=AdWhaleRewardAd.d.ts.map
@@ -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;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
+ {"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,0BAA0B;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;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;AAgCD,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;;IAuDH,+BAA+B;uBAEvB,MAAM,gBACE,MAAM,YACV;QACR,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,mBAAmB,CAAC;KAC9B;4BAmBqB,MAAM;oBAYd,MAAM;iCAIO,mBAAmB,GAAG,mBAAmB,EAAE;IAmGxE,yCAAyC;kCAEjC,MAAM,aACD,mBAAmB,GAC7B,mBAAmB,EAAE;CA4DzB,CAAC"}