adwhale-sdk-react-native 2.7.100

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 (66) hide show
  1. package/AdwhaleSdkReactNative.podspec +20 -0
  2. package/LICENSE +20 -0
  3. package/README.md +121 -0
  4. package/android/build.gradle +135 -0
  5. package/android/gradle.properties +2 -0
  6. package/android/proguard-rules.pro +247 -0
  7. package/android/settings.gradle +71 -0
  8. package/android/src/main/AndroidManifest.xml +2 -0
  9. package/android/src/main/java/com/adwhalesdkreactnative/AdwhaleSdkReactNativePackage.java +130 -0
  10. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationAdSettingModule.java +64 -0
  11. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationAdView.java +172 -0
  12. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationCustomNativeAdView.java +197 -0
  13. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationInterstitialAd.java +134 -0
  14. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationLoggerModule.java +35 -0
  15. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationRewardAd.java +151 -0
  16. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationTemplateNativeAdView.java +317 -0
  17. package/android/src/main/java/com/adwhalesdkreactnative/RNWrapperView.java +48 -0
  18. package/android/src/main/res/layout/custom_native_ad_layout.xml +58 -0
  19. package/app.plugin.js +2 -0
  20. package/ios/AdwhaleSdkReactNative.h +5 -0
  21. package/ios/AdwhaleSdkReactNative.mm +21 -0
  22. package/lib/module/AdWhaleBannerView.js +20 -0
  23. package/lib/module/AdWhaleBannerView.js.map +1 -0
  24. package/lib/module/AdWhaleInterstitialAd.js +47 -0
  25. package/lib/module/AdWhaleInterstitialAd.js.map +1 -0
  26. package/lib/module/AdWhaleMediationSdk.js +48 -0
  27. package/lib/module/AdWhaleMediationSdk.js.map +1 -0
  28. package/lib/module/AdWhaleNativeCustomView.js +36 -0
  29. package/lib/module/AdWhaleNativeCustomView.js.map +1 -0
  30. package/lib/module/AdWhaleNativeTemplateView.js +40 -0
  31. package/lib/module/AdWhaleNativeTemplateView.js.map +1 -0
  32. package/lib/module/AdWhaleRewardAd.js +50 -0
  33. package/lib/module/AdWhaleRewardAd.js.map +1 -0
  34. package/lib/module/NativeAdwhaleSdkReactNative.js +5 -0
  35. package/lib/module/NativeAdwhaleSdkReactNative.js.map +1 -0
  36. package/lib/module/index.js +28 -0
  37. package/lib/module/index.js.map +1 -0
  38. package/lib/module/package.json +1 -0
  39. package/lib/typescript/package.json +1 -0
  40. package/lib/typescript/src/AdWhaleBannerView.d.ts +18 -0
  41. package/lib/typescript/src/AdWhaleBannerView.d.ts.map +1 -0
  42. package/lib/typescript/src/AdWhaleInterstitialAd.d.ts +19 -0
  43. package/lib/typescript/src/AdWhaleInterstitialAd.d.ts.map +1 -0
  44. package/lib/typescript/src/AdWhaleMediationSdk.d.ts +17 -0
  45. package/lib/typescript/src/AdWhaleMediationSdk.d.ts.map +1 -0
  46. package/lib/typescript/src/AdWhaleNativeCustomView.d.ts +19 -0
  47. package/lib/typescript/src/AdWhaleNativeCustomView.d.ts.map +1 -0
  48. package/lib/typescript/src/AdWhaleNativeTemplateView.d.ts +40 -0
  49. package/lib/typescript/src/AdWhaleNativeTemplateView.d.ts.map +1 -0
  50. package/lib/typescript/src/AdWhaleRewardAd.d.ts +24 -0
  51. package/lib/typescript/src/AdWhaleRewardAd.d.ts.map +1 -0
  52. package/lib/typescript/src/NativeAdwhaleSdkReactNative.d.ts +7 -0
  53. package/lib/typescript/src/NativeAdwhaleSdkReactNative.d.ts.map +1 -0
  54. package/lib/typescript/src/index.d.ts +11 -0
  55. package/lib/typescript/src/index.d.ts.map +1 -0
  56. package/package.json +168 -0
  57. package/plugin/index.js +16 -0
  58. package/react-native.config.js +30 -0
  59. package/src/AdWhaleBannerView.tsx +53 -0
  60. package/src/AdWhaleInterstitialAd.ts +93 -0
  61. package/src/AdWhaleMediationSdk.ts +93 -0
  62. package/src/AdWhaleNativeCustomView.tsx +87 -0
  63. package/src/AdWhaleNativeTemplateView.tsx +119 -0
  64. package/src/AdWhaleRewardAd.ts +106 -0
  65. package/src/NativeAdwhaleSdkReactNative.ts +7 -0
  66. package/src/index.ts +61 -0
@@ -0,0 +1,106 @@
1
+ // src/AdWhaleRewardAd.ts
2
+ import { NativeEventEmitter, NativeModules } from 'react-native';
3
+ import type { EmitterSubscription } from 'react-native';
4
+
5
+ export interface AdWhaleRewardErrorEvent {
6
+ statusCode: number;
7
+ message: string;
8
+ }
9
+
10
+ export interface AdWhaleRewardUserRewardedEvent {
11
+ type: string;
12
+ amount: number;
13
+ }
14
+
15
+ export interface AdWhaleRewardEvents {
16
+ onLoaded?: () => void;
17
+ onLoadFailed?: (event: AdWhaleRewardErrorEvent) => void;
18
+ onShowed?: () => void;
19
+ onShowFailed?: (event: AdWhaleRewardErrorEvent) => void;
20
+ onDismissed?: () => void;
21
+ onClicked?: () => void;
22
+ onUserRewarded?: (event: AdWhaleRewardUserRewardedEvent) => void;
23
+ }
24
+
25
+ interface RNAdWhaleMediationRewardAdNativeModule {
26
+ loadAd(placementUid: string): void;
27
+ showAd(): void;
28
+ addListener(eventName: string): void;
29
+ removeListeners(count: number): void;
30
+ }
31
+
32
+ const { RNAdWhaleMediationRewardAd } = NativeModules as {
33
+ RNAdWhaleMediationRewardAd: RNAdWhaleMediationRewardAdNativeModule;
34
+ };
35
+
36
+ const rewardEmitter = new NativeEventEmitter(RNAdWhaleMediationRewardAd);
37
+
38
+ export const AdWhaleRewardAd = {
39
+ loadAd(placementUid: string) {
40
+ RNAdWhaleMediationRewardAd.loadAd(placementUid);
41
+ },
42
+
43
+ showAd() {
44
+ RNAdWhaleMediationRewardAd.showAd();
45
+ },
46
+
47
+ addEventListeners(listeners: AdWhaleRewardEvents): EmitterSubscription[] {
48
+ const subs: EmitterSubscription[] = [];
49
+
50
+ if (listeners.onLoaded) {
51
+ subs.push(
52
+ rewardEmitter.addListener('onRewardAdLoaded', () => {
53
+ listeners.onLoaded?.();
54
+ }),
55
+ );
56
+ }
57
+ if (listeners.onLoadFailed) {
58
+ subs.push(
59
+ rewardEmitter.addListener(
60
+ 'onRewardAdFailedToLoad',
61
+ event => listeners.onLoadFailed?.(event as AdWhaleRewardErrorEvent),
62
+ ),
63
+ );
64
+ }
65
+ if (listeners.onShowed) {
66
+ subs.push(
67
+ rewardEmitter.addListener('onRewardAdShowed', () => {
68
+ listeners.onShowed?.();
69
+ }),
70
+ );
71
+ }
72
+ if (listeners.onShowFailed) {
73
+ subs.push(
74
+ rewardEmitter.addListener(
75
+ 'onRewardAdFailedToShow',
76
+ event => listeners.onShowFailed?.(event as AdWhaleRewardErrorEvent),
77
+ ),
78
+ );
79
+ }
80
+ if (listeners.onDismissed) {
81
+ subs.push(
82
+ rewardEmitter.addListener('onRewardAdDismissed', () => {
83
+ listeners.onDismissed?.();
84
+ }),
85
+ );
86
+ }
87
+ if (listeners.onClicked) {
88
+ subs.push(
89
+ rewardEmitter.addListener('onRewardAdClicked', () => {
90
+ listeners.onClicked?.();
91
+ }),
92
+ );
93
+ }
94
+ if (listeners.onUserRewarded) {
95
+ subs.push(
96
+ rewardEmitter.addListener(
97
+ 'onUserRewarded',
98
+ event =>
99
+ listeners.onUserRewarded?.(event as AdWhaleRewardUserRewardedEvent),
100
+ ),
101
+ );
102
+ }
103
+
104
+ return subs;
105
+ },
106
+ };
@@ -0,0 +1,7 @@
1
+ import { TurboModuleRegistry, type TurboModule } from 'react-native';
2
+
3
+ export interface Spec extends TurboModule {
4
+ initialize(): Promise<number>;
5
+ }
6
+
7
+ export default TurboModuleRegistry.getEnforcing<Spec>('AdwhaleSdkReactNative');
package/src/index.ts ADDED
@@ -0,0 +1,61 @@
1
+ // src/index.tsx
2
+
3
+ // ✅ 1) SDK 초기화 / 설정 (TurboModule 래퍼)
4
+ export { AdWhaleMediationSdk } from './AdWhaleMediationSdk';
5
+ // 사용 예:
6
+ // AdWhaleMediationSdk.initialize()
7
+ // AdWhaleMediationSdk.setLoggerEnabled(true)
8
+ // AdWhaleMediationSdk.setCoppa(true)
9
+ // AdWhaleMediationSdk.requestGdprConsent()
10
+ // AdWhaleMediationSdk.getConsentStatus()
11
+ // AdWhaleMediationSdk.resetGdprConsentStatus()
12
+ // AdWhaleMediationSdk.setGdpr(true)
13
+
14
+
15
+ // ✅ 2) 배너 광고 View 컴포넌트
16
+ export {
17
+ AdWhaleBannerView,
18
+ } from './AdWhaleBannerView';
19
+ export type {
20
+ AdWhaleBannerSize,
21
+ AdWhaleBannerError,
22
+ AdWhaleBannerViewProps,
23
+ } from './AdWhaleBannerView';
24
+
25
+
26
+ // ✅ 3) 전면 광고 API
27
+ export {
28
+ AdWhaleInterstitialAd,
29
+ } from './AdWhaleInterstitialAd';
30
+ export type {
31
+ AdWhaleInterstitialErrorEvent,
32
+ AdWhaleInterstitialEvents,
33
+ } from './AdWhaleInterstitialAd';
34
+
35
+
36
+ // ✅ 4) 리워드 광고 API
37
+ export {
38
+ AdWhaleRewardAd,
39
+ } from './AdWhaleRewardAd';
40
+ export type {
41
+ AdWhaleRewardErrorEvent,
42
+ AdWhaleRewardUserRewardedEvent,
43
+ AdWhaleRewardEvents,
44
+ } from './AdWhaleRewardAd';
45
+
46
+
47
+ // ✅ 5) 네이티브 커스텀 뷰 (네이티브 템플릿/커스텀용)
48
+ export {
49
+ AdWhaleNativeCustomView,
50
+ } from './AdWhaleNativeCustomView';
51
+ export type {
52
+ AdWhaleNativeCustomHandle,
53
+ AdWhaleNativeCustomViewProps,
54
+ AdWhaleNativeCustomError,
55
+ } from './AdWhaleNativeCustomView';
56
+
57
+
58
+ // ✅ 6) (선택) 네이티브 템플릿 뷰가 있다면 그대로 유지
59
+ // 파일이 실제로 있다면 그대로 유효하고,
60
+ // 나중에 뺄 거면 여기 export 한 줄만 지우면 됨.
61
+ export * from './AdWhaleNativeTemplateView';