BidRequest
Data for bid requests is sent in JSON RFC 4627 format and all fields are considered case-sensitive.
BidRequest object
The top level bid request object and accompanying fields are below, followed by each lower level object contained within it.
Field | Type | Description |
---|---|---|
id | String; required | The AIDEM unique ID for the request. The ID is a 64-character alphanumeric string. |
imp | Array of Objects; required | The Impression Object. Contains at least one Banner Object or Video Object. |
device | Object; required | The Device Object. |
tmax | Integer; required | Maximum time in milliseconds that AIDEM allows to receive bids. The tmax field does not subtract internet latency between AIDEM and the DSP. |
cur | String array; optional | The currencies that publishers will accept in bid responses. For more information, see List of currencies. |
ext | Object; required | A custom AIDEM BidRequest Extension Object that contains additional information about the bid request. |
bcat | Array of Strings; optional | An array of blocked advertiser categories, based on standard IAB content categories. The full list is available in section 5.1 of the OpenRTB Specification (version 2.5). |
regs | Object; optional | The Regulations Object. |
site | Object; optional | The Site Object. |
app | Object; optional | The App Object. |
user | Object; optional | The User Object. |
at | Integer; required | The Auction type where:1 = first price2 = second price |
Impression object
This object describes an ad placement or impression opportunity being auctioned. A single impression opportunity may allow one or multiple creative types such as banner and video. Bid responses should only include creative types that are allowed for the respective impression opportunity.
Field | Type | Description |
---|---|---|
id | String; required | A unique identifier for this impression. |
tagid | String; optional | A unique identifier for the ad placement or ad tag on a publisher's website that was used to initiate the auction. |
banner | Object; required | The Banner Object. Note: All requests must include at least one Banner Object or Video Object. |
secure | Integer; required | Specifies whether impressions require secure HTTPS URL creative assets and markup, where: 1 = secure assets and markup are requiredNote: AIDEM does not support unsecure assets and markup. |
video | Object; required | The Video Object. Note: All requests must include at least one Video Object or Banner Object. |
bidfloor | Float; optional | The minimum bid for this impression in CPM. |
bidfloorcur | String; optional | The currencies that publishers will accept in bid responses. For more information, see List of currencies. |
instl | Integer; optional | Specifies whether an ad is interstitial, where:0 = ad is not interstitial 1 = ad is interstitial or full screen |
rwdd | Integer; required | Indicates if this impression is associated with a rewarded placement, where:0 = ad is not a rewarded placement1 = ad is a rewarded placementNote: BidRequest with rwdd=1 will not be processed by AIDEM. |
pmp | Object; optional | The PMP Object that contains information about deals for this impression. |
Banner object
This object is a subset of the Impression object that describes a banner ad impression. If the auctioned impression is banner or rich media, include the Banner object directly in the Impression object. It can also be embedded in the Video Object to describe companion banners available for linear/non-linear video ads. For information on the possible ad dimensions, see List of ad units and maximum expansion size.
Field | Type | Description |
---|---|---|
format | Array of Objects; optional | Array of Format Object objects specifying the banner sizes permitted for an impression opportunity. |
h | Integer; required | The height of this impression, in pixels. |
w | Integer; required | The width of this impression, in pixels. |
topframe | Integer; required | Specifies whether the banner ad is delivered in the top frame or in an iFrame, where:0 = ad is displayed in an iframe1 = ad will not be displayed in an iframe |
id | String; optional | A unique identifier for this banner object; especially useful for tracking multiple Banner Objects (for example, in companion banner array). It usually begins with 1 and increases with each object. |
Video object
Field | Type | Description |
---|---|---|
maxduration | Integer; required | Maximum video ad duration, in seconds. |
minduration | Integer; required | Minimum video ad duration, in seconds. |
mimes | Array of Strings; required | A list of supported video content MIME types. Popular MIME types supported by HTML5 players include: video/mp4 video/webm video/ogg |
protocols | Array of Integers; required | An array of supported video protocols. At least one supported protocol must be specified, where: 2 = VAST 2.0 3 = VAST 3.0 5 = VAST 2.0 wrapper 6 = VAST 3.0 wrapper |
h | Integer; optional | The height of the player, in pixels. |
w | Integer; optional | The width of the player, in pixels. |
maxbitrate | Integer; optional | The maximum bit rate in Kbps. |
minbitrate | Integer; optional | The minimum bit rate in Kbps. |
placement | Integer; required | The video's placement type, where: 1 = in stream |
skip | Integer; optional | Specifies whether the player allows the video to be skipped, where:0 = no 1 = yes |
skipafter | Integer; optional | Number of seconds a video must play before skipping is enabled; only applicable if the ad is skippable. |
playbackmethod | Array of Integers; optional | A list of allowed playback methods, where:1 = auto-play sound on2 = auto-play sound off3 = click-to-play |
Format object
The format object specifies an allowed size, in height and width combination, for a banner impression opportunity. These are typically used in an array where multiple sizes are permitted.
Field | type | Description |
---|---|---|
h | integer; required | The height in device-independent pixels. |
w | integer; required | The width in device-independent pixels. |
PMP object
Field | Type | Description |
---|---|---|
private_auction | Integer; optional | The scope of DSP bidding eligibility for this impression, where:1 is Private (eligible bids are restricted to the deals specified). |
deals | Array of Objects; optional | A collection of Deals Object containing any deals eligible for this impression. |
Deal object
The PMP Object may contain one or more additional Deals Objects, each representing a different direct deal for this impression:
Field | Type | Description |
---|---|---|
id | String; required | A unique identifier for this direct deal. |
at | Integer; optional | The auction type for this direct deal, where:1 = first price auction |
bidfloor | Float; optional | The minimum bid for this impression in CPM. |
bidfloorcur | String; optional | The currencies that publishers will accept in bid responses. For more information, see List of currencies. |
wseat | Array String; optional | An allowed list of buyer seats (for example, advertisers, agencies) that are allowed to bid on a deal. |
BidRequest extension object
Field | Type | Description |
---|---|---|
tz | Integer; optional | The user time zone derived from the JavaScript getTimezoneOffset() function. |
dfp_ad_unit_code | String; optional | Internal AIDEM object. |
gpid | String; optional | Internal AIDEM object. |
eip | String; optional | Internal AIDEM object. |
eth | String; optional | Internal AIDEM object. |
Regulations object
Field | Type | Description |
---|---|---|
coppa | Integer; required | Specifies whether this request is subject to the United States Children’s Online Privacy Protection Act (COPPA), where:0 = no1 = yesNote: BidRequest with coppa=1 will not be processed by AIDEM. |
ext | Object; optional | The Regulation Extension Object, which is used to specify requests that are subject to regulations. See the table below. |
Regulations extension object
Field | Type | Description |
---|---|---|
gdpr_applies | Integer; required | Specifies whether the request is subject to regulations, where:0 = request is not subject to regulations. 1 = request is subject to regulations |
us_privacy | String; required | Specifies whether US privacy laws (for example, CCPA) apply or don't apply to the user in the bid request. This field contains four characters. For example, 1YYN . The meaning of each character is based on its position in the string as defined below: - 1st character: The version number for the US privacy string specification used to encode the string. - 2nd character: Specifies whether the user had explicit notice and the choice to opt-out of the sale of their personal information, where: N = no Y = yes - = not applicable- 3rd character: Specifies whether the user has opted-out of the sale of their personal information, where: N = no Y = yes - = not applicable- 4th character: Specifies whether the publisher is a signed party to the IAB Limited Service Provider Agreement (LSPA). The publisher specifies whether the transaction is either a Covered Opt Out Transaction or a Non Opt Out Transaction, where: N = no Y = yes - = not applicableFor example, a string passed as 1--- specifies that a US privacy regulation does not apply to the bid request. Note: When a consumer chooses to opt-out of the sale of their personal information, the following bid request fields are automatically adjusted: - ip (device object): The last octet of the user’s IP address is replaced with a zero.- lat and lon (geo object): Latitude and longitude coordinates are reduced to two decimals which translates to accuracy no less than one third of a mile. - All unique IDs from the bid request in the device and user objects that indirectly identify a user are removed. - deals (PMP object): Audience segment targeted deal IDs are no longer added to the bid request. |
Site object
Field | Type | Description |
---|---|---|
id | String; required | The AIDEM-assigned unique identifier for the website. |
name | String; optional | A static value that represents the site’s name. |
cat | Array of Strings; optional | A single-element array representing the standard IAB content category for the overall site. For example, ["IAB3-7 "] See section 6.1 of the OpenRTB Specification (version 2.2) for a full list. |
domain | String; optional | A static value that represents the site’s domain. |
page | String; optional | The URL of the page where this impression will be shown. |
publisher | Object; required | The Publisher Object. |
ref | String; optional | The referring URL that caused navigation to the page hosting this impression. Anything above 512 characters is truncated. |
App object
Field | Type | Description |
---|---|---|
id | String; required | The AIDEM-assigned unique identifier for the app. |
name | String; required | The App's name. |
bundle | String; required | The store ID of the app in an app store. |
cat | Array of Strings; optional | A single-element array representing the standard IAB content category for the overall site. For example, ["IAB3-7 "] See section 6.1 of the OpenRTB Specification (version 2.2) for a full list. |
domain | String; optional | A static value that represents the app's domain. |
storeurl | String; required | App store URL for an installed app; for IQG 2.1 compliance. |
publisher | Object; required | The Publisher Object. |
User object
Field | Type | Description |
---|---|---|
id | String; optional | The id of the User. |
ata | Object; optional | The AIDEM Themes Audiences Object. |
gdpr | String; optional | When present, it contains the data structure developed by the GDPR Consent Working Group. |
AIDEM Themes Audiences object
Field | Type | Description |
---|---|---|
page_level | Array of Object; optional | Array of ATA Segment Object. |
user_level | Array of Object; optional | Array of ATA Segment Object |
ATA Segment object
Field | Type | Description |
---|---|---|
id | String; required | ID of the ATA segment. |
percentile | Integer; optional | Percentile of the ATA segment. |
Publisher object
Field | Type | Description |
---|---|---|
id | String; required | The AIDEM-specific publisher ID. |
name | String; optional | A name that represents the publisher |
Device object
Field | Type | Description |
---|---|---|
carrier | String; optional | The carrier or ISP. For example, “VERIZON”.“WIFI” is often used in mobile to indicate high bandwidth (for example, video friendly vs. cellular). |
devicetype | Integer; optional | The device type in use for this impression, if available, where:2 = desktop3 = connected TV4 = Phone5 = Tablet |
geo | Object; optional | The Geo Object. |
connectiontype | Integer; optional | The network connection type that the device uses, where:0 = unknown1 = ethernet2 = WiFi3 = cellular network - unknown generation4 = cellular network - 2G5 = cellular network - 3G6 = cellular network - 4G7 = cellular network - 5G |
ip | String; optional | A dotted-octet representation of the IPv4 address of the user. |
ipv6 | String; optional | The IP address closest to the device, specified in IPv6 format (for example, "fe80:0:0:0:200:f8ff:fe21:67cf"). |
language | String; optional | The first two characters of the header, in uppercase. For example, HTTP_ACCEPT_LANGUAGE "EN" |
make | String; optional | The device make. For example, "Apple". |
model | String; optional | The device model. For example,"iPhone" |
os | String; optional | The device operating system. For example, "iOS" |
osv | String; optional | The device operating system version. For example, “3.1.2" |
ua | String; optional | The content of the HTTP_USER_AGENT header for this user. Anything above 512 characters is truncated. |
Geo object
Field | Type | Description |
---|---|---|
city | String; optional | The city, as per United Nations Code for Trade & Transport Locations. See UN/LOCODE Code List. |
country | String; optional | The country code, using ISO-3166-1-alpha-3. |
lat | Float; optional | The latitude from -90.0 to +90.0, where negative is south. |
lon | Float; optional | The longitude from -180.0 to +180.0, where negative is west. |
metro | String; optional | The Google metro code; similar to but not exactly Nielsen DMAs. See List of Google Metro Codes. |
region | String; optional | The region code using ISO-3166-2; 2-letter state code if USA ("US" ). |
type | Integer; optional | The source of location data, where:1 = GPS2 = IP Address3 = User provided |
zip | String; optional | The zip code or postal code. |
utcoffset | Integer; optional | The local time as the number +/- of minutes from UTC. |