This section was originally included in the Project Smoot existing metrics report (Mozilla internal link).
ADI and DAU are oft-discussed censuses. This chapter discusses their history and definition.
ADI, one of Firefox’s oldest client censuses, is computed as the number of conforming requests to the Firefox blocklist endpoint. ADI data is available since July 13, 2008.
It is not possible to opt-out of the blocklist using the Firefox UI, but users can disable the update mechanism by changing preference values.
A blocklist is shipped in each release and updated when Firefox notices that more than 24 hours have elapsed since the last update.
The blocklist request does not contain the telemetry
client_id or any
other persistent identifiers. Some data about the install are provided
as URI parameters:
- App ID
- App version
- Product name
- Build ID
- Build target
- Update channel
- OS version
- Distribution version
- Number of pings sent by this client for this version of Firefox
(stored in the pref
- Total ping count (stored in the pref
- Number of full days since last ping
so subsets of ADI may be queried along these dimensions.
Upon browser startup, after a delay (30 seconds by default),
UpdateTimerManager checks whether any of its scheduled tasks are
ready. At each wakeup, the single most-overdue task is triggered, if one
UpdateTimerManager then sleeps at least two minutes or until
the next task is scheduled.
Failures are ignored.
A visualization of real and detrended ADI is available at Desktop API Details: Long-term trend and decomposition. The raw data is available in BigQuery (see an example ADI query in Redash).
Telemetry only reports whether blocklist checking is enabled or disabled on the client; there is no data in telemetry about blocklist fetches, age, or update failures.
Firefox DAU is currently computed as the number of unique
main pings received on a calendar day. The DAU count
excludes users who have opted out of telemetry.
main ping describes a single subsession of browser activity.
When and how a ping is sent depends on the reason the subsession ends:
|Reason||Trigger||Percent of subsessions ||Mechanism|
||Browser is closed||77%||For Firefox 55 or later, sent by
||The telemetry environment changed||13%||Sent when change is detected by `TelemetrySession._onEnvironmentChange`|
||more than 24 hours have elapsed since the last ping was sent and the time is local midnight||8%||Sent at local midnight after a random 0-60 min delay|
||A session terminates uncleanly (e.g. crash or lost power)||3%||Sent by the browser on the next launch; the payload to send is written to disk every 5 minutes during an active session and removed by a clean shutdown|
We estimate that 93% of release channel profiles have telemetry enabled (and are therefore included in DAU).