Skip to content

Commit 8f948db

Browse files
authored
Merge pull request #8335 from woocommerce/issue/8323-analytics-hub-standard-tracks-events
[Analytics Hub] Add new standard tracks events
2 parents 46bc22a + 54bb55c commit 8f948db

File tree

5 files changed

+50
-12
lines changed

5 files changed

+50
-12
lines changed

WooCommerce/Classes/Analytics/WooAnalyticsEvent.swift

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1773,3 +1773,31 @@ extension WooAnalyticsEvent {
17731773
}
17741774
}
17751775
}
1776+
1777+
// MARK: - Analytics Hub
1778+
//
1779+
extension WooAnalyticsEvent {
1780+
enum AnalyticsHub {
1781+
enum Keys: String {
1782+
case option
1783+
}
1784+
1785+
/// Tracks when the "See more" button is tapped in My Store, to open the Analytics Hub.
1786+
///
1787+
static func seeMoreAnalyticsTapped() -> WooAnalyticsEvent {
1788+
WooAnalyticsEvent(statName: .dashboardSeeMoreAnalyticsTapped, properties: [:])
1789+
}
1790+
1791+
/// Tracks when the date range selector button is tapped.
1792+
///
1793+
static func dateRangeButtonTapped() -> WooAnalyticsEvent {
1794+
WooAnalyticsEvent(statName: .analyticsHubDateRangeButtonTapped, properties: [:])
1795+
}
1796+
1797+
/// Tracks when a date range option is selected like “today”, “yesterday”, or “custom”.
1798+
///
1799+
static func dateRangeOptionSelected(_ option: String) -> WooAnalyticsEvent {
1800+
WooAnalyticsEvent(statName: .analyticsHubDateRangeOptionSelected, properties: [Keys.option.rawValue: option])
1801+
}
1802+
}
1803+
}

WooCommerce/Classes/Analytics/WooAnalyticsStat.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ public enum WooAnalyticsStat: String {
130130
case dashboardPulledToRefresh = "dashboard_pulled_to_refresh"
131131
case dashboardNewOrdersButtonTapped = "dashboard_unfulfilled_orders_button_tapped"
132132
case dashboardShareStoreButtonTapped = "dashboard_share_your_store_button_tapped"
133+
case dashboardSeeMoreAnalyticsTapped = "dashboard_see_more_analytics_tapped"
133134

134135
// MARK: Dashboard Data/Action Events
135136
//
@@ -149,6 +150,11 @@ public enum WooAnalyticsStat: String {
149150
case dashboardNewStatsRevertedBannerLearnMoreTapped = "dashboard_new_stats_reverted_banner_learn_more_tapped"
150151
case usedAnalytics = "used_analytics"
151152

153+
// MARK: Analytics Hub Events
154+
//
155+
case analyticsHubDateRangeButtonTapped = "analytics_hub_date_range_button_tapped"
156+
case analyticsHubDateRangeOptionSelected = "analytics_hub_date_range_option_selected"
157+
152158
// MARK: Products Onboarding Events
153159
//
154160
case productsOnboardingEligible = "products_onboarding_store_is_eligible"

WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsTimeRangeCard.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,16 @@ struct AnalyticsTimeRangeCard: View {
2424
SelectionList(title: Localization.timeRangeSelectionTitle,
2525
items: AnalyticsHubTimeRangeSelection.SelectionType.allCases,
2626
contentKeyPath: \.description,
27-
selected: $selectionType)
27+
selected: $selectionType) { selection in
28+
ServiceLocator.analytics.track(event: .AnalyticsHub.dateRangeOptionSelected(selection.rawValue))
29+
}
2830
}
2931
}
3032

3133
private func createTimeRangeContent() -> some View {
3234
VStack(alignment: .leading, spacing: Layout.verticalSpacing) {
3335
Button(action: {
36+
ServiceLocator.analytics.track(event: .AnalyticsHub.dateRangeButtonTapped())
3437
showTimeRangeSelectionView.toggle()
3538
}, label: {
3639
HStack {

WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/Time Range/AnalyticsHubTimeRangeSelection.swift

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -67,17 +67,17 @@ public class AnalyticsHubTimeRangeSelection {
6767

6868
// MARK: - Time Range Selection Type
6969
extension AnalyticsHubTimeRangeSelection {
70-
enum SelectionType: CaseIterable {
71-
case today
72-
case yesterday
73-
case lastWeek
74-
case lastMonth
75-
case lastQuarter
76-
case lastYear
77-
case weekToDate
78-
case monthToDate
79-
case quarterToDate
80-
case yearToDate
70+
enum SelectionType: String, CaseIterable {
71+
case today = "Today"
72+
case yesterday = "Yesterday"
73+
case lastWeek = "Last Week"
74+
case lastMonth = "Last Month"
75+
case lastQuarter = "Last Quarter"
76+
case lastYear = "Last Year"
77+
case weekToDate = "Week to Date"
78+
case monthToDate = "Month to Date"
79+
case quarterToDate = "Quarter to Date"
80+
case yearToDate = "Year to Date"
8181

8282
var description: String {
8383
switch self {

WooCommerce/Classes/ViewRelated/Dashboard/Stats v4/StoreStatsAndTopPerformersPeriodViewController.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,7 @@ private extension StoreStatsAndTopPerformersPeriodViewController {
357357
}
358358

359359
@objc func seeMoreButtonTapped() {
360+
ServiceLocator.analytics.track(event: .AnalyticsHub.seeMoreAnalyticsTapped())
360361
let analyticsHubVC = AnalyticsHubHostingViewController(siteID: siteID, timeRange: timeRange)
361362
show(analyticsHubVC, sender: self)
362363
}

0 commit comments

Comments
 (0)