Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add track events for quick link ribbon #16284

Merged
merged 3 commits into from
Apr 8, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -758,27 +758,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 @@ -2163,6 +2163,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