- 새로운 이벤트의 추가 및 제거 리소스가 큼
- 애널리틱스 라이브러리의 추가 및 제거 리소스가 큼
- 이벤트를 기록하고 있는 형식 파악이 어려움
- 애널리틱스 이벤트는 앱 구조와 독립적으로 분리
- 이벤트와 프로퍼티에 대한 형식을 엄격하게 제한
- 필요한 애널리틱스 리소스에만 접근 가능
- 라이브러리가 달라도 애널리틱스 처리 로직은 동일하게 동작
abstract class AnalyticsEvent(
val eventName: String,
val params: Map<String, Any?> = emptyMap(),
val providers: List<AnalyticsProvider> = listOf(
AnalyticsProvider.ANALYTICS_FIREBASE,
AnalyticsProvider.ANALYTICS_AMPLITUDE,
)
)
abstract class AnalyticsProperty(
val propertyName: String,
val parameter: Any,
val providers: List<AnalyticsProvider> = listOf(
AnalyticsProvider.ANALYTICS_FIREBASE,
AnalyticsProvider.ANALYTICS_AMPLITUDE,
)
)