Skip to main content

Bid Request Specification

The following page describes the fields of the BidRequest object:

Request

AttributeTypeDescriptionExample
idoptional, stringUnique ID of the bid request, provided by the exchange.d5260eec-75d9-4f7d-86bc-22b01b4c779e
imprequired, object[]Array of Imp objects representing the impressions offered. Must contain at least one item.(array of Imp objects)
apprequired, objectDetails about the publisher’s app (non-browser applications). Recommended for in-app traffic.(App object)
devicerequired, objectDetails about the user’s device to which the impression will be delivered.(Device object)
userrequired, objectDetails about the human user of the device (the advertising audience).(User object)
testoptional, integer (default 0)Test mode flag: 0 = live mode, 1 = test mode (non-billable).0
atoptional, integer (default 2)Auction type: 1 = First-Price, 2 = Second-Price Plus (BidMachine supports only 2).2
curoptional, string[] (default ["USD"])Array of allowed currencies (ISO-4217 codes). Recommended if multiple currencies are supported. Default is ["USD"].['USD']
bcatoptional, string[]Blocked advertiser categories using the IAB content taxonomy.['IAB2-1']
badvoptional, string[]Block list of advertiser domains.['blocked.domain']
regsoptional, objectRegs object specifying industry, legal, or governmental regulations for this request.(Regs object)

Imp Object

AttributeTypeDescriptionExample
idrequired, stringA unique identifier for this impression within the context of the bid request (typically, starts with 1 and increments or a UUID).6ba06f9a-44c8-497d-8bc3-78804bebc2c8
bannerobjectBanner object; required if this impression is offered as a banner ad opportunity.(Banner object)
videoobjectVideo object; required if this impression is offered as a video ad opportunity.(Video object)
nativeobjectNative object; required if this impression is offered as a native ad opportunity.(Native object)
displaymanagerrequired, stringName of ad mediation partner, SDK technology, or player responsible for rendering the ad. Recommended for video and in-app SDKs.you_ssp_name
displaymanagerverrequired, stringVersion of the ad mediation partner or SDK. Recommended for video and in-app SDKs.2.0.0
instloptional, integer (default 0)1 = interstitial/fullscreen, 0 = banner.0
tagidoptional, stringIdentifier for the ad placement or tag used to initiate the auction. Useful for debugging and optimization.my__debug__tag
bidfloorrequired, number (default 0)Minimum bid for this impression expressed in CPM.0.15
bidfloorcuroptional, string (default "USD")Currency for the bidfloor (ISO-4217). May differ from bid response currency if allowed.USD
AttributeTypeDescriptionExample
wintegerWidth of the impression in pixels. If neither wmin nor wmax are specified, this value is an exact width requirement. Otherwise, it is a preferred width.320
hintegerHeight of the impression in pixels. If neither hmin nor hmax are specified, this value is an exact height requirement. Otherwise, it is a preferred height.50
wmaxintegerMaximum width of the impression in pixels. If included with w, then w is treated as preferred width.320
hmaxintegerMaximum height of the impression in pixels. If included with h, then h is treated as preferred height.50
wminintegerMinimum width of the impression in pixels. If included with w, then w is treated as preferred width.320
hminintegerMinimum height of the impression in pixels. If included with h, then h is treated as preferred height.50
idstringUnique identifier for this banner object. Recommended for companion ads; values unique within an impression.ap1gm-0jioruind-1ffopjgo1p
btypeinteger[]Blocked banner ad types.[2]
battrinteger[]Blocked creative attributes. Appodeal currently blocks: Expandable (User Initiated – Rollover), Pop (Over/Under/Exit), Suggestive Imagery, Shaky/Flashing/Animated, Windows Dialog Style.[5,8,9,10,14]
posintegerAd position on screen.5
mimesstring[]Supported MIME types (e.g., image/png, image/jpg, image/gif).['image/jpg','image/gif','image/png']
topframeintegerTop-frame flag: 0 = no, 1 = yes.1
apiinteger[]List of supported API frameworks. Unlisted APIs are assumed unsupported.[5,3]

Video Object

AttributeTypeDescriptionExample
mimesstring[]Content MIME types supported.['video/mp4']
mindurationintegerMinimum video ad duration in seconds.5
maxdurationintegerMaximum video ad duration in seconds.30
protocolintegerSupported video bid response protocol (use protocols when possible). At least one must be specified in protocol or protocols.1
protocolsinteger[]Array of supported video bid response protocols.[1,2,6]
wintegerWidth of the video player in pixels.320
hintegerHeight of the video player in pixels.480
startdelayintegerStart delay in seconds for pre-roll, mid-roll, or post-roll ad placements.1
linearityintegerImpression linearity: 1 = linear, 2 = non-linear. If unspecified, assume all allowed.1
battrinteger[]Blocked creative attributes. IMPORTANT: for rewarded video, send [16] here.[1,3]
minbitrateintegerMinimum bit rate in Kbps.128
maxbitrateintegerMaximum bit rate in Kbps.512
playbackmethodinteger[]Allowed playback methods. If none specified, assume all are allowed.[1,2,3,4]
deliveryinteger[]Supported delivery methods (e.g., streaming, progressive). If none specified, assume all supported.[1,2]
posintegerAd position on screen.3
companiodadobject[]Companion banner objects (if companion ads are available).(empty)
apiinteger[]Supported API frameworks. Unlisted APIs are assumed unsupported.[1,2,3,4,5]
companiontypeinteger[]Supported VAST companion ad types. Recommended if companion banners are used.[1]

Native Object

AttributeTypeDescriptionExample
requeststringRequest payload complying with the Native Ad Specification."89oghjnr"
verstringVersion of the Native Ad Specification to which the request complies; recommended for efficient parsing."1.0"
apiinteger[]List of supported API frameworks for this impression. If an API is not explicitly listed, it is assumed unsupported.[1]
battrinteger[]Blocked creative attributes.[5,3]

App Object

AttributeTypeDescriptionExample
idrequired, stringExchange-specific app ID."102938"
namerequired, stringApp name (may be aliased at the publisher’s request)."MyApp"
bundlerequired, stringApplication bundle or package name (e.g., com.app.game); intended to be a unique ID across exchanges. iOS passes the App Store ID, Android passes the package name.Android: "com.appodeal.test", iOS: "78945611"
domainoptional, stringDomain of the app."game.app.com"
storeurloptional, stringApp store URL for an installed app; for QAG 1.5 compliance."https://itunes.apple.com/..id1234"
catoptional, string[]Array of IAB content categories of the app.['IAB2-1', 'IAB2-4']
sectioncatoptional, string[]Array of IAB content categories describing the current section of the app.['IAB2']
pagecatoptional, string[]Array of IAB content categories describing the current page or view of the app.['IAB2-1']
veroptional, stringApplication version."1.0.3"
privacypolicyoptional, integerPrivacy policy flag: 0 = no, 1 = yes.1
paidoptional, integerApp cost flag: 0 = free, 1 = paid.1
publisheroptional, objectDetails about the publisher of the app.(empty)
keywordsoptional, stringComma-separated list of keywords about the app."automotive"
extoptional, objectPlaceholder for exchange-specific extensions to OpenRTB.(empty)

Device Object

AttributeTypeDescriptionExample
uaoptional, stringBrowser user agent string."Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Mobile/14C89"
georequired, objectLocation of the device assumed to be the user’s current location defined by a Geo object.(Geo object)
dntoptional, integerStandard “Do Not Track” flag: 0 = unrestricted, 1 = do not track.0
lmtoptional, integer“Limit Ad Tracking” signal: 0 = unrestricted, 1 = limited.1
ipoptional, stringIPv4 address closest to device.23.227.207.23
ipv6optional, stringIPv6 address closest to device.2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d
devicetypeoptional, integerThe general type of device.4
makeoptional, stringDevice make."Apple"
modeloptional, stringDevice model."iPhone"
osrequired, stringDevice operating system."iOS"
osvoptional, stringDevice operating system version."10.1.3"
hwvrequired, stringHardware version of the device."5S"
hoptional, integerPhysical height of the screen in pixels.568
woptional, integerPhysical width of the screen in pixels.320
ppioptional, integerScreen size in pixels per linear inch.326
pxratiooptional, floatRatio of physical pixels to device-independent pixels.2
jsoptional, integerSupport for JavaScript: 0 = no, 1 = yes.1
languageoptional, stringBrowser language (ISO-639-1-alpha-2)."en"
carrieroptional, stringCarrier or ISP (e.g., “VERIZON”). “WIFI” indicates high bandwidth.(empty)
connectiontypeoptional, integerNetwork connection type.2
ifaoptional, stringID sanctioned for advertiser use in the clear (not hashed).382A78A3-7EA0-4D3B-9724-0231C07D0C5A

User Object

AttributeTypeDescriptionExample
idrecommended, stringExchange-specific ID for the user. At least one of id or buyerid is recommended."1"
yoboptional, integerYear of birth as a 4-digit integer.1984
genderoptional, stringGender: "M" = male, "F" = female, "O" = other (omitted = unknown)."O"
keywordsoptional, stringComma-separated list of keywords, interests, or intent."game"
geooptional, objectLocation of the user’s home base defined by a Geo object. Not necessarily their current location.(Geo object)

Geo Object

AttributeTypeDescriptionExample
latfloatLatitude from -90.0 to +90.0, where negative is south.15
lonfloatLongitude from -180.0 to +180.0, where negative is west.30
typeintegerSource of location data; recommended when passing lat/lon.2
countrystringCountry code using ISO-3166-1-alpha-3."USA"
citystringCity using United Nations Code for Trade & Transport Locations. See Appendix A for a link to the codes."New York"
zipstringZip or postal code."19809"
utcoffsetintegerLocal time as the number +/- of minutes from UTC.180

Regs Object

AttributeTypeDescriptionExample
coppaoptional, integerFlag indicating if this request is subject to COPPA regulations (USA FTC), where 0 = no, 1 = yes.0
extoptional, objectExt object for GDPR in OpenRTB 2.2–2.5.(see below)

Regs.ext:

AttributeTypeDescriptionExample
gdproptional, integerSignals if the request is subject to GDPR regulations: 0 = No, 1 = Yes.0