Unverified Commit badfa481 authored by mergify[bot]'s avatar mergify[bot] Committed by GitHub
Browse files

For #21623 - Pocket recommended stories telemetry (#22156)



(cherry picked from commit 507801e5)

Co-authored-by: default avatarMugurell <Mugurell@users.noreply.github.com>
parent 78b4e75a
Loading
Loading
Loading
Loading
+85 −0
Original line number Diff line number Diff line
@@ -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:
+30 −0
Original line number Diff line number Diff line
@@ -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
@@ -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()
+17 −0
Original line number Diff line number Diff line
@@ -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) }
+2 −1
Original line number Diff line number Diff line
@@ -357,7 +357,8 @@ class HomeFragment : Fragment() {
            pocketStoriesController = DefaultPocketStoriesController(
                homeActivity = activity,
                homeStore = homeFragmentStore,
                navController = findNavController()
                navController = findNavController(),
                metrics = requireComponents.analytics.metrics
            )
        )

+13 −5
Original line number Diff line number Diff line
@@ -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