1. Help Center
  2. General Information

Gamoshi Open RTB Specification

The purpose of this document is to provide information and guidelines enabling advertisers and publishers to implement an OpenRTB integration with Gamoshi.

TABLE OF CONTENTS

1. Introduction

1.1 What is Real-Time Bidding?

1.2 How does real-time bidding work

1.3 Gamoshi supported scenarios 

1.4 Gamoshi Open RTB supported versions

1.5 Gamoshi servers location

1.6 Gamoshi publisher endpoint URL

2. Bid request

2.1 Bid Request Specification

2.1.1 OBJECT: Bid Request

2.1.2 OBJECT: Source

2.1.3 OBJECT: Regs

2.1.4 OBJECT: Imp

2.1.5 OBJECT: Metric

2.1.6 OBJECT: Banner

2.1.7 OBJECT: Video

2.1.8 OBJECT: Audio

2.1.9 OBJECT: Native

2.1.10 OBJECT: Format

2.1.11 OBJECT: Pmp

2.1.12 OBJECT: Deal

2.1.13 OBJECT: Site

2.1.14 OBJECT: App

2.1.15 OBJECT: Publisher

2.1.16 OBJECT: Content 

2.1.17 OBJECT: Producer

2.1.18 OBJECT: Device

2.1.19 OBJECT: Geo

2.1.20 OBJECT: User

2.1.21 OBJECT: Data

2.1.22 OBJECT: Segment

2.1.23 Banner Bid Request Example

2.1.24 Video Bid Request Example

3. Bid response

3.1 Bid Response Specification

3.1.1 OBJECT: BidResponse

3.1.2 OBJECT: SeatBid

3.1.3 OBJECT: Bid

3.1.4 Banner Bid Response Example

3.1.5 Video Bid Response Example

 

1. INTRODUCTION

Gamoshi provides Cloud-based programmatic infrastructure and technology. We offer advertisers and publishers an advanced, robust technology wrapped as a set of easy-to-use services. We support a diversity of business scenarios and media types. 

This document describes how to integrate to Gamoshi platform via openRTB protocol.

1.1 What is Real-Time Bidding?

Real-Time Bidding is an auction setting where ad impressions are sold and bought, and transactions take place in a blink of an eye. Once an advertiser’s bid wins the auction, their digital ad is instantaneously shown on the website or property of the publisher. RTB auctions put the focus on impression-based bidding whereas static auctions tend to group impressions only allowing advertisers to bid on them in package deals.

1.2 How does Real-Time Bidding work:

When a user visits a website/app, a corresponding bid request is being sent to the platform the supply source is connected with via RTB endpoint.

This bid request then contains different types of information such as demographical data, location information, browser history, etc. The platform then passes the bid requests along to its list of advertisers/buyers who are connected to the platform and bid in real-time for the ad impression as it gets presented to the website/app user. The advertiser that bids the highest amount wins the impression and gets its ad served in front of the site/app user.

This same process gets repeated time and time for every ad unit of the website/app property page. This procedure takes place within 100 milliseconds, including receiving the bid request and serving the ad. 

1.3 Gamoshi Supported scenarios: 

Banners, Videos, and Native across mobile (in-app), desktop, and mobile web.

1.4 Gamoshi Open RTB supported versions: 

2.1-2.5

1.5 Gamoshi Servers Location:

Google GCS: Berkeley County, South Carolina.

Amazon - Us East-2 Ohio.

 

The Gamoshi RTB platform follows the standards set by OpenRTB Version 2.5. The OpenRTB ad requests are communicated via the following endpoint:

1.6 Gamoshi Publisher Endpoint URL: 

https://rtb.gamoshi.io/r/<replace with Inventory ID>/bidr

 

This document lays out ad requests, response structures, object specifications, and request parameters specific to Gamoshi only. Hence, we recommend that you also refer to the guidelines presented in the OpenRTB API Specification V2.5 doc.

2. BID REQUEST

2.1 Bid Request Specification

The details below specify the request parameters which Gamoshi supports following the IAB OpenRTB API Specification Version 2.5

2.1.1 OBJECT: Bid Request

Attribute Type Description
id string; required Unique ID of the bid request, provided by the exchange.
imp object array;
required
Array of Imp objects (Section 2.1.4) representing the
impressions offered. At least 1 Imp object is required.
site object;
recommended
Details via a Site object (Section 2.1.13) about the publisher’s website. Only applicable and recommended for websites.
app object;
recommended
Details via an App object (Section 2.1.14) about the publisher’s app (i.e., non-browser applications). Only applicable and recommended for apps.
device object;
recommended
Details via a Device object (Section 2.1.18) about the user’s device to which the impression will be delivered.
user object;
recommended
Details via a User object (Section 2.1.20) about the human user of the device; the advertising audience.
test integer;
default 0
Indicator of test mode in which auctions are not billable,
where 0 = live mode, 1 = test mode.
at integer;
default 2
Auction type, where 1 = First Price, 2 = Second Price Plus. Exchange-specific auction types can be defined using values greater than 500.
tmax integer Maximum time in milliseconds the exchange allows for bids to be received including Internet latency to avoid timeout. This value supersedes any a priori guidance from the exchange.
wseat string array White list of buyer seats (e.g., advertisers, agencies) allowed to bid on this impression. IDs of seats and knowledge of the buyer’s customers to which they refer must be coordinated between bidders and the exchange a priori. At most, only one of wseat and bseat should be used in the same request.
Omission of both implies no seat restrictions.
bseat string array Block list of buyer seats (e.g., advertisers, agencies) restricted from bidding on this impression. IDs of seats and knowledge
allimps integer;
default 0

Flag to indicate if Exchange can verify that the impressions offered 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.

cur string array Array of allowed currencies for bids on this bid request using ISO-4217 alpha codes. Recommended only if the exchange accepts multiple currencies.
wlang string array White list of languages for creatives using ISO-639-1-alpha-2. Omission implies no specific restrictions, but buyers would be advised to consider language attribute in the Device and/or Content objects if available.
bcat string array Blocked advertiser categories using the IAB content
categories. Refer to List 5.1.

badv

string array Block list of advertisers by their domains (e.g., ford.com”).
bapp string array Block list of applications by their platform-specific exchange-independent application identifiers. On Android, these should be bundle or package names (e.g., com.foo.mygame). On iOS, these are numeric IDs.
source object A Sorce object (Section 2.1.2) that provides data about the inventory source and which entity makes the final decision.
regs object A Regs object (Section 2.1.3) that specifies any industry, legal, or governmental regulations in force for this request.
ext object Placeholder for exchange-specific extensions to OpenRTB.

 

2.1.2 OBJECT: Source

Attribute Type Description
fd Integer;
recommended
Entity responsible for the final impression sale decision, where 0 = exchange, 1 = upstream source.
tid

string;
recommended

Transaction ID that must be common across all participants in this bid request (e.g., potentially multiple exchanges).
pchain

string;
recommended

Payment ID chain string containing embedded syntax
described in the TAG Payment ID Protocol v1.0.
ext

object

Placeholder for exchange-specific extensions to OpenRTB.

2.1.3 OBJECT: Regs

Attribute Type Description
coppa integer Flag indicating if this request is subject to the COPPA
regulations established by the USA FTC, where 0 = no, 1 = yes.
ext object Placeholder for exchange-specific extensions to OpenRTB.

2.1.4 OBJECT: Imp

Attribute Type Description

id

string; required

A unique identifier for this impression within the context of the bid request (typically, starts with 1 and increments.

metric 

object array 

An array of Metric object (Section 2.1.5).

banner

object

A Banner object (Section 2.1.6); required if this impression is offered as a banner ad opportunity.

 video

 object

A Video object (Section 2.1.7); required if this impression is
offered as a video ad opportunity.

audio object Currently not supported.
native object A Native object (Section 2.1.9); required if this impression is offered as a native ad opportunity.
pmp object A Pmp object (Section 2.1.11) containing any private
marketplace deals in effect for this impression.
displaymanager string Name of ad mediation partner, SDK technology, or player responsible for rendering ad (typically video or mobile). Used by some ad servers to customize ad code by partner.
Recommended for video and/or apps.
displaymanagerver string Version of ad mediation partner, SDK technology, or player responsible for rendering ad (typically video or mobile). Used by some ad servers to customize ad code by partner.
Recommended for video and/or apps.
instl integer;
default 0
1 = the ad is interstitial or full screen, 0 = not interstitial.
tagid string Identifier for specific ad placement or ad tag that was used to initiate the auction. This can be useful for debugging of any issues, or for optimization by the buyer.
bidfloor float; default 0 Minimum bid for this impression expressed in CPM.
bidfloorcur string;
default “USD”
Currency specified using ISO-4217 alpha codes. This may be different from bid currency returned by bidder if this is allowed by the exchange.
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 Flag to indicate if the impression requires secure HTTPS URL creative assets and markup, where 0 = non-secure, 1 = secure.
If omitted, the secure state is unknown, but non-secure HTTP
iframebuster string array Array of exchange-specific names of supported iframe busters.
exp integer Advisory as to the number of seconds that may elapse
between the auction and the actual impression.
ext object Placeholder for exchange-specific extensions to OpenRTB.

2.1.5 OBJECT: Metric

Attribute Type Description
type string; required Type of metric being presented using exchange curated string
names which should be published to bidders a priori.
value float; required Number representing the value of the metric. Probabilities must be in the range 0.0 – 1.0.
vendor string; 
recommended
Source of the value using exchange curated string names which should be published to bidders a priori. If the exchange itself is the source versus a third party, “EXCHANGE” is recommended.
ext object Placeholder for exchange-specific extensions to OpenRTB.

 

2.1.6 OBJECT: Banner

Attribute Type Description
format object array;
recommended
Array of format objects (Section 2.1.10) representing the banner sizes permitted. If none are specified, then use of the h and w attributes is highly recommended.
w integer Exact width in device independent pixels (DIPS);
recommended if no format objects are specified.
h integer Exact height in device independent pixels (DIPS);
recommended if no format objects are specified.
btype integer array

blocked banner ad types. Refer to List 5.2

battr integer array Blocked creative attributes. Refer to List 5.3.
pos integer Ad position on screen. Refer to List 5.4.
mimes string array Content MIME types supported. Popular MIME types may include “application/x-shockwave-flash”,
“image/jpg”, and “image/gif”.
topframe integer Indicates if the banner is in the top frame as opposed to an iframe, where 0 = no, 1 = yes.
expdir integer array Directions in which the banner may expand. Refer to List 5.5.
api integer array List of supported API frameworks for this impression. Refer to List 5.6. 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 (Section 2.1.7) 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 (Section 2.1.7) in an array of companion ads. Indicates the companion banner rendering mode relative to the associated video, where 0 = concurrent, 1 = end-card.
ext object Placeholder for exchange-specific extensions to OpenRTB.

2.1.7 OBJECT: Video

Attribute Type Description
mimes string array;
required
Content MIME types supported (e.g., “video/x-ms-wmv”, “video/mp4”).
minduration integer;
recommended
Minimum video ad duration in seconds.
maxduration integer;
recommended
Maximum video ad duration in seconds.
protocols integer;
recommended
Array of supported video protocols. Refer to List 5.8. At least one supported protocol must be specified in either the protocol or protocols attribute.
w integer;
recommended
Width of the video player in device independent pixels (DIPS).
h integer;
recommended
Height of the video player in device independent pixels (DIPS).
startdelay integer;
recommended
Indicates the start delay in seconds for pre-roll, mid-roll, or post-roll ad placements. Refer to List 5.12 for additional generic values.
placement integer Placement type for the impression. Refer to List 5.9.
linearity integer Indicates if the impression must be linear, nonlinear, etc. If none specified, assume all are allowed. Refer to List 5.7.
skip integer Indicates if the player will allow the video to be skipped, where 0 = no, 1 = yes.
If a bidder sends markup/creative that is itself skippable, the Bid object should include the attr array with an element of 16 indicating skippable video. Refer to List 5.3.
skipmin integer;
default 0
Videos of total duration greater than this number of seconds can be skippable; only applicable if the ad is skippable.
skipafter integer;
default 0
Number of seconds a video must play before skipping is enabled; only applicable if the ad is skippable.
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.
battr integer array Blocked creative attributes. Refer to List 5.3.
maxextended integer Maximum extended ad duration if extension is allowed. If blank or 0, extension is not allowed. If -1, extension is allowed, and there is no time limit imposed. If greater than 0, then the value represents the number of seconds of extended play supported beyond the maxduration value.
minbitrate integer Minimum bit rate in Kbps.
maxbitrate integer Maximum bit rate in Kbps.
boxingallowed integer
default 1
Indicates if letter-boxing of 4:3 content into a 16:9 window is allowed, where 0 = no, 1 = yes.
playbackmethod integer array Playback methods that may be in use. If none are specified, any method may be used. Refer to List 5.10. Only one method is typically used in practice. As a result, this array may be converted to an integer in a future version of the specification. It is strongly advised to use only the first element of this array in preparation for this change.
playbackend integer The event that causes playback to end. Refer to List 5.11.
delivery integer array Supported delivery methods (e.g., streaming, progressive). If none specified, assume all are supported. Refer to List 5.15.
pos integer Ad position on screen. Refer to List 5.4.
companionad object array Array of Banner objects (Section 2.1.6) if companion ads are available.
api integer array List of supported API frameworks for this impression. Refer to List 5.6. If an API is not explicitly listed, it is assumed not to be supported.
companiontype integer array Supported VAST companion ad types. Refer to List 5.14. Recommended if companion Banner objects are included via the companionad array. If one of these banners will be rendered as an end-card, this can be specified using the vcm attribute with the particular banner (Section 2.1.6).
ext object Placeholder for exchange-specific extensions to OpenRTB.

2.1.8 OBJECT: Audio (currently not supported)

2.1.9 OBJECT: Native

Attribute Type Description
request  string; required Request payload complying with the Native Ad Specification.
ver string;
recommended
Version of the Dynamic Native Ads API to which request complies; highly recommended for efficient parsing.
api integer array List of supported API frameworks for this impression. Refer to List 5.6. If an API is not explicitly listed, it is assumed not to be supported.
battr integer array Blocked creative attributes. Refer to List 5.3.
ext object Placeholder for exchange-specific extensions to OpenRTB.

2.1.10 OBJECT: Format

Attribute Type Description
w integer Width in device independent pixels (DIPS).
h integer Height in device independent pixels (DIPS).
wratio integer Relative width when expressing size as a ratio.
hratio integer Relative height 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.
ext object Placeholder for exchange-specific extensions to OpenRTB.

2.1.11 OBJECT: Pmp

Attribute Type Description
private_auction integer;
default 0
Indicator of auction eligibility to seats named in the Direct Deals object, where 0 = all bids are accepted, 1 = bids are restricted to the deals specified and the terms thereof.
deals object array Array of Deal (Section 2.1.12) objects that convey the specific deals applicable to this impression.
ext object Placeholder for exchange-specific extensions to OpenRTB.

2.1.12 OBJECT: Deal

Attribute Type Description
id string; required A unique identifier for the direct deal.
bidfloor float; default 0 Minimum bid for this impression expressed in CPM.
bidfloorcur string;
default ”USD”
Currency specified using ISO-4217 alpha codes. This may be different from bid currency returned by bidder if this is allowed by the exchange.
at integer Optional override of the overall auction type of the bid request, where 1 = First Price, 2 = Second Price Plus, 3 = the value passed in bidfloor is the agreed upon deal price.
Additional auction types can be defined by the exchange.
wseat string array Whitelist of buyer seats (e.g., advertisers, agencies) allowed to bid on this deal. IDs of seats and the buyer’s customers to
which they refer must be coordinated between bidders and the exchange a priori. Omission implies no seat restrictions.
wadomain string array Array of advertiser domains (e.g., advertiser.com) allowed to bid on this deal. Omission implies no advertiser restrictions.
ext object Placeholder for exchange-specific extensions to OpenRTB.

2.1.13 OBJECT: Site

Attribute Type Description
id string;
recommended
Exchange-specific site ID.
name string Site name (may be aliased at the publisher’s request).
domain string Domain of the site (e.g., “mysite.foo.com”).
cat string array Array of IAB content categories of the site. Refer to List 5.1.
sectioncat string array Array of IAB content categories that describe the current section of the site. Refer to List 5.1.
pagecat string array Array of IAB content categories that describe the current page or view of the site. Refer to List 5.1.
page string URL of the page where the impression will be shown.
ref string Referrer URL that caused navigation to the current page.
search string Search string that caused navigation to the current page.
mobile integer Indicates if the site has been programmed to optimize layout when viewed on mobile devices, where 0 = no, 1 = yes.
privacypolicy integer Indicates if the site has a privacy policy, where 0 = no, 1 = yes.
publisher object Details about the Publisher (Section 2.1.15) of the site.
content object Details about the Content (Section 2.1.16) within the site.
keywords string Comma separated list of keywords about the site.
ext object Placeholder for exchange-specific extensions to OpenRTB.

 

2.1.14 OBJECT: App

Attribute Type Description
id string;
recommended
Exchange-specific app ID.
name string App name (may be aliased at the publisher’s request).
bundle string A platform-specific application identifier intended to be unique to the app and independent of the exchange. On Android, this should be a bundle or package name (e.g., com.foo.mygame). On iOS, it is typically a numeric ID.
domain  string Domain of the app (e.g., “mygame.foo.com”).
storeurl string App store URL for an installed app; for IQG 2.1 compliance.
cat string array Array of IAB content categories of the app. Refer to List 5.1.
sectioncat string array Array of IAB content categories that describe the current section of the app. Refer to List 5.1.
pagecat string array Array of IAB content categories that describe the current page or view of the app. Refer to List 5.1.
ver string Application version.
privacypolicy integer Indicates if the app has a privacy policy, where 0 = no, 1 = yes.
paid integer 0 = app is free, 1 = the app is a paid version.
publisher object Details about the Publisher (Section 3.2.15) of the app.
content object Details about the Content (Section 3.2.16) within the app.
keywords string Comma separated list of keywords about the app.
ext object Placeholder for exchange-specific extensions to OpenRTB.

2.1.15 OBJECT: Publisher

Attribute Type Description
id string Exchange-specific publisher ID.
name string Publisher name (may be aliased at the publisher’s request).
cat string array Array of IAB content categories that describe the publisher. Refer to List 5.1.
domain string Highest level domain of the publisher (e.g., “publisher.com”).
ext object Placeholder for exchange-specific extensions to OpenRTB.

 

2.1.16 OBJECT: Content 

Attribute Type Description
id  string ID uniquely identifying the content.
episode integer Episode number.
title string Content title. Video Examples: “Search Committee” (television), “A New Hope” (movie), or “Endgame” (made for web).
Non-Video Example: “Why an Antarctic Glacier Is Melting So Quickly” (Time magazine article).
series string Content series.
Video Examples: “The Office” (television), “Star Wars” (movie), or “Arby ‘N’ The Chief” (made for web). Non-Video Example: “Ecocentric” (Time Magazine blog).
season string Content season (e.g., “Season 3”).
artist string Artist credited with the content.
genre string Genre that best describes the content (e.g., rock, pop, etc).
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 (Section 2.1.17).
url string URL of the content, for buy-side contextualization or review.
cat string array Array of IAB content categories that describe the content producer. Refer to List 5.1.
prodq integer Production quality. Refer to List 5.13.
context integer Type of content (game, video, text, etc.). Refer to List 5.18.
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. Refer to List 5.19.
keywords string Comma separated list of keywords describing the content.
livestream integer 0 = not live, 1 = content is live (e.g., stream, live blog).
sourcerelationship integer 0 = not live, 1 = content is live (e.g., stream, live blog).
len integer Length of content in seconds; appropriate for video or audio.
language string Content language using ISO-639-1-alpha-2.
embeddable integer Indicator of whether or not the content is embeddable (e.g., an embeddable video player), where 0 = no, 1 = yes.
data object array Additional content data. Each Data object (Section 2.1.21) represents a different data source.
ext object Placeholder for exchange-specific extensions to OpenRTB.

 

2.1.17 OBJECT: Producer

Attribute 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 Content producer or originator name (e.g., “Warner Bros”).
cat string array Array of IAB content categories that describe the content producer. Refer to List 5.1.
domain string Highest level domain of the content producer (e.g., “producer.com”).
ext object Placeholder for exchange-specific extensions to OpenRTB.

 

2.1.18 OBJECT: Device

Attribute Type Description
ua string;
recommended
Browser user agent string.
geo object;
recommended
Location of the device assumed to be the user’s current location defined by a Geo object (Section 2.1.19).
dnt integer;
recommended
Standard “Do Not Track” flag as set in the header by the browser, where 0 = tracking is unrestricted, 1 = do not track.
lmt integer;
recommended
“Limit Ad Tracking” signal commercially endorsed (e.g., iOS, Android), where 0 = tracking is unrestricted, 1 = tracking must
be limited per commercial guidelines.
ip string;
recommended
IPv4 address closest to device.
ipv6 string IP address closest to device as IPv6.
devicetype integer The general type of device. Refer to List 5.21.
make string Device make (e.g., “Apple”).
model string Device model (e.g., “iPhone”).
os string Device operating system (e.g., “iOS”).
osv string Device operating system version (e.g., “3.1.2”).
hwv string Hardware version of the device (e.g., “5S” for iPhone 5S).
h integer Physical height of the screen in pixels.
w integer Physical width of the screen in pixels.
ppi integer Screen size as pixels per linear inch.
pxratio float The ratio of physical pixels to device independent pixels.
js integer Support for JavaScript, where 0 = no, 1 = yes.

geofetch

integer Indicates if the geolocation API will be available to JavaScript code running in the banner, where 0 = no, 1 = yes.
flashver string Version of Flash supported by the browser.
language string Browser language using ISO-639-1-alpha-2.
carrier string Carrier or ISP (e.g., “VERIZON”) using exchange curated string names which should be published to bidders a priori.
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.
connectiontype integer Network connection type. Refer to List 5.22.
ifa string ID sanctioned for advertiser use in the clear (i.e., not hashed).
didsha1 string Hardware device ID (e.g., IMEI); hashed via SHA1.
didmd5 string Hardware device ID (e.g., IMEI); hashed via MD5.
macsha1 string MAC address of the device; hashed via SHA1.
macmd5 string MAC address of the device; hashed via MD5.
ext object Placeholder for exchange-specific extensions to OpenRTB.

 

2.1.19 OBJECT: Geo

Attribute Type Description
lat float Latitude from -90.0 to +90.0, where negative is south.
lon float Longitude from -180.0 to +180.0, where negative is west.
type integer Source of location data; recommended when passing lat/lon. Refer to List 5.20.
accuracy integer Estimated location accuracy in meters; recommended when lat/lon are specified and derived from a device’s location
services (i.e., type = 1). Note that this is the accuracy as reported from the device. Consult OS specific documentation
(e.g., Android, iOS) for exact interpretation.
lastfix integer Number of seconds since this geolocation fix was established.
Note that devices may cache location data across multiple fetches. Ideally, this value should be from the time the actual
fix was taken.
ipservice integer Service or provider used to determine geolocation from IP address if applicable (i.e., type = 2). Refer to List 5.23.
country string Country code using ISO-3166-1-alpha-3.
region string Region code using ISO-3166-2; 2-letter state code if USA.
regionfips104 string Region of a country using FIPS 10-4 notation. While OpenRTB supports this attribute, it has been withdrawn by NIST in 2008.
metro string Google metro code; similar to but not exactly Nielsen DMAs.
See Appendix A for a link to the codes.
city string City using United Nations Code for Trade & Transport Locations. See Appendix A for a link to the codes.
zip string Zip or postal code.
utcoffset integer Local time as the number +/- of minutes from UTC.
ext object Placeholder for exchange-specific extensions to OpenRTB.

 

2.1.20 OBJECT: User

Attribute Type Description
id string;
recommended
Exchange-specific ID for the user. At least one of id or buyeruid is recommended.
buyeruid string;
recommended
Buyer-specific ID for the user as mapped by the exchange for
the buyer. At least one of buyeruid or id is recommended.
yob integer Year of birth as a 4-digit integer.
gender string Gender, where “M” = male, “F” = female, “O” = known to be other (i.e., omitted is unknown).
keywords string Comma separated list of keywords, interests, or intent.
customdata string Optional feature to pass bidder data that was set in the exchange’s cookie. The string must be in base85 cookie safe characters and be in any format. Proper JSON encoding must be used to include “escaped” quotation marks.
geo object Location of the user’s home base defined by a Geo object (Section 2.1.19). This is not necessarily their current location.
data object array Additional user data. Each Data object (Section 2.1.21) represents a different data source.
ext object Placeholder for exchange-specific extensions to OpenRTB.

 

2.1.21 OBJECT: Data

Attribute Type Description
id string Exchange-specific ID for the data provider.
name string Exchange-specific name for the data provider.
segment object array An array of Segment (Section 2.1.22) objects that contain the actual data values.
ext object Placeholder for exchange-specific extensions to OpenRTB.

 

2.1.22 OBJECT: Segment

 

Attribute Type Description
id string ID of the data segment specific to the data provider.
name string Name of the data segment specific to the data provider.
value string String representation of the data segment value
ext object Placeholder for exchange-specific extensions to OpenRTB.

2.1.23 Banner Bid Request Example

{
id: "1a7e8897-7054-42cb-beae-14a6dd0fc140",
site: {
domain: "demo.gamotest.com",
page: "http://demo.gamotest.com/publishers/demo/index.html",
ref: ""
},
device: {
ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36",
ip: "3.0.0.0"
},
imp: [
{
id: "395060be-12ab-4456-adaf-ab641c4ebadc",
instl: 0,
tagid: "banner-unit",
bidfloor: 0,
bidfloorcur: "USD",
secure: 0,
banner: {
w: 300,
h: 250,
pos: 0,
topframe: 0
}
}
],
ext: { }
}

2.1.24 Video Bid Request Example

{
"app": {
"bundle": "com.gamoshi.test",
"id": "d422842355a24f3c9df40c139ca214a4",
"name": "SDK Test"
},
"at": 2,
"badv": [
],
"bcat": [
],
"device": {
"carrier": "",
"connectiontype": 1,
"devicetype": 4,
"dnt": 0,
"geo": {
"city": "Mountain View",
"country": "USA",
"metro": "",
"type": 2,
"zip": "94043"
},
"h": 1920,
"hwv": "klteatt",
"ifa": "c50377de-f8a4-4f89-81c6-ad0c00691bc0",
"ip": "66.249.76.28",
"js": 1,
"language": "en",
"lmt": 0,
"make": "samsung",
"model": "SAMSUNG-SM-G900A",
"os": "Android",
"osv": "5.0.0",
"ua": "Dalvik/2.1.0 (Linux; U; Android 5.0; SAMSUNG-SM-G900A Build/LRX21T)",
"w": 1080
},
"id": "18f21e5332a17b95ffb922317137d2302a5c28a2",
"imp": [
{

"displaymanager": "generic",
"displaymanagerver": "6.2.4",
"id": "1",
"instl": 1,
"secure": 0,
"tagid": "86371d35d96aff1f:",
"video": {
"battr": [
],
"companiontype": [
1,
2
],
"h": 480,
"linearity": 1,
"maxduration": 60,
"mimes": [
"video/mp4"
],
"minduration": 5,
"protocols": [
2,
3
],
"w": 320

}
}
]
}


3. BID RESPONSE

3.1 Bid Response Specification

RTB responses contain bids that reference specific impressions within a bid request. Bids are in essence an offer to buy. The bid response consists of the top-level bid response object and optional objects that depict the specific bids. An empty HTTP response constitutes a no-bid and is in fact the most bandwidth-friendly form of this signal although returning a response with a “no-bid reason” is encouraged. A malformed response or a response that contains no actual bids will also be interpreted as no-bid.

 

3.1.1 Object: BidResponse

 

Attribute Type Description
id string; required ID of the bid request to which this is a response.
seatbid object array Array of seatbid objects; 1+ required if a bid is to be made.
bidid string Bidder generated response ID to assist with logging/tracking.
cur string;
default “USD”
Bid currency using ISO-4217 alpha codes.
customdata string Optional feature to allow a bidder to set data in the exchange’s cookie. The string must be in base85 cookie safe
characters and be in any format. Proper JSON encoding must be used to include “escaped” quotation marks.
nbr integer Reason for not bidding. Refer to List 5.24.
ext object Placeholder for bidder-specific extensions to OpenRTB.

 

 

3.1.2 Object: SeatBid

 

Attribute Type Description
bid object array;
required
Array of 1+ Bid objects (Section 3.1.3) each related to an impression. Multiple bids can relate to the same impression.
seat string ID of the buyer seat (e.g., advertiser, agency) on whose behalf this bid is made.
group integer;
default 0
0 = impressions can be won individually; 1 = impressions must
be won or lost as a group.
ext object Placeholder for bidder-specific extensions to OpenRTB.

 

3.1.3 Object: Bid

 

Attribute Type Description
id string; required Bidder generated bid ID to assist with logging/tracking.
impid string; required ID of the Imp object in the related bid request.
price float; required Bid price expressed as CPM although the actual transaction is for a unit impression only. Note that while the type indicates float, integer math is highly recommended when handling
currencies (e.g., BigDecimal in Java).

nurl string Win notice URL called by the exchange if the bid wins (not
necessarily indicative of a delivered, viewed, or billable ad);
optional means of serving ad markup. Substitution macros may be included in both the URL and optionally returned markup.
burl string Billing notice URL called by the exchange when a winning bid
becomes billable based on exchange-specific business policy (e.g., typically delivered, viewed, etc.). Substitution macros may be included.
lurl string Loss notice URL called by the exchange when a bid is known to
have been lost. Substitution macros  may be included. Exchange-specific policy may preclude support for loss notices or the disclosure of winning clearing prices resulting in ${AUCTION_PRICE} macros being removed (i.e., replaced with a zero-length string).
adm string Optional means of conveying ad markup in case the bid wins;
supersedes the win notice if markup is included in both.
Substitution macros may be included.
adid string ID of a preloaded ad to be served if the bid wins.
adomain string array Advertiser domain for block list checking (e.g., “ford.com”).
This can be an array of for the case of rotating creatives.
Exchanges can mandate that only one domain is allowed.
bundle string A platform-specific application identifier intended to be unique to the app and independent of the exchange. On Android, this should be a bundle or package name (e.g., com.foo.mygame). On iOS, it is a numeric ID.
iurl string URL without cache-busting to an image that is representative
of the content of the campaign for ad quality/safety checking.
cid string Campaign ID to assist with ad quality checking; the collection of creatives for which iurl should be representative.
crid string Creative ID to assist with ad quality checking.
tactic

string array Tactic ID to enable buyers to label bids for reporting to the exchange the tactic through which their bid was submitted.
The specific usage and meaning of the tactic ID should be communicated between buyer and exchanges a priori.
cat string array IAB content categories of the creative. Refer to List 5.1.
attr integer array Set of attributes describing the creative. Refer to List 5.3.
api integer API required by the markup if applicable. Refer to List 5.6.
protocol integer Video response protocol of the markup if applicable. Refer to
List 5.8.
qagmediarating integer Creative media rating per IQG guidelines. Refer to List 5.19.
language string Language of the creative using ISO-639-1-alpha-2. The non-standard code “xx” may also be used if the creative has no linguistic content (e.g., a banner with just a company logo).
dealid string Reference to the deal.id from the bid request if this bid pertains to a private marketplace direct deal.
w integer Width of the creative in device independent pixels (DIPS).
h integer Height of the creative in device independent pixels (DIPS).
wratio integer Relative width of the creative when expressing size as a ratio.
Required for Flex Ads.
hratio integer Relative height of the creative when expressing size as a ratio.
Required for Flex Ads.
exp integer Advisory as to the number of seconds the bidder is willing to wait between the auction and the actual impression.
ext object Placeholder for bidder-specific extensions to OpenRTB.

 

3.1.4 Banner Bid Response Example

{
"id":"imp_5dff3170e4b01f3d1c599c9f",
"bidid":"imp_5dff3170e4b01f3d1c599c9f",
"cur":"USD",
"seatbid":[
{
"seat":"16482",
"group":0,
"bid":[
{
"id":"gb_1",
"impid":"1",
"price":0.99,
"adid":"2867",
"nurl":"http://rtb.gamoshi.io/pix/6511/win_notice/imp_5dff3170e4b01f3d1c599c9f/im.gif?r=imp_5dff3170e4b01f3d1c599c9f&i=1&a=2867&b=gb_1&p=${AUCTION_PRICE}&est=1577005424757",
"adomain":[

],
"bundle":"test bundle",
"adm":"<script src='https://www.googletagservices.com/tag/js/gpt.js'>\n googletag.pubads().definePassback('/21724121070/white-test-300x600', [300, 600]).display();\n</script><img src=\"http://rtb.gamoshi.io/pix/6511/imp/imp_5dff3170e4b01f3d1c599c9f/im.gif?r=imp_5dff3170e4b01f3d1c599c9f&i=1&a=2867&b=gb_1&est=1577005424757\" alt=\" \" style=\"display:none\"/><script type=\"text/javascript\" src=\"https://q.adrta.com/s/gms/aa.js?cb=#gms;paid=gms;avid=;caid=16482;plid=2867;priceBid=0.0101;pricePaid=1.0;siteId=jugantor.com;publisherId=6511;kv1=300x600;kv2=http:\\/\\/jugantor.com\\/index.html;kv3=gusr_5ce6d802e4b07c649ac40368;kv4=3.0.0.0;kv7=6511;kv9=;kv11=5dff3170e4b01f3d1c599d44;kv12=;kv13=;kv14=;kv15=USA;kv16=41.1682;kv17=-73.2689;kv18=;kv19=;kv20=;kv21=;kv22=;kv23=;kv25=Macintosh;kv26=macOS;kv27=Mozilla\\/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit\\/537.36 (KHTML, like Gecko) Chrome\\/77.0.3865.120 Safari\\/537.36;kv24=Desktop\"></script><img src=\"https://p.adsymptotic.com/d/px/?_pid=15966&_psign=8c4d0ab05105efd346f4fe4d7c363cf0&_pu=http%3A%2F%2Fjugantor.com%2Findex.html&_puuid=gusr_5ce6d802e4b07c649ac40368&_rand=5dff3170e4b01f3d1c599d44\" alt=\" \" style=\"display:none\"/>",
"cid":"16482",
"crid":"2867",
"cat":[

],
"attr":[

],
"h":600,
"w":300,
"ext":{
"bidfloor":0.0101,
"imptrackers":[
"http://rtb.gamoshi.io/pix/6511/imp/imp_5dff3170e4b01f3d1c599c9f/im.gif?r=imp_5dff3170e4b01f3d1c599c9f&i=1&a=2867&b=gb_1&est=1577005424757"
]
}
}
]
}
]
}

3.1.5 Video Bid Response Example

 
{
"id": "d24543f7-c2ef-4386-9382-b724702d3b9a",
"bidid": "imp_607ec5fae4b01407c1c6180d",
"cur": "USD",
"seatbid": [
{
"seat": "3668",
"group": 0,
"bid": [
{
"id": "gb_1",
"impid": "5c547eea-37c2-4101-bd91-9426ecf48127",
"price": 5.0,
"adid": "1274",
"nurl": "http://aws.gamx.io/pix/1275/win_notice/imp_607ec5fae4b01407c1c6180d/im.gif?r=imp_607ec5fae4b01407c1c6180d&i=5c547eea-37c2-4101-bd91-9426ecf48127&a=1274&b=gb_1&p=${AUCTION_PRICE}&est=1618920954952",
"adm": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><VAST version=\"2.0\"><Ad id=\"5c547eea-37c2-4101-bd91-9426ecf48127\"><Wrapper><AdSystem version=\"2.0\"><![CDATA[gamoshi.io]]></AdSystem><VASTAdTagURI><![CDATA[https://static.gambid.io/demo/vast.xml]]></VASTAdTagURI><Error><![CDATA[https://aws.gamx.io/pix/1275/verror/imp_607ec5fae4b01407c1c6180d/im.gif?r=imp_607ec5fae4b01407c1c6180d&i=5c547eea-37c2-4101-bd91-9426ecf48127&a=1274&b=gb_1&est=1618920954950&error=[ERRORCODE]]]></Error><Impression><![CDATA[https://aws.gamx.io/pix/1275/vimp/imp_607ec5fae4b01407c1c6180d/im.gif?r=imp_607ec5fae4b01407c1c6180d&i=5c547eea-37c2-4101-bd91-9426ecf48127&a=1274&b=gb_1&est=1618920954950]]></Impression><Creatives><Creative AdID=\"1274\"><Linear><TrackingEvents><Tracking event=\"start\"><![CDATA[https://aws.gamx.io/pix/1275/start/imp_607ec5fae4b01407c1c6180d/im.gif?r=imp_607ec5fae4b01407c1c6180d&i=5c547eea-37c2-4101-bd91-9426ecf48127&a=1274&b=gb_1&est=1618920954950]]></Tracking><Tracking event=\"firstQuartile\"><![CDATA[https://aws.gamx.io/pix/1275/fq/imp_607ec5fae4b01407c1c6180d/im.gif?r=imp_607ec5fae4b01407c1c6180d&i=5c547eea-37c2-4101-bd91-9426ecf48127&a=1274&b=gb_1&est=1618920954950]]></Tracking><Tracking event=\"midpoint\"><![CDATA[https://aws.gamx.io/pix/1275/mp/imp_607ec5fae4b01407c1c6180d/im.gif?r=imp_607ec5fae4b01407c1c6180d&i=5c547eea-37c2-4101-bd91-9426ecf48127&a=1274&b=gb_1&est=1618920954950]]></Tracking><Tracking event=\"thirdQuartile\"><![CDATA[https://aws.gamx.io/pix/1275/tq/imp_607ec5fae4b01407c1c6180d/im.gif?r=imp_607ec5fae4b01407c1c6180d&i=5c547eea-37c2-4101-bd91-9426ecf48127&a=1274&b=gb_1&est=1618920954950]]></Tracking><Tracking event=\"complete\"><![CDATA[https://aws.gamx.io/pix/1275/comp/imp_607ec5fae4b01407c1c6180d/im.gif?r=imp_607ec5fae4b01407c1c6180d&i=5c547eea-37c2-4101-bd91-9426ecf48127&a=1274&b=gb_1&est=1618920954950]]></Tracking></TrackingEvents><VideoClicks><ClickTracking><![CDATA[http://aws.gamx.io/pix/1275/clickt/imp_607ec5fae4b01407c1c6180d/im.gif?r=imp_607ec5fae4b01407c1c6180d&i=5c547eea-37c2-4101-bd91-9426ecf48127&a=1274&b=gb_1&est=1618920954949]]></ClickTracking></VideoClicks></Linear></Creative></Creatives></Wrapper></Ad></VAST>",
"cid": "3668",
"crid": "1274",
"h": 250,
"w": 300
}
]
}
]
}