Skip to main content
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, "b5ba5ed2-547e-4e86-8a84-34a440dad6db"

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. "user":{}

tmax

integer

Maximum time in milliseconds the exchange allows for bids to be received to avoid timeout, including internet latency, for example, 120.

cur

array of strings

Array of allowed currencies for bids on this bid request using ISO-4217 alpha codes, for example, ["USD", "EUR"]

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 Device and/or Content objects if available. Only one of wlang or wlangb should be present.

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 Device and/or Content objects if available. Only one of wlang or wlangb should be present.

at*

integer

Auction type, the default value is 2.

  • 1: the first price auction.

  • 2: the second price auction.

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: site, app, ext.tv, or ext.dooh.

app*

object

The App Object describes the mobile application. One of these objects should be present in the request: site, app, ext.tv, or ext.dooh.

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, ["IAB10-1", "IAB25", "TMG3"]

cattax*

int

The taxonomy in use for bcat. If no cattax field is supplied, the IAB Content Category Taxonomy 1.0 (1) is assumed. For the most up-to-date list, refer to the AdCOM 1.0 list List.

  • 1 IAB Tech Lab Content Category Taxonomy 1.0

  • 2 IAB Tech Lab Content Category Taxonomy 2.0

  • 3 IAB Tech Lab Ad Product Taxonomy 1.0

  • 4 IAB Tech Lab Audience Taxonomy 1.1

  • 5 IAB Tech Lab Content Taxonomy 2.1

  • 6 IAB Tech Lab Content Taxonomy 2.2

  • 500+ Vendor-specific codes

badv*

array of strings

Array of strings of blocked top-level domains of advertisers, for example, ["mysite.com", "mysite2.com"]

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. ["com.app.example", "012987652"]

wseat*

array of strings

An array of Buyer seats allowed bidding on this auction; for example ["58", "61", "99"]. If this field is present, the specified seat IDs may be supplied using Commerce Grid or Supplier taxonomy.

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 wseat field; for more details, see the Seat Bid Object section.

bseat*

array of strings

An array of Buyer seats were disallowed to bid on this auction, for example ["58", "61", "99"]. If this field is present, it can be assumed that the Seat IDs refer to agency buyers, because if the Commerce Grid Buyer ID is set in the original Supplier request, it is not sent to the DSP.

The wseat the field takes precedence, so if the same value is in both fields the request is sent to the Buyer.

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.

  • 0 = no or unknown

  • 1 = yes, the impressions offered represent all that are available.

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 "1"

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, 0.01080

bidfloorcur*

string

Bid floor currency specified using ISO-4217 alpha codes, for example, "USD".

instl*

integer

Specifies if the ad is an interstitial.

  • 0 = not interstitial, the default value.

  • 1 = the ad is interstitial or full screen

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 0 = embedded, 1 = native. Note that the Safari View Controller in iOS 9.x devices is considered a native browser for purposes of this attribute.

secure*

integer

Specifies if the page is SSL compliant:

  • 0: for insecure pages, the default value.

  • 1: for secure pages. Creative assets for secure pages should be SSL-compliant.

iframebuster*

array of strings

Array of names of supported iframe busters, for example, ["dc", "rb"], for more information, see the Supported Rich Media Frameworks section.

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, "SOMA"

displaymanagerver*

string

Version of the ad mediation partner, SDK technology, or native player responsible for rendering the ad (typically video or mobile), for example, "1.1"

rwdd*

integer

Indicates whether the user receives a reward for viewing the ad, where 0 = no, 1 = yes. Typically video ad implementations allow users to read an additional news article for free, receive an extra life in a game, or get a sponsored ad-free music session. The reward is typically distributed after the video ad is completed.

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:

  • 0 = status unknown

  • 1 = all client-side (i.e., not server-side)

  • 2 = assets stitched server-side but tracking pixels fired client-side

  • 3 = all server-side.

exp*

integer

Impression expiry timeout, in seconds, for example, "300". An impression will be considered expired if it is registered later than imp.exp seconds after the auction.

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. "abc-123"

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 1

notification_type*

int

Indicates the Supplier’s supported notification type(s):

  • 1 The SSP only sends browser (u2s) notifications

  • 2 The SSP can only send Server-to-Server (s2s) notification

  • 3 The SSP can response with either u2s or s2s depending on the Buyer response.

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 "2.0" or higher. Dependent on both the OS version and the SDK version., e.g. "2.0" https://developer.apple.com/documentation/storekit/skadnetwork

versions*

array of strings

An array of strings containing the supported skadnetwork versions. Always "2.0" or higher. Dependent on both the OS version and the SDK version.

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 info.plist that are relevant to the DSP, e.g. ["cDkw7geQsH.skadnetwork", "qyJfv329m4.skadnetwork"] https://developer.apple.com/documentation/bundleresources/information_property_list

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 info.plist that are relevant to the DSP, e.g. 42.

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. [12, 14]

addl*

array of strings

A list of raw lowercase SKAdNetworkItem entries in the publisher app’s info.plist that are relevant to the DSP, e.g. ["cDkw7geQsH.skadnetwork", "qyJfv329m4.skadnetwork"] https://developer.apple.com/documentation/bundleresources/information_property_list

Note: The intention of this field is to replace the skadn.skadnetids field, it is also recommended that this list not exceed 10.

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, [70, 28, 30, 32, 22]

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, ["HTML", "FLASH"]

allowed_creative_category_id*

array of integers

List of allowed creative categories as defined by YieldOne, for example, [70, 71, 72]

cat*

array of integers

List of site categories as defined by YieldOne, for example, [5, 16]

inventory_class*

integer

Inventory class according to the YieldOne classification.

Deprecated since version 2.4: Use imp.ext.inventory_class instead.

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 seatbid.bid.h and seatbid.bid.w fields are required in the bid response.

w

integer

Width of the impression in pixels, for example, 300

h

integer

Height of the impression in pixels, for example 250

battr*

array of integers

Blocked creative attributes as defined in the OpenRTB protocol, for example, [1, 23]

btype*

array of integers

Blocked banner ad types as defined in the OpenRTB protocol, for example, [4, 21]

pos*

integer

Ad Position as defined in the OpenRTB protocol, for example, 1

topframe*

integer

Indicates if the banner is in the top frame as opposed to an iframe.

  • 0 = no

  • 1 = yes.

mimes*

array of strings

Specifies the content MIME types supported, common MIME types include "text/html", "application/x-shockwave-flash", and "image/gif". For example:

[ "video/mp4", "image/jpg"]

expdir*

array of integers

Possible expansion directions for an expandable ad, for example, [2,5]. This can take the following values:

  • 1: Left

  • 2: Right

  • 3: Up

  • 4: Down

  • 5: Full screen

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 [3, 5]. If an API is not explicitly listed, it is assumed not to be supported.

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 1 and increase with each object; should be unique within an impression.

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 0 = concurrent, 1 = end-card.

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 500

w*

integer

Width of the impression in pixels, for example 340

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, 2

maxduration

integer

Maximum video ad duration in seconds, for example, 15

linearity*

integer

Indicates if the impression must be linear or nonlinear, for example, 1. If none is specified, it is assumed all are allowed

  • 1: Linear/In-stream

  • 2: Non-Linear/Overlay

placement*

integer

Placement type for the impression, for example 2. Note: Though not required, this is an important field for some Buyers, not explicitly setting it will result in lower demand. This field can take the following values:

  • 1: In-stream. Played before, during or after the streaming video content that the consumer has requested (e.g., Pre-roll, Mid-roll, Post-roll).

  • 2: In-banner. Exists within a web banner that leverages the banner space to deliver a video experience as opposed to another static or rich media format. The format relies on the existence of display ad inventory on the page for its delivery.

  • 3: In-article. Loads and plays dynamically between paragraphs of editorial content; existing as a standalone branded message.

  • 4: In-feed. Found in content, social, or product feeds.

  • 5: Interstitial/Slider/Floating. Covers the entire or a portion of screen area, but is always on screen while displayed (i.e. cannot be scrolled out of view). Note that a full-screen interstitial (e.g., in mobile) can be distinguished from a floating/slider unit by the imp.instl field.

playbackend*

integer

The event that causes playback to end, for example 2. This field can take the following values:

  • 1: On Video Completion or when Terminated by User.

  • 2: On Leaving Viewport or when Terminated by User.

  • 3: On Leaving Viewport Continues as a Floating/Slider Unit until Video Completion or when Terminated by User.

protocols

array of integers

Accepted video bid response protocols as defined in OpenRTB, for example [6,8]. As BidSwitch only serves video using VAST wrappers, the valid response integers are 5, 6, or 8 for the request to be eligible for bidding.

pos*

integer

Ad Position as defined in OpenRTB, for example 1

w*

integer

Width of the player in pixels, for example, 600

h*

integer

Height of the player in pixels, for example 400

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.

  • > 0: Mid-Roll (value indicates start delay in second)

  • 0: Pre-roll

  • -1: Generic mid-roll

  • -2: Generic post-roll

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 minduration/maxduration/rqddurs are constraints relating to the slots that make up the pod.

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 podid, this indicates that those impression opportunities belong to the same video ad pod.

podseq*

integer

The sequence (position) of the video ad pod within a content stream. The following values are supported:

  • -1: Last pod in the content stream

  • 0: Any pod in the content stream

  • 1: First pod in the content stream

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 maxduration.

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:

  • -1: Last ad in the pod

  • 0: Any ad in the pod

  • 1: First ad in the pod

  • 2: First or last ad in the pod

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, [6]

minbitrate*

integer

Minimum bit rate in Kbps, for example 680

maxbitrate*

integer

Maximum bit rate in Kbps, for example 990

api*

array of integers

List of supported API frameworks for this impression as defined in OpenRTB, for example, [1,2]. If an API is not explicitly listed, it is assumed not to be supported.

maxextended*

integer

Maximum extended video ad duration if extension is allowed.

  • Blank or 0, extension is not allowed.

  • -1, extension is allowed, and there is no time limit imposed.

  • Greater than 0, then the value represents the number of seconds of extended play supported beyond the maxduration value.

boxingallowed*

integer

Indicates if letter-boxing of 4:3 content into a 16:9 window is allowed:

  • 0 = no

  • 1 = yes.

playbackmethod*

array of integers

Allowed playback methods as defined in the OpenRTB, for example [1, 2]. If none are specified, it is assumed all are 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, [1, 2]

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, 2.

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 [1, 2] Possible values:

  • 1: Static Resource

  • 2: HTML Resource

  • 3: iframe Resource

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 ["audio/mp4", "audio/mpeg"]

minduration

integer

(Recommended) Minimum audio ad duration in seconds. This field is mutually exclusive with rqddurs; only one of minduration and rqddurs may be in a bid request. The default value is 0.

maxduration

integer

(Recommended) Maximum audio ad duration in seconds. This field is mutually exclusive with rqddurs; only one of maxduration and rqddurs may be in a bid request. The default value is 0.

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 [9,10]. For the most up to date list, see the IAB Adcom spec

  • 1 VAST 1.0

  • 2 VAST 2.0

  • 3 VAST 3.0

  • 4 VAST 1.0 Wrapper

  • 5 VAST 2.0 Wrapper

  • 6 VAST 3.0 Wrapper

  • 7 VAST 4.0

  • 8 VAST 4.0 Wrapper

  • 9 DAAST 1.0

  • 10 DAAST 1.0 Wrapper

  • 11 VAST 4.1

  • 12 VAST 4.1 Wrapper

  • 13 VAST 4.2

  • 14 VAST 4.2 Wrapper

startdelay*

integer

(Recommended) Indicates the start delay in seconds e.g. 3, or using generic values below:

  • 0: Pre-roll

  • -1: Generic mid-roll

  • -2: Generic post-roll

rqddurs*

array of integer

Precise acceptable durations for audio creatives in seconds, e.g. [15,15,15]. This field specifically targets the live audio/radio use case where non-exact ad durations would result in undesirable dead air. This field is mutually exclusive with minduration and maxduration; if rqddurs is specified, minduration and maxduration must not be specified and vice versa.

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 podid, this indicates that those impression opportunities belong to the same audio ad pod.

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

  • -1 Last pod in the content stream

  • 0 Any pod in the content stream

  • 1 First pod in the content stream

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

  • -1 Last ad in the pod

  • 0 Any ad in the pod

  • 1 First ad in the pod

  • 2 First or

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 mincpmpersec field allows sellers to set a floor rate for each second an ad runs. So, for example, a $2 value would signal that the floor price is $30 for a 15-second ad and $60 for a 30-second ad. The duration is specified using poddur field.

battr*

array of integers

Blocked creative attributes as defined in OpenRTB, for example, [6]

minbitrate*

integer

Minimum bit rate in Kbps, for example 32

maxbitrate*

integer

Maximum bit rate in Kbps, for example 320

api*

array of integers

List of supported API frameworks for this impression as defined in the OpenRTB guide, for example, [1,2]. If an API is not explicitly listed, it is assumed not to be supported.

maxextended*

integer

Maximum extended audio ad duration if extension is allowed.

  • Blank or 0, extension is not allowed.

  • -1, extension is allowed, and there is no time limit imposed.

  • Greater than 0, then the value represents the number of seconds of extended play supported beyond the maxduration value.

delivery*

array of integers

Supported delivery methods (e.g., streaming, progressive) as defined in OpenRTB. If none specified, assume all are supported, for example, [1, 2]

maxseq*

integer

The maximum number of ads that can be played in an ad pod, for example, 1

feed*

integer

Type of audio feed, e.g. 1.

  • 1 Music Service

  • 2 FM/AM Broadcast

  • 3 Podcast

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, 2

stitched*

integer

Indicates if the ad is stitched with audio content or delivered independently, for example, 1

nvol*

integer

Volume normalization mode as defined in OpenRTB, for example, 1

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 [1, 2] Possible values:

  • 1: Static Resource

  • 2: HTML Resource

  • 3: iframe Resource

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 [1, 3]

api*

array of integers

List of supported API frameworks for this impression as defined in OpenRTB, for example [2,3,5]. If an API is not explicitly listed, it is assumed not to be supported.

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 1 if the Supplier requires the Buyer to respond with an Ad Choices URL. This is a legal requirement for Japanese inventory. See Native Ext Object section for response details.

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, "1"

layout*

integer

The Layout ID of the native ad unit as described in OpenRTB Native specification, for example, 3

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, 1

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 1 when the native ad supports buyer-specific privacy notices. Set to 0 (or leave absent) when the native ad does not support custom privacy links or if support is unknown.

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 2

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, 30

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 and h fields, see the Native Assets Image Object.

Native Asset Image Object

Value

Type

Description

type*

integer

Image asset type, for example 3. Takes the following values:

  • 1 Icon

  • 2 Logo (Logo image for the brand/app)

  • 3 Main (Large image preview for the ad)

w*

integer

Width of the image in pixels, for example, 300

wmin*

integer

The minimum requested width of the image in pixels, for example, 100

h*

integer

Height of the image in pixels, for example, 250

hmin*

integer

The minimum requested height of the image in pixels, for example, 100

mimes*

array of strings

Whitelist of content MIME types supported, for example, ["image/gif"] If blank, assume all types are allowed.

Native Asset Video Object

Native Asset Video Object

Value

Type

Description

mimes

array of strings

Content MIME types supported, for example, ["video/mpeg", "video/mp4"]

minduration

integer

Minimum video ad duration in seconds, for example, 2

maxduration

integer

Maximum video ad duration in seconds, for example 15

protocols

array of integers

Accepted video bid response protocols as defined in OpenRTB, for example, [2,5]

ext*

object

Native Asset Video Object Extension

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 [1, 2]. If none are specified, it is assumed all are allowed.

Native Asset Data Object

Native Asset Data Object

Value

Type

Description

type

integer

Data asset type as described in OpenRTB Native specification, for example, 1

len*

integer

Maximum length of the text in the element’s response, for example, 25

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.

  • 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

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, 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 maker, 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

(Recommended) 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

(Recommended) 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 extension object

didsha1*

string

Hardware device ID (e.g., IMEI); hashed via SHA1, for example, CCF6DC12B98AEB2346AFE1BEE7860DF01FDE158B

Deprecated since version 5.3.

didmd5*

string

Hardware device ID (e.g., IMEI); hashed via MD5. 93D05D4D69DEE2BC6645D9F0A0C1938C

Deprecated since version 5.3.

dpidsha1*

string

Platform device ID (e.g., Android ID); hashed via SHA1, for example, CCF6DC12B98AEB2346AFE1BEE7860DF01FDE158B

Deprecated since version 5.3.

dpidmd5*

string

Platform device ID (e.g., Android ID); hashed via MD5, for example, 93D05D4D69DEE2BC6645D9F0A0C1938C

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 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)

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. ["102", "0", "5005", "115"]

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

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)

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. "1F277D46-12BF-482A-9085-B4F811DD6E4D"

Note

Initially, this field was passed as idfv but was officially changed after version 1 of the IAB specification. You should expect to see this is both forms: idfv or idv.

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, 52.35

lon*

float

Longitude from -180 to 180. West is negative, for example, 4.9167

type*

integer

Source of location data as defined by OpenRTB, for example, 1

country*

string

Country using ISO-3166-1 Alpha-2, for example NL

region*

string

Region using ISO-3166-2 region codes, for example, NY

city*

string

City name as provided by MaxMind, for example, Alkmaar

metro*

string

Google metro code; similar to but not exactly Nielsen DMAs.

zip*

string

Zip/postal code, for example, "90210"

utcoffset*

integer

Local time as the number +/- of minutes from UTC, for example, -240

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, "252eb154-b3e5-473f-bad8-9b6d7f8646e5". For in-app traffic the lowercase IDFA, or Android ID is used. For example, "38f72eaf-5d6f-4143-824f-deaf753d7239". The User ID can be a maximum of 50 characters.

buyeruid*

string

The Buyer user ID as mapped by Commerce Grid for the DSP. The User ID can be a maximum of 50 characters.

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.

  • If the user has not given consent, then do not respond with an ad that utilises user information and neither access nor store information on the user’s device e.g., cookies, IDFA, fingerprints

  • If the user has given consent, then identify all vendors to whom the user has given consent and for which purposes

    • Buyers should also only use and store user data if the user has given consent to the buyer and only for the purposes for which the user has given consent

    • Buyers should only allow third-party direct or redirect links to those who have received consent from the user

    • https://vendor-list.consensu.org/v2/vendor-list.json

  • If no consent is given, you cannot use personal data and may not have the right to use cookies. Each party is responsible for determining what that means for their business. If user consent explicitly states that it is not given, then do not respond with an ad that utilizes user information and neither access nor store information on the user’s device e.g. cookies, IDFA, fingerprints

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 "news, weather, sports". Only one of keywords or kwarray should be passed.

kwarray*

array of string

An array of keywords about the App, e.g ["news", "weather", "sports"]. Only one of keywords or kwarray should be passed.

yob*

integer

Year of birth as a 4-digit integer, for example, 1977

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

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.

  • The Trade Desk backed Unified ID passed using "adserver.org" for v1.0 and as "uidapi.com" for v2.0.

  • id5 passed using "id5-sync.com".

  • The LiveIntent ID passed using "liveintent.com".

  • IDL passed using "liveramp.com".

  • SharedID passed using "sharedid.org".

  • FloC IDs may be passed using "chrome.com" if coming from prebid, but see the FloC Object also.

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.

  • 1 An ID which is tied to a specific web browser or device (cookie-based, probabilistic, or other).

  • 2 In-app impressions, which will typically contain a type of device ID (or rather, the privacy-compliant versions of device IDs).

  • 3 A person-based ID, i.e., that is the same across devices.

  • 500+ Vendor-specific codes.

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 "123", the field becomes "rubicon_123"

name*

string

Site name (may be masked by publisher request), for example, "Test Site"

domain*

string

Domain of the site, used for advertiser side blocking. "testsite.com"

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 (1) is assumed. For the most up to date list, refer to the AdCOM 1.0 list List.

  • 1 IAB Tech Lab Content Category Taxonomy 1.0

  • 2 IAB Tech Lab Content Category Taxonomy 2.0

  • 3 IAB Tech Lab Ad Product Taxonomy 1.0

  • 4 IAB Tech Lab Audience Taxonomy 1.1

  • 5 IAB Tech Lab Content Taxonomy 2.1

  • 6 IAB Tech Lab Content Taxonomy 2.2

  • 500+ Vendor-specific codes

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 cattax field

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 cattax field

cat*

array of strings

Array of IAB content categories for the site. ["IAB1", "IAB2-3"]

page*

string

URL of the page where the impression will be shown. "http://testsite.com/main.asp"

ref*

string

Referrer URL that caused navigation to the current page, for example, "http://testsite.com/main.asp"

search*

string

Search string that caused navigation to the current page.

privacypolicy*

integer

Indicates if the site has a privacy policy.

  • 0 = No

  • 1 = Yes.

mobile*

integer

Mobile-optimized signal.

  • 0 = No

  • 1 = Yes.

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 "news, weather, sports". Only one of keywords or kwarray should be passed.

kwarray*

array of string

An array of keywords about the App, e.g ["news", "weather", "sports"]. Only one of keywords or kwarray should be passed.

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 1 = Yes and 0 = No

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 ads.txt or app-ads.txt file will be hosted here. This directive was added in the (app-)ads.txt v1.0.3 specification update.

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 "rubicon_123"

name*

string

Application name, for example, "Test App"

bundle*

string

Application bundle or package name, for example, "com.example.mygame"

domain*

string

The domain of the app, for example, "mygame.example.com"

cattax*

int

The taxonomy in use for cat. If no cattax field is supplied, the IAB Content Category Taxonomy 1.0 (1) is assumed. For the most up to date list, refer to the AdCOM 1.0 list List.

  • 1 IAB Tech Lab Content Category Taxonomy 1.0

  • 2 IAB Tech Lab Content Category Taxonomy 2.0

  • 3 IAB Tech Lab Ad Product Taxonomy 1.0

  • 4 IAB Tech Lab Audience Taxonomy 1.1

  • 5 IAB Tech Lab Content Taxonomy 2.1

  • 6 IAB Tech Lab Content Taxonomy 2.2

  • 500+ Vendor-specific codes

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 cattax field

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 cattax field

cat*

array of strings

Array of IAB content categories for the publisher site, for example, ["IAB1", "IAB2- 3"]

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.

  • 0 = The app is free,

  • 1 = The app is a paid version.

storeurl*

string

App store’s URL for the mobile application, for example "http://media-apps.cc/android"

storeid*

string

The ID of the app in an app store.

ver*

string

Application version, for example "1.1"

publisher

object

Publisher object, for more information, see the Publisher Object section.

privacypolicy*

integer

Indicates if the app has a privacy policy.

  • 0 = No

  • 1 = Yes

keywords*

string

A comma separated list of keywords about the App, e.g "news, weather, sports". Only one of keywords or kwarray should be passed.

kwarray*

array of string

An array of keywords about the App, e.g ["news", "weather", "sports"]. Only one of keywords or kwarray should be passed.

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 ads.txt or app-ads.txt file will be hosted here. This directive was added in the (app-)ads.txt v1.0.3 specification update.

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., "The Shrimp Incident"

series*

string

The content series, e.g. "Curb Your Enthusiasm"

season*

string

Content season e.g., "Season 2"

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 (1) is assumed. For the most up to date list, refer to the AdCOM 1.0 list List.

  • 1 IAB Tech Lab Content Category Taxonomy 1.0

  • 2 IAB Tech Lab Content Category Taxonomy 2.0

  • 3 IAB Tech Lab Ad Product Taxonomy 1.0

  • 4 IAB Tech Lab Audience Taxonomy 1.1

  • 5 IAB Tech Lab Content Taxonomy 2.1

  • 6 IAB Tech Lab Content Taxonomy 2.2

  • 500+ Vendor-specific codes

cat*

array of strings

Array of content categories using IDs from the IAB taxonomy.

prodq*

integer

Production quality: 1 Professionally Produced, 2 Prosumer 3 User Generated (UGC).

context*

integer

Type of content

  • 1 Video (i.e., video file or stream such as Internet TV broadcasts)

  • 2 Game (i.e., an interactive software game)

  • 3 Music (i.e., audio file or stream such as Internet radio broadcasts)

  • 4 Application (i.e., an interactive software application)

  • 5 Text (i.e., primarily textual document such as a web page, eBook, or news article)

  • 6 Other (i.e., none of the other categories applies)

  • 7 Unknown

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:

  • 1 All Audiences

  • 2 Everyone Over Age 12

  • 3 Mature Audiences

  • Note: this may also be passed as mrating

keywords*

string

Comma separated list of keywords describing the content.

kwarray*

array of string

An array of keywords about the content, e.g ["news", "weather", "sports"]. Only one of keywords or kwarray should be passed.

livestream*

integer

Indication of live content, where 0 = not live, 1 = live (e.g., stream, live blog).

sourcerelationship*

integer

Source relationship, where 0 = indirect, 1 = direct.

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 language or langb should be present.

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. "WTV7".

name*

string

The name of the channel, e.g. "Channel 7 Sports"

domain*

string

The primary domain of the channel, e.g. "example.com"

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. "WTV7".

name*

string

The name of the channel, e.g. "Channel 7 Sports"

domain*

string

The primary domain of the channel, e.g. "example.com"

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. "Warner Bros"

domain*

string

The primary domain of the channel, e.g. "example.com"

cattax*

int

The taxonomy in use for cat. If no cattax field is supplied, the IAB Content Category Taxonomy 1.0 (1) is assumed. For the most up to date list, refer to the AdCOM 1.0 list List.

  • 1 IAB Tech Lab Content Category Taxonomy 1.0

  • 2 IAB Tech Lab Content Category Taxonomy 2.0

  • 3 IAB Tech Lab Ad Product Taxonomy 1.0

  • 4 IAB Tech Lab Audience Taxonomy 1.1

  • 5 IAB Tech Lab Content Taxonomy 2.1

  • 6 IAB Tech Lab Content Taxonomy 2.2

  • 500+ Vendor-specific codes

cat*

array of strings

Array of IAB content categories for the publisher site, for example, ["IAB1", "IAB2-3"]

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. 10.5

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 impmultiply=4 each, then the invoiced amount is $18 (1.50 / 1000 4 3000).

The default value is 1

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 viewability as the metric type

value

float

A decimal number representing the value of the metric being supplied

  • viewability probability is in the range 0.0 – 1.0.

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 pmp.deals will take part in the auction. A value of 0 indicates that bids without deal information may also be considered for serving.

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:

  • 0 = The MediaGrid

  • 1 = An upstream source (usually header bidder)

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 supplychain object, as fully described here on the IAB Github Page:

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 0 = no, 1 = yes.

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 "1.0" is the only option.

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 publisher.id. For OpenDirect it is typically the publisher’s organization ID. Should be limited to 64 characters in length.

hp

int

(Required) Indicates whether this node will be involved in the flow of payment for the inventory.

When set to 1, the advertising system in the asi field pays the seller in the sid field, who is responsible for paying the previous node in the chain.

When set to 0, this node is not involved in the flow of payment for the inventory.

For version 1.0 of SupplyChain, this property should always be 1. It is explicitly required to be included as it is expected that future versions of the specification will introduce non-payment handling nodes. Implementers should ensure that they support this field and propagate it onwards when constructing SupplyChain objects in bid requests sent to a downstream advertising system.

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, "AA-1234"

wseat*

array of strings

Array of Buyer seats allowed to bid on this Direct Deal, for example, ["58", "99"]. If present, the allowed seat IDs may be supplied using the The MediaGrid or Supplier taxonomy.

  • The The MediaGrid taxonomy uses the Buyer ID as the single seat ID value.

  • The seat in the Supplier taxonomy may represent the whole Buyer or some entity on the Buyer side (e.g. agency)

  • A bid request may contain multiple seat IDs in the Supplier taxonomy.

  • The bid response should contain the appropriate seat value corresponding to one of values of the wseat field, see the Seat Bid Object section.

bidfloor*

float

Deal price in CPM. If it is a fixed price deal (deal.at = 3) then this is the exact price of the deal, otherwise this is the bid floor of the deal, for example, 1.3

bidfloorcur*

string

Bid floor currency specified using ISO-4217 alpha codes, for example, "USD"

at*

integer

Auction type.

  • 1 for first price auction.

  • 2 for second price auction.

  • 3 for fixed price deal.

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. ["agency-123", "advertiser-456"].

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 buyers field description of the Deals API for Suppliers section.

deal_type*

int

Indicates additional details about the type of deal, the default is 0

  • 0 Unknown deal type

  • 1 Preferred deal

  • 2 Private auction

  • 3 Programmatic guaranteed

  • 4 Auction package

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. "6T2Y9G"

name*

string

Publisher name, for example "AAP"

cat*

array of string

Array of IAB content categories for the publisher. ["IAB1", "IAB2-3"]

cattax*

int

The taxonomy in use for cat. If no cattax field is supplied, the IAB Content Category Taxonomy 1.0 (1) is assumed. For the most up to date list, refer to the AdCOM 1.0 list List.

  • 1 IAB Tech Lab Content Category Taxonomy 1.0

  • 2 IAB Tech Lab Content Category Taxonomy 2.0

  • 3 IAB Tech Lab Ad Product Taxonomy 1.0

  • 4 IAB Tech Lab Audience Taxonomy 1.1

  • 5 IAB Tech Lab Content Taxonomy 2.1

  • 6 IAB Tech Lab Content Taxonomy 2.2

  • 500+ Vendor-specific codes

domain*

string

The highest level domain of the publisher, e.g. example.com

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 google_query_id, see more here: https://developers.google.com/authorized-buyers/rtb/openrtb-guide#bidrequestext

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.

  • 0 = No.

  • 1 = Yes.

gdpr*

integer

Indicates whether the request falls under GDPR regulations:

  • 0 = No

  • 1 = Yes

  • Under OpenRTB conventions for optional attributes, omission indicates Unknown

If consent is given, you should check if the user.ext.consent field is present to ascertain what form of consent was given, see the User Object section

us_privacy*

string

Passes the user privacy status for requests which fall under CCPA regulations. The string uses 4 characters, e.g. "1YN-", passed in the following order.

  1. Version Number The IAB CCPA Specification version that applies to this string, passed as an integer. Currently only 1 is available.

  2. Explicit Notice (N = No, Y = Yes, - = Not Applicable)

    Indicates whether explicit notice has been provided to the user as required by 1798.115 (d) of the CCPA and whether they have had the opportunity to opt-out of the sale of their data pursuant to 1798.120 and 1798.135 of the CCPA.

  3. Opted-Out (N = No, Y = Yes, - = Not Applicable)

    Indicates whether the user has opted-out of the sale of their personal information pursuant to 1798.120 and 1798.135.

  4. LSPA (N = No, Y = Yes, - = Not Applicable)

    Indicates whether the publisher is a signatory to the IAB Limited Service Provider Agreement (LSPA) and that the publisher declares the transaction should be treated as a “Covered Opt Out Transaction” or a “Non Opt Out Transaction” as defined in the agreement.

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 "BSW001"

name

string

Exchange-specific name for the data provider, for example "domain-origin"

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, "Seg123"

name*

string

Name of the data segment specific to the data provider, for example, "status"

value*

string

String representation of the data segment value, for example, "verified"

Bid Request JSON Examples - Display

Bid Request JSON Examples - Video

Bid Request JSON Examples- Audio

Bid Request JSON Examples- In-App

Bid Request JSON Examples- iOS 14+

Bid Request JSON Examples- Native

Bid Request JSON Examples- DooH