Unity Engine Analytics
So in wake of the data mining controversy a few weeks ago, I believe I've found another offender? I was gifted a game from a developer who did a giveaway in r/pcgaming last week (Imperatum). I finally got around to playing it last night. It's pretty badly programmed so I was looking for config files to do some tinkering. While searching I found some of its install files in /appdata/locallow/. In the Unity folder is another folder titled "Analytics".
With a great heaving sigh I started digging in to see what I could find. I'm really not good at this kind of research so would like some help from you guys.
- Unity Analytics seems to tie into Google Analytics. It scans for some standard things such as hardware, but also some custom Dev defined things.
- There is no opt-out for the end user
- There seems to be no opt-out for the developer either unless they are using Unity Pro
EDIT: I would love to stick around to see the development of this thread. But I finally get to play D&D for the first time since the 90's. So I'll be back later.
Posted Jul 23, 2018, 5:30 PM UTC · edited
as far as I know unity analytics are on by default for new projects but the developer can opt out on the project creation page (or turn it off before building)
and as far as I can tell there isn't any hardware polling, you can see the API here: https://docs.unity3d.com/Manual/UnityAnalyticsTerminology.html
edit: there isn't any hardware polling data available in the developer analytics interfaces but that information is sent to Unity servers
there doesn't appear to be any identifiable segmentation information returned beyond country geolocation data and retention data
that said any software product can use standard libraries to scan your hardware and files on Windows and report that information back to a server
and there are Unity asset store packages that let you tie into google analytics: https://assetstore.unity.com/packages/tools/integration/google-analytics-60173
take all info with grain of salt, im still very much a beginner at Unity and gamedev so I could be missing something obvious
edit: further research has shown the "disable hw statistics" checkbox is grayed out in the free version. My conclusion then is that there is no way to build a game with the Unity free version that does not attempt to send hardware and other system information back to the Unity servers
From what I read, Hardware Polling is the one thing you absolutely cannot opt-out of. Even in GDPR countries. Devs opting out must pay more for the Pro version that allows the toggle switch. These are things I gathered from forum posts, not strongly investigated facts.
https://forum.unity.com/threads/why-does-unity-analytics-not-provide-a-user-opt-out.524979/
https://twitter.com/compositeredfox/status/1001115317479895040?lang=en
https://answers.unity.com/questions/866325/unity-5-disable-analytics-pro-only.html
following further threads it appears to be possible to prevent all data collection but it requires that the dev turn off the settings in their project: https://forum.unity.com/threads/unity-analytics-data-privacy-plug-in-available-now-in-the-asset-store.532484/#post-3507755
most interesting is this post https://forum.unity.com/threads/unity-analytics-data-privacy-plug-in-available-now-in-the-asset-store.532484/#post-3506654
It looks like Unity itself collects information such as hardware and generates a unique ID with Application-Device-Player and thats how it tracks things like retention
So like google if a developer wants to go the easy way and use Unity analytics tools then he will be exposing his user's data to Unity corporate
But any dev who wanted to should be able to connect to a self hosted analytics solution
edit: it isn't possible to prevent hardware and other data from being collected for games built in the free version of Unity
It's also compulsory if you're using the free version, which kinda sucks (but I guess they need to upsell somehow).