Device Object Properties

Note

Fields marked with an asterisk (*) are optional.

(**) Required for in-app requests.

Device Object Properties

Value

Type

Description

geo

object

Geo Object as derived from the device’s location services, or supplied by the Supplier if the device IP is missing. For more information, see the Geo Object Properties section.

ip

string

Specifies the IPv4 address closest to the device.

  • Semi-Required One of IP or IPv6 required

  • Required for almost all requests, any containing invalid IP addresses will be discarded based on IP Validation e.g. 87.224.77.0

  • Note: This field is only optional for Connected TV inventory

ipv6*

string

Semi-Required One of IP or IPv6 required. IP address in IPv6, for example, fe80:0:0:0:200:f8ff:fe21:67cf

ua*

string

Browser or application user agent string, for example, "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0)Gecko/20100101Firefox/35.0"

Browser user agent string. This field represents a raw user agent string from the browser. For backwards compatibility, exchanges are recommended to always populate ua with the User-Agent string, when available from the end user’s device, even if an alternative representation, such as the User-Agent Client-Hints, is available and is used to populate sua. No inferred or approximated user agents are expected in this field. If a client supports User-Agent Client Hints, and sua field is present, bidders are recommended to rely on sua for detecting device type, browser type and version and other purposes that rely on the user agent information, and ignore ua field. This is because the ua may contain a frozen or reduced user agent string.

sua*

object

Structured user agent. If both ua and sua are present in the bid request, sua should be considered the more accurate representation of the device attributes. This is because the ua may contain a frozen or reduced user agent string.

language*

string

Alpha-2/ISO 639-1 code of browser language, for example, en

carrier*

string

Carrier or ISP derived from the IP address, for example, WIFI

connectiontype*

integer

Connection type as defined in OpenRTB, for example, 2

ifa**

string

The ID for Advertisers (IFA) in clear text (i.e. not hashed), for example Apple’s IDFA or Android’s Advertising ID. Note: This field is required for in-app requests.

The Apple IDFA is usually uppercase, and the Android Advertiser ID is usually lowercase. For example:

  • Android "035911ea-467d-4056-903b-65cf44f5633b"

  • iOS "30255BCE-4CDA-4F62-91DC-4758FDFF8512"

  • iOS 14 00000000-0000-0000-0000-000000000000, with Apple’s deprecation of the IDFA as part of iOS 14, this field should be passed using all zeros, rather than removed or an empty string, as all zeros are the expected format.

Note: This fields can use UUIDv4 or UUIDv5 formats. If passing synthetic IFAs, you should use either the v4 or v5 implementation of RFC 4122 to generate them. There’s a number of online tools for checking the version if you need to troubleshoot UUID issues, e.g. UUID / GUID Validator

make*

string

Device make, for example, Apple

mccmnc*

string

Mobile carrier as the concatenated MCC-MNC code (e.g., "310-005" identifies Verizon Wireless CDMA in the USA). Refer to https://en.wikipedia.org/wiki/Mobile_country_code for further examples. Note: that the dash between the MCC and MNC parts is required to remove parsing ambiguity

model*

string

Device mode, for example, iPhone

os*

string

Device operating system, for example, iOS

osv*

string

Device operating system version, for example, 3.1.2

h*

integer

Physical height of the screen in pixels, for example, 750

w*

integer

Physical width of the screen in pixels, for example, 1334

pxratio*

float

The ratio of physical pixels to device independent pixels, for example, 1.0

dnt*

integer

Do not track.

  • 0: do not track is set to false

  • 1: do not track is set to true in the browser, for example, 0

lmt*

integer

Limit Ad Tracking. Signal commercially endorsed (e.g., iOS, recommended Android):

  • 0: tracking is unrestricted,

  • 1: tracking must be limited per commercial guidelines, for example, 0

devicetype*

integer

Device type as defined by OpenRTB, for example, 4

js*

integer

1 if the device supports JavaScript; otherwise 0.

flashver*

string

Flash version detected, for example, 10.1

ext*

object

Device extensiton object

Structured User Agent

Structured user agent information, which can be used when a client supports User-Agent Client Hints. If both device.ua and device.sua are present in the bid request, device.sua should be considered the more accurate representation of the device attributes. This is because the device.ua may contain a frozen or reduced user agent string due to deprecation of user agent strings by browsers.

Device Structured User Agent

Value

Type

Description

browsers*

array of objects

Each Brand Version object identifies a browser or similar software component. Implementers should send brands and versions derived from the Sec-CH-UA-Full-Version-List header or an equivalent JavaScript accessor from NavigatorUAData interface. This header or accessor are only available for browsers that support User-Agent Client Hints. See the Brand Version Object.

platform*

object

A BrandVersion object that identifies the user agent’s execution platform / OS. Implementers should send a brand derived from the Sec-CH-UA-Platform header, and version derived from the Sec-CH-UAPlatform-Version header or an equivalent JavaScript accessor from NavigatorUAData interface. See the Brand Version Object.

mobile*

int

Indicates a mobile version:

  • 0 For desktop content

  • 1 if the agent prefers a mobile version of the content

architecture*

string

Device’s major binary architecture, e.g. "x86" or "arm"

bitness*

string

Device’s bitness, e.g. "64" for 64-bit architecture.

model*

string

Device model.

source*

integer

The source of data used to create this object

  • 0 Unknown

  • 1 User-Agent Client Hints (only low-entropy headers were available)

  • 2 User-Agent Client Hints (with high-entropy headers available)

  • 3 Parsed from User-Agent header (the same string carried by the ua field)

Device Ext

Device Ext Object Properties

Value

Type

Description

atts*

int

(iOS Only) An integer passed to represent the app’s app tracking authorization status, can contain the following values.

  • 0 = not determined

  • 1 = restricted

  • 2 = denied

  • 3 = authorized

dooh*

object

Passes the DOOH Object for Digital out of Home inventory, required to indicate DooH inventory

truncated_ip*

integer

Indicates whether the IP address in the device.ip field is truncated. 1 = truncated 0 = not truncated. It is assumed not truncated and required if the IP address is truncated. If not declared the bid request might be classified as invalid traffic, by Google. This is a field only for Google, see the Display & Video 360 OpenRTB Specification

ifa_type*

string

Indicates the origin of the device.ifa field, whether it was provided from the device itself or generated by a publisher or Supplier in the supply chain. Takes the following values from the Guidelines for Identifier for Advertising (IFA) on CTV/OTT platforms

  • "aaid" Android TV

  • "rida" Roku

  • "afai" Amazon Fire

  • "idfa" Apple tvOS

  • "msai" Xbox/Microsoft

  • "dpid" Generic device platform ID

  • "ppid" Publisher provided ID

  • "sspid" SSP provided ID

  • "sessionid" Short-lived session ID (frequency capping only)

idfv*

str

Passes the ID for Vendor (IDFV).

A persistent unique identifier for each app on a device that identifies the device to the app’s vendor. The value of this property is the same for apps that come from the same vendor running on the same device. A different value is returned for apps on the same device that come from different vendors, and for apps on different devices regardless of vendor, e.g. "1F277D46-12BF-482A-9085-B4F811DD6E4D"