Tool Unity Unity Analytics Killer

GranTurboAutismo

Active Member
Aug 4, 2019
631
1,014
Some of you may have known that Unity has long been listening and collecting data for every Unity game (unless the dll is specifically removed by the dev), some game devs let you have the option to opt out of the data collection while others are either unaware of it, or they don't care for it.


Where can you find these Unity analytics file?
They are in the game's save folder, example for Koikatsu: C:\Users\%userprofile%\AppData\LocalLow\illusion_Koikatu\Koikatu\Unity\...
Here is the tree view, note that these files are only generated after opening the game, by that point the data has already been phoned home.
Code:
└─Koikatu
    └─Unity
        └─local.bee90f7823d2e764680262dd285e5a47
            └─Analytics
                │  config
                │  values
                │
                └─ArchivedEvents
                    └─166539388800001.4c54e3ff
                            e
                            s
Lets look at the config file:
Code:
{"prefs":{},"analytics":{"enabled":true},"connect":{"limit_user_tracking":false,"player_opted_out":false,"enabled":true},"performance":{"enabled":true},"dynamic":{"coreBusinessMetrics":{"enabled":true,"timeToWaitForUserInfoS":60},"analytics":{"shouldCollectAutomation":true,"timeToWaitForUserInfoS":60}}}
You can change {"enabled":true}, to {"enabled":false} , same for other limit_user_tracking, player_opted_out, coreBusinessMetrics, etc after the fact
but Unity already has the following data by that point:

lets look at the file s and e

s
Code:
{"appid":"local.bee90f7823d2e764680262dd285e5a47","userid":"07a0e933ff6f9624c89dcba8e3cc545c","sessionid":8805509649860359263,"platform":"WindowsPlayer","platformid":2,"sdk_ver":"u5.6.2f1","localprojectid":"bee90f7823d2e764680262dd285e5a47","build_guid":"42cbf30d1fdb5ae41b2bf10442609f44","deviceid":"82b1e8ab29dc688ea6084ccc7cfdd5b96d14efb9"}
e
Code:
{"type":"appRunning","ts":1665393888792,"duration":4713,"local_time_offset":28800000}
(1){"type":"appStop","ts":1665393888792}
There is data about the game version, user-ID, your OS, and the device ID, time played, time stopped playing, the timezone, etc.


If you don't want this data being sent:
There is this repo. All you have to do is replace those DLLs in Game/data/Managed folder with the repository's before starting the game. From what I have seen in the assembly, it nulls the send/receive functions and sets the config parameters to false.
You only need
UnityEngine.PerformanceReportingModule.dll
UnityEngine.UnityAnalyticsModule.dll
Unity.Analytics.DataPrivacy.dll
Unity.Analytics.StandardEvents.dll
Unity.Analytics.Tracker.dll
and can ignore the 2 Kerbal Space Program scripts.

I have attached a zip, you can extract and replace the files in the data/managed folder
 
Last edited:
  • Like
Reactions: otpw

Mookys

Well-Known Member
Dec 19, 2022
1,518
2,165
I've read some comments about this, and unfortunately it seems to be the case with some Unity games.