Skip to content

Commit 29c24f0

Browse files
committed
Add analytics event to track when date range selection fails
1 parent 87a2046 commit 29c24f0

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

WooCommerce/Classes/Analytics/WooAnalyticsEvent.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1780,6 +1780,8 @@ extension WooAnalyticsEvent {
17801780
enum AnalyticsHub {
17811781
enum Keys: String {
17821782
case option
1783+
case calendar
1784+
case timezone
17831785
}
17841786

17851787
/// Tracks when the "See more" button is tapped in My Store, to open the Analytics Hub.
@@ -1799,5 +1801,14 @@ extension WooAnalyticsEvent {
17991801
static func dateRangeOptionSelected(_ option: String) -> WooAnalyticsEvent {
18001802
WooAnalyticsEvent(statName: .analyticsHubDateRangeOptionSelected, properties: [Keys.option.rawValue: option])
18011803
}
1804+
1805+
/// Tracks when the date range selection fails, due to an error generating the date range from the selection.
1806+
/// Includes the current device calendar and timezone, for debugging the failure.
1807+
///
1808+
static func dateRangeSelectionFailed(for option: AnalyticsHubTimeRangeSelection.SelectionType) -> WooAnalyticsEvent {
1809+
WooAnalyticsEvent(statName: .analyticsHubDateRangeSelectionFailed, properties: [Keys.option.rawValue: option.rawValue,
1810+
Keys.calendar.rawValue: Locale.current.calendar.debugDescription,
1811+
Keys.timezone.rawValue: TimeZone.current.debugDescription])
1812+
}
18021813
}
18031814
}

WooCommerce/Classes/Analytics/WooAnalyticsStat.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ public enum WooAnalyticsStat: String {
154154
//
155155
case analyticsHubDateRangeButtonTapped = "analytics_hub_date_range_button_tapped"
156156
case analyticsHubDateRangeOptionSelected = "analytics_hub_date_range_option_selected"
157+
case analyticsHubDateRangeSelectionFailed = "analytics_hub_date_range_selection_failed"
157158

158159
// MARK: Products Onboarding Events
159160
//

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ final class AnalyticsHubViewModel: ObservableObject {
8484
try await retrieveOrderStats()
8585
} catch is AnalyticsHubTimeRangeSelection.TimeRangeGeneratorError {
8686
dismissNotice = Notice(title: Localization.timeRangeGeneratorError, feedbackType: .error)
87+
ServiceLocator.analytics.track(event: .AnalyticsHub.dateRangeSelectionFailed(for: timeRangeSelectionType))
8788
DDLogWarn("⚠️ Error selecting analytics time range: \(timeRangeSelectionType.description)")
8889
} catch {
8990
switchToErrorState()

0 commit comments

Comments
 (0)