Add a "device category" property

Related products: Product Analytics

Amplitude currently lacks a “device category” property to provide a top-level split of Mobile VS Desktop VS Tablet. There’s a hacky way to get to this (https://community.amplitude.com/data-instrumentation-57/how-to-create-a-computed-property-2303), but this absolutely feels like a property that should be out-of-the-box and managed by Amplitude.

Thanks!

Sorry, pasted incorrect link in the above. Here’s the correct reference…
 

 


Here’s how we set this up as a derived property, couldn’t find anything else already written up on the forums. Not perfect but it appears to work. Still would love to see this provided by Amplitude.

IF(
<device family property> contains (
'tab',
'ipad',
'kindle'
),
'tablet',
IF(
<OS property> contains (
'mobile'
),
'mobile',
IF (
<OS property> contains (
'none'
),
'unknown',
'desktop'
)
)
)

 


This feedback has been submitted to Amplitude product team, I equally hope they can build out this new OOTB user property this year 🤞🏼

Similar to @Jonathan Callahan’s comment above,  I built this derived property based on device family groupings as well

  IF(
OR(
PROPERTY('device', 'amplitude_user') contains 'phone',
PROPERTY('device', 'amplitude_user') contains 'ios',
PROPERTY('device', 'amplitude_user') contains 'android',
PROPERTY('device', 'amplitude_user') contains 'symbian',
PROPERTY('device', 'amplitude_user') contains 'tizen',
PROPERTY('device', 'amplitude_user') contains 'mobile'
),
'mobile',
IF(
OR(
PROPERTY('device', 'amplitude_user') contains 'windows',
PROPERTY('device', 'amplitude_user') contains 'linux',
PROPERTY('device', 'amplitude_user') contains 'mac',
PROPERTY('device', 'amplitude_user') contains 'chrome os',
PROPERTY('device', 'amplitude_user') contains 'chromium os',
PROPERTY('device', 'amplitude_user') contains 'WebOS',
PROPERTY('device', 'amplitude_user') contains 'ubuntu'
),
'desktop',
IF(
OR(
PROPERTY('device', 'amplitude_user') contains 'tablet',
PROPERTY('device', 'amplitude_user') contains 'ipad',
PROPERTY('device', 'amplitude_user') contains 'note',
PROPERTY('device', 'amplitude_user') contains 'xiaomi',
PROPERTY('device', 'amplitude_user') contains 'pad'
),
'tablet',
'(none)'
)
)
)

 

The drawback to this solution is a) your org needs access to derived properties, and b) you need to investigate most common device family values used in your product when scoping the most reliable definition for your derived prop. 

 

Also linking out this slack thread where @trevin-bc’s org has instrumentation on Screen HeightScreen Width, and Device Orientation  so he was able to build out a slightly more complex setup in derived properties as well.


Drawback c)….devices evolve (new models, new vendors, etc) so the definition in the derived property would also evolve, meaning customers would need to regularly re-check it. This is something that should be done vendor-side in the OOTB property.