MessageCatcherWidget and analytics

Folks,

A long sought after addition to tiddlywiki I am interested in, involves user analytics for the tiddlywiki user. The MessageCatcherWidget seems to be the answer to this.

An example would be using this to capture actions or the LinkCatcherWidget to capture all navigation events. If each navigation anywhere in the current tiddlywiki event was recorded in a data tiddler with a timestamp, the location eg open tab or contents if available it would be possibly to build a picture of how the user navigates, to where, how often etc… most popular, often together etc…

The use of this widget in many ways depends on how tiddlywiki core navigates so I would like to ask if anyone can answer the following;

  • Where would we place a catcher widget to capture all navigations events, if we can?
  • How and what can we capture each time into a data tiddler?
  • What impact may this have on performance?

Background (optional reading)

  • Some years ago when managing a large corporate “enterprise social” platform we as a community found the various analytics that could make dashboards etc… were useful, but more useful is reflecting analytics back to the user about their own activity.
  • Having a computer collate information about how we use a solution and feeding it back to the user has the potential to help the user glean great insights.
    • For example it helps us see where we may spend most of the time, and help us use this to guide preferences, and make things we care about visible up front.

TiddlyWiki when used as personal information and knowledge management seems to me to be an ideal place to have such features.

“Onboard Telemetry” – interesting idea.

In the core, at or near “the top” to capture everything. I’m not sure that can be done from a plugin – but I’m not very knowledgeable in this area.

tm-* messages, events that bubble (click etc using $eventcatcher).

Could be quite significant. Getting in and out of a data tiddler will certainly add time to the refresh mechanism - how could it not?

1 Like

Perhaps using a tiddler that Has a title prefixed with $:/temp/volatile/ then only commits to a regular tiddler at save.

This is in JavaScript land so it might not be helpful, but there’s a th-navigating hook that you could make use of here! That would at least address the “get all navigation events” part of the idea.