Package 

Class DeviceAttributes


  • 
    public final class DeviceAttributes
    
                        

    Non-identifying device attributes, for triage in the dashboard.

    Deliberately coarse. model and osVersion are shared by millions of handsets; nothing here narrows to a person, and we never collect the advertising ID, IMEI, serial, phone number, or account list.

    • Method Detail

      • getFirstInstallMs

         final Long getFirstInstallMs()

        ms since epoch the app was first installed. A farm device that installed minutes before cashing out looks very different from a real user.

      • getBootCount

         final Integer getBootCount()

        times this device has booted. Freshly imaged emulators sit near zero.

      • getDeviceTimeMs

         final Long getDeviceTimeMs()

        The device's own wall clock at collection, ms since epoch, UTC.

        ⭐ Sent so the SERVER can do the comparison. This is deliberately not judged on device: an on-device SDK can only measure its clock against itself, but the beacon arrives at a server that knows what time it actually is, and the difference between the two is the whole signal. Epoch millis are timezone independent, so a traveller's device is not a false positive here; only a genuinely wrong clock is.

        The vector this exists for: offerwalls run on daily caps and 24-hour cooldowns, so moving the clock forward is a direct way to claim twice.