Skip to content
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
18 changes: 18 additions & 0 deletions WooCommerce/Classes/Analytics/WooAnalyticsEvent.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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: [:])
}
}
}
3 changes: 2 additions & 1 deletion WooCommerce/Classes/Analytics/WooAnalyticsStat.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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.
//
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ struct ProductsOnboardingAnnouncementCardViewModel: AnnouncementCardViewModelPro
let onCTATapped: (() -> Void)?

func ctaTapped() {
ServiceLocator.analytics.track(event: .ProductsOnboarding.bannerCTATapped())
onCTATapped?()
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down