From 13589cdedd1e001edcf8961f8e99444b71fe6a17 Mon Sep 17 00:00:00 2001 From: rachelmcr Date: Mon, 31 Oct 2022 13:49:54 +0000 Subject: [PATCH 1/2] Track when CTA is tapped on products onboarding banner --- WooCommerce/Classes/Analytics/WooAnalyticsStat.swift | 3 ++- .../ProductsOnboardingAnnouncementCardViewModel.swift | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/WooCommerce/Classes/Analytics/WooAnalyticsStat.swift b/WooCommerce/Classes/Analytics/WooAnalyticsStat.swift index 605f471a8f3..c46a5df0a01 100644 --- a/WooCommerce/Classes/Analytics/WooAnalyticsStat.swift +++ b/WooCommerce/Classes/Analytics/WooAnalyticsStat.swift @@ -111,9 +111,10 @@ public enum WooAnalyticsStat: String { case dashboardNewStatsRevertedBannerLearnMoreTapped = "dashboard_new_stats_reverted_banner_learn_more_tapped" case usedAnalytics = "used_analytics" - // MARK: Onboarding Events + // MARK: Products Onboarding Events // case productsOnboardingEligible = "products_onboarding_store_is_eligible" + case productsOnboardingCTATapped = "products_onboarding_cta_tapped" // MARK: Site picker. Can be triggered by login epilogue or settings. // diff --git a/WooCommerce/Classes/ViewModels/Feature Announcement Cards/ProductsOnboardingAnnouncementCardViewModel.swift b/WooCommerce/Classes/ViewModels/Feature Announcement Cards/ProductsOnboardingAnnouncementCardViewModel.swift index d191f325ed8..63f4e147e93 100644 --- a/WooCommerce/Classes/ViewModels/Feature Announcement Cards/ProductsOnboardingAnnouncementCardViewModel.swift +++ b/WooCommerce/Classes/ViewModels/Feature Announcement Cards/ProductsOnboardingAnnouncementCardViewModel.swift @@ -23,6 +23,7 @@ struct ProductsOnboardingAnnouncementCardViewModel: AnnouncementCardViewModelPro let onCTATapped: (() -> Void)? func ctaTapped() { + ServiceLocator.analytics.track(.productsOnboardingCTATapped) onCTATapped?() } From 3540bf21530f02c2076f4e938ff5abc433c6f885 Mon Sep 17 00:00:00 2001 From: rachelmcr Date: Mon, 31 Oct 2022 17:21:08 +0000 Subject: [PATCH 2/2] Track products onboarding with WooAnalyticsEvent methods --- .../Classes/Analytics/WooAnalyticsEvent.swift | 18 ++++++++++++++++++ ...tsOnboardingAnnouncementCardViewModel.swift | 2 +- .../Dashboard/DashboardViewModel.swift | 2 +- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/WooCommerce/Classes/Analytics/WooAnalyticsEvent.swift b/WooCommerce/Classes/Analytics/WooAnalyticsEvent.swift index 8d11eeca791..d9416a89797 100644 --- a/WooCommerce/Classes/Analytics/WooAnalyticsEvent.swift +++ b/WooCommerce/Classes/Analytics/WooAnalyticsEvent.swift @@ -1632,3 +1632,21 @@ extension WooAnalyticsEvent { } } } + +// MARK: - Products Onboarding +// +extension WooAnalyticsEvent { + enum ProductsOnboarding { + /// Tracks when a store is eligible for products onboarding + /// + static func storeIsEligible() -> WooAnalyticsEvent { + WooAnalyticsEvent(statName: .productsOnboardingEligible, properties: [:]) + } + + /// Tracks when the call to action is tapped on the products onboarding banner + /// + static func bannerCTATapped() -> WooAnalyticsEvent { + WooAnalyticsEvent(statName: .productsOnboardingCTATapped, properties: [:]) + } + } +} diff --git a/WooCommerce/Classes/ViewModels/Feature Announcement Cards/ProductsOnboardingAnnouncementCardViewModel.swift b/WooCommerce/Classes/ViewModels/Feature Announcement Cards/ProductsOnboardingAnnouncementCardViewModel.swift index 63f4e147e93..9169bbbad7d 100644 --- a/WooCommerce/Classes/ViewModels/Feature Announcement Cards/ProductsOnboardingAnnouncementCardViewModel.swift +++ b/WooCommerce/Classes/ViewModels/Feature Announcement Cards/ProductsOnboardingAnnouncementCardViewModel.swift @@ -23,7 +23,7 @@ struct ProductsOnboardingAnnouncementCardViewModel: AnnouncementCardViewModelPro let onCTATapped: (() -> Void)? func ctaTapped() { - ServiceLocator.analytics.track(.productsOnboardingCTATapped) + ServiceLocator.analytics.track(event: .ProductsOnboarding.bannerCTATapped()) onCTATapped?() } diff --git a/WooCommerce/Classes/ViewRelated/Dashboard/DashboardViewModel.swift b/WooCommerce/Classes/ViewRelated/Dashboard/DashboardViewModel.swift index f6312fd8950..3b92fe430ff 100644 --- a/WooCommerce/Classes/ViewRelated/Dashboard/DashboardViewModel.swift +++ b/WooCommerce/Classes/ViewRelated/Dashboard/DashboardViewModel.swift @@ -120,7 +120,7 @@ final class DashboardViewModel { switch result { case .success(let isEligible): if isEligible { - ServiceLocator.analytics.track(.productsOnboardingEligible) + ServiceLocator.analytics.track(event: .ProductsOnboarding.storeIsEligible()) if self?.featureFlagService.isFeatureFlagEnabled(.productsOnboarding) == true { let viewModel = ProductsOnboardingAnnouncementCardViewModel(onCTATapped: { [weak self] in