Firebase Analytics 이벤트 로깅 작업을 위한 스킬. 이 스킬은 Neki Android 프로젝트에서 GA 이벤트 정의 및 ViewModel에 로깅 코드를 추가할 때 반드시 사용해야 합니다. "analytics 이벤트", "GA 이벤트", "이벤트 로깅", "firebase analytics", "logEvent", "AnalyticsEvent", "이벤트 추가", "이벤트 정의" 등의 키워드가 포함된 모든 요청에 이 스킬을 적극적으로 활용하세요.
Firebase Analytics 이벤트 로깅 작업을 위한 스킬. 이 스킬은 Neki Android 프로젝트에서 GA 이벤트 정의 및 ViewModel에 로깅 코드를 추가할 때 반드시 사용해야 합니다. "analytics 이벤트", "GA 이벤트", "이벤트 로깅", "firebase analytics", "logEvent", "AnalyticsEvent", "이벤트 추가", "이벤트 정의" 등의 키워드가 포함된 모든 요청에 이 스킬을 적극적으로 활용하세요.
Firebase Analytics 이벤트 로깅 스킬
Neki Android 프로젝트의 Firebase Analytics 이벤트를 정의하고 ViewModel에 로깅 코드를 추가하는 작업을 안내합니다.
프로젝트 Analytics 구조
core/analytics/
└── src/main/kotlin/com/neki/android/core/analytics/
├── event/
│ ├── AnalyticsEvent.kt ← 루트 sealed interface
│ ├── ArchiveAnalyticsEvent.kt ← 아카이브 이벤트
│ ├── PoseAnalyticsEvent.kt ← 포즈 이벤트
│ ├── MapAnalyticsEvent.kt ← 지도 이벤트
│ ├── MypageAnalyticsEvent.kt ← 마이페이지 이벤트
│ └── GlobalAnalyticsEvent.kt ← 앱 전역 이벤트 (app_open, notification_click)
└── logger/
├── AnalyticsLogger.kt ← 인터페이스 (log, setUserId, setUserProperty)
├── FirebaseAnalyticsLogger.kt ← Firebase 구현체
└── AnalyticsModule.kt ← Hilt DI 모듈
Step 1: 이벤트 정의
먼저 해당 피처의 *AnalyticsEvent.kt를 읽어 기존 이벤트 구조를 파악한 뒤, 새 이벤트를 추가합니다.
이벤트 구조 패턴
// 피처별 최상위 sealed interfacesealedinterfaceArchiveAnalyticsEvent : AnalyticsEvent {
// 파라미터 없는 이벤트dataobject ArchivingView : ArchiveAnalyticsEvent {
overrideval name = "archiving_view"
}
// 파라미터 있는 이벤트dataclassPhotoUpload(val method: String, val count: Int) : ArchiveAnalyticsEvent {
overrideval name = "photo_upload"overrideval params = mapOf(
"method" to method,
"count" to count,
)
}
}
이벤트 네이밍 규칙
name: snake_case (예: photo_upload, map_view)
파라미터 키: snake_case (예: photo_count, brand_name)
파라미터 값은 Kotlin 원시 타입 그대로 사용 (String, Int, Long, Double, Boolean)
FirebaseAnalyticsLogger가 타입별로 putString/putInt/putBoolean 등을 자동으로 처리