Inventory Composition object
As the selling party, you can define inclusion or exclusion criteria to allow or block specific inventory in a deal. The following lists inventory composition:
- Entities – sellers, publishers
- Content – categories, genres
- Device characteristics – browsers, operating systems
- Placement details – sites, apps, placement IDs
- Custom fields – first-party data fields, if available
You must specify the following criteria:
- Base criteria – always applied to your original inventory selection.
- Expansion criteria – applied only during deal expansion in commitment deals.
NOTE: You can specify all your inclusion or exclusion selections in the respective
includedandexcludedfields of the Inventory Selection object.
For inventory terms on specific channels, see Inventory channel objects.
InventoryComposition object
TIP: This section uses multiple layers of nested objects not listed in the following table. To implement with these objects, start by familiarizing yourself with the example in Inventory composition terms and Inventory Selection object.
The following table lists the InventoryComposition object fields.
| Field | Required? | Data Type | Selection Type | Description |
|---|---|---|---|---|
inventoryChannelComposition |
Required | Object | N/A | The inventory composition of the deal: includes creative dimensions, devices, and networks. For details on channel-specific settings, see Inventory channel objects. |
contentComposition |
Optional | Object | N/A | Describes the content categories, ratings, channels and networks. For details, see ContentComposition object. |
deviceComposition |
Optional | Object | N/A | The fields trackable by device such as geos, browser, operating system, that the selling party includes or excludes from the deal. For details, see DeviceComposition object. |
customAttributes |
Optional | Object | N/A | The custom attributes to include or exclude that's used by the publisher, typically derived from the publisher's first-party data. You can send these as key-value pairs in the bidstream. For details, see CustomAttribute object. |
publisherKeywords |
Optional | String | Single Selection | The contextual keywords and phrases related to content that the selling party includes or excludes from the deal. |
publisherCategories |
Optional | String | Single Selection | The IAB category IDs of the site or app, that the selling party includes or excludes from the deal. These category IDs must match the taxonomy chosen in the deal. |
apps |
Optional | String | Single Selection | The applications that the selling party includes or excludes from the deal. Possible values can be Android package names or iOS bundle IDs. |
placementIds |
Optional | String | Single Selection | The ad placement IDs, such as GPIDs, that the selling party includes or excludes from the deal. |
publisherIds |
Optional | String | Single Selection | The KAIDs of the publishers that the selling party includes or excludes from the deal. |
sellingPartyIds |
Optional | String | Single Selection | The KAIDs of the sellers that the selling party includes or excludes from the deal. Must match the ID of the seller in the known agent object from the Provisioning endpoint. |
sites |
Optional | String | Single Selection | The website domains that the selling party includes or excludes from the deal. For example, finance.yahoo.com or google.com. |
systemLanguages |
Optional | String | Single Selection | The content browser languages that the selling party includes or excludes from the deal. For details, see Languages. |
consumerGeos |
Optional | String enum | Single Selection | The device geographical locales that the selling party includes or excludes from the deal. For details, see Geo segments. |
biddingTerms |
Required for commitments | String array | N/A | The core OpenRTB signals that the publisher has agreed to include in the bidstream. For example, Bidrequest.video.content.genre or Bidrequest.video.content.rating. For details, see Bidding terms enumeration values. |
ContentComposition object
TIP: This section uses multiple layers of nested objects not listed in the following table. To implement with these objects, start by familiarizing yourself with the example in Inventory composition terms and Inventory Selection object.
The ContentComposition object lists the composition fields used for categorization. For examples, see Content composition.
| Field | Required? | Data Type | Selection Type | Description |
|---|---|---|---|---|
titles |
Optional | String | Single Selection | The titles of the shows where ads are shown. |
series |
Optional | String | Single Selection | The name of the series where ads are shown. |
genres |
Optional | String | Single Selection | The genres of the TV content where ads are shown. For details, see Genres. |
contentRatings |
Optional | String | Single Selection | The maturity rating for content where ads are shown. For details, see Content ratings. |
contentCategories |
Optional | String | Multi Selection | The categories of the websites where ads are shown. Valid values are IAB category IDs from the OpenRTB specification. For details, see Content categories. See also IAB content taxonomy mapping: Version 1.0 to 2.2. |
contentLanguages |
Optional | String | Single Selection | The languages of the content where ads are shown. For details, see Languages. |
contentKeywords |
Optional | String | Multi Selection | The keywords related to the content where ads are shown. |
DeviceComposition object
TIP: This section uses multiple layers of nested objects not listed in the following table. To implement with these objects, start by familiarizing yourself with the example in Inventory composition terms and Inventory Selection object.
The DeviceComposition object lists the selection fields used for devices as part of OpenRTB. For examples, see Device composition.
| Field | Required? | Data Type | Selection Type | Description |
|---|---|---|---|---|
deviceMakes |
Optional | String | Single Selection | The manufacturers of the devices on which the ads are shown. For details, see Device makes. |
browsers |
Optional | String | Single Selection | The browsers on which the ads are shown. For details, see Browsers. |
operatingSystems |
Optional | String | Single Selection | The operating systems of the devices on which the ads are shown. For details, see Operating systems. |
mobileCarriers |
Optional | String | Single Selection | The mobile carriers used by the consumers viewing the ads. For details, see Mobile carriers. |
CustomAttribute object
IMPORTANT: You must nest this object within a selection object with a
baseorexpansionfield. For examples, see Manage commitment deal performance.
Publishers can pass in their custom fields for first-party data. The following table lists the CustomAttribute object fields.
| Field | Required? | Data Type | Description |
|---|---|---|---|
includedValues |
Optional | String array | A list specifying the custom values to include. |
excludedValues |
Optional | String array | A list specifying the custom values to exclude. |
key |
Optional | String | The key name of a key-value pair. |
section |
Optional | String enum | The type of section sent in the bid request. For details, see Custom attribute section enumeration values. |
Inventory composition enumeration values
The following section contains all inventory-related enumeration values that aren't channel specific.
Custom attribute section enumeration values
The following table lists the supported section types for the section field. This matches the type of details sent in the bid request.
| Enum Value | Description |
|---|---|
IMPRESSION |
The imp.ext.data field, a section of the bid request. For details, see Imp. |
SITE |
The site.ext.data field, a section of the bid request. For details, see Site. |
USER |
The user.ext.data field, a section of the bid request. For details, see User. |
Bidding terms enumeration values
Here's what you need to know about bidding terms and signals:
- The
biddingTermsfield is required for commitments. - The
biddingTermsfield can contain a list of signals, or an empty list if you don't want to observe any. - When including signals into the bidding terms array, you must wrap each enum value in quotation marks.
The following table lists the supported enum values for the BiddingTerms array in the bid request. For examples, see Inventory composition terms.
| Enum Value | Required for Commitment? | Required for Endeavor? | Description |
|---|---|---|---|
USER_ID |
Recommended | Optional | The unique identifier of the user, such as UID2, TDID, or Ramp ID. |
SOURCE_TID |
Recommended | Optional | The transaction ID. |
VIDEO_PODID |
Recommended | Optional | A pod ID for video and CTV channels. |
AUDIO_PODID |
Recommended | Optional | A pod ID for audio channels. |
IMP_EXT_GPID |
Recommended | Optional | The global placement ID (GPID). |
DEVICE_GEO_ZIP |
Recommended | Optional | The geo location of the device. |
DEVICE_IFA |
Optional | Optional | The ID of the device. |
DEVICE_IP |
Optional | Optional | The IP address of the device. |
USER_DATA_SEGMENT |
Optional | Optional | The audience defined by the selling party. |
VIDEO_PODSEQ |
Optional | Optional | The pod position instream for video and CTV channels. |
VIDEO_SLOTINPOD |
Optional | Optional | The slot in the pod for video and CTV channels. |
AUDIO_PODSEQ |
Optional | Optional | The pod position instream for audio channels. |
AUDIO_SLOTINPOD |
Optional | Optional | The slot in the pod for audio channels. |
CONTENT_GENRE |
Optional | Optional | The genre of the content. |
CONTENT_CONTENTRATING |
Optional | Optional | The rating of the content. |
CONTENT_SERIES |
Optional | Optional | The series name. |
CONTENT_TITLE |
Optional | Optional | The show or episode title. |
CONTENT_SEASON |
Optional | Optional | The season number. |
CONTENT_EPISODE |
Optional | Optional | The episode number. |
CONTENT_ID |
Optional | Optional | The content ID. |
CONTENT_PRODQ |
Optional | Optional | The production quality. |
CONTENT_NETWORK_DOMAIN |
Optional | Optional | The domain of the network that displays the content. |
CONTENT_CHANNEL_DOMAIN |
Optional | Optional | The domain of the channel that displays the content. |
CONTENT_LEN |
Optional | Optional | The duration of the content. |
DEVICE_DEVICETYPE |
Optional | Optional | The type of device used. |
CONTENT_LANGUAGE |
Optional | Optional | The language of the content. |
APP_BUNDLE |
Optional | Optional | The mobile application that displays the content. |
VIDEO_SKIP |
Optional | Optional | Whether the video is skippable or not. |
SITE_DOMAIN |
Optional | Optional | The domain of the site that displays the content. |
VIDEO_PLCMT |
Optional | Optional | The video placement in stream. |
VIDEO_STARTDELAY |
Optional | Optional | The start delay before the video ad plays. |