Professional Documents
Culture Documents
RTB Project
RTB Project
OpenRTB Dynamic Native Ads API
Specification Version 1.1
March 2016
Page 1
RTB Project
Introduction
The Native Ads sub-committee of the IAB OpenRTB Project assembled in May 2014 to develop a
new supplementary API specification for companies interested in an open protocol for the
automated trading of Native Ads enabled media across a broader range of platforms, devices,
and advertising solutions. This document is the culmination of those efforts.
The IAB Tech Lab spearheads the development of technical standards, creates and maintains a
code library to assist in rapid, cost-effective implementation of IAB standards, and establishes a
test platform for companies to evaluate the compatibility of their technology solutions with IAB
standards, which for 18 years have been the foundation for interoperability and profitable
growth in the digital advertising supply chain.
Further details about the IAB Technology Lab can be found at:
http://www.iab.com/organizations/iab-tech-lab/. The OpenRTB Work Group is a working
group within the IAB Technology Lab.
License
OpenRTB Specification by OpenRTB is licensed under a Creative Commons Attribution 3.0
License, based on a work at openrtb.info. Permissions beyond the scope of this license may be
available at http://openrtb.info. To view a copy of this license, visit
http://creativecommons.org/licenses/by/3.0/ or write to Creative Commons, 171 Second Street,
Suite 300, San Francisco, CA 94105, USA.
Page 2
RTB Project
Page 3
RTB Project
Table of Contents
Change Log
Before You Get Started
1 Introduction
1.1 Mission / Overview
1.2 Credits / Project History
1.3 Resources
1.4 Version History
2 Native Ads Basics
2.1 IAB Core Six
2.2 Deep Dive on In-Feed Ad Units
2.3 Data Format
2.4 Versioning
2.5 Customization and Extensions
3 Bid Request Details
3.1 Native Object Hierarchy
4 Native Ad Request Markup Details
4.1 Native Markup Request Object
4.2 Asset Object
4.3 Title Object
4.4 Image Object
4.5 Video Object
4.6 Data Object
5 Native Ad Response Markup Details
5.1 Native Markup Response Object
5.2 Asset Object
5.3 Title Object
5.4 Image Object
5.5 Data Object
5.6 Video Object
5.7 Link Object
OpenRTB Native Ads API Specification Version 1.1
Page 4
RTB Project
Change Log
Version
Date
Section Link
Change
1.0
Jan 2015
1.1
Oct 2015
Examples
1.1
Oct 2015
Video request
example
1.1
Oct 2015
1.1
Oct 2015
Native Request
Object
1.1
Oct 2015
Title Object
Original Version
Page 5
Oct 2015
Native Ad Request
Context IDs
Context Subtype IDs
Placement Type IDs
1.1
Oct 2015
Bid Request
Bid Response
RTB Project
Page 6
RTB Project
IMPORTANT: Since recommended parameters are not required, they may not be available from
all supply sources. It is suggested that all parties to OpenRTB transaction complete the
integration checklist (please refer to OpenRTB) to identify which parameters the supply side
supports in the bid request, and which parameters the demand side requires for ad decisioning.
1 Introduction
1.1 Mission / Overview
The mission of the OpenRTB Native project is to spur standardization and greater growth in the
Real-Time Bidding (RTB) marketplace for Native Ads by providing open industry standards for
communication between buyers of advertising and sellers of publisher inventory.
This specification is a sub-protocol of OpenRTB to allow for the delivery of native advertising
formats, as their specifics differ from publisher to publisher. In May 2013, a separate IAB
subcommittee was formed to define the request and response structures of native ad units;
Page 7
RTB Project
version 1.0 was published in early 2015. Version 1.1 is designed to fix errors, make clarifications,
and promote further adoption through refined standardization of assets and classification fields.
1.3 Resources
Resource
Location
OpenRTB Website
http://openrtb.info
Page 8
RTB Project
http://github.com/openrtb/OpenRTB/NativeAds.htm
l
http://groups.google.com/group/openrtb-native
http://www.sharethrough.com/guides/programmati
c-native/
http://www.iab.net/media/file/IAB_Deep_Dive_on_I
nFeed_Ad_Units.pdf
http://www.iab.net/media/file/IAB-NativeAdvertising-Playbook2.pdf
http://nativeadvertising.com/openrtb-2-4-andnative-1-1-the-new-iab-standards-that-are-allowingnative-ads-to-scale/
In Feed Units
Paid Search Units
Recommendation Widgets
Promoted Listings
IAB Standard with Native Elements
Page 9
RTB Project
Where found
Most common
ad types/content
objects
Most common
types of links
Representative
feed view
Page 10
RTB Project
2.4 Versioning
The Native Object in the Bid Request (OpenRTB contains a ver field defining the version of the
OpenRTB native extension.
Page 11
RTB Project
Banner
Object
AN
D/
Native
Object
Request
Video Object
AN
D/
Banner
Page 12
RTB Project
Field
Scope
Type
Default
ver
optional
string
1.1
layout
recommended
in 1.0, to be
deprecated
integer
adunit
recommended
in 1.0, to be
deprecated
integer
context
recommended
integer
contextsubtype
optional
integer
plcmttype
recommended
integer
plcmtcnt
optional
integer
seq
optional
integer
assets
required
array of
objects
Description
Version of the Native Markup
version in use.
Page 13
RTB Project
the array of elements expressed
in the bid request.
ext
optional
object
Note: Prior to VERSION 1.1, the specification could be interpreted as requiring the native
request to have a root node with a single field native that would contain the object above as
its value. The Native Markup Request Object specified above is now the root object.
Field
Scope
Type
id
required
int
required
optional
int
title
recommended
object
Default
Description
Page 14
recommended
RTB Project
object
video
optional1
object
data
recommended
object
object
ext
optional
: each asset object may contain only one of title, img, data or video.
Scope
Type
Default
Description
len
required
integer
ext
optional
object
Scope
Type
Default
Description
Page 15
RTB Project
type
optional
integer
optional
integer
wmin
recommended
integer
optional
integer
hmin
recommended
integer
mimes
optional
array of
strings
All
types
allowed
ext
optional
object
Page 16
RTB Project
standard defined in this
specification
Field
Scope
Type
Default
mimes
required
array
of
string
Description
minduration
required
integer
maxduration
required
integer
protocols
required
array of
integers
ext
optional
object
Page 17
RTB Project
native elements not contemplated at the time of the writing of this document. In some cases,
additional recommendations are also included in the Data Asset Types table.
Field
Scope
Type
Default
Description
type
required
integer
len
optional
integer
ext
optional
object
Field
Scope
Type
Default
ver
optional
string
1.1
assets
required
array of
objects
link
required
object
Description
Version of the Native Markup
version in use.
Page 18
RTB Project
which applies if the asset is
activated(clicked). If the asset
doesnt have a link object, the
parent link object applies. See
LinkObject Definition
imptrackers
optional
array of
strings
jstracker
optional
string
ext
optional
object
Note: Prior to VERSION 1.1, the native responses root node was an object with a single field
native that would contain the object above as its value. The Native Object specified above is
now the root object.
Field
Scope
Type
id
required
int
required
optional
int
Default
Description
Page 19
RTB Project
title
optional1
object
img
optional1
object
video
optional1
object
data
optional1
object
link
optional
object
ext2
optional
object
: asset object may contain only one of title, img, data or video.
: Bidders are encouraged not to use asset.ext for exchanging text assets. Use data.ext with
custom type instead.
Scope
Type
Default
text
required
String
ext
optional
object
Description
Page 20
RTB Project
standard defined in this
specification
Field
Scope
Type
Default
Description
url
required
string
recommended
integer
recommended
integer
ext
optional
object
Scope
Type
Default
label
optional
string
value
required
string
ext
optional
object
Description
Page 21
RTB Project
Scope
Type
Default
vasttag
required
string
Description
vast xml.
Scope
Type
Default
Description
url
required
string
clicktrackers
optional
array of
strings
fallback
optional
string
(URL)
ext
optional
object
Page 22
RTB Project
Bid Request
"native":{
"ver":1.1,
"context":2,
"contextsubtype":20,
"plcmttype":11,
"plcmtcnt":1,
"assets":[
{
"id":123,
"required":1,
"title":{
"len":140
Page 23
RTB Project
}
},
{
"id":128,
"required":0,
"img":{
"wmin":836,
"hmin":627,
"type":3
}
},
{
"id":124,
"required":1,
"img":{
"wmin":50,
"hmin":50,
"type":1
}
},
{
"id":126,
"required":1,
"data":{
"type":1,
"len":25
}
},
{
"id":127,
"required":1,
"data":{
"type":2,
"len":140
}
}
]
}
Page 24
RTB Project
Bid Response
"native": {
"link": {
"url": "http: //i.am.a/URL"
},
"assets": [
{
"id": 123,
"required": 1,
"title": {
"text": "Learn about this awesome thing"
}
},
{
"id": 124,
"required": 1,
"img": {
"url":"http://www.myads.com/thumbnail1.png"
}
},
{
"id": 128,
"required": 1,
"img": {
"url":"http://www.myads.com/largethumb1.png"
}
},
{
"id": 126,
"required": 1,
"data": {
"value": "My Brand"
}
},
{
"id": 127,
"required": 1,
"data": {
Page 25
RTB Project
Page 26
RTB Project
Bid Request
"native":{
"ver":1.1,
"context":1,
"contextsubtype":10,
"plcmttype":11,
"plcmtcnt":1,
"assets":[
{
"id": 4,
"video": {
"linearity": 1,
"minduration": 15,
"maxduration": 30,
"protocols": [
2,3
],
mimes: [
video/mp4
]
}
},
{
"id":123,
"required":1,
"title":{
"len":140
}
},
{
"id":128,
"required":0,
"img":{
"wmin":836,
"hmin":627,
"type":3
}
},
{
"id":124,
"required":1,
Page 27
RTB Project
"img":{
"wmin":50,
"hmin":50,
"type":1
}
},
{
"id":126,
"required":1,
"data":{
"type":1,
"len":25
}
},
{
"id":127,
"required":1,
"data":{
"type":2,
"len":140
}
}
]
}
Bid Response
"native": {
"link": {
"url": "http: //i.am.a/URL"
},
"assets": [
{
"id": 4,
"video": {
"vasttag": "<VAST version=2.0></VAST>"
}
},
Page 28
RTB Project
{
"id": 123,
"required": 1,
"title": {
"text": "Watch this awesome thing"
}
},
{
"id": 124,
"required": 1,
"img": {
"url":"http://www.myads.com/thumbnail1.png"
}
},
{
"id": 128,
"required": 1,
"img": {
"url":"http://www.myads.com/largethumb1.png"
}
},
{
"id": 126,
"required": 1,
"data": {
"value": "My Brand"
}
},
{
"id": 127,
"required": 1,
"data": {
"value": "Watch all about this awesome story of someone using
my product."
}
}
]
}
Page 29
RTB Project
7 Reference Lists/Enumerations
7.1 Native Layout IDs - To Be Deprecated
Layout ID is to be deprecated in a future version and is not suggested for new
implementations.
Below is a list of the core layouts described in the introduction above.
An implementing exchange may not support all asset variants or introduce new ones
unique to that system.
Layout ID
Description
Content Wall
App Wall
News Feed
Chat List
Carousel
Content Stream
500+
In feed unit is essentially a layout, it has been removed from the list. The in feed units
can be identified via the layout parameter on the request.
OpenRTB Native Ads API Specification Version 1.1
Page 30
RTB Project
An implementing exchange may not support all asset variants or introduce new ones
unique to that system.
Ad Unit ID
Description
Recommendation Widgets
Promoted Listings
500+
Context Type ID
Description
500+
Page 31
RTB Project
Context SubType ID
Description
10
11
12
13
14
15
20
21
22
30
31
Application store/marketplace
32
500+
Placement Type ID
1
Description
In the feed of content - for example as an item inside the organic
feed/grid/listing/carousel.
Page 32
RTB Project
In the atomic unit of the content - IE in the article page or single image
page
Outside the core content - for example in the ads section on the right
rail, as a banner-style placement near the content, etc.
500+
Type
ID
Name
Description
Format
Recommendations
sponsored
text
Required. Max 25
or longer.
desc
text
Recommended. Max
140 or longer.
rating
number
formatted as
string
likes
number
formatted as
string
downloads
number
formatted as
string
Optional. 0-5
integer formatted
as string.
Page 33
RTB Project
price
number
formatted as
string
saleprice
number
formatted as
string
phone
Phone number
formatted
string
address
Address
text
10
desc2
text
11
displayurl
text
12
ctatext
text
500+
XXX
Unknown
Optional. Max 15
or longer.
Page 34
RTB Project
accepted. Note that SSPs will be responsible for sizing image to exact size if min-maxheight framework is used; exact size may not be available at bid request time. Width is
calculated from the 3 supported aspect ratios. Note we are merging the prior overlapping
type 1 and type 2 as just type 1 - to be used for app icon, brand logo, or similar.
Type
ID
Name
Description
Recommendations
Icon
Icon image
Optional.
max height: at least 50
aspect ratio: 1:1
Logo
Main
500+
XXX
No recommendations
Page 35
RTB Project
8 Implementation Notes
8.1 Multi Placement Bid Requests
If the bid request has a placement count (plcmtcnt) greater than 1, then the implication is that
the bidder is submitting bids to a Generalized Second Price auction where multiple identical
placements are being offered in the same content feed or stream.
Example If a bid request is for 5 ad placements within a feed based layout. The bidder can return
1-5 bids. The exchange runs a generalized second price auction across these bids. The bidder can
potentially win between 0-5 placements in the auction.
Page 36