-
Notifications
You must be signed in to change notification settings - Fork 54
Analytics
In v2.1.1, I've added analytics to dmdext. It's an opt-out approach, meaning it's enabled per default, but you can disable it, if you wish.
I want to be transparent about this. Below you'll find my point of view of why analytics was added, what data is included, and who accesses that data.
I have created dmdext in 2016 and I have been maintaining and improving it ever since. I was recently mentioning this project to a future employer, and I had to admit that I'm completely clueless how many people are actually using it.
But knowing the traction of your project not only serves as bragging in a job interview, it also directly impacts your motivation. At least that's true for me.
The second reason is that until today, the only way of knowing whether a new table release is well received, is to look at the download stats. However, that doesn't tell the whole story. Knowing whether the game was actually played would be much more valuable. I'm planning to make this publicly available (see below).
The third reason is knowing about the average hardware of our user base is very valuable for future projects. More specifically, when developing VPE, it would be beneficial to know the configuration of the average pinballer's gaming rig, so we can optimize it in a more impactful way.
The fourth reason, and admittedly the weakest one, is curiosity. Maybe, through analytics, I'll discover usages I've never even thought about.
To summarize, the reasons are:
- To know how many users dmdext has
- To provide more detailed stats about table usage to the community
- To know about the typical user hardware, in order to better plan optimization for VPE
- Curiosity.
Below, I'm going to list the exact data that is collected, and why. Since dmdext is open source, you can also just have a look at Analytics.cs
, where most of the data is collected.
There are two events emitted: When a game starts, and when a game ends. The data included is identical, apart from the game duration, which is only included when the game ended.
Here is a table of the data.
Data | Why it's there |
---|---|
Event name | To know what event it was (game started or ended) |
ID | To count the users |
Timestamp | To know when the event occurred, so we can split the stats by day / week / months |
Version of dmdext | To know whether users actually update sometimes |
Host application which is using dmdext | To know the most popular simulators, and maybe even learn about new ones |
Where dmdext was downloaded | To know the impact of other installers / distributors |
Locale | To know whether it would make sense to translate dmdext in the future |
OS and version | To know with which Windows version dmdext is used most, which is useful in terms of available APIs |
Screen resolution | To know how common 4K screens are |
CPU info | To know how many cores are available and how fast they are |
Total Memory | To know with how little memory users can get away with |
GPU info | To know on which brand, generation and driver most users are running on |
DMD output | To know which DMDs are the most commonly used, and how they compare to virtual DMDs |
Game ID | To know which game was started or ended |
Today, analytics are sent to Rudderstack, where they are relayed to a BigQuery table. I have a local instance of Metabase where I can pull this data out of BigQuery and create meaningful dashboards.
I want to share this data back to the community, specially data about games played. It's still work in progress, and there isn't much data available yet (v2.1.1 was just released), but I'll update this page when there is.
Meanwhile, feel free to ping me or comment about this topic in the release thread.