experimenter
experimenter copied to clipboard
Add a new targeting constant for the User Characteristics Data Collection
We are implementing a telemetry ping that only submits when we actively request one via a pref update. We might deploy a pref update via a Firefox release, but we know we will deploy the pref update via a slow rollout with Experimenter.
We have a pair of prefs that control things - current_version and last_version_sent. The logic can be a little complicated. current_version
is, conceptually, the mozilla-provided value telling you whether or not we want a ping. last_version_sent
is your value that stores the last version you sent.
There are a couple power-user-values:
-
last_version_sent
= -1 means the user never wants to submit a ping. We should never overwrite this. -
current_version
= -1 means we should submit a ping no matter what. We use this for development.
And there are normal scenarios that make sense:
-
current_version
= 0 (default value, shipped with Firefox) - This is the situation now. No pings please. -
current_version
= 1 (default value, shipped with Firefox) - Everyone please send us a ping.-
last_version_sent
= 0 - User will submit a ping then increment -
last_version_sent
= 1 - User has submitted a ping
-
-
current_version
= 1 (set by Experimenter, on the default branch) - Please send us a ping.-
last_version_sent
= 0 - User will submit a ping then increment -
last_version_sent
= 1 - User has submitted a ping
-
And then there are some less common scenarios that still make sense:
-
current_version
= 2 (default value, shipped with Firefox);current_version
= 1 (default branch value, as set by experimenter) - First the user wound up in an experiment, then we push a new version of Firefox that updated the pref.-
last_version_sent
= 1 - User has submitted a ping for the experiment, but not a second one. User will submit another ping, then increment.
-
And then there's the weird scenarios:
-
current_version
= 4 (default value, shipped with Firefox);last_version_sent
= 1 - User has submitted a ping, but hasn't in a while. The user will submit a single ping, then setlast_version_sent=4
-
current_version
= 1 (user-defined value, set by experimenter);last_version_sent
= 3 - User has submitted a ping manually in the past, and now was enrolled in an experiment where they were asked to submit a ping. We will setlast_version_sent=1
If all of that seems like a total mess, we can rework it, but it seems like it should work. This github issue is for the specific ask of implementing a targeting constant where we can exclude users who have set last_version_sent
= -1
┆Issue is synchronized with this Jira Task