mirror of
https://github.com/prebid/openrtb.git
synced 2026-06-14 14:06:38 +03:00
278 lines
6.7 KiB
Go
278 lines
6.7 KiB
Go
package openrtb
|
||
|
||
import "encoding/json"
|
||
|
||
// 3.2.18 Object: Device
|
||
//
|
||
// This object provides information pertaining to the device through which the user is interacting.
|
||
// Device information includes its hardware, platform, location, and carrier data.
|
||
// The device can refer to a mobile handset, a desktop computer, set top box, or other digital device.
|
||
//
|
||
// BEST PRACTICE: There are currently no prominent open source lists for device makes, models, operating systems, or carriers.
|
||
// Exchanges typically use commercial products or other proprietary lists for these attributes.
|
||
// Until suitable open standards are available, exchanges are highly encouraged to publish lists of their device make, model, operating system, and carrier values to bidders.
|
||
//
|
||
// BEST PRACTICE: Proper device IP detection in mobile is not straightforward.
|
||
// Typically it involves starting at the left of the x-forwarded-for header, skipping private carrier networks (e.g., 10.x.x.x or 192.x.x.x), and possibly scanning for known carrier IP ranges.
|
||
// Exchanges are urged to research and implement this feature carefully when presenting device IP values to bidders.
|
||
type Device struct {
|
||
|
||
// Attribute:
|
||
// ua
|
||
// Type:
|
||
// string; recommended
|
||
// Description:
|
||
// Browser user agent string.
|
||
UA string `json:"ua,omitempty"`
|
||
|
||
// Attribute:
|
||
// geo
|
||
// Type:
|
||
// object; recommended
|
||
// Description:
|
||
// Location of the device assumed to be the user’s current
|
||
// location defined by a Geo object (Section 3.2.19).
|
||
Geo *Geo `json:"geo,omitempty"`
|
||
|
||
// Attribute:
|
||
// dnt
|
||
// Type:
|
||
// integer; recommended
|
||
// Description:
|
||
// Standard “Do Not Track” flag as set in the header by the
|
||
// browser, where 0 = tracking is unrestricted, 1 = do not track.
|
||
DNT *int8 `json:"dnt,omitempty"`
|
||
|
||
// Attribute:
|
||
// lmt
|
||
// Type:
|
||
// integer; recommended
|
||
// Description:
|
||
// “Limit Ad Tracking” signal commercially endorsed (e.g., iOS,
|
||
// Android), where 0 = tracking is unrestricted, 1 = tracking must
|
||
// be limited per commercial guidelines.
|
||
Lmt *int8 `json:"lmt,omitempty"`
|
||
|
||
// Attribute:
|
||
// ip
|
||
// Type:
|
||
// string; recommended
|
||
// Description:
|
||
// IPv4 address closest to device.
|
||
IP string `json:"ip,omitempty"`
|
||
|
||
// Attribute:
|
||
// ipv6
|
||
// Type:
|
||
// string
|
||
// Description:
|
||
// IP address closest to device as IPv6.
|
||
IPv6 string `json:"ipv6,omitempty"`
|
||
|
||
// Attribute:
|
||
// devicetype
|
||
// Type:
|
||
// integer
|
||
// Description:
|
||
// The general type of device. Refer to List 5.21.
|
||
DeviceType DeviceType `json:"devicetype,omitempty"`
|
||
|
||
// Attribute:
|
||
// make
|
||
// Type:
|
||
// string
|
||
// Description:
|
||
// Device make (e.g., “Apple”).
|
||
Make string `json:"make,omitempty"`
|
||
|
||
// Attribute:
|
||
// model
|
||
// Type:
|
||
// string
|
||
// Description:
|
||
// Device model (e.g., “iPhone”).
|
||
Model string `json:"model,omitempty"`
|
||
|
||
// Attribute:
|
||
// os
|
||
// Type:
|
||
// string
|
||
// Description:
|
||
// Device operating system (e.g., “iOS”).
|
||
OS string `json:"os,omitempty"`
|
||
|
||
// Attribute:
|
||
// osv
|
||
// Type:
|
||
// string
|
||
// Description:
|
||
// Device operating system version (e.g., “3.1.2”).
|
||
OSV string `json:"osv,omitempty"`
|
||
|
||
// Attribute:
|
||
// hwv
|
||
// Type:
|
||
// string
|
||
// Description:
|
||
// Hardware version of the device (e.g., “5S” for iPhone 5S).
|
||
HWV string `json:"hwv,omitempty"`
|
||
|
||
// Attribute:
|
||
// h
|
||
// Type:
|
||
// integer
|
||
// Description:
|
||
// Physical height of the screen in pixels.
|
||
H uint64 `json:"h,omitempty"`
|
||
|
||
// Attribute:
|
||
// w
|
||
// Type:
|
||
// integer
|
||
// Description:
|
||
// Physical width of the screen in pixels.
|
||
W uint64 `json:"w,omitempty"`
|
||
|
||
// Attribute:
|
||
// ppi
|
||
// Type:
|
||
// integer
|
||
// Description:
|
||
// Screen size as pixels per linear inch.
|
||
PPI uint64 `json:"ppi,omitempty"`
|
||
|
||
// Attribute:
|
||
// pxratio
|
||
// Type:
|
||
// float
|
||
// Description:
|
||
// The ratio of physical pixels to device independent pixels.
|
||
PxRatio float64 `json:"pxratio,omitempty"`
|
||
|
||
// Attribute:
|
||
// js
|
||
// Type:
|
||
// integer
|
||
// Description:
|
||
// Support for JavaScript, where 0 = no, 1 = yes.
|
||
JS int8 `json:"js,omitempty"`
|
||
|
||
// Attribute:
|
||
// geofetch
|
||
// Type:
|
||
// integer
|
||
// Description:
|
||
// Indicates if the geolocation API will be available to JavaScript
|
||
// code running in the banner, where 0 = no, 1 = yes.
|
||
GeoFetch int8 `json:"geofetch,omitempty"`
|
||
|
||
// Attribute:
|
||
// flashver
|
||
// Type:
|
||
// string
|
||
// Description:
|
||
// Version of Flash supported by the browser.
|
||
FlashVer string `json:"flashver,omitempty"`
|
||
|
||
// Attribute:
|
||
// language
|
||
// Type:
|
||
// string
|
||
// Description:
|
||
// Browser language using ISO-639-1-alpha-2.
|
||
Language string `json:"language,omitempty"`
|
||
|
||
// Attribute:
|
||
// carrier
|
||
// Type:
|
||
// string
|
||
// Description:
|
||
// Carrier or ISP (e.g., “VERIZON”) using exchange curated string
|
||
// names which should be published to bidders a priori.
|
||
Carrier string `json:"carrier,omitempty"`
|
||
|
||
// Attribute:
|
||
// mccmnc
|
||
// Type:
|
||
// string
|
||
// Description:
|
||
// 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.
|
||
MCCMNC string `json:"mccmnc,omitempty"`
|
||
|
||
// Attribute:
|
||
// connectiontype
|
||
// Type:
|
||
// integer
|
||
// Description:
|
||
// Network connection type. Refer to List 5.22.
|
||
ConnectionType *ConnectionType `json:"connectiontype,omitempty"`
|
||
|
||
// Attribute:
|
||
// ifa
|
||
// Type:
|
||
// string
|
||
// Description:
|
||
// ID sanctioned for advertiser use in the clear (i.e., not hashed).
|
||
IFA string `json:"ifa,omitempty"`
|
||
|
||
// Attribute:
|
||
// didsha1
|
||
// Type:
|
||
// string
|
||
// Description:
|
||
// Hardware device ID (e.g., IMEI); hashed via SHA1.
|
||
DIDSHA1 string `json:"didsha1,omitempty"`
|
||
|
||
// Attribute:
|
||
// didmd5
|
||
// Type:
|
||
// string
|
||
// Description:
|
||
// Hardware device ID (e.g., IMEI); hashed via MD5.
|
||
DIDMD5 string `json:"didmd5,omitempty"`
|
||
|
||
// Attribute:
|
||
// dpidsha1
|
||
// Type:
|
||
// string
|
||
// Description:
|
||
// Platform device ID (e.g., Android ID); hashed via SHA1.
|
||
DPIDSHA1 string `json:"dpidsha1,omitempty"`
|
||
|
||
// Attribute:
|
||
// dpidmd5
|
||
// Type:
|
||
// string
|
||
// Description:
|
||
// Platform device ID (e.g., Android ID); hashed via MD5.
|
||
DPIDMD5 string `json:"dpidmd5,omitempty"`
|
||
|
||
// Attribute:
|
||
// macsha1
|
||
// Type:
|
||
// string
|
||
// Description:
|
||
// MAC address of the device; hashed via SHA1.
|
||
MACSHA1 string `json:"macsha1,omitempty"`
|
||
|
||
// Attribute:
|
||
// macmd5
|
||
// Type:
|
||
// string
|
||
// Description:
|
||
// MAC address of the device; hashed via MD5.
|
||
MACMD5 string `json:"macmd5,omitempty"`
|
||
|
||
// Attribute:
|
||
// ext
|
||
// Type:
|
||
// object
|
||
// Description:
|
||
// Placeholder for exchange-specific extensions to OpenRTB.
|
||
Ext json.RawMessage `json:"ext,omitempty"`
|
||
}
|