Table of contents
Bid Request
This is the top-level object that is sent to the Buyer. Each bid request sent from The MediaGrid to a Buyer will contain the following fields.
Note
Fields marked with asterisk (*) are optional.
Bid Request Object Properties | ||
---|---|---|
Value | Type | Description |
id | string | Unique ID of the bid request, provided by Commerce Grid, for example, |
imp | array of objects | An array of objects representing the impressions offered, for more information, see the Impression Object section. |
device | object | Device object with details about the device to which the impression will be delivered; for more information, see the Device Object section. |
user | object | User Object, which describes the user; for more information, see the User Object section. Note: In the event that a user has opted out under the GDPR or CCPA, this will be passed as an empty object, e.g. |
tmax | integer | Maximum time in milliseconds the exchange allows for bids to be received to avoid timeout, including internet latency, for example, |
cur | array of strings | Array of allowed currencies for bids on this bid request using ISO-4217 alpha codes, for example, |
wlang* | array of strings | Allowed list of languages for creatives using ISO-639-1-alpha-2. Omission implies no specific restrictions, but buyers would be advised to consider language attributes in the |
wlangb* | array of strings | Allowed list of languages for creatives using IETF BCP 47I. Omission implies no specific restrictions, but buyers would be advised to consider language attributes in the |
at* | integer | Auction type, the default value is
|
source* | object | Indicates the entity responsible for the final impression sale decision; see the Source Object. |
site* | object | The Site Object describes the site. One of these objects should be present in the request: |
app* | object | The App Object describes the mobile application. One of these objects should be present in the request: |
bcat* | array of strings | Blocked Advertiser Categories, using the IAB taxonomy, and extended with additional sensitive categories listed in the Sensitive Categories and Rich Media section. Creatives belonging to at least one of the listed categories are not permitted for bidding in the current bid request, for example, |
cattax* | int | The taxonomy in use for
|
badv* | array of strings | Array of strings of blocked top-level domains of advertisers, for example, |
bapp* | array of strings | A list of applications blocked from being advertised, specified using their platform-specific identifiers, i.e., the app bundle ID. On Android, these should be app bundles and on iOS, numeric IDs e.g. |
wseat* | array of strings | An array of Buyer seats allowed bidding on this auction; for example A bid request may contain multiple seat IDs using the Supplier taxonomy. The bid response should contain the appropriate seat value corresponding to one of the values of the |
bseat* | array of strings | An array of Buyer seats were disallowed to bid on this auction, for example The |
allimps* | integer | A flag to indicate if the Supplier can verify that the impressions offered to represent all of the impressions available in context (e.g., all on the web page, all video spots such as pre/mid/post roll) to support road-blocking.
|
regs* | object | A regulations object that specifies any industry, legal, or governmental regulations in force for this request, for more information, see the Regs Object section. |
ext | object | Ext Object used for Supplier specific properties, for more information, see the Ext Object section. |
Impression Object
Fields marked with asterisk (*) are optional.
Impression Object Properties | ||
---|---|---|
Value | Type | Description |
id | string | ID of the impression being shown, unique within the bid request, for example |
metric* | array of objects | The object that is associated with an impression as an array of metrics, see the Metric Object section. |
banner* | object | The Banner Object describes the ad properties. Required for banner impressions. |
video* | object | The Video Object describes the ad properties. Required for video impressions. |
audio* | object | The Audio Object describes the ad properties. Required for audio impressions. |
native* | object | The Native Object describes the ad properties. Required for native impressions. |
bidfloor* | float | Bid floor in CPM as set by the Supplier, for example, |
bidfloorcur* | string | Bid floor currency specified using ISO-4217 alpha codes, for example, |
instl* | integer | Specifies if the ad is an interstitial.
|
tagid* | string | Identifier for specific ad placement or ad tag that was used to initiate the auction. |
clickbrowser* | integer | Indicates the type of browser opened upon clicking the creative in an app, where |
secure* | integer | Specifies if the page is SSL compliant:
|
iframebuster* | array of strings | Array of names of supported iframe busters, for example, |
pmp* | object | The Private Marketplace Object, used for direct deals between Buyers and Suppliers. |
displaymanager* | string | Name of the ad mediation partner, SDK technology, or native player responsible for rendering the ad (typically video or mobile), for example, |
displaymanagerver* | string | Version of the ad mediation partner, SDK technology, or native player responsible for rendering the ad (typically video or mobile), for example, |
rwdd* | integer | Indicates whether the user receives a reward for viewing the ad, where |
ssai* | int | Indicates if server-side ad insertion (e.g., stitching an ad into an audio or video stream) is in use and the impact of this on asset and tracker retrieval. It can take the following values:
|
exp* | integer | Impression expiry timeout, in seconds, for example, |
ext* | object | See the Impression Ext section. |
Impression Ext
Impression Extension Properties | ||
---|---|---|
Value | Type | Description |
wopv | str | Passes the WhiteOps MediaGuard Prediction ID, e.g. |
skadn* | object | Apple Ad Network Object, this will be used to pass app data from iOS 14 and newer releases. See SkAdNetwork Extension |
inventory_class* | integer | Inventory class according to the Supplier classification. The Supplier classification is maintained by each Buyer and is not a The MediaGrid list, for example |
notification_type* | int | Indicates the Supplier’s supported notification type(s):
You can read more about notification types in the Server-to-Server (s2s) Calls section |
SkAdNetwork Extension
skadn Extension Properties | ||
---|---|---|
Value | Type | Description |
version* | str | Version of skadnetwork supported. Always |
versions* | array of strings | An array of strings containing the supported skadnetwork versions. Always |
sourceapp* | str | ID of publisher app in Apple’s App Store. Should match “app.bundle” |
skadnetids* | array of string | A subset of SKAdNetworkItem entries in the publisher app’s |
skadnetlist* | object | An object containing the IAB Tech Lab (IABTL) list definition. See the skadnetlist object table for details. You can also find out more about the IABTL List from their release blog post and at https://tools.iabtechlab.com/skadnetwork |
skadnetlist object
skadnetlist Properties | ||
---|---|---|
Value | Type | Description |
max* | integer | A list of IABTL IDs containing the max entry ID on the list up to which you wish to include. The skadnetids associated with all IABTL IDs numerically lower than this are included as subset of SKAdNetworkItem entries in the publisher app’s |
excl* | array of integers | A list of IABTL registration IDs to be excluded, i.e. those numerically lower than the max value but which should not be included, e.g. |
addl* | array of strings | A list of raw lowercase SKAdNetworkItem entries in the publisher app’s Note: The intention of this field is to replace the |
Impression Ext Google Object
Google Impression Extension Properties | ||
---|---|---|
Value | Type | Description |
excluded_attribute* | array of integers | List of excluded creative attributes as defined by Google, for example, |
allowed_vendor_type* | array of integers | List of allowed vendor types as defined by Google. |
Impression Ext Yieldone Object
Yieldone Impression Extension Properties¶ | ||
Value | Type | Description |
---|---|---|
allowed_creative_types | array of strings | List of allowed creative types as defined by YieldOne, for example, |
allowed_creative_category_id* | array of integers | List of allowed creative categories as defined by YieldOne, for example, |
cat* | array of integers | List of site categories as defined by YieldOne, for example, |
inventory_class* | integer | Inventory class according to the YieldOne classification. Deprecated since version 2.4: Use |
Banner Object
Banner Object Properties | ||
---|---|---|
Value | Type | Description |
format* | array or objects | (Recommended) An array of format objects, see Format Object, denoting the alternative sizes that may be used for bidding. If one of the alternative ad sizes is used in the bid response, then the |
w | integer | Width of the impression in pixels, for example, |
h | integer | Height of the impression in pixels, for example |
battr* | array of integers | Blocked creative attributes as defined in the OpenRTB protocol, for example, |
btype* | array of integers | Blocked banner ad types as defined in the OpenRTB protocol, for example, |
pos* | integer | Ad Position as defined in the OpenRTB protocol, for example, |
topframe* | integer | Indicates if the banner is in the top frame as opposed to an iframe.
|
mimes* | array of strings | Specifies the content MIME types supported, common MIME types include
|
expdir* | array of integers | Possible expansion directions for an expandable ad, for example,
If the field is not present, expandable creatives are not allowed. |
api* | array of integers | List of supported API frameworks for this impression as defined in the OpenRTB, for example |
id* | string | Unique identifier for this banner object. Recommended when Banner objects are used with a Video object to represent an array of companion ads. Values usually start at |
vcm* | integer | Relevant only for Banner objects used with a Video object in an array of companion ads. Indicates the companion banner rendering mode relative to the associated video, where |
Format Object
Fields marked with an asterisk (*) are optional.
Either w/h
or wratio/hratio/wmin
set should be specified.
Format Object Properties | ||
---|---|---|
Value | Type | Description |
h* | integer | Height of the impression in pixels, for example |
w* | integer | Width of the impression in pixels, for example |
hratio* | integer | Relative height when expressing size as a ratio |
wratio* | integer | Relative width when expressing size as a ratio |
wmin* | integer | The minimum width in device independent pixels (DIPS) at which the ad will be displayed the size is expressed as a ratio. |
Video Object
Fields marked with an asterisk (*) are optional.
Video Object Properties | ||
Value | Type | Description |
---|---|---|
mimes | array of strings | Content MIME types supported. |
minduration | integer | Minimum video ad duration in seconds, for example, |
maxduration | integer | Maximum video ad duration in seconds, for example, |
linearity* | integer | Indicates if the impression must be linear or nonlinear, for example,
|
placement* | integer | Placement type for the impression, for example
|
playbackend* | integer | The event that causes playback to end, for example
|
protocols | array of integers | Accepted video bid response protocols as defined in OpenRTB, for example |
pos* | integer | Ad Position as defined in OpenRTB, for example |
w* | integer | Width of the player in pixels, for example, |
h* | integer | Height of the player in pixels, for example |
startdelay* | integer | Indicates the start delay in seconds. If the start delay value is greater than 0, then the position is mid-roll and the value indicates the start delay.
|
maxseq* | integer | Indicates the maximum number of ads that may be served into a “dynamic” video ad pod (where the precise number of ads is not predetermined by the seller). |
poddur* | integer | Indicates the total amount of time in seconds that advertisers may fill for a “dynamic” video ad pod, or the dynamic portion of a “hybrid” ad pod. This field is required only for the dynamic portion(s) of video ad pods. This field refers to the length of the entire ad break, whereas |
podid* | integer | Unique identifier indicating that an impression opportunity belongs to a video ad pod. If multiple impression opportunities within a bid request share the same |
podseq* | integer | The sequence (position) of the video ad pod within a content stream. The following values are supported:
|
rqddurs* | array of integers | Precise acceptable durations for video creatives in seconds. This field specifically targets the Live TV use case where non-exact ad durations would result in undesirable ‘dead air’. This field is mutually exclusive with |
slotinpod* | integer | For video ad pods, this value indicates that the seller can guarantee delivery against the indicated slot position in the pod. The following values are supported:
|
mincpmpersec* | float | Minimum CPM per second. This is a price floor for the “dynamic” portion of a video ad pod, relative to the duration of bids an advertiser may submit. |
battr* | array of integers | Blocked creative attributes as defined in OpenRTB, for example, |
minbitrate* | integer | Minimum bit rate in Kbps, for example |
maxbitrate* | integer | Maximum bit rate in Kbps, for example |
api* | array of integers | List of supported API frameworks for this impression as defined in OpenRTB, for example, |
maxextended* | integer | Maximum extended video ad duration if extension is allowed.
|
boxingallowed* | integer | Indicates if letter-boxing of 4:3 content into a 16:9 window is allowed:
|
playbackmethod* | array of integers | Allowed playback methods as defined in the OpenRTB, for example |
delivery* | array of integers | Supported delivery methods (e.g., streaming, progressive) as defined in OpenRTB. If none specified, assume all are supported, for example, |
sequence* | integer | If multiple ad impressions are offered in the same bid request, the sequence number will allow for the coordinated delivery of multiple creatives, for example, |
companionad* | object array | Array of Banner objects if companion ads are available. See the Banner Object section for more information. |
companiontype* | array of integers | List of allowed companion ad types, for example
|
skip* | integer | Indicates if the player will allow the video to be skipped, where 0 = no, 1 = yes. |
skipmin* | integer | Videos of a total duration greater than this value (seconds) can be skippable; only applicable if the ad is skippable. |
skipafter* | integer | Number of seconds a video must play before skipping is enabled; only applicable if the ad is skippable. |
Audio Object
Fields marked with an asterisk (*) are optional.
Audio Object Properties | ||
---|---|---|
Value | Type | Description |
mimes | array of strings | (Required) Content MIME types supported, for example |
minduration | integer | (Recommended) Minimum audio ad duration in seconds. This field is mutually exclusive with |
maxduration | integer | (Recommended) Maximum audio ad duration in seconds. This field is mutually exclusive with |
poddur* | integer | (Recommended) Indicates the total amount of time that advertisers may fill for a dynamic audio ad pod, or the dynamic portion of a hybrid ad pod. This field is required only for the dynamic portion(s) of audio ad pods. This field refers to the length of the entire ad break, whereas minduration, maxduration, and rqddurs are constraints relating to the slots that make up the pod. |
protocols | array of integers | (Recommended) Accepted audio bid response protocols as defined in OpenRTB, for example
|
startdelay* | integer | (Recommended) Indicates the start delay in seconds e.g.
|
rqddurs* | array of integer | Precise acceptable durations for audio creatives in seconds, e.g. |
podid* | integer | Unique identifier indicating that an impression opportunity belongs to an audio ad pod. If multiple impression opportunities within a bid request share the same |
podseq* | integer | The sequence (position) of the audio ad pod within a content stream, the default value is 0. For the most up to date list, see the IAB Adcom spec
|
sequence* | integer | DEPRECATED If multiple ad impressions are offered in the same bid request, the sequence number will allow for the coordinated delivery of multiple creatives. |
slotinpod* | integer | For audio ad pods, this value indicates that the seller can guarantee delivery against the indicated sequence. For the most up to date list, see the IAB Adcom spec
|
mincpmpersec* | float | Minimum CPM per second. This is a price floor for the dynamic portion of an audio ad pod, relative to the duration of bids an advertiser may submit. The |
battr* | array of integers | Blocked creative attributes as defined in OpenRTB, for example, |
minbitrate* | integer | Minimum bit rate in Kbps, for example |
maxbitrate* | integer | Maximum bit rate in Kbps, for example |
api* | array of integers | List of supported API frameworks for this impression as defined in the OpenRTB guide, for example, |
maxextended* | integer | Maximum extended audio ad duration if extension is allowed.
|
delivery* | array of integers | Supported delivery methods (e.g., streaming, progressive) as defined in OpenRTB. If none specified, assume all are supported, for example, |
maxseq* | integer | The maximum number of ads that can be played in an ad pod, for example, |
feed* | integer | Type of audio feed, e.g.
|
sequence* | integer | If multiple ad impressions are offered in the same bid request, the sequence number will allow for the coordinated delivery of multiple creatives, for example, |
stitched* | integer | Indicates if the ad is stitched with audio content or delivered independently, for example, |
nvol* | integer | Volume normalization mode as defined in OpenRTB, for example, |
companionad* | array of objects | Array of Banner objects if companion ads are available. See the Banner Object section for more information. |
companiontype* | array of integers | Supported DAAST companion ad types, for example
|
ext* | object | Audio extension object |
Native Object
Fields marked with an asterisk (*) are optional.
Native Object | ||
---|---|---|
Value | Type | Description |
request | object | Contains the Native Request Object object. |
battr* | array of integers | Blocked creative attributes as defined in OpenRTB., for example |
api* | array of integers | List of supported API frameworks for this impression as defined in OpenRTB, for example |
ext* | object | Native Extension object, see Native Extension Object. |
Native Extension Object
Native Request Extension Object | ||
---|---|---|
Value | Type | Description |
triplelift* | object | Object for including TripleLift specific information. |
adchoicesurl_required* | int | (Optional) Set to |
Native Request Extension Triplelift Object
Native Request Extension TripleLift Object | ||
---|---|---|
Value | Type | Description |
formats* | array of integers | Types supported by the particular placement according to the TripleLift classification. See the TripleLift Spec here https://github.com/triplelift/documentation/blob/master/ortb2.3.tl.md#231-triplelift-object |
Native Request Object
Fields marked with asterisk (*) are optional.
Native Request Object | ||
---|---|---|
Value | Type | Description |
ver* | string | Version of the Native Markup in use, for example, |
layout* | integer | The Layout ID of the native ad unit as described in OpenRTB Native specification, for example, |
adunit* | integer | The Ad unit ID of the native ad unit as described in OpenRTB Native specification. |
plcmttype* | integer | The design/format/layout of the ad unit being offered. See the Native Placement Type for a list of supported placement types |
plcmtcnt* | integer | The number of identical placements in this Layout, for example, |
seq* | integer | 0 for the first ad, 1 for the second ad, and so on. This is not the sequence number of the content in the stream. |
assets | array of objects | An array of Asset Objects. Any bid must comply with this array of elements. See the Native Asset Object section for more details. |
privacy* | integer | Set to |
context* | integer | The context in which the ad appears. See Context Type Description |
contextsubtype* | integer | A more detailed context in which the ad appears. See Context SubType ID Description |
eventtrackers* | array of objects | Specifies what type of event tracking is supported, see Event Tracker Request Object |
Native Asset Object
Native Asset Object Properties | ||
---|---|---|
Value | Type | Description |
id | integer | Unique asset id, for example |
required* | integer | Set to 1 if asset is required (exchange will not accept a bid without it), default is 0. |
title ** | object | Native title object, see the Native Asset Title Object for more details. |
img ** | object | Native image object, see the Native Asset Image Object for more details. |
video ** | object | Native video object, see the Native Asset Video Object for more details. |
data ** | object | Native asset data object, see the Native Asset Data Object section for more details. |
Note: (**) There may be exactly one of the fields marked with double asterisk in one asset object.
Native Asset Title Object
Native Asset Title Object | ||
---|---|---|
Value | Type | Description |
len | integer | Maximum length of the text in the title element, for example, |
Native Asset Image Object
The image asset object may contain the exact image size, the minimum image size, or both. If the exact image size (w/h) or the minimum image size (wmin/hmin) is specified in the bid request, then the image asset in the bid response should specify the values.
The size of the image should be equal to or larger than the minimum specified
The image asset in the bid response should contain the
w
andh
fields, see the Native Assets Image Object.
Native Asset Image Object | ||
---|---|---|
Value | Type | Description |
type* | integer | Image asset type, for example
|
w* | integer | Width of the image in pixels, for example, |
wmin* | integer | The minimum requested width of the image in pixels, for example, |
h* | integer | Height of the image in pixels, for example, |
hmin* | integer | The minimum requested height of the image in pixels, for example, |
mimes* | array of strings | Whitelist of content MIME types supported, for example, |
Native Asset Video Object
Native Asset Video Object | ||
---|---|---|
Value | Type | Description |
mimes | array of strings | Content MIME types supported, for example, |
minduration | integer | Minimum video ad duration in seconds, for example, |
maxduration | integer | Maximum video ad duration in seconds, for example |
protocols | array of integers | Accepted video bid response protocols as defined in OpenRTB, for example, |
ext* | object |
Native Asset Video Object Extension
Native Asset Video Object Extension Properties | ||
---|---|---|
Value | Type | Description |
playbackmethod* | array of integers | Allowed playback methods as defined in the OpenRTB, for example |
Native Asset Data Object
Native Asset Data Object | ||
---|---|---|
Value | Type | Description |
type | integer | Data asset type as described in OpenRTB Native specification, for example, |
len* | integer | Maximum length of the text in the element’s response, for example, |
Native Placement Type
Native Placement Type Options | |
---|---|
Value | Description |
1 | In the feed of content, for example as an item inside the organic feed/grid/listing/carousel. |
2 | In the atomic unit of the content, i.e. in the article page or single image page |
3 | Outside the core content, for example in the ads section on the right rail, as a banner-style placement near the content, etc. |
4 | Recommendation widget, most commonly presented below the article content. |
500+ | To be defined by the exchange |
Context Type Description
Context Options | |
---|---|
Value | Description |
1 | Content-centric context such as newsfeed, article, image gallery, video gallery, or similar |
2 | Social-centric context such as social network feed, email, chat, or similar |
3 | Product context such as product listings, details, recommendations, reviews, or similar |
500+ | To be defined by the exchange |
Context SubType ID Description
Subtype Options | |
---|---|
Value | Description |
10 | General or mixed content |
11 | Primarily article content (which of course could include images, etc as part of the article) |
12 | Primarily video content |
13 | Primarily audio content |
14 | Primarily image content |
15 | User-generated content, e.g. forums, comments, etc |
20 | General social content such as a general social network |
21 | Primarily email content |
22 | Primarily chat/IM content |
30 | Content focused on selling products, whether digital or physical |
31 | Application store/marketplace |
32 | Product reviews site primarily (which may sell product secondarily) |
500+ | To be defined by the exchange |
Event Tracker Request Object
Event Tracker Request Object | ||
---|---|---|
Value | Type | Description |
event | integer | Type of event available for tracking. See the Event Tracking Types |
methods | array of integers | Array of the types of tracking available for the given event. See the Event Tracking Methods table |
ext* | object | This object is a placeholder that may contain custom JSON agreed to by the parties to support flexibility beyond the standard defined in this specification |
Event Tracking Types
Event Tracking Types | ||
---|---|---|
Value | Type | Description |
1 | Impression | Impression |
2 | viewable-mrc50 | Visible impression using MRC definition at 50% in view for 1 second. |
3 | viewable-mrc100 | Visible impression using MRC definition at 100% in view for 1 second, i.e. GroupM standard |
4 | viewable-video50 | Visible impression for video using MRC definition at 50% in view for 2 seconds. |
500+ | exchange specific |
Event Tracking Methods
Event Tracking Methods | ||
---|---|---|
Value | Type | Description |
1 | img | Image-pixel tracking – The URL provided in the response will be inserted as a 1x1 pixel at the time of the event. |
2 | js | Javascript-based tracking – The URL provided in the response will be inserted as a js tag at the time of the event. |
500+ | exchange specific | Could include custom measurement companies such as Moat, DoubleVerify, IAS, etc – in this case additional elements will often be passed. |
Device Object
Fields marked with an asterisk (*) are optional.
In the event that a user has opted-out under the GDPR or CCPA, the following data will be removed from the request, device.ip
or ipv6
, and device.ifa
Device Object Properties | ||
---|---|---|
Value | Type | Description |
geo | object | (Recommended) 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 section. |
ip | string | Specifies the IPv4 address closest to the device.
|
ipv6 | string | Semi-Required One of IP or IPv6 required. IP address in IPv6, for example |
ua* | string | Browser or application user agent string, for example, Browser user agent string. This field represents a raw user agent string from the browser. For backwards compatibility, exchanges are recommended to always populate |
sua* | object | Structured user agent. If both |
language* | string | Alpha-2/ISO 639-1 code of browser language, for example, |
langb* | string | Browser language using IETF BCP 47. Only one of language or langb should be present. |
carrier* | string | Carrier or ISP derived from the IP address, for example, |
connectiontype* | integer | Connection type as defined in OpenRTB, for example, |
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:
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 maker, for example, |
mccmnc* | string | Mobile carrier as the concatenated MCC-MNC code (e.g., |
model* | string | Device mode, for example, |
os* | string | Device operating system, for example, |
osv* | string | Device operating system version, for example, |
h* | integer | Physical height of the screen in pixels, for example, |
w* | integer | Physical width of the screen in pixels, for example, |
pxratio* | float | The ratio of physical pixels to device independent pixels, for example, |
dnt* | integer | (Recommended) Do not track.
|
lmt* | integer | (Recommended) Limit Ad Tracking. Signal commercially endorsed (e.g., iOS, recommended Android):
|
devicetype* | integer | Device type as defined by OpenRTB, for example, |
js* | integer | 1 if the device supports JavaScript; otherwise 0. |
flashver* | string | Flash version detected, for example, |
ext* | object | Device extension object |
didsha1* | string | Hardware device ID (e.g., IMEI); hashed via SHA1, for example, Deprecated since version 5.3. |
didmd5* | string | Hardware device ID (e.g., IMEI); hashed via MD5. Deprecated since version 5.3. |
dpidsha1* | string | Platform device ID (e.g., Android ID); hashed via SHA1, for example, Deprecated since version 5.3. |
dpidmd5* | string | Platform device ID (e.g., Android ID); hashed via MD5, for example, Deprecated since version 5.3. |
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 browsers' deprecation of user agent strings.
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 |
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 |
mobile* | int | Indicates a mobile version:
|
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
|
Brand Version Object
Structured User Agent Brand Version | ||
---|---|---|
Value | Type | Description |
brand* | string | (Required) A brand identifier, for example, “Chrome” or “Windows”. The value may be sourced from the User-Agent Client Hints headers, representing either the user agent brand (from the Sec-CH-UA-Full-Version header) or the platform brand (from the Sec-CH-UA-Platform header). |
version* | array of strings | A sequence of version components, in descending hierarchical order (major, minor, build, patch, etc e.g. |
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.
|
truncated_ip* | integer | Indicates whether the IP address in the |
ifa_type* | string | Indicates the origin of the
|
idv* | 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. Note Initially, this field was passed as |
Geo Object
The information provided in the Geo Object is based on MaxMind database, except latitude and longitude values.
Note
Fields marked with an asterisk (*) are optional.
In the even that a user has opted-out under the GDPR or CCPA, the location data will be anonimised by reducing geo.lat
and geo.lon
3 decimal places.
Geo Object Properties¶ | ||
Value | Type | Description |
---|---|---|
accuracy* | int | Estimated location accuracy in meters. |
lat* | float | Latitude from -90 to 90. South is negative, for example, |
lon* | float | Longitude from -180 to 180. West is negative, for example, |
type* | integer | Source of location data as defined by OpenRTB, for example, |
country* | string | Country using ISO-3166-1 Alpha-2, for example |
region* | string | Region using ISO-3166-2 region codes, for example, |
city* | string | City name as provided by MaxMind, for example, |
metro* | string | Google metro code; similar to but not exactly Nielsen DMAs. |
zip* | string | Zip/postal code, for example, |
utcoffset* | integer | Local time as the number +/- of minutes from UTC, for example, |
User Object
Fields marked with an asterisk (*) are optional.
User Object Properties | ||
---|---|---|
Value | Type | Description |
id* | string | Unique Commerce Grid ID of this user, for example, |
buyeruid* | string | The Buyer user ID as mapped by Commerce Grid for the DSP. The User ID can be a maximum of |
consent* | string | Passes the Transparency & Consent Framework string. The current valid version of this string is v2.0. You can read more about the information encoded within the consent string here: Transparency and Consent String with Global Vendor & CMP List Formats. The Buyer should use the information in the consent string to ascertain which vendors and for which purposes the user gave consent.
For more information, see the following links: |
customdata* | string | Optional feature to pass bidder data that was set in the exchange’s cookie. The string must be in base85 cookie safecharacters and be in any format. Proper JSON encoding must be used to include “escaped” quotation marks. |
eids* | array of objects | Contains the Extended identifiers object, see the Extended Identifiers section for details |
keywords* | string | A comma separated list of keywords about the App, e.g |
kwarray* | array of string | An array of keywords about the App, e.g |
yob* | integer | Year of birth as a 4-digit integer, for example, Deprecated since version 5.3. |
gender* | string | Specifies the user gender. Deprecated since version 5.3. |
data* | array of objects | Additional data. Each data object represents a different data source, for more information, see the Data Object section. |
ext* | object | For more information, see the User Ext Object Properties section. |
Extended Identifiers
Supports the official Open RTB community extension for passing multiple third party user identifiers, see the official Extended Identifiers spec for more details.
This object passes any additional User IDs a Supplier, Consent Management Platform (CMP), Data Management Platform (DMP), or Commerce Grid may have for a user. There are a number of identity solutions that provide IDs for users that are not based on 3rd party data, and many of these solution providers extend their first-party data as offerings that can be used to offset the decline of 3rd party cookies.
Commerce Grid and many of our partners support these offerings and have build systems to collate, map, and make these IDs available to Buyers, who can use them to improve the robustness of targeted advertising. When the appropriate consent is in place (e.g CCPA, GDPR) Commerce Grid passes all and any correctly set ID in this field. The following IDs are the most commonly sent through The MediaGrid, but if you are looking for a particular ID in requests, you should check the source
value to identify it. You can find a more extensive list of possible IDs on the Prebid User ID Module page
The TradeDesk ID known as the Unified ID 2.0 and passed as
"uidapi.com"
, is based on a Single-Sign On (SSO) email validation service for publisher site access.The TradeDesk ID known as the Unified ID 1.0 and passed as
"adserver.org"
.You can read more about that here https://www.thetradedesk.com/us/about-us/industry-initiatives/unified-id-solution-2-0/unified-id-solution-1-0The LiveIntent ID, passed as
"liveintent.com"
, is built and authenticated daily through consent-based email, you can read more about here https://www.liveintent.com/identity-solutions/The ID5 ID, passed as
"id5-sync.com"
, enables publishers to create and distribute a shared first-party identifier, you can read more about that here https://www.id5.io/The prebid managed SharedID, passed using
"sharedid.org"
, see https://prebid.org/product-suite/sharedid/ for more detailsFederated Learning of Cohorts FloC IDs may be passed in this field when coming from an Supplier using prebid, with the source given as
"chrome.com"
.The Intimate Merger ID is commonly used in the Japanese marketplace, with the source passed as
intimatemerger.com
.The LiveRamp ID, passed as
"liveramp.com"
, associates anonymous device IDs and other online customer IDs from publishers, platforms, or data providers with an IdentityLink (IDL) single person-based identifier. You can read more about it here https://liveramp.com/our-platform/identity-resolution/
Note
The LiveRamp ID is encrypted and only enabled for certain Buyers that have the business contracts in place to decrypt and use this ID, contact support@bidswitch.com if you are a LiveRamp partner.
The LiveIntent ID is only available to certain Buyers to whom LiveIntent wish to grant usage rights.
eids Object Properties | ||
---|---|---|
Value | Type | Description |
source | string | (Required) Source or technology provider responsible for the set of included IDs. Expressed as a top-level domain. The MediaGrid includes the following IDs when available.
|
uids | array of objects | (Required) Passes the User IDs matched from the given provider. |
uids Object
uids Object Properties | ||
---|---|---|
Value | Type | Description |
id | string | (Required) The User ID with this provider. |
atype | int | (Optional) The type of user agent the match is from.
|
Site Object
Fields marked with an asterisk (*) are optional.
Site Object Properties | ||
---|---|---|
Value | Type | Description |
id | string | (Recommended) An exchange specific identifier comprised of the Supplier’s exchange name, and the target site ID appended following an underscore. For example, if a Supplier such as Rubicon sends a bid request for site ID |
name* | string | Site name (may be masked by publisher request), for example, |
domain* | string | Domain of the site, used for advertiser side blocking. |
content* | object | Passes the content object, see the Content Object section for details |
cattax* | int | The taxonomy in use for cat. If no cattax field is supplied, the IAB Content Category Taxonomy 1.0 (
|
sectioncat* | array of strings | Array of IAB content categories that describe the current section of the site. The taxonomy to be used is defined by the |
pagecat* | array of strings | Array of IAB content categories that describe the current page or view of the page. The taxonomy to be used is defined by the |
cat* | array of strings | Array of IAB content categories for the site. |
page* | string | URL of the page where the impression will be shown. |
ref* | string | Referrer URL that caused navigation to the current page, for example, |
search* | string | Search string that caused navigation to the current page. |
privacypolicy* | integer | Indicates if the site has a privacy policy.
|
mobile* | integer | Mobile-optimized signal.
|
publisher* | object | Publisher object, for more information, see the Publisher Object section. |
keywords* | string | A comma separated list of keywords about the App, e.g |
kwarray* | array of string | An array of keywords about the App, e.g |
ext* | object | Site extension object |
Site Ext
Site Extension Object Properties | ||
---|---|---|
Value | Type | Description |
amp | bool | Indicates if the site is AMP (Accelerated Mobile Pages) optimised, where |
inventorypartnerdomain | string | A pointer to the domain of the partner (of the site/app owner) with ownership of some portion of ad inventory on the site/app. The partner’s |
App Object
Fields marked with an asterisk (*) are optional.
App Object Properties | ||
---|---|---|
Value | Type | Description |
id | string | (Recommended) The application ID prefixed with the exchange name followed by an underscore. For example, if Rubicon sends a bid request for App ID “123”, the field becomes |
name* | string | Application name, for example, |
bundle* | string | Application bundle or package name, for example, |
domain* | string | The domain of the app, for example, |
cattax* | int | The taxonomy in use for cat. If no cattax field is supplied, the IAB Content Category Taxonomy 1.0 (
|
sectioncat* | array of strings | Array of IAB content categories that describe the current section of the app. The taxonomy to be used is defined by the |
pagecat* | array of strings | Array of IAB content categories that describe the current page or view of the app. The taxonomy to be used is defined by the |
cat* | array of strings | Array of IAB content categories for the publisher site, for example, |
content* | object | Passes the content object, see the Content Object section for details |
paid* | integer | Specifies if the App is a free or paid version.
|
storeurl* | string | App store’s URL for the mobile application, for example |
storeid* | string | The ID of the app in an app store. |
ver* | string | Application version, for example |
publisher | object | Publisher object, for more information, see the Publisher Object section. |
privacypolicy* | integer | Indicates if the app has a privacy policy.
|
keywords* | string | A comma separated list of keywords about the App, e.g |
kwarray* | array of string | An array of keywords about the App, e.g |
Ext Object
App Extension Object Properties | ||
Value | Type | Description |
---|---|---|
inventorypartnerdomain | string | A pointer to the domain of the partner (of the site/app owner) with ownership of some portion of ad inventory on the site/app. The partner’s |
Content Object
Fields marked with asterisk (*) are optional.
Content Object Properties | ||
---|---|---|
Value | Type | Description |
id* | string | ID uniquely identifying the content. |
episode* | integer | Episode number. |
title* | string | Content title e.g., |
series* | string | The content series, e.g. |
season* | string | Content season e.g., |
artist* | string | Artist credited with the content |
genre* | string | Genre that best describes the content, e.g., rock, pop, etc. You may need to discuss with your trading partners about aligning around a particular taxonomy. There’s a few taxonomies for defining the genre, the IAB Content taxonomy being the most standard one at the moment.
|
album* | string | Album to which the content belongs; typically for audio. |
isrc* | string | International Standard Recording Code conforming to ISO-3901. |
producer* | object | Details about the content producer, see Producer Object |
url* | string | A single URL of the content, for buy-side contextualization or review. |
cattax* | int | The taxonomy in use for cat. If no cattax field is supplied, the IAB Content Category Taxonomy 1.0 (
|
cat* | array of strings | Array of content categories using IDs from the IAB taxonomy. |
prodq* | integer | Production quality: |
context* | integer | Type of content
|
contentrating* | string | Content rating (e.g., MPAA). |
userrating* | string | User rating of the content (e.g., number of stars, likes, etc.). |
qagmediarating* | integer | Media rating per IQG guidelines. Refers to the following list:
|
keywords* | string | Comma separated list of keywords describing the content. |
kwarray* | array of string | An array of keywords about the content, e.g |
livestream* | integer | Indication of live content, where |
sourcerelationship* | integer | Source relationship, where |
len* | integer | Length of content in seconds; typically for video or audio. |
language* | string | Content language using ISO-639-1-alpha-2. |
langb* | string | Content language using IETF BCP 47. Only one of |
embeddable* | integer | Indicator of whether or not the content is embedded off-site from the the site or app described in those objects (e.g., an embedded video player), where 0 = no, 1 = yes. |
data* | array of objects | Additional user data. Each Data object represents a different data source, see the Data Object |
network* | object | Details about the network the content is on, see the Network Object section for more details. |
channel* | object | Details about the channel the content is on, , see the Channel Object section for more details. |
Content Object Continued
Network Object
Used within the content object to describe the network on which the ads will be played.
Content Channel Object Properties | ||
---|---|---|
Value | Type | Description |
id* | string | A unique identifier assigned by the publisher. This may not be a unique identifier across all supply sources, e.g. |
name* | string | The name of the channel, e.g. |
domain* | string | The primary domain of the channel, e.g. |
Channel Object
Used within the content object to describe the channel on which the ads will be played.
Content Channel Object Properties | ||
---|---|---|
Value | Type | Description |
id* | string | A unique identifier assigned by the publisher. This may not be a unique identifier across all supply sources, e.g. |
name* | string | The name of the channel, e.g. |
domain* | string | The primary domain of the channel, e.g. |
Producer Object
Used within the content object to describe the network on which the ads will be played.
Content Producer Object Properties | ||
---|---|---|
Value | Type | Description |
id* | string | Content producer or originator ID. Useful if content is syndicated and may be posted on a site using embed tags |
name* | string | The name of the content producer, e.g. |
domain* | string | The primary domain of the channel, e.g. |
cattax* | int | The taxonomy in use for cat. If no cattax field is supplied, the IAB Content Category Taxonomy 1.0 (
|
cat* | array of strings | Array of IAB content categories for the publisher site, for example, |
DOOH Object
Fields marked with an asterisk (*) are optional.
DOOH Object Properties | ||
---|---|---|
Value | Type | Description |
publisher | object | Publisher object, for more information see the Publisher Object section. |
audience* | float | Expected number of people reached by the ad opportunity, e.g. |
impmultiply* | float | The impmultiply field is designed to be used when calculating the billable media cost by the Buyer and on the invoice. It should not be used to multiply the bid price in the bid response. For example, if the Buyer wins 3000 bids at a clearing price of $1.50 CPM and The default value is |
Note
Buyers should not use either the audience
or impmultiply
values when calculating their bid response. They should only return a bid based on CPM values.
Buyers should also ensure that their Suppliers are basing any billing calculation on the same multiple. Instead of the impmultiply
value, some Suppliers base billing on the VAST Total Impressions Macro
Metric Object
Fields marked with an asterisk (*) are optional.
Metric Object Properties | ||
---|---|---|
Value | Type | Description |
type | string | The type of metric being presented. Currently The MediaGrid only supports using |
value | float | A decimal number representing the value of the metric being supplied
|
vendor* | string | Source of the value declared by the Supplier |
Private Marketplace Object
Fields marked with an asterisk (*) are optional.
Private Marketplace Object Properties | ||
---|---|---|
Value | Type | Description |
private_auction* | integer | A value of 1 indicates that only bids submitted inside |
deals | array of objects | Array of Deal objects, for more information, see the Deal Object section. |
Source Object
Fields marked with an asterisk (*) are optional.
Source Object Properties | ||
---|---|---|
Value | Type | Description |
fd* | integer | Indicates the entity responsible for the final impression sale decision, using the following values:
|
tid | string | (Recommended) Transaction ID that must be common across all participants in this bid request (e.g., potentially multiple exchanges). |
pchain* | string | Payment ID chain string containing embedded syntax described in the TAG Payment ID Protocol v1.0. |
schain | object | Contains the The SupplyChain object is composed primarily of a set of nodes where each node represents a specific entity that participates in the selling of a bid request. The entire chain of nodes from beginning to end would represent all sellers who were paid for an individual bid request. |
ext* | object | Contains additional fields, see Source Extension |
Source Extension
Source Extension Object Properties | ||
---|---|---|
Value | Type | Description |
omidpn | string | Identifier of the OM SDK integration, the IAB Open Measurement specification on Github |
omidpv | string | Version of the OM SDK integration. |
SupplyChain Object
schain | ||
---|---|---|
Value | Type | Description |
complete | int | (Required) Flag indicating whether the chain contains all nodes leading back to the source of the inventory, where |
nodes | array of objects | (Required) Array of objects in the order of placing in the chain. The original source of the request is first and the final seller of the request last, see Supply Chain Nodes |
ver | str | (Required) Version of the supply chain specification in use. Currently |
Supply Chain Nodes
supply chain node | ||
---|---|---|
Value | Type | Description |
asi | string | (Required) The canonical domain name of the SSP, Exchange, Header Wrapper, etc system that bidders connect to. This may be the operational domain of the system, if that is different than the parent corporate domain, to facilitate WHOIS and reverse IP lookups to establish clear ownership of the delegate system. This should be the same value as used to identify sellers in an ads.txt file if one exists. |
sid | string | (Required) The identifier associated with the seller or reseller account within the advertising system. This must contain the same value used in transactions (i.e. OpenRTB bid requests) in the field specified by the SSP/exchange. Typically, in OpenRTB, this is |
hp | int | (Required) Indicates whether this node will be involved in the flow of payment for the inventory. When set to When set to For version 1.0 of SupplyChain, this property should always be |
rid* | string | The OpenRTB RequestId of the request as issued by this seller. |
name* | string | The business name of the entity represented by this node. This value is optional and should NOT be included if it exists in the advertising system’s sellers.txt file. |
domain* | string | The business domain name of the entity represented by this node. This value is optional and should NOT be included if it exists in the advertising system’s sellers.json file. |
Deal Object
Fields marked with an asterisk (*) are optional.
Deal Object Properties | ||
---|---|---|
Value | Type | Description |
id | string | Deal ID, for example, |
wseat* | array of strings | Array of Buyer seats allowed to bid on this Direct Deal, for example,
|
bidfloor* | float | Deal price in CPM. If it is a fixed price deal ( |
bidfloorcur* | string | Bid floor currency specified using ISO-4217 alpha codes, for example, |
at* | integer | Auction type.
|
wadomain* | array of strings | Array of advertiser domains (e.g., advertiser.com) allowed to bid on this deal. Omission implies no advertiser restrictions. |
ext* | object | See the Deal Extension Object section. |
Deal Extension Object
Deal Ext Object Properties | ||
---|---|---|
Value | Type | Description |
buyer_wseat* | array of strings | Specifies the Advertisers/Agencies that should have access to this deal in the Buyer’s system. You should use their seat ID with the Buyer, e.g. Note: To obtain the correct Seat ID for an agency at a particular Buyer you will need to contact the agency. You may also find more information about this in the |
deal_type* | int | Indicates additional details about the type of deal, the default is
|
Publisher Object
Fields marked with an asterisk (*) are optional and may not be sent in each request.
Publisher Object Properties | ||
---|---|---|
Value | Type | Description |
id | string | An exchange specific identifier for the publisher, e.g. |
name* | string | Publisher name, for example |
cat* | array of string | Array of IAB content categories for the publisher. |
cattax* | int | The taxonomy in use for cat. If no cattax field is supplied, the IAB Content Category Taxonomy 1.0 (
|
domain* | string | The highest level domain of the publisher, e.g. |
Ext Object
Fields marked with an asterisk (*) are optional.
Ext Object Properties | ||
---|---|---|
Value | Type | Description |
google_query_id* | string | This represents a unique ID for the overall query. In the event that there are multiple call-outs for a query, all call-out requests for that query will contain the same It is highly recommended to include this ID if you are selling Exchange Bidding Dynamic Allocation (EDBA) sourced inventory through The MediaGrid to Google DV360. |
Regs Object
Fields marked with asterisk (*) are optional.
Regs Object Properties | ||
---|---|---|
Value | Type | Description |
coppa* | integer | Flag indicating whether or not this request falls under the COPPA regulations established by the USA FTC.
|
gdpr* | integer | Indicates whether the request falls under GDPR regulations:
If consent is given, you should check if the |
us_privacy* | string | Passes the user privacy status for requests which fall under CCPA regulations. The string uses 4 characters, e.g.
|
Data Object
Fields marked with asterisk (*) are optional.
Data Object Properties | ||
---|---|---|
Value | Type | Description |
id* | string | Exchange-specific ID for the data provider, for example |
name | string | Exchange-specific name for the data provider, for example |
segment | array of objects | Array of Segment objects that contain the actual data values, see Segment Object. |
Segment Object
Segment Object Properties | ||
---|---|---|
Value | Type | Description |
id* | string | ID of the data segment specific to the data provider, for example, |
name* | string | Name of the data segment specific to the data provider, for example, |
value* | string | String representation of the data segment value, for example, |