@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
text/typescript
/**
* 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();
}