Firebase Analytics 이벤트 로깅 작업을 위한 스킬. 이 스킬은 Neki Android 프로젝트에서 GA 이벤트 정의 및 ViewModel에 로깅 코드를 추가할 때 반드시 사용해야 합니다. "analytics 이벤트", "GA 이벤트", "이벤트 로깅", "firebase analytics", "logEvent", "AnalyticsEvent", "이벤트 추가", "이벤트 정의" 등의 키워드가 포함된 모든 요청에 이 스킬을 적극적으로 활용하세요.
التثبيت
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
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 등을 자동으로 처리