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.

FieldTypeDescription
idString; requiredThe AIDEM unique ID for the request. The ID is a 64-character alphanumeric string.
impArray of Objects; requiredThe Impression Object. Contains at least one Banner Object or Video Object.
deviceObject; requiredThe Device Object.
tmaxInteger; requiredMaximum time in milliseconds that AIDEM allows to receive bids. The tmax field does not subtract internet latency between AIDEM and the DSP.
curString array; optionalThe currencies that publishers will accept in bid responses. For more information, see List of currencies.
extObject; requiredA custom AIDEM BidRequest Extension Object that contains additional information about the bid request.
bcatArray of Strings; optionalAn 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).
regsObject; optionalThe Regulations Object.
siteObject; optionalThe Site Object.
appObject; optionalThe App Object.
userObject; optionalThe User Object.
atInteger; requiredThe Auction type where:
1 = first price
2 = 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.

FieldTypeDescription
idString; requiredA unique identifier for this impression.
tagidString; optionalA unique identifier for the ad placement or ad tag on a publisher's website that was used to initiate the auction.
bannerObject; requiredThe Banner Object.
Note: All requests must include at least one Banner Object or Video Object.
secureInteger; requiredSpecifies whether impressions require secure HTTPS URL creative assets and markup, where:
1 = secure assets and markup are required
Note: AIDEM does not support unsecure assets and markup.
videoObject; requiredThe Video Object.
Note: All requests must include at least one Video Object or Banner Object.
bidfloorFloat; optionalThe minimum bid for this impression in CPM.
bidfloorcurString; optionalThe currencies that publishers will accept in bid responses. For more information, see List of currencies.
instlInteger; optionalSpecifies whether an ad is interstitial, where:
0 = ad is not interstitial
1 = ad is interstitial or full screen
rwddInteger; requiredIndicates if this impression is associated with a rewarded placement, where:
0 = ad is not a rewarded placement
1 = ad is a rewarded placement
Note: BidRequest with rwdd=1 will not be processed by AIDEM.
pmpObject; optionalThe PMP Object that contains information about deals for this impression.

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.

FieldTypeDescription
formatArray of Objects; optionalArray of Format Object objects specifying the banner sizes permitted for an impression opportunity.
hInteger; requiredThe height of this impression, in pixels.
wInteger; requiredThe width of this impression, in pixels.
topframeInteger; requiredSpecifies whether the banner ad is delivered in the top frame or in an iFrame, where:
0 = ad is displayed in an iframe
1 = ad will not be displayed in an iframe
idString; optionalA 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

FieldTypeDescription
maxdurationInteger; requiredMaximum video ad duration, in seconds.
mindurationInteger; requiredMinimum video ad duration, in seconds.
mimesArray of Strings; requiredA list of supported video content MIME types. Popular MIME types supported by HTML5 players include:
video/mp4
video/webm
video/ogg
protocolsArray of Integers; requiredAn 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
hInteger; optionalThe height of the player, in pixels.
wInteger; optionalThe width of the player, in pixels.
maxbitrateInteger; optionalThe maximum bit rate in Kbps.
minbitrateInteger; optionalThe minimum bit rate in Kbps.
placementInteger; requiredThe video's placement type, where:
1 = in stream
skipInteger; optionalSpecifies whether the player allows the video to be skipped, where:
0 = no
1 = yes
skipafterInteger; optionalNumber of seconds a video must play before skipping is enabled; only applicable if the ad is skippable.
playbackmethodArray of Integers; optionalA list of allowed playback methods, where:
1 = auto-play sound on
2 = auto-play sound off
3 = 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.

FieldtypeDescription
hinteger; requiredThe height in device-independent pixels.
winteger; requiredThe width in device-independent pixels.

PMP object

FieldTypeDescription
private_auctionInteger; optionalThe scope of DSP bidding eligibility for this impression, where:
1 is Private (eligible bids are restricted to the deals specified).
dealsArray of Objects; optionalA 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:

FieldTypeDescription
idString; requiredA unique identifier for this direct deal.
atInteger; optionalThe auction type for this direct deal, where:
1 = first price auction
bidfloorFloat; optionalThe minimum bid for this impression in CPM.
bidfloorcurString; optionalThe currencies that publishers will accept in bid responses. For more information, see List of currencies.
wseatArray String; optionalAn allowed list of buyer seats (for example, advertisers, agencies) that are allowed to bid on a deal.

BidRequest extension object

FieldTypeDescription
tzInteger; optionalThe user time zone derived from the JavaScript getTimezoneOffset() function.
dfp_ad_unit_codeString; optionalInternal AIDEM object.
gpidString; optionalInternal AIDEM object.
eipString; optionalInternal AIDEM object.
ethString; optionalInternal AIDEM object.

Regulations object

FieldTypeDescription
coppaInteger; requiredSpecifies whether this request is subject to the United States Children’s Online Privacy Protection Act (COPPA), where:
0 = no
1 = yes
Note: BidRequest with coppa=1 will not be processed by AIDEM.
extObject; optionalThe Regulation Extension Object, which is used to specify requests that are subject to regulations. See the table below.

Regulations extension object

FieldTypeDescription
gdpr_appliesInteger; requiredSpecifies whether the request is subject to regulations, where:
0 = request is not subject to regulations.
1 = request is subject to regulations
us_privacyString; requiredSpecifies 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 applicable
For 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

FieldTypeDescription
idString; requiredThe AIDEM-assigned unique identifier for the website.
nameString; optionalA static value that represents the site’s name.
catArray of Strings; optionalA 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.
domainString; optionalA static value that represents the site’s domain.
pageString; optionalThe URL of the page where this impression will be shown.
publisherObject; requiredThe Publisher Object.
refString; optionalThe referring URL that caused navigation to the page hosting this impression. Anything above 512 characters is truncated.

App object

FieldTypeDescription
idString; requiredThe AIDEM-assigned unique identifier for the app.
nameString; requiredThe App's name.
bundleString; requiredThe store ID of the app in an app store.
catArray of Strings; optionalA 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.
domainString; optionalA static value that represents the app's domain.
storeurlString; requiredApp store URL for an installed app; for IQG 2.1 compliance.
publisherObject; requiredThe Publisher Object.

User object

FieldTypeDescription
idString; optionalThe id of the User.
ataObject; optionalThe AIDEM Themes Audiences Object.
gdprString; optionalWhen present, it contains the data structure developed by the GDPR Consent Working Group.

AIDEM Themes Audiences object

FieldTypeDescription
page_levelArray of Object; optionalArray of ATA Segment Object.
user_levelArray of Object; optionalArray of ATA Segment Object

ATA Segment object

FieldTypeDescription
idString; requiredID of the ATA segment.
percentileInteger; optionalPercentile of the ATA segment.

Publisher object

FieldTypeDescription
idString; requiredThe AIDEM-specific publisher ID.
nameString; optionalA name that represents the publisher

Device object

FieldTypeDescription
carrierString; optionalThe carrier or ISP. For example, “VERIZON”.“WIFI” is often used in mobile to indicate high bandwidth (for example, video friendly vs. cellular).
devicetypeInteger; optionalThe device type in use for this impression, if available, where:
2 = desktop
3 = connected TV
4 = Phone
5 = Tablet
geoObject; optionalThe Geo Object.
connectiontypeInteger; optionalThe network connection type that the device uses, where:
0 = unknown
1 = ethernet
2 = WiFi
3 = cellular network - unknown generation
4 = cellular network - 2G
5 = cellular network - 3G
6 = cellular network - 4G
7 = cellular network - 5G
ipString; optionalA dotted-octet representation of the IPv4 address of the user.
ipv6String; optionalThe IP address closest to the device, specified in IPv6 format (for example, "fe80:0:0:0:200:f8ff:fe21:67cf").
languageString; optionalThe first two characters of the header, in uppercase. For example, HTTP_ACCEPT_LANGUAGE "EN"
makeString; optionalThe device make. For example, "Apple".
modelString; optionalThe device model. For example,"iPhone"
osString; optionalThe device operating system. For example, "iOS"
osvString; optionalThe device operating system version. For example, “3.1.2"
uaString; optionalThe content of the HTTP_USER_AGENT header for this user. Anything above 512 characters is truncated.

Geo object

FieldTypeDescription
cityString; optionalThe city, as per United Nations Code for Trade & Transport Locations. See UN/LOCODE Code List.
countryString; optionalThe country code, using ISO-3166-1-alpha-3.
latFloat; optionalThe latitude from -90.0 to +90.0, where negative is south.
lonFloat; optionalThe longitude from -180.0 to +180.0, where negative is west.
metroString; optionalThe Google metro code; similar to but not exactly Nielsen DMAs. See List of Google Metro Codes.
regionString; optionalThe region code using ISO-3166-2; 2-letter state code if USA ("US" ).
typeInteger; optionalThe source of location data, where:
1 = GPS
2 = IP Address
3 = User provided
zipString; optionalThe zip code or postal code.
utcoffsetInteger; optionalThe local time as the number +/- of minutes from UTC.