Storing Data

What methods do you use to store player data?
My first app I used serialize binary and stored in Application.persistentDataPath. This is not a great way to store data because someone can go in and mess around with this file or clear app data and start the game fresh.
If say you are making a game where the player starts out with $500 and you don’t want the player to be able to just clear data and start at $500 again how do other apps do this? I’m guessing they are storing the data in a server DB but how are they identifying the user is the same user if you never made an account? Is there a way to store the data as like a MAC address for the users device so even if they reinstalled the app and deleted all the data it would still know it’s the same device?
How does everyone handle storing player data on mobile?

Okay there is an application that even if I delete all app data and uninstall it still has my info saved. I’m not logging in any form and playing as a guest. It requires an internet connection so theres only two options;

  1. It’s saving a data file somewhere else on my phone that doesn’t get deleted on clear app data.
  2. It’s storing my device using some unique identifier in their database. What is this unique identifier?

Edit: I’ve read the
SystemInfo.deviceUniqueIdentifier
is not a reliable way to always get the same value