Skip to content

Commit

Permalink
Merge pull request #16284 from wordpress-mobile/issue/16272-add-track…
Browse files Browse the repository at this point in the history
…-events-for-quick-link-ribbon

Add track events for quick link ribbon
  • Loading branch information
ashiagr authored Apr 8, 2022
2 parents 817be12 + 65907ef commit 521e6b3
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -769,27 +769,30 @@ class MySiteViewModel @Inject constructor(
_onNavigation.value = Event(SiteNavigationAction.OpenMedia(selectedSite))
}

// todo: @ajesh add tracking logic in the below clicks
private fun onQuickLinkRibbonStatsClick() {
val selectedSite = requireNotNull(selectedSiteRepository.getSelectedSite())
trackWithTabSourceIfNeeded(Stat.QUICK_LINK_RIBBON_STATS_TAPPED)
quickStartRepository.completeTask(QuickStartTask.CHECK_STATS)
_onNavigation.value = Event(getStatsNavigationActionForSite(selectedSite))
}

private fun onQuickLinkRibbonPagesClick() {
val selectedSite = requireNotNull(selectedSiteRepository.getSelectedSite())
trackWithTabSourceIfNeeded(Stat.QUICK_LINK_RIBBON_PAGES_TAPPED)
quickStartRepository.requestNextStepOfTask(QuickStartTask.EDIT_HOMEPAGE)
quickStartRepository.completeTask(QuickStartTask.REVIEW_PAGES)
_onNavigation.value = Event(SiteNavigationAction.OpenPages(selectedSite))
}

private fun onQuickLinkRibbonPostsClick() {
val selectedSite = requireNotNull(selectedSiteRepository.getSelectedSite())
trackWithTabSourceIfNeeded(Stat.QUICK_LINK_RIBBON_POSTS_TAPPED)
_onNavigation.value = Event(SiteNavigationAction.OpenPosts(selectedSite))
}

private fun onQuickLinkRibbonMediaClick() {
val selectedSite = requireNotNull(selectedSiteRepository.getSelectedSite())
trackWithTabSourceIfNeeded(Stat.QUICK_LINK_RIBBON_MEDIA_TAPPED)
_onNavigation.value = Event(SiteNavigationAction.OpenMedia(selectedSite))
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2231,6 +2231,42 @@ class MySiteViewModelTest : BaseUnitTest() {
assertThat(analyticsTrackerWrapper.track(Stat.QUICK_ACTION_MEDIA_TAPPED))
}

@Test
fun `given tabs are enabled, when quick link ribbon pages tapped, then track with tab source is requested`() {
initSelectedSite(isMySiteDashboardTabsFeatureFlagEnabled = true, isMySiteTabsBuildConfigEnabled = true)

requireNotNull(quickLinkRibbonPagesClickAction).invoke()

assertThat(trackWithTabSource.last().stat).isEqualTo(Stat.QUICK_LINK_RIBBON_PAGES_TAPPED)
}

@Test
fun `given tabs are enabled, when quick link ribbon posts tapped, then track with tab source is requested`() {
initSelectedSite(isMySiteDashboardTabsFeatureFlagEnabled = true, isMySiteTabsBuildConfigEnabled = true)

requireNotNull(quickLinkRibbonPostsClickAction).invoke()

assertThat(trackWithTabSource.last().stat).isEqualTo(Stat.QUICK_LINK_RIBBON_POSTS_TAPPED)
}

@Test
fun `given tabs are enabled, when quick link ribbon stats tapped, then track with tab source is requested`() {
initSelectedSite(isMySiteDashboardTabsFeatureFlagEnabled = true, isMySiteTabsBuildConfigEnabled = true)

requireNotNull(quickLinkRibbonStatsClickAction).invoke()

assertThat(trackWithTabSource.last().stat).isEqualTo(Stat.QUICK_LINK_RIBBON_STATS_TAPPED)
}

@Test
fun `given tabs are enabled, when quick link ribbon media tapped, then track with tab source is requested`() {
initSelectedSite(isMySiteDashboardTabsFeatureFlagEnabled = true, isMySiteTabsBuildConfigEnabled = true)

requireNotNull(quickLinkRibbonMediaClickAction).invoke()

assertThat(trackWithTabSource.last().stat).isEqualTo(Stat.QUICK_LINK_RIBBON_MEDIA_TAPPED)
}

@Test
fun `given site is WPCOM, when quick link ribbon stats click, then stats screen is shown`() {
whenever(accountStore.hasAccessToken()).thenReturn(true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -699,6 +699,10 @@ public enum Stat {
QUICK_ACTION_PAGES_TAPPED,
QUICK_ACTION_POSTS_TAPPED,
QUICK_ACTION_MEDIA_TAPPED,
QUICK_LINK_RIBBON_PAGES_TAPPED,
QUICK_LINK_RIBBON_POSTS_TAPPED,
QUICK_LINK_RIBBON_MEDIA_TAPPED,
QUICK_LINK_RIBBON_STATS_TAPPED,
AUTO_UPLOAD_POST_INVOKED,
AUTO_UPLOAD_PAGE_INVOKED,
UNPUBLISHED_REVISION_DIALOG_SHOWN,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -441,6 +441,18 @@ public void track(AnalyticsTracker.Stat stat, Map<String, ?> properties) {
case QUICK_ACTION_MEDIA_TAPPED:
predefinedEventProperties.put("button", "media");
break;
case QUICK_LINK_RIBBON_PAGES_TAPPED:
predefinedEventProperties.put("button", "pages");
break;
case QUICK_LINK_RIBBON_POSTS_TAPPED:
predefinedEventProperties.put("button", "posts");
break;
case QUICK_LINK_RIBBON_MEDIA_TAPPED:
predefinedEventProperties.put("button", "media");
break;
case QUICK_LINK_RIBBON_STATS_TAPPED:
predefinedEventProperties.put("button", "stats");
break;
case WELCOME_NO_SITES_INTERSTITIAL_CREATE_NEW_SITE_TAPPED:
predefinedEventProperties.put("button", "create_new_site");
break;
Expand Down Expand Up @@ -1896,6 +1908,11 @@ public static String getEventNameForStat(AnalyticsTracker.Stat stat) {
case QUICK_ACTION_POSTS_TAPPED:
case QUICK_ACTION_MEDIA_TAPPED:
return "quick_action_tapped";
case QUICK_LINK_RIBBON_PAGES_TAPPED:
case QUICK_LINK_RIBBON_POSTS_TAPPED:
case QUICK_LINK_RIBBON_MEDIA_TAPPED:
case QUICK_LINK_RIBBON_STATS_TAPPED:
return "quick_action_ribbon_tapped";
case AUTO_UPLOAD_POST_INVOKED:
return "auto_upload_post_invoked";
case AUTO_UPLOAD_PAGE_INVOKED:
Expand Down

0 comments on commit 521e6b3

Please sign in to comment.