UNPKG

@adstage/web-sdk

Version:

AdStage Web SDK - Production-ready marketing platform SDK with React Provider support for seamless integration

91 lines (77 loc) 2.02 kB
/** * AdStage SDK - 전역 이벤트 함수들 * Firebase Analytics와 유사한 간단한 API 제공 */ import AdStage from '../core/adstage'; import type { EventProperties } from '../modules/events/events-module'; /** * 이벤트 추적 (메인 함수) * @param eventName 이벤트 이름 * @param properties 이벤트 속성 * * @example * track('purchase', { * transaction_id: 'T123', * value: 99.99, * currency: 'USD' * }); */ export function track(eventName: string, properties?: EventProperties): Promise<void> { if (!AdStage.isReady()) { console.warn('AdStage not initialized. Call AdStage.init() first.'); return Promise.resolve(); } return AdStage.events.track(eventName, properties); } /** * 사용자 ID 설정 * @param userId 사용자 ID * * @example * setUserId('user123'); */ export function setUserId(userId: string): void { if (!AdStage.isReady()) { console.warn('AdStage not initialized. Call AdStage.init() first.'); return; } AdStage.events.setUserId(userId); } /** * 현재 사용자 ID 반환 */ export function getUserId(): string | undefined { if (!AdStage.isReady()) { console.warn('AdStage not initialized. Call AdStage.init() first.'); return undefined; } return AdStage.events.getUserId(); } /** * 사용자 속성 설정 * @param properties 사용자 속성 객체 * * @example * setUserProperties({ * gender: 'male', * country: 'KR', * age: '25' * }); */ export function setUserProperties(properties: import('../types/events').UserProperties): void { if (!AdStage.isReady()) { console.warn('AdStage not initialized. Call AdStage.init() first.'); return; } AdStage.events.setUserProperties(properties); } /** * 현재 사용자 속성 반환 */ export function getUserProperties(): any { if (!AdStage.isReady()) { console.warn('AdStage not initialized. Call AdStage.init() first.'); return undefined; } return AdStage.events.getUserProperties(); }