After studying every Stack Overflow post about creating a special ID, the Google developer blog and Android documentation, I feel as though your’Pseudo ID’ will be the best possible option. Hardware Users can change their hardware, Android tablet or telephone, so unique IDs according to hardware are not great tips for TRACKING USERS For TRACKING HARDWARE, this is a terrific thought Software Users may wipe/change their ROM if they’re rooted It is possible to track users across platforms (iOS, Android, Windows, and Internet ) The best want to TRACK AN INDIVIDUAL USER with their permission is to just have them login (make this easy using OAuth) – Warranty uniqueness (include rooted devices) for API >= (99. 5% of Android apparatus ) – No additional permissions Psuedo code: if API >(99. 5% of devices) return unique ID comprising serial id (rooted apparatus differ ) else return the exceptional ID of assemble data ( overlap data – API < 9) Thanks to @stansult for posting all of our options (in this Stack Overflow question). List of options – reasons why/ why not to use them: User Email – Software User could change email – HIGHLY unlikely API 5+ or API 14+ (The best way to get the Android device’s primary 2 Easy Ways To Find Android Device ID and Change It email address) User Phone Number – Software Users may change phone numbers – HIGHLY unlikely IMEI – Hardware (only phones, demands android. READ_PHONE_STATE) Most consumers hate the fact that it states”Phone Calls” from the consent. Some customers give bad evaluations, since they believe you are just stealing their private information when all you really want to do is monitor apparatus installs. It’s clear that you’re collecting info. Android ID – Hardware (may be null, can alter upon clock reset, may be altered on a rooted device) As it may be’null’, we could look for’null’ and change its value, however that means it will no longer be special. If you’ve got a user using a factory reset apparatus, the value have changed or altered on the rooted apparatus so that there are copies entries if you are monitoring user installs. WLAN MAC Address – Hardware (needs android. ACCESS_WIFI_STATE) This may be the 2nd best choice, but you’re still collecting and preserving a exceptional identifier which comes straight from an individual. This is clear which you are collecting information. Bluetooth MAC Address – Hardware (devices with Bluetooth, demands android. BLUETOOTH) Most programs in the marketplace do not utilize Bluetooth, and Thus if your program doesn’t use Bluetooth and You’re like this, the user could become suspicious