Telemetry

josephyu1110 edited this page Oct 18, 2018 · 35 revisions

For clients that have "send usage data" enabled, Rocket sends a "core" ping and an "event" ping to Mozilla's telemetry service. Sending telemetry can be disabled in the app's settings. Builds of "Firefox Rocket" have telemetry enabled by default ("opt-out").

Note: Firefox Rocket is still in development and this documentation is subject to change.

Install campaign tracking

We use Adjust SDK to evaluate the effectiveness of our campaign channel. What data has been collected can be found in the code here. The evaluation process is accomplished by 1. Receive INSTALL_REFERRER Intent from Google Play; 2. Send the referrer string back to adjust server(https://app.adjust.com) when the application is alive.

Firefox Rocket uses Firebase to improve our product

Starting from v2.1, Firefox Rocket also uses Google’s Firebase platform to help us improve performance, support crashes, understand your experience with Rocket and improve the user experience through A/B testing and in-product messaging. Below are the specific Firebase Products we use

  • Google Analytics; to analyze anonymous user attributions and behavior to make informed decisions on our product roadmap.
  • Remote Config; to customize your Rocket experience such as changing the look and feel, rolling out features gradually, running A/B tests, delivering customized content, or making other updates without deploying a new version.
  • Cloud Messaging; to send messages and notifications so we can bring contextual hints to you to help you use Rocket better
  • Crashlytics; to understand crashes better so you can use Rocket without problems
  • Performance Monitoring; to diagnose app performance issues so we can keep Rocket really fast

Learn more about Firebase data collection here or you have the option to turn off Firebase by disabling “Send Usage Data” in your Settings. For events automatically collected by Firebase, see here

Core ping

Firefox Rocket creates and tries to send a "core" ping whenever the app goes to the background. This core ping uses the same format as Firefox for Android and is documented on firefox-source-docs.mozilla.org.

Event ping

In addition to the core ping an event ping for UI telemetry is generated and sent as soon as the app is sent to the background. All the telemetry mechanism is leverage from the library telemetry-android which is also been used in Firefox Focus for Android.

Settings

As part of the event ping the most recent state of the user's setting is sent (default values in bold):

Setting Key Value
Locale override pref_locale empty string/locale-code(*)
Default Search engine pref_search_engine Search engine name
Clear Browsing Data pref_clear_browsing_data pref_clear_browsing_history, pref_clear_form_history, pref_clear_cookies, pref_clear_cookies
Save downloads to pref_save_downloads_to pref_saving_path_sd_card / pref_saving_path_internal_storage
Default browser pref_default_browser true / false
Current WebView/Chrome version pref_webview_version ex. 63.0.3239.111
Turbo Mode pref_privacy_turbo_mode
Learn more on Turbo Mode learn_more
Give Feedback pref_give_feedback
Share with friends pref_share_with_friends

(*) An empty string value indicates "System Default" locale is selected.

Events

The event ping contains a list of events (see event format on firefox-source-docs.mozilla.org) for the following actions:

Sessions

Event category method object value
Start session (App is in the foreground) action foreground app
Stop session (App is in the background) action background app

Browsing

Event category method object value
Click on mini URL Bar action show search_bar mini_urlbar
Open Link action open search_bar link
Search bar submit action type_query search_bar
Tap search suggestion action select_query search_bar
Search suggestion long click action long_press search_suggestion
Clear text action clear search_bar
Long press on web content action long_press browser
Geolocation permission requested action permission browser geolocation
Media playing enter full screen action fullscreen browser enter
Media playing exit full screen action fullscreen browser exit
Open file chooser action permission browser file
Video permission requested action permission browser video
Audio permission requested action permission browser audio

Home Panel

Event category method object value extra
Top Site action open home link on:[index]
Search action show search_bar search_box
Menu action show menu home
Menu action show tab_tray home
Menu action add tab home
Remove top site action remove site home

Menu

Event category method object value extra
Show download panel action click menu download
Show history panel action click menu history
Show screenshot panel action click menu capture
Enable/Disable speed mode action click menu turbo to: true/false
Enable/Disable image blocking action click menu block_image to: true/false
Click to clear cache files action click menu clear_cache
Click to enter Settings action click menu settings
Forward page browsing action click toolbar forward
Reload page browsing action click toolbar reload
Share URL with third-party app action share toolbar link
Add to Home Screen action pin_shortcut toolbar link
Take current page screenshot action click toolbar capture category:Screenshot Category

Bottom Bar

Event category method object value extra
Enter Tab Tray action show tab_tray toolbar
Add New Tab action add tab toolbar
Search button action show search_bar search_btn
Menu button action show menu toolbar
Take Screenshot action click toolbar capture category:Screenshot Category

Download Panel

Event category method object value extra
Show download panel action click panel download
Open file action open panel file
Menu action show menu file
Remove from list action remove panel file
Delete file action delete panel file
Cancel action cancel panel download
Open file from Snackbar action open panel file snackbar: true
Cancel download from notification action cancel notification download

History Panel

Event category method object value
Show history panel action click panel history
Open link action open panel link
Menu action show menu history
Delete history action remove panel history
Clear browsing history action clear panel history

Screenshot Panel

Event category method object value extra
Show screenshot panel action click panel capture
Open file action open panel image
Share screenshot from Snackbar action share capture image snackbar: true , category:Screenshot Category

Screenshot Viewer

Event category method object value extra
Open link action open capture link category:Screenshot Category
Edit screenshot action edit capture image success: true/false, category:Screenshot Category
Share screenshot action share capture image snackbar: false, category:Screenshot Category
Info screenshot action show capture info category:Screenshot Category
Delete screenshot action delete capture image category:Screenshot Category

Screenshots SnackBar

Event category method object value extra
Share via SnackBar action share capture image

Tab Tray

Event category method object value extra
Switch Tab action show tab tab_tray
Close Tab action delete tab tab_tray
Add new Tab action add tab tab_tray

Context Menu

Event category method object value
Context menu dismissed without selection action cancel browser_contextmenu
Share Link menu item selected action share browser_contextmenu link
Copy link menu item selected action copy browser_contextmenu link
Share Image menu item selected action share browser_contextmenu image
Copy Image menu item selected action copy browser_contextmenu image
Save Image menu item selected action save browser_contextmenu image

Settings

Event category method object value extras
Setting changed action change settings < key > { "to": <value> }

Notes: When users change the settings in our app, we'd like to know how they are using our app. Here's the list

Firstrun

Event category method object value extras
Finish first run page with duration action show firstrun finish on: [timeInMilliSeconds]
Change turbo mode value action change firstrun turbo to: true/false

Contextual Hints -> Give Feedback

Event category method object value extra
show action show feedback
Dismiss / or tap X action click feedback dismiss source:contextual_hints
Yes, Rate 5 stars action click feedback positive source:contextual_hints
No, send feedback action click feedback negative source:contextual_hints

Contextual Hints -> Share with friends

Event category method object value extra
show action show promote_share
Dismiss / or tap X action click promote_share dismiss source:contextual_hints
Share action click promote_share share source:contextual_hints

RateAppNotification

Event category method object value extra
Show RateApp notification action show feedback source:notification
Click RateApp notification action click feedback source:notification
Click RateApp notification rate action click feedback positive source:notification
Click RateApp notification feedback action click feedback negative source:notification

RateAppNotification

Event category method object value extra
Show Defaut Browser notification action show default_browser source:notification
Click Defaut Browser notification action click default_browser source:notification

App Launch

Event category method object value extra
App launch via 3rd party intents launch app external_app type:text_selection
rocket app icon launch app launcher
App launch via 3rd party intents launch app shortcut
App launch via web search intents launch app web_search

Bookmark (Since 2.3)

Event category method object value extra
Click on the Bookmarks Tab in the library panel action click panel bookmark
Click on the Bookmarks Icon in menu action click menu bookmark
Click on the star in bookmark action share toolbar bookmark to: true/false
Click on the more actions icon in a bookmark action show menu bookmark
Click on the remove option in more actions action remove panel bookmark
Click on the edit option in more actions action edit panel bookmark
Click on a bookmark item to open it action open panel bookmark

Private Mode (Since 3.0)

Event category method object value extra
Switch to Private Home action change private_mode enter
Switch to Tab Tray action change private_mode exit
End private mode via notification action clear private_mode source:notification

Home Page Banner (Since 3.0)

Event category method object value extra
Click on a banner page background action click banner background source: <page_id>
Click on a banner page item action click banner item source: <page_id>, on: <item_index>
Swipe the banner action swipe banner page direction: 1/-1, to: <page_index>

Feature Survey -> WiFi Finder or VPN

Event category method object value extra
Click WiFi finder survey icon action click home wifi_finder
Click 'Yes' in WiFi finder survey action click doorhanger positive source:wifi_finder
Click 'No' in WiFi finder survey action click doorhanger negative source:wifi_finder
Dismiss the WiFi finder survey action click doorhanger dismiss source:wifi_finder
Click VPN survey icon action click home vpn
Click 'Yes' in VPN survey action click doorhanger positive source:vpn
Click 'No' in VPN survey action click doorhanger negative source:vpn
Dismiss the VPN survey action click doorhanger dismiss source:vpn

Night Mode

Event category method object value extra
Click "Night Mode" on menu action change menu night_mode to:true/false
Change "Night mode brightness" action change setting night_mode_brightness source: menu/setting, to:0-100

Screenshot Category

To help us design a better Firefox Rocket Screenshot experience, with v3.1, we will start to collect the category of your screenshots based on the URL you took the screenshots on. The actual URL will not be shared and they will be categorized into these categories only:

  • Search Engine
  • Video
  • Social Network
  • Portal
  • Portal (Articles)
  • Shopping
  • Collaborative
  • Email
  • Weblogs
  • Banking
  • Others

Limits

  • An event ping will contain up to but no more than 500 events
  • No more than 40 pings per type (core/event) are stored on disk for upload at a later time
  • No more than 100 pings are sent per day

Implementation notes

  • Event pings are generated (and stored on disk) whenever the onStop() callback of the main activity is triggered. This happens whenever the main screen of the app is no longer visible (The app is in the background or another screen is displayed on top of the app).

  • Whenever we are storing pings we are also scheduling an upload. We are using Android’s JobScheduler API for that. This allows the system to run the background task whenever it is convenient and certain criteria are met. The only criteria we are specifying is that we require an active network connection. In most cases, this job is executed immediately after the app is in the background.

  • Whenever an upload fails we are scheduling a retry. The first retry will happen after 30 seconds (or later if there’s no active network connection at this time). For further retries a exponential backoff policy is used: [30 seconds] * 2 ^ (num_failures - 1)

  • An earlier retry of the upload can happen whenever the app is coming to the foreground and sent to the background again (the previously scheduled job is reset and we are starting all over again).

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.