Loading app/metrics.yaml +85 −0 Original line number Diff line number Diff line Loading @@ -3775,6 +3775,91 @@ pocket: notification_emails: - android-probes@mozilla.com expires: "2022-02-01" home_recs_shown: type: event description: | The Pocket recommended stories are shown on the home screen. bugs: - https://github.com/mozilla-mobile/fenix/issues/21593 data_reviews: - https://github.com/mozilla-mobile/fenix/pull/21625#issuecomment-936745506 data_sensitivity: - interaction notification_emails: - android-probes@mozilla.com expires: "2022-10-01" home_recs_story_clicked: type: event description: | User tapped a Pocket recommended story to be opened. extra_keys: times_shown: description: | How many times was this story shown, including current. position: description: | Position of the clicked story in the list shown. Uses the [row x column] matrix notation. bugs: - https://github.com/mozilla-mobile/fenix/issues/21593 data_reviews: - https://github.com/mozilla-mobile/fenix/pull/21625#issuecomment-936745506 data_sensitivity: - interaction notification_emails: - android-probes@mozilla.com expires: "2022-10-01" home_recs_category_clicked: type: event description: | User tapped a Pocket stories category to filter stories. extra_keys: category_name: description: | Pocket set topic name representing the just clicked category. selected_total: description: | How many categories were selected before this being tapped. new_state: description: | Category's new state after being tapped. Possible values: [selected], [deselected]. bugs: - https://github.com/mozilla-mobile/fenix/issues/21593 data_reviews: - https://github.com/mozilla-mobile/fenix/pull/21625#issuecomment-936745506 data_sensitivity: - interaction notification_emails: - android-probes@mozilla.com expires: "2022-10-01" home_recs_discover_clicked: type: event description: | User tapped the "Discover more" tile to open a new tab for more Pocket stories. bugs: - https://github.com/mozilla-mobile/fenix/issues/21593 data_reviews: - https://github.com/mozilla-mobile/fenix/pull/21625#issuecomment-936745506 data_sensitivity: - interaction notification_emails: - android-probes@mozilla.com expires: "2022-10-01" home_recs_learn_more_clicked: type: event description: | User tapped "Learn more" to open a new tab for Pocket. bugs: - https://github.com/mozilla-mobile/fenix/issues/21593 data_reviews: - https://github.com/mozilla-mobile/fenix/pull/21625#issuecomment-936745506 data_sensitivity: - interaction notification_emails: - android-probes@mozilla.com expires: "2022-10-01" first_session: campaign: Loading app/src/main/java/org/mozilla/fenix/components/metrics/Event.kt +30 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ import org.mozilla.fenix.GleanMetrics.ErrorPage import org.mozilla.fenix.GleanMetrics.Events import org.mozilla.fenix.GleanMetrics.Logins import org.mozilla.fenix.GleanMetrics.Onboarding import org.mozilla.fenix.GleanMetrics.Pocket import org.mozilla.fenix.GleanMetrics.ProgressiveWebApp import org.mozilla.fenix.GleanMetrics.SearchShortcuts import org.mozilla.fenix.GleanMetrics.TabsTray Loading Loading @@ -127,6 +128,35 @@ sealed class Event { object WhatsNewTapped : Event() object PocketTopSiteClicked : Event() object PocketTopSiteRemoved : Event() object PocketHomeRecsShown : Event() object PocketHomeRecsDiscoverMoreClicked : Event() object PocketHomeRecsLearnMoreClicked : Event() data class PocketHomeRecsStoryClicked( val timesShown: Long, val storyPosition: Pair<Int, Int>, ) : Event() { override val extras: Map<Pocket.homeRecsStoryClickedKeys, String> get() = mapOf( Pocket.homeRecsStoryClickedKeys.timesShown to timesShown.toString(), Pocket.homeRecsStoryClickedKeys.position to "${storyPosition.first}x${storyPosition.second}" ) } data class PocketHomeRecsCategoryClicked( val categoryname: String, val previousSelectedCategoriesTotal: Int, val isSelectedNextState: Boolean ) : Event() { override val extras: Map<Pocket.homeRecsCategoryClickedKeys, String> get() = mapOf( Pocket.homeRecsCategoryClickedKeys.categoryName to categoryname, Pocket.homeRecsCategoryClickedKeys.selectedTotal to previousSelectedCategoriesTotal.toString(), Pocket.homeRecsCategoryClickedKeys.newState to when (isSelectedNextState) { true -> "selected" false -> "deselected" } ) } object FennecToFenixMigrated : Event() object AddonsOpenInSettings : Event() object VoiceSearchTapped : Event() Loading app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt +17 −0 Original line number Diff line number Diff line Loading @@ -493,6 +493,23 @@ private val Event.wrapper: EventWrapper<*>? is Event.PocketTopSiteRemoved -> EventWrapper<NoExtraKeys>( { Pocket.pocketTopSiteRemoved.record(it) } ) is Event.PocketHomeRecsShown -> EventWrapper<NoExtraKeys>( { Pocket.homeRecsShown.record(it) } ) is Event.PocketHomeRecsLearnMoreClicked -> EventWrapper<NoExtraKeys>( { Pocket.homeRecsLearnMoreClicked.record(it) } ) is Event.PocketHomeRecsDiscoverMoreClicked -> EventWrapper<NoExtraKeys>( { Pocket.homeRecsDiscoverClicked.record(it) } ) is Event.PocketHomeRecsStoryClicked -> EventWrapper( { Pocket.homeRecsStoryClicked.record(it) }, { Pocket.homeRecsStoryClickedKeys.valueOf(it) } ) is Event.PocketHomeRecsCategoryClicked -> EventWrapper( { Pocket.homeRecsCategoryClicked.record(it) }, { Pocket.homeRecsCategoryClickedKeys.valueOf(it) } ) is Event.DarkThemeSelected -> EventWrapper( { AppTheme.darkThemeSelected.record(it) }, { AppTheme.darkThemeSelectedKeys.valueOf(it) } Loading app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +2 −1 Original line number Diff line number Diff line Loading @@ -357,7 +357,8 @@ class HomeFragment : Fragment() { pocketStoriesController = DefaultPocketStoriesController( homeActivity = activity, homeStore = homeFragmentStore, navController = findNavController() navController = findNavController(), metrics = requireComponents.analytics.metrics ) ) Loading app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlInteractor.kt +13 −5 Original line number Diff line number Diff line Loading @@ -391,15 +391,23 @@ class SessionControlInteractor( controller.handleCustomizeHomeTapped() } override fun onCategoryClick(categoryClicked: PocketRecommendedStoriesCategory) { override fun onStoriesShown(storiesShown: List<PocketRecommendedStory>) { pocketStoriesController.handleStoriesShown(storiesShown) } override fun onCategoryClicked(categoryClicked: PocketRecommendedStoriesCategory) { pocketStoriesController.handleCategoryClick(categoryClicked) } override fun onStoriesShown(storiesShown: List<PocketRecommendedStory>) { pocketStoriesController.handleStoriesShown(storiesShown) override fun onStoryClicked(storyClicked: PocketRecommendedStory, storyPosition: Pair<Int, Int>) { pocketStoriesController.handleStoryClicked(storyClicked, storyPosition) } override fun onLearnMoreClicked(link: String) { pocketStoriesController.handleLearnMoreClicked(link) } override fun onExternalLinkClicked(link: String) { pocketStoriesController.handleExternalLinkClick(link) override fun onDiscoverMoreClicked(link: String) { pocketStoriesController.handleDiscoverMoreClicked(link) } } Loading
app/metrics.yaml +85 −0 Original line number Diff line number Diff line Loading @@ -3775,6 +3775,91 @@ pocket: notification_emails: - android-probes@mozilla.com expires: "2022-02-01" home_recs_shown: type: event description: | The Pocket recommended stories are shown on the home screen. bugs: - https://github.com/mozilla-mobile/fenix/issues/21593 data_reviews: - https://github.com/mozilla-mobile/fenix/pull/21625#issuecomment-936745506 data_sensitivity: - interaction notification_emails: - android-probes@mozilla.com expires: "2022-10-01" home_recs_story_clicked: type: event description: | User tapped a Pocket recommended story to be opened. extra_keys: times_shown: description: | How many times was this story shown, including current. position: description: | Position of the clicked story in the list shown. Uses the [row x column] matrix notation. bugs: - https://github.com/mozilla-mobile/fenix/issues/21593 data_reviews: - https://github.com/mozilla-mobile/fenix/pull/21625#issuecomment-936745506 data_sensitivity: - interaction notification_emails: - android-probes@mozilla.com expires: "2022-10-01" home_recs_category_clicked: type: event description: | User tapped a Pocket stories category to filter stories. extra_keys: category_name: description: | Pocket set topic name representing the just clicked category. selected_total: description: | How many categories were selected before this being tapped. new_state: description: | Category's new state after being tapped. Possible values: [selected], [deselected]. bugs: - https://github.com/mozilla-mobile/fenix/issues/21593 data_reviews: - https://github.com/mozilla-mobile/fenix/pull/21625#issuecomment-936745506 data_sensitivity: - interaction notification_emails: - android-probes@mozilla.com expires: "2022-10-01" home_recs_discover_clicked: type: event description: | User tapped the "Discover more" tile to open a new tab for more Pocket stories. bugs: - https://github.com/mozilla-mobile/fenix/issues/21593 data_reviews: - https://github.com/mozilla-mobile/fenix/pull/21625#issuecomment-936745506 data_sensitivity: - interaction notification_emails: - android-probes@mozilla.com expires: "2022-10-01" home_recs_learn_more_clicked: type: event description: | User tapped "Learn more" to open a new tab for Pocket. bugs: - https://github.com/mozilla-mobile/fenix/issues/21593 data_reviews: - https://github.com/mozilla-mobile/fenix/pull/21625#issuecomment-936745506 data_sensitivity: - interaction notification_emails: - android-probes@mozilla.com expires: "2022-10-01" first_session: campaign: Loading
app/src/main/java/org/mozilla/fenix/components/metrics/Event.kt +30 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ import org.mozilla.fenix.GleanMetrics.ErrorPage import org.mozilla.fenix.GleanMetrics.Events import org.mozilla.fenix.GleanMetrics.Logins import org.mozilla.fenix.GleanMetrics.Onboarding import org.mozilla.fenix.GleanMetrics.Pocket import org.mozilla.fenix.GleanMetrics.ProgressiveWebApp import org.mozilla.fenix.GleanMetrics.SearchShortcuts import org.mozilla.fenix.GleanMetrics.TabsTray Loading Loading @@ -127,6 +128,35 @@ sealed class Event { object WhatsNewTapped : Event() object PocketTopSiteClicked : Event() object PocketTopSiteRemoved : Event() object PocketHomeRecsShown : Event() object PocketHomeRecsDiscoverMoreClicked : Event() object PocketHomeRecsLearnMoreClicked : Event() data class PocketHomeRecsStoryClicked( val timesShown: Long, val storyPosition: Pair<Int, Int>, ) : Event() { override val extras: Map<Pocket.homeRecsStoryClickedKeys, String> get() = mapOf( Pocket.homeRecsStoryClickedKeys.timesShown to timesShown.toString(), Pocket.homeRecsStoryClickedKeys.position to "${storyPosition.first}x${storyPosition.second}" ) } data class PocketHomeRecsCategoryClicked( val categoryname: String, val previousSelectedCategoriesTotal: Int, val isSelectedNextState: Boolean ) : Event() { override val extras: Map<Pocket.homeRecsCategoryClickedKeys, String> get() = mapOf( Pocket.homeRecsCategoryClickedKeys.categoryName to categoryname, Pocket.homeRecsCategoryClickedKeys.selectedTotal to previousSelectedCategoriesTotal.toString(), Pocket.homeRecsCategoryClickedKeys.newState to when (isSelectedNextState) { true -> "selected" false -> "deselected" } ) } object FennecToFenixMigrated : Event() object AddonsOpenInSettings : Event() object VoiceSearchTapped : Event() Loading
app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt +17 −0 Original line number Diff line number Diff line Loading @@ -493,6 +493,23 @@ private val Event.wrapper: EventWrapper<*>? is Event.PocketTopSiteRemoved -> EventWrapper<NoExtraKeys>( { Pocket.pocketTopSiteRemoved.record(it) } ) is Event.PocketHomeRecsShown -> EventWrapper<NoExtraKeys>( { Pocket.homeRecsShown.record(it) } ) is Event.PocketHomeRecsLearnMoreClicked -> EventWrapper<NoExtraKeys>( { Pocket.homeRecsLearnMoreClicked.record(it) } ) is Event.PocketHomeRecsDiscoverMoreClicked -> EventWrapper<NoExtraKeys>( { Pocket.homeRecsDiscoverClicked.record(it) } ) is Event.PocketHomeRecsStoryClicked -> EventWrapper( { Pocket.homeRecsStoryClicked.record(it) }, { Pocket.homeRecsStoryClickedKeys.valueOf(it) } ) is Event.PocketHomeRecsCategoryClicked -> EventWrapper( { Pocket.homeRecsCategoryClicked.record(it) }, { Pocket.homeRecsCategoryClickedKeys.valueOf(it) } ) is Event.DarkThemeSelected -> EventWrapper( { AppTheme.darkThemeSelected.record(it) }, { AppTheme.darkThemeSelectedKeys.valueOf(it) } Loading
app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +2 −1 Original line number Diff line number Diff line Loading @@ -357,7 +357,8 @@ class HomeFragment : Fragment() { pocketStoriesController = DefaultPocketStoriesController( homeActivity = activity, homeStore = homeFragmentStore, navController = findNavController() navController = findNavController(), metrics = requireComponents.analytics.metrics ) ) Loading
app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlInteractor.kt +13 −5 Original line number Diff line number Diff line Loading @@ -391,15 +391,23 @@ class SessionControlInteractor( controller.handleCustomizeHomeTapped() } override fun onCategoryClick(categoryClicked: PocketRecommendedStoriesCategory) { override fun onStoriesShown(storiesShown: List<PocketRecommendedStory>) { pocketStoriesController.handleStoriesShown(storiesShown) } override fun onCategoryClicked(categoryClicked: PocketRecommendedStoriesCategory) { pocketStoriesController.handleCategoryClick(categoryClicked) } override fun onStoriesShown(storiesShown: List<PocketRecommendedStory>) { pocketStoriesController.handleStoriesShown(storiesShown) override fun onStoryClicked(storyClicked: PocketRecommendedStory, storyPosition: Pair<Int, Int>) { pocketStoriesController.handleStoryClicked(storyClicked, storyPosition) } override fun onLearnMoreClicked(link: String) { pocketStoriesController.handleLearnMoreClicked(link) } override fun onExternalLinkClicked(link: String) { pocketStoriesController.handleExternalLinkClick(link) override fun onDiscoverMoreClicked(link: String) { pocketStoriesController.handleDiscoverMoreClicked(link) } }