@hayanmind/monetai-react-native 0.4.1-beta.0 → 1.0.0-beta.0

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.
@@ -3,13 +3,19 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.predict = exports.initialize = exports.getAppUserDiscount = exports.createEvent = exports.createAppUserDiscount = void 0;
6
+ exports.predict = exports.initialize = exports.getPriceDecision = exports.getAppUserDiscount = exports.createViewProductItemEvent = exports.createEvent = exports.createAppUserDiscount = void 0;
7
7
  var _axios = _interopRequireDefault(require("axios"));
8
8
  var _lib = require("./lib.js");
9
9
  var _reactNative = require("react-native");
10
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
11
  const axiosInstance = _axios.default.create({
12
- baseURL: 'https://monetai-api-414410537412.us-central1.run.app/sdk' // 필요에 따라 베이스 URL 설정
12
+ baseURL: 'https://monetai-api-414410537412.us-central1.run.app/sdk',
13
+ // 필요에 따라 베이스 URL 설정
14
+ headers: {
15
+ 'X-SDK-Platform': 'react_native',
16
+ 'X-SDK-Version': (0, _lib.getSDKVersion)(),
17
+ 'X-Device-OS': _reactNative.Platform.OS === 'ios' ? 'ios' : _reactNative.Platform.OS === 'android' ? 'android' : _reactNative.Platform.OS
18
+ }
13
19
  });
14
20
  const initialize = async ({
15
21
  sdkKey,
@@ -24,7 +30,7 @@ const initialize = async ({
24
30
  const abTestGroupResponse = await axiosInstance.post('/ab-test', {
25
31
  sdkKey,
26
32
  userId,
27
- platform: _reactNative.Platform.OS === 'ios' ? 'ios' : _reactNative.Platform.OS === 'android' ? 'android' : null
33
+ platform: _reactNative.Platform.OS === 'ios' ? 'ios' : _reactNative.Platform.OS === 'android' ? 'android' : _reactNative.Platform.OS
28
34
  });
29
35
  return {
30
36
  organizationId: response.data.organization_id,
@@ -61,6 +67,29 @@ const createEvent = async ({
61
67
  }
62
68
  };
63
69
  exports.createEvent = createEvent;
70
+ const createViewProductItemEvent = async ({
71
+ sdkKey,
72
+ userId,
73
+ params,
74
+ createdAt
75
+ }) => {
76
+ try {
77
+ await axiosInstance.post('/events/view-product-item', {
78
+ sdkKey,
79
+ userId,
80
+ productId: params.productId,
81
+ price: params.price,
82
+ regularPrice: params.regularPrice,
83
+ currencyCode: params.currencyCode,
84
+ month: params.month,
85
+ createdAt: createdAt ?? new Date(),
86
+ platform: _reactNative.Platform.OS === 'ios' ? 'ios' : _reactNative.Platform.OS === 'android' ? 'android' : _reactNative.Platform.OS
87
+ });
88
+ } catch (error) {
89
+ console.error('Failed to log view product item event:', error.message);
90
+ }
91
+ };
92
+ exports.createViewProductItemEvent = createViewProductItemEvent;
64
93
  const predict = async ({
65
94
  userId,
66
95
  sdkKey
@@ -114,5 +143,27 @@ const getAppUserDiscount = async ({
114
143
  throw new Error(error.response?.data?.message || 'Failed to get discount info');
115
144
  }
116
145
  };
146
+
147
+ /**
148
+ * Thompson Sampling을 사용한 최적 가격 결정
149
+ * API POST /dynamic-pricing/decision 엔드포인트를 호출합니다.
150
+ */
117
151
  exports.getAppUserDiscount = getAppUserDiscount;
152
+ const getPriceDecision = async ({
153
+ sdkKey,
154
+ userId
155
+ }) => {
156
+ try {
157
+ const response = await axiosInstance.post('/dynamic-pricing/decision', {
158
+ sdkKey,
159
+ userId,
160
+ platform: _reactNative.Platform.OS === 'ios' ? 'ios' : _reactNative.Platform.OS === 'android' ? 'android' : _reactNative.Platform.OS
161
+ });
162
+ return response.data;
163
+ } catch (error) {
164
+ console.error('Failed to get price decision:', error.message);
165
+ throw new Error(error.response?.data?.message || 'Failed to get price decision');
166
+ }
167
+ };
168
+ exports.getPriceDecision = getPriceDecision;
118
169
  //# sourceMappingURL=ApiRequest.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_axios","_interopRequireDefault","require","_lib","_reactNative","e","__esModule","default","axiosInstance","axios","create","baseURL","initialize","sdkKey","userId","response","post","platform","version","getSDKVersion","abTestGroupResponse","Platform","OS","organizationId","data","organization_id","group","campaign","error","console","message","Error","exports","createEvent","eventName","params","createdAt","Date","predict","createAppUserDiscount","discountInfo","appUserId","startedAt","endedAt","discount","getAppUserDiscount","get"],"sourceRoot":"../../src","sources":["ApiRequest.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_axios","_interopRequireDefault","require","_lib","_reactNative","e","__esModule","default","axiosInstance","axios","create","baseURL","headers","getSDKVersion","Platform","OS","initialize","sdkKey","userId","response","post","platform","version","abTestGroupResponse","organizationId","data","organization_id","group","campaign","error","console","message","Error","exports","createEvent","eventName","params","createdAt","Date","createViewProductItemEvent","productId","price","regularPrice","currencyCode","month","predict","createAppUserDiscount","discountInfo","appUserId","startedAt","endedAt","discount","getAppUserDiscount","get","getPriceDecision"],"sourceRoot":"../../src","sources":["ApiRequest.ts"],"mappings":"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","ignoreList":[]}
@@ -134,6 +134,37 @@ class MonetaiSDK {
134
134
  console.log('[MonetaiSDK] Logged event', eventName, params);
135
135
  }
136
136
 
137
+ /**
138
+ * 사용자가 구매 아이템을 조회했을 때 호출하는 이벤트입니다.
139
+ * @param params ViewProductItemParams
140
+ */
141
+ async logViewProductItem(params) {
142
+ const sdkKey = await this.getSdkKey();
143
+ const userId = await this.getUserId();
144
+ if (!sdkKey || !userId) {
145
+ // SDK가 초기화되지 않았거나 키가 없는 경우, 일반 이벤트 큐에 저장해두었다가
146
+ // 나중에 initialize 시점에 일반 logEvent로 처리하거나,
147
+ // 별도의 큐 처리가 필요할 수 있습니다.
148
+ // 현재 구조상 pendingEvents는 logEvent 형태(이벤트명+파라미터)를 저장하므로,
149
+ // 여기서도 'ma_view_product_item' 이름으로 저장해두면
150
+ // 추후 initialize()에서 processPendingEvents 할 때
151
+ // createEvent를 호출하게 되는데, 이때 'ma_' prefix 때문에 서버에서 거절될 수 있습니다.
152
+ //
153
+ // 해결책: pendingEvents 처리 로직도 'ma_' 여부를 체크해서 분기하거나,
154
+ // 단순하게는 여기서도 'ma_' 이벤트를 큐에 넣되,
155
+ // initialize()의 pending 처리 로직을 수정해야 합니다.
156
+ // 일단은 콘솔 경고를 남기고 리턴하거나, 큐에 넣습니다.
157
+ console.warn('[MonetaiSDK] SDK not initialized. ViewProductItem event will be ignored or queued.');
158
+ return;
159
+ }
160
+ await ApiRequest.createViewProductItemEvent({
161
+ sdkKey,
162
+ userId,
163
+ params,
164
+ createdAt: new Date()
165
+ });
166
+ }
167
+
137
168
  // Non-Purchaser 예측
138
169
  async predict() {
139
170
  const sdkKey = await this.getSdkKey();
@@ -165,6 +196,22 @@ class MonetaiSDK {
165
196
  }
166
197
  return result;
167
198
  }
199
+
200
+ /**
201
+ * Thompson Sampling을 사용한 최적 가격 결정
202
+ * @returns productId와 할인율
203
+ */
204
+ async getPriceDecision() {
205
+ const sdkKey = await this.getSdkKey();
206
+ const userId = await this.getUserId();
207
+ if (!sdkKey || !userId) {
208
+ throw new Error('MonetaiSDK is not initialized. Call initialize() first.');
209
+ }
210
+ return await ApiRequest.getPriceDecision({
211
+ sdkKey,
212
+ userId
213
+ });
214
+ }
168
215
  getInitialized() {
169
216
  return this.initialized;
170
217
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_mitt","_interopRequireDefault","_dayjs","_ApiRequest","_interopRequireWildcard","ApiRequest","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","LINKING_ERROR","Platform","select","ios","MonetaiReactNative","NativeModules","Proxy","Error","MonetaiSDK","exposureTimeSec","initialized","pendingEvents","emitter","mitt","getEmitter","getExposureTimeSec","initialize","sdkKey","userId","useStoreKit2","setSdkKey","setUserId","startObserving","sendReceipt","catch","err","console","error","result","campaign","exposure_time_sec","pendingPromises","map","eventName","params","createdAt","createEvent","log","Promise","all","then","emit","organizationId","platform","version","group","logEvent","getSdkKey","getUserId","push","Date","predict","prediction","discountInfo","getAppUserDiscount","hasActiveDiscount","app_user_id","dayjs","ended_at","isAfter","startedAt","endedAt","clone","add","createAppUserDiscount","toDate","getInitialized","reset","monetaiSDK","_default","exports"],"sourceRoot":"../../src","sources":["MonetaiSDK.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_mitt","_interopRequireDefault","_dayjs","_ApiRequest","_interopRequireWildcard","ApiRequest","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","LINKING_ERROR","Platform","select","ios","MonetaiReactNative","NativeModules","Proxy","Error","MonetaiSDK","exposureTimeSec","initialized","pendingEvents","emitter","mitt","getEmitter","getExposureTimeSec","initialize","sdkKey","userId","useStoreKit2","setSdkKey","setUserId","startObserving","sendReceipt","catch","err","console","error","result","campaign","exposure_time_sec","pendingPromises","map","eventName","params","createdAt","createEvent","log","Promise","all","then","emit","organizationId","platform","version","group","logEvent","getSdkKey","getUserId","push","Date","logViewProductItem","warn","createViewProductItemEvent","predict","prediction","discountInfo","getAppUserDiscount","hasActiveDiscount","app_user_id","dayjs","ended_at","isAfter","startedAt","endedAt","clone","add","createAppUserDiscount","toDate","getPriceDecision","getInitialized","reset","monetaiSDK","_default","exports"],"sourceRoot":"../../src","sources":["MonetaiSDK.ts"],"mappings":"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","ignoreList":[]}
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getSDKVersion = getSDKVersion;
7
7
  function getSDKVersion() {
8
8
  // __SDK_VERSION__이 정의되어 있으면 해당 값을 사용
9
- if (typeof "0.4.1-beta.0" === 'string') {
10
- return "0.4.1-beta.0";
9
+ if (typeof "1.0.0-beta.0" === 'string') {
10
+ return "1.0.0-beta.0";
11
11
  }
12
12
 
13
13
  // 그렇지 않으면, package.json을 lazy하게 불러와 version을 반환
@@ -4,7 +4,13 @@ import axios from 'axios';
4
4
  import { getSDKVersion } from "./lib.js";
5
5
  import { Platform } from 'react-native';
6
6
  const axiosInstance = axios.create({
7
- baseURL: 'https://monetai-api-414410537412.us-central1.run.app/sdk' // 필요에 따라 베이스 URL 설정
7
+ baseURL: 'https://monetai-api-414410537412.us-central1.run.app/sdk',
8
+ // 필요에 따라 베이스 URL 설정
9
+ headers: {
10
+ 'X-SDK-Platform': 'react_native',
11
+ 'X-SDK-Version': getSDKVersion(),
12
+ 'X-Device-OS': Platform.OS === 'ios' ? 'ios' : Platform.OS === 'android' ? 'android' : Platform.OS
13
+ }
8
14
  });
9
15
  export const initialize = async ({
10
16
  sdkKey,
@@ -19,7 +25,7 @@ export const initialize = async ({
19
25
  const abTestGroupResponse = await axiosInstance.post('/ab-test', {
20
26
  sdkKey,
21
27
  userId,
22
- platform: Platform.OS === 'ios' ? 'ios' : Platform.OS === 'android' ? 'android' : null
28
+ platform: Platform.OS === 'ios' ? 'ios' : Platform.OS === 'android' ? 'android' : Platform.OS
23
29
  });
24
30
  return {
25
31
  organizationId: response.data.organization_id,
@@ -54,6 +60,28 @@ export const createEvent = async ({
54
60
  throw new Error(error.response?.data?.message || 'Failed to log event');
55
61
  }
56
62
  };
63
+ export const createViewProductItemEvent = async ({
64
+ sdkKey,
65
+ userId,
66
+ params,
67
+ createdAt
68
+ }) => {
69
+ try {
70
+ await axiosInstance.post('/events/view-product-item', {
71
+ sdkKey,
72
+ userId,
73
+ productId: params.productId,
74
+ price: params.price,
75
+ regularPrice: params.regularPrice,
76
+ currencyCode: params.currencyCode,
77
+ month: params.month,
78
+ createdAt: createdAt ?? new Date(),
79
+ platform: Platform.OS === 'ios' ? 'ios' : Platform.OS === 'android' ? 'android' : Platform.OS
80
+ });
81
+ } catch (error) {
82
+ console.error('Failed to log view product item event:', error.message);
83
+ }
84
+ };
57
85
  export const predict = async ({
58
86
  userId,
59
87
  sdkKey
@@ -105,4 +133,25 @@ export const getAppUserDiscount = async ({
105
133
  throw new Error(error.response?.data?.message || 'Failed to get discount info');
106
134
  }
107
135
  };
136
+
137
+ /**
138
+ * Thompson Sampling을 사용한 최적 가격 결정
139
+ * API POST /dynamic-pricing/decision 엔드포인트를 호출합니다.
140
+ */
141
+ export const getPriceDecision = async ({
142
+ sdkKey,
143
+ userId
144
+ }) => {
145
+ try {
146
+ const response = await axiosInstance.post('/dynamic-pricing/decision', {
147
+ sdkKey,
148
+ userId,
149
+ platform: Platform.OS === 'ios' ? 'ios' : Platform.OS === 'android' ? 'android' : Platform.OS
150
+ });
151
+ return response.data;
152
+ } catch (error) {
153
+ console.error('Failed to get price decision:', error.message);
154
+ throw new Error(error.response?.data?.message || 'Failed to get price decision');
155
+ }
156
+ };
108
157
  //# sourceMappingURL=ApiRequest.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["axios","getSDKVersion","Platform","axiosInstance","create","baseURL","initialize","sdkKey","userId","response","post","platform","version","abTestGroupResponse","OS","organizationId","data","organization_id","group","campaign","error","console","message","Error","createEvent","eventName","params","createdAt","Date","predict","createAppUserDiscount","discountInfo","appUserId","startedAt","endedAt","discount","getAppUserDiscount","get"],"sourceRoot":"../../src","sources":["ApiRequest.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["axios","getSDKVersion","Platform","axiosInstance","create","baseURL","headers","OS","initialize","sdkKey","userId","response","post","platform","version","abTestGroupResponse","organizationId","data","organization_id","group","campaign","error","console","message","Error","createEvent","eventName","params","createdAt","Date","createViewProductItemEvent","productId","price","regularPrice","currencyCode","month","predict","createAppUserDiscount","discountInfo","appUserId","startedAt","endedAt","discount","getAppUserDiscount","get","getPriceDecision"],"sourceRoot":"../../src","sources":["ApiRequest.ts"],"mappings":"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","ignoreList":[]}
@@ -128,6 +128,37 @@ class MonetaiSDK {
128
128
  console.log('[MonetaiSDK] Logged event', eventName, params);
129
129
  }
130
130
 
131
+ /**
132
+ * 사용자가 구매 아이템을 조회했을 때 호출하는 이벤트입니다.
133
+ * @param params ViewProductItemParams
134
+ */
135
+ async logViewProductItem(params) {
136
+ const sdkKey = await this.getSdkKey();
137
+ const userId = await this.getUserId();
138
+ if (!sdkKey || !userId) {
139
+ // SDK가 초기화되지 않았거나 키가 없는 경우, 일반 이벤트 큐에 저장해두었다가
140
+ // 나중에 initialize 시점에 일반 logEvent로 처리하거나,
141
+ // 별도의 큐 처리가 필요할 수 있습니다.
142
+ // 현재 구조상 pendingEvents는 logEvent 형태(이벤트명+파라미터)를 저장하므로,
143
+ // 여기서도 'ma_view_product_item' 이름으로 저장해두면
144
+ // 추후 initialize()에서 processPendingEvents 할 때
145
+ // createEvent를 호출하게 되는데, 이때 'ma_' prefix 때문에 서버에서 거절될 수 있습니다.
146
+ //
147
+ // 해결책: pendingEvents 처리 로직도 'ma_' 여부를 체크해서 분기하거나,
148
+ // 단순하게는 여기서도 'ma_' 이벤트를 큐에 넣되,
149
+ // initialize()의 pending 처리 로직을 수정해야 합니다.
150
+ // 일단은 콘솔 경고를 남기고 리턴하거나, 큐에 넣습니다.
151
+ console.warn('[MonetaiSDK] SDK not initialized. ViewProductItem event will be ignored or queued.');
152
+ return;
153
+ }
154
+ await ApiRequest.createViewProductItemEvent({
155
+ sdkKey,
156
+ userId,
157
+ params,
158
+ createdAt: new Date()
159
+ });
160
+ }
161
+
131
162
  // Non-Purchaser 예측
132
163
  async predict() {
133
164
  const sdkKey = await this.getSdkKey();
@@ -159,6 +190,22 @@ class MonetaiSDK {
159
190
  }
160
191
  return result;
161
192
  }
193
+
194
+ /**
195
+ * Thompson Sampling을 사용한 최적 가격 결정
196
+ * @returns productId와 할인율
197
+ */
198
+ async getPriceDecision() {
199
+ const sdkKey = await this.getSdkKey();
200
+ const userId = await this.getUserId();
201
+ if (!sdkKey || !userId) {
202
+ throw new Error('MonetaiSDK is not initialized. Call initialize() first.');
203
+ }
204
+ return await ApiRequest.getPriceDecision({
205
+ sdkKey,
206
+ userId
207
+ });
208
+ }
162
209
  getInitialized() {
163
210
  return this.initialized;
164
211
  }
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","mitt","dayjs","ApiRequest","createAppUserDiscount","LINKING_ERROR","select","ios","default","MonetaiReactNative","Proxy","get","Error","MonetaiSDK","exposureTimeSec","initialized","pendingEvents","emitter","getEmitter","getExposureTimeSec","initialize","sdkKey","userId","useStoreKit2","setSdkKey","setUserId","startObserving","sendReceipt","catch","err","console","error","result","campaign","exposure_time_sec","pendingPromises","map","eventName","params","createdAt","createEvent","log","Promise","all","then","emit","organizationId","platform","version","group","logEvent","getSdkKey","getUserId","push","Date","predict","prediction","discountInfo","getAppUserDiscount","hasActiveDiscount","app_user_id","ended_at","isAfter","startedAt","endedAt","clone","add","toDate","getInitialized","reset","monetaiSDK"],"sourceRoot":"../../src","sources":["MonetaiSDK.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","Platform","mitt","dayjs","ApiRequest","createAppUserDiscount","LINKING_ERROR","select","ios","default","MonetaiReactNative","Proxy","get","Error","MonetaiSDK","exposureTimeSec","initialized","pendingEvents","emitter","getEmitter","getExposureTimeSec","initialize","sdkKey","userId","useStoreKit2","setSdkKey","setUserId","startObserving","sendReceipt","catch","err","console","error","result","campaign","exposure_time_sec","pendingPromises","map","eventName","params","createdAt","createEvent","log","Promise","all","then","emit","organizationId","platform","version","group","logEvent","getSdkKey","getUserId","push","Date","logViewProductItem","warn","createViewProductItemEvent","predict","prediction","discountInfo","getAppUserDiscount","hasActiveDiscount","app_user_id","ended_at","isAfter","startedAt","endedAt","clone","add","toDate","getPriceDecision","getInitialized","reset","monetaiSDK"],"sourceRoot":"../../src","sources":["MonetaiSDK.ts"],"mappings":"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","ignoreList":[]}
package/lib/module/lib.js CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  export function getSDKVersion() {
4
4
  // __SDK_VERSION__이 정의되어 있으면 해당 값을 사용
5
- if (typeof "0.4.1-beta.0" === 'string') {
6
- return "0.4.1-beta.0";
5
+ if (typeof "1.0.0-beta.0" === 'string') {
6
+ return "1.0.0-beta.0";
7
7
  }
8
8
 
9
9
  // 그렇지 않으면, package.json을 lazy하게 불러와 version을 반환
@@ -1,4 +1,4 @@
1
- import type { ABTestGroup, AppUserDiscountResponse, PredictResult } from './types';
1
+ import type { ABTestGroup, AppUserDiscountResponse, PredictResult, ViewProductItemParams } from './types';
2
2
  export declare const initialize: ({ sdkKey, userId, }: {
3
3
  sdkKey: string;
4
4
  userId: string;
@@ -28,6 +28,12 @@ export declare const createEvent: ({ sdkKey, userId, eventName, params, createdA
28
28
  params?: Record<string, any>;
29
29
  createdAt?: Date;
30
30
  }) => Promise<void>;
31
+ export declare const createViewProductItemEvent: ({ sdkKey, userId, params, createdAt, }: {
32
+ sdkKey: string;
33
+ userId: string;
34
+ params: ViewProductItemParams;
35
+ createdAt?: Date;
36
+ }) => Promise<void>;
31
37
  export declare const predict: ({ userId, sdkKey, }: {
32
38
  userId: string;
33
39
  sdkKey: string;
@@ -49,4 +55,15 @@ export declare const getAppUserDiscount: ({ sdkKey, userId, }: {
49
55
  sdkKey: string;
50
56
  userId: string;
51
57
  }) => Promise<AppUserDiscountResponse | null>;
58
+ /**
59
+ * Thompson Sampling을 사용한 최적 가격 결정
60
+ * API POST /dynamic-pricing/decision 엔드포인트를 호출합니다.
61
+ */
62
+ export declare const getPriceDecision: ({ sdkKey, userId, }: {
63
+ sdkKey: string;
64
+ userId: string;
65
+ }) => Promise<{
66
+ productId: string;
67
+ discount: number;
68
+ }>;
52
69
  //# sourceMappingURL=ApiRequest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApiRequest.d.ts","sourceRoot":"","sources":["../../../../src/ApiRequest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,uBAAuB,EACvB,aAAa,EACd,MAAM,SAAS,CAAC;AAQjB,eAAO,MAAM,UAAU,GAAU,qBAG9B;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;;;;;;YAeW,MAAM;oBACE,IAAI,GAAG,IAAI;yBACN,MAAM;uBACR,MAAM;oBACT,IAAI,GAAG,IAAI;kBACb,IAAI,GAAG,IAAI;uBACN,MAAM;0BACH,MAAM;wBACR,MAAM;2BACH,MAAM;wBACT,MAAM,GAAG,IAAI;;EA0BpC,CAAC;AAEF,eAAO,MAAM,WAAW,GAAU,mDAM/B;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,kBAmBA,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,qBAG3B;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;gBAGiB,aAAa;eACd,WAAW,GAAG,IAAI;EAalC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAU,cAAc;IACxD,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,qCAiBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAU,qBAGtC;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,4CAcA,CAAC"}
1
+ {"version":3,"file":"ApiRequest.d.ts","sourceRoot":"","sources":["../../../../src/ApiRequest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAkBjB,eAAO,MAAM,UAAU,GAAU,qBAG9B;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;;;;;;YAeW,MAAM;oBACE,IAAI,GAAG,IAAI;yBACN,MAAM;uBACR,MAAM;oBACT,IAAI,GAAG,IAAI;kBACb,IAAI,GAAG,IAAI;uBACN,MAAM;0BACH,MAAM;wBACR,MAAM;2BACH,MAAM;wBACT,MAAM,GAAG,IAAI;;EA0BpC,CAAC;AAEF,eAAO,MAAM,WAAW,GAAU,mDAM/B;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,kBAmBA,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAU,wCAK9C;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,kBAqBA,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,qBAG3B;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;gBAGiB,aAAa;eACd,WAAW,GAAG,IAAI;EAalC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAU,cAAc;IACxD,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,qCAiBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAU,qBAGtC;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,4CAcA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAU,qBAGpC;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;eAGgB,MAAM;cACP,MAAM;EAkBrB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type ABTestGroup, type PredictResult, type LogEventOptions } from './types';
1
+ import { type ABTestGroup, type PredictResult, type LogEventOptions, type ViewProductItemParams } from './types';
2
2
  type MonetaiEvents = {
3
3
  LOAD_DISCOUNT_INFO: void;
4
4
  };
@@ -29,10 +29,23 @@ declare class MonetaiSDK {
29
29
  group: ABTestGroup | null;
30
30
  }>;
31
31
  logEvent({ eventName, params }: LogEventOptions): Promise<void>;
32
+ /**
33
+ * 사용자가 구매 아이템을 조회했을 때 호출하는 이벤트입니다.
34
+ * @param params ViewProductItemParams
35
+ */
36
+ logViewProductItem(params: ViewProductItemParams): Promise<void>;
32
37
  predict(): Promise<{
33
38
  prediction: PredictResult;
34
39
  testGroup: ABTestGroup | null;
35
40
  }>;
41
+ /**
42
+ * Thompson Sampling을 사용한 최적 가격 결정
43
+ * @returns productId와 할인율
44
+ */
45
+ getPriceDecision(): Promise<{
46
+ productId: string;
47
+ discount: number;
48
+ }>;
36
49
  getInitialized(): boolean;
37
50
  getUserId(): Promise<string | null>;
38
51
  getSdkKey(): Promise<string | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"MonetaiSDK.d.ts","sourceRoot":"","sources":["../../../../src/MonetaiSDK.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,SAAS,CAAC;AAqBjB,KAAK,aAAa,GAAG;IACnB,kBAAkB,EAAE,IAAI,CAAC;CAC1B,CAAC;AAEF,cAAM,UAAU;IACd,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,aAAa,CAIb;IAGR,OAAO,CAAC,OAAO,CAAyB;IAGjC,UAAU;IAIV,kBAAkB;IAIzB;;;;;;;OAOG;IACU,UAAU,CAAC,EACtB,MAAM,EACN,MAAM,EACN,YAAoB,GACrB,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GAAG,OAAO,CAAC;QACV,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,cAAc,CAAC;QACzB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;KAC3B,CAAC;IAuDW,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,eAAe;IAoB/C,OAAO,IAAI,OAAO,CAAC;QAC9B,UAAU,EAAE,aAAa,CAAC;QAC1B,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;KAC/B,CAAC;IAqCK,cAAc;IAIR,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUnC,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUnC,KAAK;CAInB;AAGD,QAAA,MAAM,UAAU,YAAmB,CAAC;AACpC,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"MonetaiSDK.d.ts","sourceRoot":"","sources":["../../../../src/MonetaiSDK.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC3B,MAAM,SAAS,CAAC;AAqBjB,KAAK,aAAa,GAAG;IACnB,kBAAkB,EAAE,IAAI,CAAC;CAC1B,CAAC;AAEF,cAAM,UAAU;IACd,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,aAAa,CAIb;IAGR,OAAO,CAAC,OAAO,CAAyB;IAGjC,UAAU;IAIV,kBAAkB;IAIzB;;;;;;;OAOG;IACU,UAAU,CAAC,EACtB,MAAM,EACN,MAAM,EACN,YAAoB,GACrB,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GAAG,OAAO,CAAC;QACV,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,cAAc,CAAC;QACzB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;KAC3B,CAAC;IAuDW,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,eAAe;IAmB5D;;;OAGG;IACU,kBAAkB,CAAC,MAAM,EAAE,qBAAqB;IAgChD,OAAO,IAAI,OAAO,CAAC;QAC9B,UAAU,EAAE,aAAa,CAAC;QAC1B,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;KAC/B,CAAC;IAqCF;;;OAGG;IACU,gBAAgB,IAAI,OAAO,CAAC;QACvC,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAaK,cAAc;IAIR,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUnC,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUnC,KAAK;CAInB;AAGD,QAAA,MAAM,UAAU,YAAmB,CAAC;AACpC,eAAe,UAAU,CAAC"}
@@ -7,5 +7,5 @@ import { useBanner } from './hooks/useBanner';
7
7
  import { usePaywall } from './hooks/usePaywall';
8
8
  export default MonetaiSDK;
9
9
  export { MonetaiProvider, Banner, Paywall, useBanner, usePaywall, CompactPaywallWrapper, HighlightBenefitsPaywallWrapper, KeyFeatureSummaryPaywallWrapper, TextFocusedPaywallWrapper, };
10
- export type { ABTestGroup, PredictResult, EventParams, LogEventOptions, DiscountInfo, AppUserDiscountResponse, PaywallConfig, Feature, BannerParams, PaywallParams, PaywallStyle, } from './types';
10
+ export type { ABTestGroup, PredictResult, EventParams, LogEventOptions, DiscountInfo, AppUserDiscountResponse, PaywallConfig, Feature, BannerParams, PaywallParams, PaywallStyle, PriceDecision, } from './types';
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,OAAO,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,+BAA+B,EAC/B,yBAAyB,EAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,eAAe,UAAU,CAAC;AAC1B,OAAO,EACL,eAAe,EACf,MAAM,EACN,OAAO,EACP,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,+BAA+B,EAC/B,+BAA+B,EAC/B,yBAAyB,GAC1B,CAAC;AAGF,YAAY,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,YAAY,EACZ,uBAAuB,EACvB,aAAa,EACb,OAAO,EACP,YAAY,EACZ,aAAa,EACb,YAAY,GACb,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,OAAO,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,+BAA+B,EAC/B,yBAAyB,EAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,eAAe,UAAU,CAAC;AAC1B,OAAO,EACL,eAAe,EACf,MAAM,EACN,OAAO,EACP,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,+BAA+B,EAC/B,+BAA+B,EAC/B,yBAAyB,GAC1B,CAAC;AAGF,YAAY,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,YAAY,EACZ,uBAAuB,EACvB,aAAa,EACb,OAAO,EACP,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC"}
@@ -1,5 +1,9 @@
1
1
  export type ABTestGroup = 'baseline' | 'monetai' | 'unknown';
2
2
  export type PredictResult = 'non-purchaser' | 'purchaser' | null;
3
+ export interface PriceDecision {
4
+ productId: string;
5
+ discount: number;
6
+ }
3
7
  export type PaywallStyle = 'compact' | 'highlight-benefits' | 'key-feature-summary' | 'text-focused';
4
8
  export interface Feature {
5
9
  title: string;
@@ -13,6 +17,13 @@ export interface LogEventOptions {
13
17
  eventName: string;
14
18
  params?: EventParams;
15
19
  }
20
+ export interface ViewProductItemParams {
21
+ productId: string;
22
+ price: number;
23
+ regularPrice: number;
24
+ currencyCode: string;
25
+ month?: number | null;
26
+ }
16
27
  export interface DiscountInfo {
17
28
  startedAt: Date;
18
29
  endedAt: Date;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAC7D,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,WAAW,GAAG,IAAI,CAAC;AAGjE,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,oBAAoB,GACpB,qBAAqB,GACrB,cAAc,CAAC;AAGnB,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;CAClB;AAGD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IAGrB,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAChD,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IAErB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ABTestGroup, AppUserDiscountResponse, PredictResult } from './types';
1
+ import type { ABTestGroup, AppUserDiscountResponse, PredictResult, ViewProductItemParams } from './types';
2
2
  export declare const initialize: ({ sdkKey, userId, }: {
3
3
  sdkKey: string;
4
4
  userId: string;
@@ -28,6 +28,12 @@ export declare const createEvent: ({ sdkKey, userId, eventName, params, createdA
28
28
  params?: Record<string, any>;
29
29
  createdAt?: Date;
30
30
  }) => Promise<void>;
31
+ export declare const createViewProductItemEvent: ({ sdkKey, userId, params, createdAt, }: {
32
+ sdkKey: string;
33
+ userId: string;
34
+ params: ViewProductItemParams;
35
+ createdAt?: Date;
36
+ }) => Promise<void>;
31
37
  export declare const predict: ({ userId, sdkKey, }: {
32
38
  userId: string;
33
39
  sdkKey: string;
@@ -49,4 +55,15 @@ export declare const getAppUserDiscount: ({ sdkKey, userId, }: {
49
55
  sdkKey: string;
50
56
  userId: string;
51
57
  }) => Promise<AppUserDiscountResponse | null>;
58
+ /**
59
+ * Thompson Sampling을 사용한 최적 가격 결정
60
+ * API POST /dynamic-pricing/decision 엔드포인트를 호출합니다.
61
+ */
62
+ export declare const getPriceDecision: ({ sdkKey, userId, }: {
63
+ sdkKey: string;
64
+ userId: string;
65
+ }) => Promise<{
66
+ productId: string;
67
+ discount: number;
68
+ }>;
52
69
  //# sourceMappingURL=ApiRequest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApiRequest.d.ts","sourceRoot":"","sources":["../../../../src/ApiRequest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,uBAAuB,EACvB,aAAa,EACd,MAAM,SAAS,CAAC;AAQjB,eAAO,MAAM,UAAU,GAAU,qBAG9B;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;;;;;;YAeW,MAAM;oBACE,IAAI,GAAG,IAAI;yBACN,MAAM;uBACR,MAAM;oBACT,IAAI,GAAG,IAAI;kBACb,IAAI,GAAG,IAAI;uBACN,MAAM;0BACH,MAAM;wBACR,MAAM;2BACH,MAAM;wBACT,MAAM,GAAG,IAAI;;EA0BpC,CAAC;AAEF,eAAO,MAAM,WAAW,GAAU,mDAM/B;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,kBAmBA,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,qBAG3B;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;gBAGiB,aAAa;eACd,WAAW,GAAG,IAAI;EAalC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAU,cAAc;IACxD,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,qCAiBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAU,qBAGtC;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,4CAcA,CAAC"}
1
+ {"version":3,"file":"ApiRequest.d.ts","sourceRoot":"","sources":["../../../../src/ApiRequest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAkBjB,eAAO,MAAM,UAAU,GAAU,qBAG9B;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;;;;;;YAeW,MAAM;oBACE,IAAI,GAAG,IAAI;yBACN,MAAM;uBACR,MAAM;oBACT,IAAI,GAAG,IAAI;kBACb,IAAI,GAAG,IAAI;uBACN,MAAM;0BACH,MAAM;wBACR,MAAM;2BACH,MAAM;wBACT,MAAM,GAAG,IAAI;;EA0BpC,CAAC;AAEF,eAAO,MAAM,WAAW,GAAU,mDAM/B;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,kBAmBA,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAU,wCAK9C;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,kBAqBA,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,qBAG3B;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;gBAGiB,aAAa;eACd,WAAW,GAAG,IAAI;EAalC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAU,cAAc;IACxD,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,qCAiBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAU,qBAGtC;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,4CAcA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAU,qBAGpC;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;eAGgB,MAAM;cACP,MAAM;EAkBrB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type ABTestGroup, type PredictResult, type LogEventOptions } from './types';
1
+ import { type ABTestGroup, type PredictResult, type LogEventOptions, type ViewProductItemParams } from './types';
2
2
  type MonetaiEvents = {
3
3
  LOAD_DISCOUNT_INFO: void;
4
4
  };
@@ -29,10 +29,23 @@ declare class MonetaiSDK {
29
29
  group: ABTestGroup | null;
30
30
  }>;
31
31
  logEvent({ eventName, params }: LogEventOptions): Promise<void>;
32
+ /**
33
+ * 사용자가 구매 아이템을 조회했을 때 호출하는 이벤트입니다.
34
+ * @param params ViewProductItemParams
35
+ */
36
+ logViewProductItem(params: ViewProductItemParams): Promise<void>;
32
37
  predict(): Promise<{
33
38
  prediction: PredictResult;
34
39
  testGroup: ABTestGroup | null;
35
40
  }>;
41
+ /**
42
+ * Thompson Sampling을 사용한 최적 가격 결정
43
+ * @returns productId와 할인율
44
+ */
45
+ getPriceDecision(): Promise<{
46
+ productId: string;
47
+ discount: number;
48
+ }>;
36
49
  getInitialized(): boolean;
37
50
  getUserId(): Promise<string | null>;
38
51
  getSdkKey(): Promise<string | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"MonetaiSDK.d.ts","sourceRoot":"","sources":["../../../../src/MonetaiSDK.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,SAAS,CAAC;AAqBjB,KAAK,aAAa,GAAG;IACnB,kBAAkB,EAAE,IAAI,CAAC;CAC1B,CAAC;AAEF,cAAM,UAAU;IACd,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,aAAa,CAIb;IAGR,OAAO,CAAC,OAAO,CAAyB;IAGjC,UAAU;IAIV,kBAAkB;IAIzB;;;;;;;OAOG;IACU,UAAU,CAAC,EACtB,MAAM,EACN,MAAM,EACN,YAAoB,GACrB,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GAAG,OAAO,CAAC;QACV,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,cAAc,CAAC;QACzB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;KAC3B,CAAC;IAuDW,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,eAAe;IAoB/C,OAAO,IAAI,OAAO,CAAC;QAC9B,UAAU,EAAE,aAAa,CAAC;QAC1B,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;KAC/B,CAAC;IAqCK,cAAc;IAIR,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUnC,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUnC,KAAK;CAInB;AAGD,QAAA,MAAM,UAAU,YAAmB,CAAC;AACpC,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"MonetaiSDK.d.ts","sourceRoot":"","sources":["../../../../src/MonetaiSDK.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC3B,MAAM,SAAS,CAAC;AAqBjB,KAAK,aAAa,GAAG;IACnB,kBAAkB,EAAE,IAAI,CAAC;CAC1B,CAAC;AAEF,cAAM,UAAU;IACd,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,aAAa,CAIb;IAGR,OAAO,CAAC,OAAO,CAAyB;IAGjC,UAAU;IAIV,kBAAkB;IAIzB;;;;;;;OAOG;IACU,UAAU,CAAC,EACtB,MAAM,EACN,MAAM,EACN,YAAoB,GACrB,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GAAG,OAAO,CAAC;QACV,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,cAAc,CAAC;QACzB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;KAC3B,CAAC;IAuDW,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,eAAe;IAmB5D;;;OAGG;IACU,kBAAkB,CAAC,MAAM,EAAE,qBAAqB;IAgChD,OAAO,IAAI,OAAO,CAAC;QAC9B,UAAU,EAAE,aAAa,CAAC;QAC1B,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;KAC/B,CAAC;IAqCF;;;OAGG;IACU,gBAAgB,IAAI,OAAO,CAAC;QACvC,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAaK,cAAc;IAIR,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUnC,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUnC,KAAK;CAInB;AAGD,QAAA,MAAM,UAAU,YAAmB,CAAC;AACpC,eAAe,UAAU,CAAC"}
@@ -7,5 +7,5 @@ import { useBanner } from './hooks/useBanner';
7
7
  import { usePaywall } from './hooks/usePaywall';
8
8
  export default MonetaiSDK;
9
9
  export { MonetaiProvider, Banner, Paywall, useBanner, usePaywall, CompactPaywallWrapper, HighlightBenefitsPaywallWrapper, KeyFeatureSummaryPaywallWrapper, TextFocusedPaywallWrapper, };
10
- export type { ABTestGroup, PredictResult, EventParams, LogEventOptions, DiscountInfo, AppUserDiscountResponse, PaywallConfig, Feature, BannerParams, PaywallParams, PaywallStyle, } from './types';
10
+ export type { ABTestGroup, PredictResult, EventParams, LogEventOptions, DiscountInfo, AppUserDiscountResponse, PaywallConfig, Feature, BannerParams, PaywallParams, PaywallStyle, PriceDecision, } from './types';
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,OAAO,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,+BAA+B,EAC/B,yBAAyB,EAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,eAAe,UAAU,CAAC;AAC1B,OAAO,EACL,eAAe,EACf,MAAM,EACN,OAAO,EACP,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,+BAA+B,EAC/B,+BAA+B,EAC/B,yBAAyB,GAC1B,CAAC;AAGF,YAAY,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,YAAY,EACZ,uBAAuB,EACvB,aAAa,EACb,OAAO,EACP,YAAY,EACZ,aAAa,EACb,YAAY,GACb,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,OAAO,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,+BAA+B,EAC/B,yBAAyB,EAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,eAAe,UAAU,CAAC;AAC1B,OAAO,EACL,eAAe,EACf,MAAM,EACN,OAAO,EACP,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,+BAA+B,EAC/B,+BAA+B,EAC/B,yBAAyB,GAC1B,CAAC;AAGF,YAAY,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,YAAY,EACZ,uBAAuB,EACvB,aAAa,EACb,OAAO,EACP,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC"}
@@ -1,5 +1,9 @@
1
1
  export type ABTestGroup = 'baseline' | 'monetai' | 'unknown';
2
2
  export type PredictResult = 'non-purchaser' | 'purchaser' | null;
3
+ export interface PriceDecision {
4
+ productId: string;
5
+ discount: number;
6
+ }
3
7
  export type PaywallStyle = 'compact' | 'highlight-benefits' | 'key-feature-summary' | 'text-focused';
4
8
  export interface Feature {
5
9
  title: string;
@@ -13,6 +17,13 @@ export interface LogEventOptions {
13
17
  eventName: string;
14
18
  params?: EventParams;
15
19
  }
20
+ export interface ViewProductItemParams {
21
+ productId: string;
22
+ price: number;
23
+ regularPrice: number;
24
+ currencyCode: string;
25
+ month?: number | null;
26
+ }
16
27
  export interface DiscountInfo {
17
28
  startedAt: Date;
18
29
  endedAt: Date;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAC7D,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,WAAW,GAAG,IAAI,CAAC;AAGjE,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,oBAAoB,GACpB,qBAAqB,GACrB,cAAc,CAAC;AAGnB,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;CAClB;AAGD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IAGrB,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAChD,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IAErB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hayanmind/monetai-react-native",
3
- "version": "0.4.1-beta.0",
3
+ "version": "1.0.0-beta.0",
4
4
  "description": "Unlock hidden app revenue with AI from non-converting users",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",
package/src/ApiRequest.ts CHANGED
@@ -3,12 +3,23 @@ import type {
3
3
  ABTestGroup,
4
4
  AppUserDiscountResponse,
5
5
  PredictResult,
6
+ ViewProductItemParams,
6
7
  } from './types';
7
8
  import { getSDKVersion } from './lib';
8
9
  import { Platform } from 'react-native';
9
10
 
10
11
  const axiosInstance = axios.create({
11
12
  baseURL: 'https://monetai-api-414410537412.us-central1.run.app/sdk', // 필요에 따라 베이스 URL 설정
13
+ headers: {
14
+ 'X-SDK-Platform': 'react_native',
15
+ 'X-SDK-Version': getSDKVersion(),
16
+ 'X-Device-OS':
17
+ Platform.OS === 'ios'
18
+ ? 'ios'
19
+ : Platform.OS === 'android'
20
+ ? 'android'
21
+ : Platform.OS,
22
+ },
12
23
  });
13
24
 
14
25
  export const initialize = async ({
@@ -52,7 +63,7 @@ export const initialize = async ({
52
63
  ? 'ios'
53
64
  : Platform.OS === 'android'
54
65
  ? 'android'
55
- : null,
66
+ : Platform.OS,
56
67
  });
57
68
 
58
69
  return {
@@ -103,6 +114,39 @@ export const createEvent = async ({
103
114
  }
104
115
  };
105
116
 
117
+ export const createViewProductItemEvent = async ({
118
+ sdkKey,
119
+ userId,
120
+ params,
121
+ createdAt,
122
+ }: {
123
+ sdkKey: string;
124
+ userId: string;
125
+ params: ViewProductItemParams;
126
+ createdAt?: Date;
127
+ }) => {
128
+ try {
129
+ await axiosInstance.post('/events/view-product-item', {
130
+ sdkKey,
131
+ userId,
132
+ productId: params.productId,
133
+ price: params.price,
134
+ regularPrice: params.regularPrice,
135
+ currencyCode: params.currencyCode,
136
+ month: params.month,
137
+ createdAt: createdAt ?? new Date(),
138
+ platform:
139
+ Platform.OS === 'ios'
140
+ ? 'ios'
141
+ : Platform.OS === 'android'
142
+ ? 'android'
143
+ : Platform.OS,
144
+ });
145
+ } catch (error: any) {
146
+ console.error('Failed to log view product item event:', error.message);
147
+ }
148
+ };
149
+
106
150
  export const predict = async ({
107
151
  userId,
108
152
  sdkKey,
@@ -177,3 +221,37 @@ export const getAppUserDiscount = async ({
177
221
  );
178
222
  }
179
223
  };
224
+
225
+ /**
226
+ * Thompson Sampling을 사용한 최적 가격 결정
227
+ * API POST /dynamic-pricing/decision 엔드포인트를 호출합니다.
228
+ */
229
+ export const getPriceDecision = async ({
230
+ sdkKey,
231
+ userId,
232
+ }: {
233
+ sdkKey: string;
234
+ userId: string;
235
+ }) => {
236
+ try {
237
+ const response = await axiosInstance.post<{
238
+ productId: string;
239
+ discount: number;
240
+ }>('/dynamic-pricing/decision', {
241
+ sdkKey,
242
+ userId,
243
+ platform:
244
+ Platform.OS === 'ios'
245
+ ? 'ios'
246
+ : Platform.OS === 'android'
247
+ ? 'android'
248
+ : Platform.OS,
249
+ });
250
+ return response.data;
251
+ } catch (error: any) {
252
+ console.error('Failed to get price decision:', error.message);
253
+ throw new Error(
254
+ error.response?.data?.message || 'Failed to get price decision'
255
+ );
256
+ }
257
+ };
package/src/MonetaiSDK.ts CHANGED
@@ -6,6 +6,7 @@ import {
6
6
  type ABTestGroup,
7
7
  type PredictResult,
8
8
  type LogEventOptions,
9
+ type ViewProductItemParams,
9
10
  } from './types';
10
11
  import { createAppUserDiscount } from './ApiRequest';
11
12
 
@@ -150,6 +151,41 @@ class MonetaiSDK {
150
151
  console.log('[MonetaiSDK] Logged event', eventName, params);
151
152
  }
152
153
 
154
+ /**
155
+ * 사용자가 구매 아이템을 조회했을 때 호출하는 이벤트입니다.
156
+ * @param params ViewProductItemParams
157
+ */
158
+ public async logViewProductItem(params: ViewProductItemParams) {
159
+ const sdkKey = await this.getSdkKey();
160
+ const userId = await this.getUserId();
161
+
162
+ if (!sdkKey || !userId) {
163
+ // SDK가 초기화되지 않았거나 키가 없는 경우, 일반 이벤트 큐에 저장해두었다가
164
+ // 나중에 initialize 시점에 일반 logEvent로 처리하거나,
165
+ // 별도의 큐 처리가 필요할 수 있습니다.
166
+ // 현재 구조상 pendingEvents는 logEvent 형태(이벤트명+파라미터)를 저장하므로,
167
+ // 여기서도 'ma_view_product_item' 이름으로 저장해두면
168
+ // 추후 initialize()에서 processPendingEvents 할 때
169
+ // createEvent를 호출하게 되는데, 이때 'ma_' prefix 때문에 서버에서 거절될 수 있습니다.
170
+ //
171
+ // 해결책: pendingEvents 처리 로직도 'ma_' 여부를 체크해서 분기하거나,
172
+ // 단순하게는 여기서도 'ma_' 이벤트를 큐에 넣되,
173
+ // initialize()의 pending 처리 로직을 수정해야 합니다.
174
+ // 일단은 콘솔 경고를 남기고 리턴하거나, 큐에 넣습니다.
175
+ console.warn(
176
+ '[MonetaiSDK] SDK not initialized. ViewProductItem event will be ignored or queued.'
177
+ );
178
+ return;
179
+ }
180
+
181
+ await ApiRequest.createViewProductItemEvent({
182
+ sdkKey,
183
+ userId,
184
+ params,
185
+ createdAt: new Date(),
186
+ });
187
+ }
188
+
153
189
  // Non-Purchaser 예측
154
190
  public async predict(): Promise<{
155
191
  prediction: PredictResult;
@@ -191,6 +227,26 @@ class MonetaiSDK {
191
227
  return result;
192
228
  }
193
229
 
230
+ /**
231
+ * Thompson Sampling을 사용한 최적 가격 결정
232
+ * @returns productId와 할인율
233
+ */
234
+ public async getPriceDecision(): Promise<{
235
+ productId: string;
236
+ discount: number;
237
+ }> {
238
+ const sdkKey = await this.getSdkKey();
239
+ const userId = await this.getUserId();
240
+
241
+ if (!sdkKey || !userId) {
242
+ throw new Error(
243
+ 'MonetaiSDK is not initialized. Call initialize() first.'
244
+ );
245
+ }
246
+
247
+ return await ApiRequest.getPriceDecision({ sdkKey, userId });
248
+ }
249
+
194
250
  public getInitialized() {
195
251
  return this.initialized;
196
252
  }
package/src/index.tsx CHANGED
@@ -37,4 +37,5 @@ export type {
37
37
  BannerParams,
38
38
  PaywallParams,
39
39
  PaywallStyle,
40
+ PriceDecision,
40
41
  } from './types';
package/src/types.ts CHANGED
@@ -1,6 +1,11 @@
1
1
  export type ABTestGroup = 'baseline' | 'monetai' | 'unknown';
2
2
  export type PredictResult = 'non-purchaser' | 'purchaser' | null;
3
3
 
4
+ export interface PriceDecision {
5
+ productId: string; // Product ID
6
+ discount: number; // 할인율 (0.5 = 50%)
7
+ }
8
+
4
9
  // Banner and Paywall style types
5
10
  export type PaywallStyle =
6
11
  | 'compact'
@@ -24,6 +29,14 @@ export interface LogEventOptions {
24
29
  params?: EventParams;
25
30
  }
26
31
 
32
+ export interface ViewProductItemParams {
33
+ productId: string;
34
+ price: number;
35
+ regularPrice: number;
36
+ currencyCode: string;
37
+ month?: number | null;
38
+ }
39
+
27
40
  export interface DiscountInfo {
28
41
  startedAt: Date;
29
42
  endedAt: Date;