diff --git a/app/src/main/java/org/sopt/dateroad/presentation/ui/home/HomeScreen.kt b/app/src/main/java/org/sopt/dateroad/presentation/ui/home/HomeScreen.kt index d14c9604..cae9923b 100644 --- a/app/src/main/java/org/sopt/dateroad/presentation/ui/home/HomeScreen.kt +++ b/app/src/main/java/org/sopt/dateroad/presentation/ui/home/HomeScreen.kt @@ -55,7 +55,17 @@ import org.sopt.dateroad.presentation.ui.home.component.DateRoadHomeTopBar import org.sopt.dateroad.presentation.ui.home.component.HomeAdvertisement import org.sopt.dateroad.presentation.ui.home.component.HomeHotCourseCard import org.sopt.dateroad.presentation.ui.home.component.HomeTimeLineCard +import org.sopt.dateroad.presentation.util.HomeAmplitude.COURSE_LIST_COST +import org.sopt.dateroad.presentation.util.HomeAmplitude.COURSE_LIST_ID +import org.sopt.dateroad.presentation.util.HomeAmplitude.COURSE_LIST_LOCATION +import org.sopt.dateroad.presentation.util.HomeAmplitude.COURSE_LIST_TITLE +import org.sopt.dateroad.presentation.util.HomeAmplitude.HOT +import org.sopt.dateroad.presentation.util.HomeAmplitude.NEW +import org.sopt.dateroad.presentation.util.HomeAmplitude.USER_NAME +import org.sopt.dateroad.presentation.util.HomeAmplitude.USER_POINT +import org.sopt.dateroad.presentation.util.HomeAmplitude.VIEW_MAIN import org.sopt.dateroad.presentation.util.ViewPath.HOME +import org.sopt.dateroad.presentation.util.amplitude.AmplitudeUtils import org.sopt.dateroad.presentation.util.view.LoadState import org.sopt.dateroad.ui.theme.DateRoadTheme @@ -108,6 +118,26 @@ fun HomeRoute( } } + LaunchedEffect(uiState.loadState, lifecycleOwner) { + if (uiState.loadState == LoadState.Success) { + AmplitudeUtils.trackEventWithProperties( + eventName = VIEW_MAIN, + mapOf( + USER_NAME to uiState.userPoint.name, + USER_POINT to uiState.userPoint.point, + COURSE_LIST_ID to + HOT + uiState.topLikedCourses.map { it.courseId }.joinToString() + NEW + uiState.latestCourses.map { it.courseId }.joinToString(), + COURSE_LIST_TITLE to + HOT + uiState.topLikedCourses.joinToString { it.title } + NEW + uiState.latestCourses.joinToString { it.title }, + COURSE_LIST_LOCATION to + HOT + uiState.topLikedCourses.joinToString { it.city } + NEW + uiState.latestCourses.joinToString { it.city }, + COURSE_LIST_COST to + HOT + uiState.topLikedCourses.joinToString { it.cost } + NEW + uiState.latestCourses.joinToString { it.cost } + ) + ) + } + } + when (uiState.loadState) { LoadState.Idle -> DateRoadIdleView() diff --git a/app/src/main/java/org/sopt/dateroad/presentation/util/Constraints.kt b/app/src/main/java/org/sopt/dateroad/presentation/util/Constraints.kt index 9423a0e4..4d987bdf 100644 --- a/app/src/main/java/org/sopt/dateroad/presentation/util/Constraints.kt +++ b/app/src/main/java/org/sopt/dateroad/presentation/util/Constraints.kt @@ -60,6 +60,18 @@ object Pattern { val NICKNAME_REGEX = Regex(NICKNAME_PATTERN) } +object HomeAmplitude { + const val VIEW_MAIN = "view_main" + const val USER_NAME = "user_name" + const val USER_POINT = "user_point" + const val COURSE_LIST_ID = "course_list_id" + const val COURSE_LIST_TITLE = "course_list_title" + const val COURSE_LIST_LOCATION = "course_list_location" + const val COURSE_LIST_COST = "course_list_cost" + const val HOT = "Hot: " + const val NEW = " / New: " +} + object ViewPath { const val HOME = "홈" const val TIMELINE = "데이트 일정"