* For https://github.com/mozilla-mobile/fenix/issues/4281: small ToolbarMenu refactor This makes it easier to see how items are ordered in the menuItems list * For 4281: add QAB buttons to menu * For 4281: removed menu back button per mocks I double checked with UX, and we'll be relying on the hardware back button for its functionality * For 4281: add content descriptions for bookmarking * For 4281: updated BrowserToolbarController for new functionality * For 4281: provided simple dependencies to browser controller More complex changes will be in a following commit, for review readability * For 4281: move toolbar controller dependencies up to BaseBrowserFragment The functionality they control is being moved into the toolbar menu, which is shared by both normal tabs and custom ones * For 4281: removed (now unused) code related to QAB * For 4281: fix test compilation after QAB removal Tests still need to be expanded to include added functionality * For 4281: updated menu to show if url is bookmarked This sloppy workaround is required because TwoStateButton requires that `isInPrimaryState` be a synchronous call, and checking whether or not the current site is bookmarked is quite slow (10-50 MS, in my tests). After days of work and many attempted solutions, this was the least abhorrent among them. https://github.com/mozilla-mobile/android-components/issues/4915 was opened against AC to evaluate potentially supporting async `isInPrimaryState` functions. https://github.com/mozilla-mobile/fenix/issues/6370 was opened against Fenix to investigate the unexpectedly slow call to `BookmarkStorage`. * For 4281: update reader mode switch * For 4281: selectively show/hide menu items * For 4281: add reader mode appearance * For 4281: update bookmark button when it is clicked * For 4281: removed unused QAB code * For 4281: removed QAB robot, updated UI tests * For 4281: removed QuickActionSheet metrics Since this behavior now lives in the toolbar, it is tracked via Event.BrowserMenuItemTapped * For 4281: fixed lint errors * For 4281: add new strings for buttons added to menu This is necessary because the location change (from QAB to toolbar menu) could affect the grammar in some languages * For 4281: remove outdated TODOs * For 4281: removed QAB container * For 4281: removed back button reference from UI test This button no longer exists * For 4821: Fixes a visual defect (extra padding on top of toolbar) * For 4281: update copy on reader mode * For 4281: fixed review nits
34 KiB
Metrics
This document enumerates the metrics collected by this project. This project may depend on other projects which also collect metrics. This means you might have to go searching through the dependency tree to get a full picture of everything collected by this project. Sorry about that.
Pings
activation
This ping is intended to provide a measure of the activation of mobile products. It's generated when Fenix starts, right after Glean is initialized. It doesn't include the client_id, since it might be reporting an hashed version of the Google Advertising ID.
The following metrics are added to the ping:
Name | Type | Description | Data reviews | Extras | Expiration |
---|---|---|---|---|---|
activation.activation_id | uuid | An alternate identifier, not correlated with the client_id, generated once and only sent with the activation ping. | 1 | 2020-03-01 | |
activation.identifier | string | A hashed and salted version of the Google Advertising ID from the device. This will never be sent in a ping that also contains the client_id. | 1 | 2020-03-01 |
baseline
This is a built-in ping that is assembled out of the box by the Glean SDK.
See the Glean SDK documentation for the baseline
ping.
The following metrics are added to the ping:
Name | Type | Description | Data reviews | Extras | Expiration |
---|---|---|---|---|---|
events.total_uri_count | counter | A counter of URIs visited by the user in the current session, including page reloads. This does not include background page requests and URIs from embedded pages or private browsing. | 1 | 2020-03-01 | |
metrics.search_count | labeled_counter | The labels for this counter are <search-engine-name>.<source> . If the search engine is bundled with Fenix search-engine-name will be the name of the search engine. If it's a custom search engine (defined: https://github.com/mozilla-mobile/fenix/issues/1607) the value will be custom . source will either be action or suggestion |
1, 2 | 2020-03-01 |
events
This is a built-in ping that is assembled out of the box by the Glean SDK.
See the Glean SDK documentation for the events
ping.
The following metrics are added to the ping:
Name | Type | Description | Data reviews | Extras | Expiration |
---|---|---|---|---|---|
bookmarks_management.copied | event | A user copied a bookmark. | 1 | 2020-03-01 | |
bookmarks_management.edited | event | A user edited the title and/or URL of an existing bookmark. | 1 | 2020-03-01 | |
bookmarks_management.folder_add | event | A user added a new bookmark folder. | 1 | 2020-03-01 | |
bookmarks_management.folder_remove | event | A user removed a bookmark folder. | 1 | 2020-03-01 | |
bookmarks_management.moved | event | A user moved an existing bookmark or folder to another folder. | 1 | 2020-03-01 | |
bookmarks_management.multi_removed | event | A user removed multiple bookmarks at once. | 1 | 2020-03-01 | |
bookmarks_management.open_in_new_tab | event | A user opened a bookmark in a new tab. | 1 | 2020-03-01 | |
bookmarks_management.open_in_new_tabs | event | A user opened multiple bookmarks at once in new tabs. | 1 | 2020-03-01 | |
bookmarks_management.open_in_private_tab | event | A user opened a bookmark in a new private tab. | 1 | 2020-03-01 | |
bookmarks_management.open_in_private_tabs | event | A user opened multiple bookmarks at once in new private tabs. | 1 | 2020-03-01 | |
bookmarks_management.removed | event | A user removed a bookmark item. | 1 | 2020-03-01 | |
bookmarks_management.shared | event | A user shared a bookmark. | 1 | 2020-03-01 | |
collections.add_tab_button | event | A user tapped the "add tab" button in the three dot menu of collections | 1 | 2020-03-01 | |
collections.all_tabs_restored | event | A user tapped "open tabs" from collection menu | 1 | 2020-03-01 | |
collections.long_press | event | A user long pressed on a tab, triggering the collection creation screen | 1 | 2020-03-01 | |
collections.removed | event | A user tapped delete collection from collection menu | 1 | 2020-03-01 | |
collections.rename_button | event | A user pressed the "rename collection" button in the three dot menu | 1 | 2020-03-01 | |
collections.renamed | event | A user renamed a collection | 1 | 2020-03-01 | |
collections.save_button | event | A user pressed the "save to collection" button on either the home or browser screen, triggering the collection creation screen to open (tab_select_opened) | 1 |
|
2020-03-01 |
collections.saved | event | A user saved a list of tabs to a new collection | 1 |
|
2020-03-01 |
collections.shared | event | A user tapped share collection | 1 | 2020-03-01 | |
collections.tab_removed | event | A user tapped remove tab from collection tab list | 1 | 2020-03-01 | |
collections.tab_restored | event | A user restored a tab from collection tab list | 1 | 2020-03-01 | |
collections.tab_select_opened | event | A user opened the select tabs screen (the first step of the collection creation flow) | 1 | 2020-03-01 | |
collections.tabs_added | event | A user saved a list of tabs to an existing collection | 1 |
|
2020-03-01 |
context_menu.item_tapped | event | A user tapped an item in the browsers context menu | 1 |
|
2020-03-01 |
crash_reporter.closed | event | The crash reporter was closed | 1 |
|
2020-03-01 |
crash_reporter.opened | event | The crash reporter was displayed | 1 | 2020-03-01 | |
custom_tab.action_button | event | A user pressed the action button provided by the launching app | 1 | 2020-03-01 | |
custom_tab.closed | event | A user closed the custom tab | 1 | 2020-03-01 | |
custom_tab.menu | event | A user opened the custom tabs menu | 1 | 2020-03-01 | |
error_page.visited_error | event | A user encountered an error page | 1 |
|
2020-03-01 |
events.app_opened | event | A user opened the app | 1 |
|
2020-03-01 |
events.browser_menu_action | event | A browser menu item was tapped | 1, 2 |
|
2020-03-01 |
events.entered_url | event | A user entered a url | 1 |
|
2020-03-01 |
events.opened_link | event | A user opened a link with Fenix | 1 |
|
2020-03-01 |
events.performed_search | event | A user performed a search | 1, 2 |
|
2020-03-01 |
events.preference_toggled | event | A user toggled a preference switch in settings | 1, 2, 3, 4 |
|
2020-03-01 |
events.search_bar_tapped | event | A user tapped the search bar | 1 |
|
2020-03-01 |
events.whats_new_tapped | event | A user opened the "what's new" page button | 1 |
|
2020-03-01 |
find_in_page.closed | event | A user closed the find in page UI | 1 | 2020-03-01 | |
find_in_page.next_result | event | A user clicked the "next result" button | 1 | 2020-03-01 | |
find_in_page.opened | event | A user opened the find in page UI | 1 | 2020-03-01 | |
find_in_page.previous_result | event | A user clicked the "previous result" button | 1 | 2020-03-01 | |
find_in_page.searched_page | event | A user searched the page | 1 | 2020-03-01 | |
history.opened | event | A user opened the history screen | 1 | 2020-03-01 | |
history.opened_item | event | A user opened a history item | 1 | 2020-03-01 | |
history.removed | event | A user removed a history item | 1 | 2020-03-01 | |
history.removed_all | event | A user removed all history items | 1 | 2020-03-01 | |
history.shared | event | A user shared a history item | 1 | 2020-03-01 | |
library.closed | event | A user closed the library | 1 | 2020-03-01 | |
library.opened | event | A user opened the library | 1 | 2020-03-01 | |
library.selected_item | event | A user selected a library item | 1 |
|
2020-03-01 |
media_notification.pause | event | A user pressed the pause icon on the media notification | 1 | 2020-03-01 | |
media_notification.play | event | A user pressed the play icon on the media notification | 1 | 2020-03-01 | |
private_browsing_mode.garbage_icon | event | A user pressed the garbage can icon on the private browsing home page, deleting all private tabs. | 1 | 2020-03-01 | |
private_browsing_mode.notification_delete | event | A user pressed the private browsing mode notification's "Delete and Open" button. | 1 | 2020-03-01 | |
private_browsing_mode.notification_open | event | A user pressed the private browsing mode notification's "Open" button. | 1 | 2020-03-01 | |
private_browsing_mode.notification_tapped | event | A user pressed the private browsing mode notification itself. | 1 | 2020-03-01 | |
private_browsing_mode.snackbar_undo | event | A user pressed the "undo" button in the snackbar that is shown when the garbage icon is tapped. | 1 | 2020-03-01 | |
private_browsing_shortcut.cfr_add_shortcut | event | A user pressed the "Add shortcut" button when the contextual feature recommender appeared. | 1 | 2020-03-01 | |
private_browsing_shortcut.cfr_cancel | event | A user pressed the "No thanks" button when the contextual feature recommender appeared. | 1 | 2020-03-01 | |
private_browsing_shortcut.create_shortcut | event | A user pressed the "Add private browsing shortcut" button in settings. | 1 | 2020-03-01 | |
private_browsing_shortcut.pinned_shortcut_priv | event | A user pressed the pinned private shortcut in Android home screen, opening up a new private search. | 1 | 2020-03-01 | |
private_browsing_shortcut.static_shortcut_priv | event | A user pressed the long-press shortcut "Open new private tab", opening up a new private search. | 1 | 2020-03-01 | |
private_browsing_shortcut.static_shortcut_tab | event | A user pressed the long-press shortcut "Open new tab", opening up a new search. | 1 | 2020-03-01 | |
qr_scanner.navigation_allowed | event | A user tapped "allow" on the prompt, directing the user to the website scanned | 1 | 2020-03-01 | |
qr_scanner.navigation_denied | event | A user tapped "deny" on the prompt, putting the user back to the scanning view | 1 | 2020-03-01 | |
qr_scanner.opened | event | A user opened the QR scanner | 1 | 2020-03-01 | |
qr_scanner.prompt_displayed | event | A user scanned a QR code, causing a confirmation prompt to display asking if they want to navigate to the page | 1 | 2020-03-01 | |
reader_mode.appearance | event | A user tapped the appearance button | 1 | 2020-03-01 | |
reader_mode.available | event | Reader mode is available for the current page | 1 | 2020-03-01 | |
reader_mode.closed | event | A user closed reader mode | 1 | 2020-03-01 | |
reader_mode.opened | event | A user opened reader mode | 1 | 2020-03-01 | |
search_shortcuts.selected | event | A user selected a search shortcut engine to use | 1 |
|
2020-03-01 |
search_widget.new_tab_button | event | A user pressed anywhere from the Firefox logo until the start of the microphone icon, opening a new tab search screen. | 1 | 2020-03-01 | |
search_widget.voice_button | event | A user pressed the microphone icon, opening a new voice search screen. | 1 | 2020-03-01 | |
sync_account.closed | event | A user closed the sync account page | 1 | 2020-03-01 | |
sync_account.opened | event | A user opened the sync account page | 1 | 2020-03-01 | |
sync_account.send_tab | event | A user sent the current tab to another FxA device | 1 | 2020-03-01 | |
sync_account.sign_in_to_send_tab | event | A user pressed the "sign in to send tab" button inside the share tab menu | 1 | 2020-03-01 | |
sync_account.sync_now | event | A user pressed the sync now button on the sync account page | 1 | 2020-03-01 | |
sync_auth.auto_login | event | User signed into FxA via an account shared from another locally installed Mozilla application (e.g. Fennec) | 1 | 2020-03-01 | |
sync_auth.closed | event | A user closed the sync page | 1 | 2020-03-01 | |
sync_auth.opened | event | A user opened the sync authentication page | 1 | 2020-03-01 | |
sync_auth.other_external | event | User authenticated via FxA using an unknown mechanism. "Known" mechanisms are currently sign-in, sign-up and pairing | 1 | 2020-03-01 | |
sync_auth.paired | event | User signed into FxA by pairing with a different Firefox browser, using a QR code | 1 | 2020-03-01 | |
sync_auth.recovered | event | Account manager automatically recovered FxA authentication state without direct user involvement | 1 | 2020-03-01 | |
sync_auth.scan_pairing | event | A user pressed the scan pairing button on the sync authentication page | 1 | 2020-03-01 | |
sync_auth.sign_in | event | A user pressed the sign in button on the sync authentication page and was successfully signed in to FxA | 1 | 2020-03-01 | |
sync_auth.sign_out | event | A user pressed the sign out button on the sync account page and was successfully signed out of FxA | 1 | 2020-03-01 | |
sync_auth.sign_up | event | User registered a new Firefox Account, and was signed into it | 1 | 2020-03-01 | |
tab.media_pause | event | A user pressed the pause icon on a tab from the home screen | 1 | 2020-03-01 | |
tab.media_play | event | A user pressed the play icon on a tab from the home screen | 1 | 2020-03-01 | |
tracking_protection.etp_setting_changed | event | A user changed their tracking protection level setting to either strict or standard. | 1 |
|
2020-03-01 |
tracking_protection.etp_settings | event | A user opened tracking protection settings through settings. | 1 | 2020-03-01 | |
tracking_protection.etp_shield | event | A user pressed the tracking protection shield icon in toolbar. | 1 | 2020-03-01 | |
tracking_protection.etp_tracker_list | event | A user pressed into a list of categorized trackers in tracking protection panel. | 1 | 2020-03-01 | |
tracking_protection.exception_added | event | A user added a tracking protection exception through the TP toggle in the panel. | 1 | 2020-03-01 | |
tracking_protection.panel_settings | event | A user opened tracking protection settings from the panel. | 1 | 2020-03-01 |
metrics
This is a built-in ping that is assembled out of the box by the Glean SDK.
See the Glean SDK documentation for the metrics
ping.
The following metrics are added to the ping:
Name | Type | Description | Data reviews | Extras | Expiration |
---|---|---|---|---|---|
experiments.metrics.active_experiment | string | Records the branch name of the active experiment, if the client is enrolled in the fenix-test-2019-08-05 experiment. This is intended to validate that the service-experiments library properly matches clients to experiments and can take action based on a multi-branched experiment. This is done by recording the experiment branch name in this string metric which allows the experiment to be transparent and unobtrusive to the user. |
1 | 2019-11-01 | |
metrics.adjust_campaign | string | A string containing the Adjust campaign ID from which the user installed Fenix. This will not send on the first session the user runs. If the install is organic, this will be empty. | 1 | 2020-03-01 | |
metrics.default_browser | boolean | Is Fenix the default browser? | 1 | 2020-03-01 | |
metrics.default_moz_browser | string | The name of the default browser on device if and only if it's a Mozilla owned product | 1, 2 | 2020-03-01 | |
metrics.mozilla_products | string_list | A list of all the Mozilla products installed on device. We currently scan for: Firefox, Firefox Beta, Firefox Aurora, Firefox Nightly, Firefox Fdroid, Firefox Lite, Reference Browser, Reference Browser Debug, Fenix, Focus, and Lockwise. | 1, 2 | 2020-03-01 | |
metrics.search_count | labeled_counter | The labels for this counter are <search-engine-name>.<source> . If the search engine is bundled with Fenix search-engine-name will be the name of the search engine. If it's a custom search engine (defined: https://github.com/mozilla-mobile/fenix/issues/1607) the value will be custom . source will either be action or suggestion |
1, 2 | 2020-03-01 | |
metrics.total_uri_count | string | A counter of URIs visited by the user in the current session, including page reloads. This does not include background page requests and URIs from embedded pages or private browsing. | 1 | 2020-03-01 | |
search.default_engine.code | string | If the search engine is pre-loaded with Fenix this value will be the search engine identifier. If it's a custom search engine (defined: https://github.com/mozilla-mobile/fenix/issues/1607) the value will be "custom" | 1, 2 | 2020-03-01 | |
search.default_engine.name | string | If the search engine is pre-loaded with Fenix this value will be the search engine name. If it's a custom search engine (defined: https://github.com/mozilla-mobile/fenix/issues/1607) the value will be "custom" | 1, 2 | 2020-03-01 | |
search.default_engine.submission_url | string | If the search engine is pre-loaded with Fenix this value will be he base URL we use to build the search query for the search engine. For example: https://mysearchengine.com/?query=%s. If it's a custom search engine (defined: https://github.com/mozilla-mobile/fenix/issues/1607) the value will be "custom" | 1, 2 | 2020-03-01 |