-
public final class DeviceAttributesNon-identifying device attributes, for triage in the dashboard.
Deliberately coarse.
modelandosVersionare 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 Summary
Modifier and Type Method Description final StringgetOsVersion()final StringgetModel()final StringgetManufacturer()final StringgetTimezone()final LonggetFirstInstallMs()ms since epoch the app was first installed. final IntegergetBootCount()times this device has booted. final LonggetUptimeMs()ms since boot at collection time final LonggetDeviceTimeMs()The device's own wall clock at collection, ms since epoch, UTC. -
-
Method Detail
-
getOsVersion
final String getOsVersion()
-
getManufacturer
final String getManufacturer()
-
getTimezone
final String getTimezone()
-
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.
-
getUptimeMs
final Long getUptimeMs()
ms since boot at collection time
-
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.
-
-
-
-