Skip to content

Commit

Permalink
[MOB-2893] Analytics clean up (#798)
Browse files Browse the repository at this point in the history
* Remove unused Analytics methods

* Re-add App open as Default Browser

* Add space above Ecosia comment

* Re-add default browser settings click

* Re-add toolbar position change tracking

* Re-add missing context menu clicks

* Re-add menu status changes

* Rename ntpCustomization and create specific values section

* Split onboarding specific labels

* Refactor and group Referrals analytics

* Add all previously hardcoded strings to Analytics.Values

* Reorder and mark Analytics methods

* Clean up Analytics.Values and reorder alphabetically
  • Loading branch information
lucaschifino authored Oct 22, 2024
1 parent 67f82bf commit a50e6b1
Show file tree
Hide file tree
Showing 12 changed files with 349 additions and 323 deletions.
7 changes: 6 additions & 1 deletion Client/Coordinators/Router/RouteBuilder.swift
Original file line number Diff line number Diff line change
Expand Up @@ -109,10 +109,15 @@ final class RouteBuilder {
}
} else if urlScanner.isHTTPScheme {
TelemetryWrapper.gleanRecordEvent(category: .action, method: .open, object: .asDefaultBrowser)

// Ecosia: Track app open as default browser
Analytics.shared.appOpenAsDefaultBrowser()

RatingPromptManager.isBrowserDefault = true
// Use the last browsing mode the user was in
return .search(url: url, isPrivate: isPrivate, options: [.focusLocationField])
// Ecosia: Referral deeplink

// Ecosia: Referral deeplink
} else if urlScanner.scheme == "ecosia", urlScanner.host == "invite" {
let paths = url.absoluteString.split(separator: "/")
guard let componentPath = paths[safe: 2] else { return nil }
Expand Down
248 changes: 134 additions & 114 deletions Client/Ecosia/Analytics/Analytics.Values.swift
Original file line number Diff line number Diff line change
Expand Up @@ -4,125 +4,173 @@ extension Analytics {
enum Category: String {
case
activity,
abTest = "ab_Test",
bookmarks,
browser,
pushNotificationConsent = "push_notification_consent",
external,
migration,
navigation,
onboarding,
intro,
invitations,
ntp,
menu,
menuStatus = "menu_status",
settings,
bookmarks
migration,
navigation,
ntp,
pushNotificationConsent = "push_notification_consent",
settings
}

enum Label {
enum Label: String {
case
analytics,
market,
toolbar

enum Bookmarks: String {
case
importFunctionality = "import_functionality",
learnMore = "learn_more",
`import`
}

enum DefaultBrowser: String {
case
deeplink = "default_browser_deeplink",
promo = "default_browser_promo",
settings = "default_browser_settings"
}

enum Menu: String {
case
bookmarks,
copyLink = "copy_link",
customizeHomepage = "customize_homepage",
downloads,
findInPage = "find_in_page",
help,
history,
home,
newTab = "new_tab",
openInSafari = "open_in_safari",
readingList = "reading_list",
requestDesktopSite = "request_desktop_site",
settings,
share,
zoom
}

enum MenuStatus: String {
case
bookmark,
darkMode = "dark_mode",
readingList = "reading_list",
shortcut
}

enum Migration: String {
case
tabs
}

enum Navigation: String {
case
inapp,
projects,
counter,
financialReports = "financial_reports",
shop,
faq,
news,
next,
privacy,
projects,
sendFeedback = "send_feedback",
skip,
terms,
treecard,
treestore
terms
}

enum NTP: String {
case
about,
climateCounter = "climate_counter",
customize,
topSites = "top_sites",
impact,
quickActions = "quick_actions",
news,
onboardingCard = "onboarding_card",
climateCounter = "climate_counter"
quickActions = "quick_actions",
topSites = "top_sites"
}

enum Browser: String {
enum Onboarding: String {
case
favourites,
history,
tabs,
settings,
newTab = "new_tab",
blockImages = "block_images",
searchbar = "searchbar"
next,
skip
}

enum Bookmarks: String {
enum Referral: String {
case
importFunctionality = "import_functionality",
invite,
inviteScreen = "invite_screen",
learnMore = "learn_more",
`import`
linkCopying = "link_copying",
promo
}
}

enum Action: String {
case
view,
open,
receive,
error,
completed,
success,
retry,
send,
claim,
click,
change,
display,
enable,
click,
disable,
dismiss,
search
display,
enable,
error,
open,
receive,
success,
view

enum Activity: String {
case
launch,
resume
}

enum Browser: String {
enum APNConsent: String {
case
open,
start,
complete,
enable,
disable
allow,
deny,
dismiss,
skip,
view
}

enum Bookmarks: String {
case
`import`
}

enum NTPCustomization: String {
case
click,
disable,
enable
}

enum Promo: String {
case
view,
click,
close
close,
view
}

enum APNConsent: String {
enum Referral: String {
case
view,
skip,
deny,
allow,
dismiss
claim,
click,
open,
send,
view
}

enum Bookmarks: String {
enum SeedCounter: String {
case
`import`
level,
collect,
click
}

enum TopSite: String {
Expand All @@ -134,30 +182,21 @@ extension Analytics {
remove,
unpin
}

enum SeedCounter: String {
case
level,
collect,
click
}
}

enum Property {
enum Property: String {
case
home,
menu,
toolbar
enable,
disable,
home

var rawValue: String {
switch self {
case .home:
return "home"
case .menu:
return "menu"
case .toolbar:
return "toolbar"
}
enum Bookmarks: String {
case
`import`,
export,
emptyState = "empty_state",
success,
error
}

enum Library: String {
Expand All @@ -168,46 +207,27 @@ extension Analytics {
readingList = "reading_list"
}

enum TopSite: String {
case
`default`,
mostVisited = "most_visited",
pinned
}

enum Bookmarks: String {
case
`import`,
export,
emptyState = "empty_state",
success,
error
}

enum OnboardingPage: String, CaseIterable {
case
start,
search,
profits,
action,
privacy,
greenSearch = "green_search",
transparentFinances = "transparent_finances"
}
}

enum Migration: String {
case
tabs,
favourites,
history,
exception
}

enum ShareContent: String {
case
ntp,
web,
file

enum ShareContent: String {
case
ntp,
web,
file
}

enum TopSite: String {
case
`default`,
mostVisited = "most_visited",
pinned
}
}
}
Loading

0 comments on commit a50e6b1

Please sign in to comment.