> For the complete documentation index, see [llms.txt](https://docs.blueseasx.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.blueseasx.com/server-bidding/server-integration/bidrequest-object/device-object.md).

# Device Object

<table data-header-hidden data-search="false"><thead><tr><th width="122.640625"></th><th width="114.82421875"></th><th width="312.17578125"></th><th></th></tr></thead><tbody><tr><td><strong>Attribute</strong></td><td><strong>Type</strong></td><td><strong>Description</strong></td><td><strong>Required</strong></td></tr><tr><td>ua</td><td>string</td><td>Unprocessed User-Agent string from HTTP headers</td><td>yes</td></tr><tr><td>ip</td><td>string</td><td>IPv4 address of the device. Not passed in requests from countries subject to GDPR if the user does not give consent.</td><td>yes</td></tr><tr><td>ipv6</td><td>string</td><td>IPv6 address of the device. When ipv6 is present, ip is 255.255.255.255 by default. Not passed in requests from countries subject to GDPR if the user does not give consent.</td><td>yes if missing ip</td></tr><tr><td>geo</td><td>object</td><td>Location of the device, assumed to be the user’s current location</td><td>yes</td></tr><tr><td>geo.lat</td><td>float</td><td>Latitude from -90.0 to +90.0, where negative is south.</td><td>strongly recommend</td></tr><tr><td>geo.lon</td><td>float</td><td>Longitude from -180.0 to +180.0, where negative is west.</td><td>strongly recommend</td></tr><tr><td>geo.type</td><td>integer</td><td>Source of location data; recommended when passing lat/lon</td><td>strongly recommend</td></tr><tr><td>geo.ipservice</td><td>integer</td><td><p>Service or provider used to determine geolocation from IP address if</p><p>applicable (i.e., type = 2).</p></td><td>yes</td></tr><tr><td>geo.country</td><td>string</td><td>Country code using ISO-3166-1-alpha-3.</td><td>yes</td></tr><tr><td>geo.region</td><td>string</td><td>Region code using ISO-3166-2; 2-letter state code if USA.</td><td>strongly recommend</td></tr><tr><td>geo.city</td><td>string</td><td><p>City using United Nations Code for Trade &#x26; Transport</p><p>Locations. See Appendix A for a link to the codes.</p></td><td>strongly recommend</td></tr><tr><td>geo.utcoffset</td><td>integer</td><td>Local time as the number +/- of minutes from UTC.</td><td>yes</td></tr><tr><td>devicetype</td><td>integer</td><td>The general type of device. 1 for mobile and tablets. See OpenRTB Spec 2.5 <a href="https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf#%5B%7B%22num%22%3A167%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C69%2C486%2C0%5D">Table 5.21</a> for details.</td><td>yes</td></tr><tr><td>make</td><td>string</td><td>Device make (for example, "Apple")</td><td>yes</td></tr><tr><td>model</td><td>string</td><td>Model of the device. iOS shows the device model name, for example "iphone" or "iPhone 10,1". Android has model information such as "SAMSUNG-SM-G900A".</td><td>yes</td></tr><tr><td>os</td><td>string</td><td>Operating system of the device.</td><td>yes</td></tr><tr><td>osv</td><td>string</td><td>Operating system version of the device, for example "3.1.2".</td><td>yes</td></tr><tr><td>hwv</td><td>string</td><td>Hardware version of the device</td><td>yes</td></tr><tr><td>w</td><td>integer</td><td>Width of the screen in physical pixels. This may be dependent on the device orientation. Note: This can differ from banner.w.</td><td>yes</td></tr><tr><td>h</td><td>integer</td><td>Height of the screen in physical pixels. This may be dependent on the device orientation. Note: This can differ from banner.h.</td><td>yes</td></tr><tr><td>js</td><td>integer</td><td>1 if the device supports JavaScript; otherwise 0. (Always 1.)</td><td>no</td></tr><tr><td>language</td><td>string</td><td>Browser language, using <a href="https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes">ISO-639-1-alpha-2</a>.</td><td>yes</td></tr><tr><td>carrier</td><td>string</td><td>Carrier of device on a cellular network, or ISP of device on Wi-Fi.</td><td>yes</td></tr><tr><td>connectiontype</td><td>integer</td><td><p>Type of connection</p><ul><li>0 unknown — always 0 if the SDK signal is not present.</li><li>1 Ethernet — if device connects via Ethernet (Android only)</li><li>2 Wi-Fi — if device connects via Wi-Fi (Android / iOS)</li><li>3 Cellular — unknown connection (Android / iOS)</li><li>4 Cellular — 2G (Android / iOS)</li><li>5 Cellular — 3G (Android / iOS)</li><li>6 Cellular — 4G (Android / iOS)</li><li>7 Cellular — 5G (Android / iOS)</li></ul></td><td>yes</td></tr><tr><td>dnt</td><td>integer</td><td>Specifies whether the “Do Not Track” feature is enabled in the device. If 0, then DNT is false. If 1, then DNT is true. This parameter is omitted if DNT is not passed by the SDK or on iOS 5 or lower.</td><td>yes</td></tr><tr><td>lmt</td><td>integer</td><td>“Limit Ad Tracking” signal commercially endorsed (for example by iOS, Android), where 0 = tracking is unrestricted, 1 = tracking must be limited per commercial guidelines</td><td>yes</td></tr><tr><td>ifa</td><td>string</td><td>Apple IFA or Google Advertising ID. Google Advertising ID (Android) is lowercase by default; IFA (iOS) is uppercase by default. If raw is not available then this is not passed. Not passed in requests from countries subject to GDPR if the user does not give consent.</td><td>yes</td></tr><tr><td>ext</td><td>object</td><td>Placeholder for exchange-specific extensions to OpenRTB.</td><td>yes</td></tr><tr><td>ext.ifv</td><td>string</td><td>IDFV of devices in that publisher.</td><td>yes</td></tr></tbody></table>
