feat: @apps-in-toss/analytics 이벤트 트래킹 구현 (JSA-32)
- src/analytics.ts: initAnalytics / trackGameEvent 유틸 추가 - _app.tsx: 앱 시작 시 Analytics.init 호출 - pages/index.tsx: app_open 이벤트 (플랫폼 시간, 보유 원소 수, 골드, 강화 레벨 합계) - FusionScreen: fusion_completed (결과 tier/name, 골드 획득, 재료 ID) - EvolutionScreen: enhancement_completed + level_up (원소 ID/이름, 새 레벨, 비용) - ShopScreen: item_purchased (아이템 ID/이름, 가격, 희귀도) - OfflineRewardModal: offline_reward_claimed (오프라인 시간, 골드, 원소 종류 수) - package.json: @apps-in-toss/analytics ^2.3.0 명시적 추가 Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
21
src/analytics.ts
Normal file
21
src/analytics.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import { Analytics, type AnalyticsConfig } from '@apps-in-toss/analytics';
|
||||
|
||||
type LogParams = Record<string, string | number | boolean | null | undefined>;
|
||||
|
||||
let _logger: AnalyticsConfig['logger'] | null = null;
|
||||
|
||||
export function initAnalytics(debug = false) {
|
||||
const logger: AnalyticsConfig['logger'] = ({ log_name, log_type, params }) => {
|
||||
if (debug) {
|
||||
console.log(`[Analytics] ${log_type}:${log_name}`, params);
|
||||
}
|
||||
// 프로덕션에서는 여기서 서버로 이벤트 전송
|
||||
};
|
||||
|
||||
Analytics.init({ logger, debug });
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
export function trackGameEvent(logName: string, params: LogParams = {}) {
|
||||
_logger?.({ log_name: logName, log_type: 'game_event', params });
|
||||
}
|
||||
Reference in New Issue
Block a user