Engagement metrics
This section was originally included in the Project Smoot existing metrics report (Mozilla internal link).
A handful of metrics have been adopted as engagement metrics, either as censuses of the population or to describe user activity within a session. This chapter aims to describe what those metrics are and how they’re defined.
Engagement metrics
active_ticks
The active_ticks
probe is
specified to
increment once in every 5-second window that a user performs an action
that could interact with content or chrome, including mousing over the
window while it lacks focus. One additional tick is recorded after the
activity stops.
Main pings provide two measurements of active_ticks
: a
simpleMeasurement
and a scalar.
The simpleMeasurement
was implemented in Firefox
37 before the
launch of unified telemetry, and had previously been
implemented for
FHR.
The simpleMeasurement
was discovered to be resetting incorrectly,
which was fixed
in Firefox 62.
The scalar (which was not affected by the same bug) was
implemented in
Firefox 56. The scalar is aggregated into main_summary
, but should
always be identical to the simpleMeasurement
.
subsession_length
subsession_length
is the wall-clock duration of a subsession.
subsession_length
includes time that the computer was asleep for
Windows, but not for OS X or Linux; there is a long-outstanding
bug to include
sleep time on all platforms.
There is another bug to count only time that the computer is not in sleep.
subsession_length
was first implemented with the advent of
subsessions,
which came with unified telemetry.
total_uri_count
total_uri_count
was
implemented for
Firefox 50.
total_uri_count
is intended to capture the number of distinct
navigation events a user performs. It includes changes to the URI
fragment (i.e. anchor navigation) on the page. It excludes
XmlHttpRequest
fetches and iframes
.
It works by attaching an instance of URICountListener
as a
TabsProgressListener
which responds to onLocationChange
events.
Some filters are applied to onLocationChange
events:
- Error pages are excluded.
- Only top-level pageloads (where
webProgress.isTopLevel
, documented inline, is true) are counted – i.e, not navigations within a frame. - Tab restore events are excluded.
- URIs visited in private browsing mode are excluded unless
browser.engagement.total_uri_count.pbm
is true. (The pref has been flipped on for small populations in a couple of short studies, but, for now remains false by default.)
unfiltered_uri_count
The unfiltered count,
implemented for
Firefox 51, differs only in that it includes URIs using protocol specs
other than HTTP and HTTPS. It excludes some (but not all) about:
pages
– the set of “initial pages” defined in browser.js
are excluded, but
e.g. about:config
and about:telemetry
are included.
No applications of unfiltered_uri_count
have been identified.