Hi @dale.laplante, I understand that our Support Engineer Eddie has already responded to you via a Support Ticket directly.
Pasting his answer below for others who might have the same question as you:
---
We pull the device information from the user's device information.
As noted in the HTTP API documentation, Amplitude will attempt to use device_brand, device_manufacturer, and device_model to map the corresponding device type and device family. Please take a careful look at Footnote 2 of the HTTP API doc; Device Family can be null if some of the fields are not updated together.
In order to get the device information (device_brand, device_manufacturer, and device_model), you will need to implement something similar to the Amplitude Android SDK or Amplitude iOS SDK.
For example, here's the relevant code line for grabbing the device_model:
https://github.com/amplitude/Amplitude-iOS/blob/aa5591a89391bb12a248731359da09751496736a/Amplitude/AMPDeviceInfo.m#L208
Also, note that "Device family" and "Device type" are determined based on the model and manufacturer we pull. For example, the device manufacturer might be Samsung and the device model might be SM-G900T -- using these two details, we'll determine:
- "Device family = Samsung Galaxy Phone"
- "Device type = Samsung Galaxy S5"
We then generate the 'aAmplitude] Device family' and 'lAmplitude] Device type' values based on a custom mapping that we do whenever we encounter new devices. Sometimes, the Device type might not be added to the data. This is because, with each new phone model that comes out globally, we update our device type mapping when we see a new device model. For context, as of 2015, Android has more than 24,000 unique devices (both tablets and smartphones); so it's very difficult for Amplitude to proactively search globally for all new devices that are being released. If there are any device types that you would like added, please let me know and I'll make a feature request for our Product team to add them.
In this case, the Device model for this user, here, is incorrect to map to the Device Type Apple iPhone 13. The correct information would be the following:
"device_manufacturer": "Apple",
"device_model": "iPhone14,5"
I tested this and in my project, I can see iPhone 13 as the Device Type.
Hope this helps!
-Eddie