Whenever the AS panel is displayed we start a session with the name "activitystream.1". All events triggered while we show the panel will have this session name attached. Additionally we send a probe whenever the panel is shown/hidden.
- action = show.1
- method = panel
- extras = as_newtab
"New tab" panel hidden
- action = cancel.1
- method = panel
- extras = as_newtab
- action = loadurl.1
- method = listitem
- extras = as_top_sites
- action = loadurl.1
- method = listitem
- extras = as_highlights
- action = show.1
- method = contextmenu
- extras = as_top_sites
- action = show.1
- method = contextmenu
- extras = as_highlights
- action = share.1
- method = list
- extras = as_contextmenu
?
- action = action.1
- method = contextmenu
- extras = as_add_to_launcher
- action = loadurl.1
- method = contextmenu
- extras = as_new_tab
- action = loadurl.1
- method = contextmenu
- extras = as_private_tab
?
?
This seems like a decent place for a discussion :-) I've started thinking about what kind of insights we want to gather from this telemetry, and documented some thoughts in https://bugzilla.mozilla.org/show_bug.cgi?id=1319245 -> and then I saw then there's already some AS telemetry that's landed!
However, looking at the events, I'm wondering if this actually useful enough. We'll get some basic usage data out of this - "are people clicking on top sites? on highlights? which menu items are they interacting with?" - but it shouldn't be too much effort to expand our telemetry further.
One thing to note is that we have two types of items, and thus two types of menus - even though it's just one context menu, people might be interacting with them differently. It might make sense to track that as a separate method.
Another change that I want to explore is tracking additional data for the events we're recording. For example, for highlight interactions, it would be good to know that, for example, people aren't interacting with "recently bookmarked" items we're showing them. Or that pinned top sites aren't actually being used as much as other top sites. You can imagine many other similar questions; also, we have bugs on file to track if sync is enabled/disabled, and "sync state" of individual items, whatever that means.
In short, we need to be able to track richer data than just a label in the
extras
field. A possibly simple workaround for this is to use a simple JSON data structure.For example, consider this event:
We can track it like so:
I think we should able to query against data like this pretty easily via https://prestodb.io/docs/current/functions/json.html, although I'm clarifying that in #telemetry.