Skip to content

Instantly share code, notes, and snippets.

@Forkk
Created November 26, 2013 16:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Forkk/7661742 to your computer and use it in GitHub Desktop.
Save Forkk/7661742 to your computer and use it in GitHub Desktop.
MultiMC Analytics System

MultiMC Analytics

This is an outline for a possible analytics system for MultiMC.

It will be an optional system that works similarly to Minecraft's snooper, collecting anonymous information about a user's hardware, operating system, MultiMC version, etc. This will allow us, the MultiMC developers, to be able to see how many users we have, what versions they're using, what OSes they're using, etc. The system might be able to give us some insight whether the update system is being used or not.

Tracked Information

The MultiMC analytics system will definitely need to track the following information:

  • What version of MultiMC the user is running.
  • What operating system the user is using.
  • Info about the user's update settings, such as...
    • Whether automatic updates are enabled or not.
    • What update channel the user is using (stable, dev, custom build, etc).

Here is some more information that we don't absolutely need to track, but might be nice to know.

  • How many instances the user has.
  • The user's console settings, such as...
    • Whether the console is set to show on instance launch.
    • Whether the console is set to close on instance close.
  • The user's Java settings.
  • The user's locale / language.
  • The user's country (not quite sure about this one... Maybe not a great idea).

If you have any suggestions for what we should track, post a comment on this gist.

Opt-Out

Of course, we certainly should respect the user's privacy, so we should make it possible to disable this whole system completely. Some people, however, might be a bit uncomfortable with us tracking specific information about their settings and things, so we might also want to allow users to disable tracking specific things, rather than everything entirely. Doing this might also provide the users with some insight into how the system works and what it tracks.

For example, we would provide an option to "send information about my MultiMC installation to the MultiMC developers." Underneath that option, however, would be a label telling the user what information will be sent (listed above in the "Tracked Information" section), as well as some checkboxes allowing the user to disable sending certain information such as their settings, instance counts, etc.

Another thing that might be a good idea to do would be to prompt the user at first startup, asking them whether or not they would like to opt-out of the system. Making sure the user is aware of the existence of this system is a good idea.

@peterix
Copy link

peterix commented Nov 26, 2013

Track:
Number of instances per minecraft version (existing), percentage of those actually played (started in the last month or so).

@peterix
Copy link

peterix commented Nov 27, 2013

Here is a design problem: how can we be sure that the data is OK?

We need a way to replace data when the situation on the user side changes. One option is to automatically age reports - they would time out in the database after a while. The client would send new ones in sync with the timeouts.

Any other ideas?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment