The real-time bidding contract between Reticle and connected
demand partners. Reticle sends a bid request; your bidder
replies with a bid response inside the timeout. The object
model follows IAB OpenRTB 2.5.
Reticle's real-time bidding integration follows the IAB
OpenRTB
2.5 specification. This page documents the object
model Reticle sends and expects, the enumerations that
matter for our traffic, and worked examples. Where Reticle
deviates from or extends the base spec, it is called out
explicitly in an ext note.
Each auction is a single HTTP POST carrying a
JSON BidRequest. A bidder that wants the
impression responds 200 OK with a
BidResponse; a bidder that passes responds
204 No Content (or a BidResponse
with no bids). All payloads are UTF-8 JSON unless agreed
otherwise during onboarding.
Conventions
Attributes marked required are
always present on requests Reticle sends, or mandatory on
responses Reticle accepts.
Types follow the spec: integer,
float, string,
object, and array notation such as
string[] or object[].
All monetary values are CPM (cost per mille) in the
currency given by cur.
Every object carries an optional ext for
extensions. Reticle defines no proprietary fields; the
standard extensions shown in the tables —
schain on Source,
gdpr / us_privacy on
Regs, and the TCF
consent string on User —
are the only ones used.
Endpoints & environments
Reticle connects in both directions. In a demand-side
integration Reticle acts as the exchange and POSTs the
BidRequest to the endpoint you register with us;
in a supply-side integration you POST the request to a Reticle
endpoint. Either way the transport is a single HTTP
POST carrying a JSON BidRequest, with
a JSON BidResponse returned in the body.
Endpoints
Production and sandbox endpoints are issued per partner during
onboarding — contact support
to obtain yours. Both environments speak the same protocol; the
sandbox neither bills nor serves live creative.
Points of presence
Reticle operates points of presence in the
United States, Europe and Singapore.
Register in the region(s) closest to your infrastructure to
keep round-trips comfortably inside tmax.
Transport
Content type application/json, UTF-8.
OpenRTB version 2.5, sent in the
x-openrtb-version request header.
gzip is supported on both request and
response bodies via Content-Encoding /
Accept-Encoding.
Authentication
Requests are authenticated with a token credential issued by
Reticle support during onboarding — there is no self-service
portal. The token, and where to place it on the request, are
provided with the credential.
Who issues the token
The party that receives the requests issues the credential to
the party that sends them:
Supply-side integration — you POST to Reticle, so
Reticle provides you with the token to present on each
request.
Demand-side integration — Reticle POSTs to you, so
you provide Reticle with the credential your endpoint
expects.
Sandbox and production use separate credentials; request each
from support.
Bid request
The top-level BidRequest carries the auction id,
one or more impressions, and the context — exactly one of
app or site, plus
device, user and regs.
A representative request for a single banner impression in an
app:
Describes the nature and behaviour of the entity that is the source of the bid request upstream of the exchange, and carries the supply chain.
Attribute
Type
Description
fd
integer
Entity responsible for the final impression sale decision: 0 = exchange, 1 = upstream source.
tid
string
Transaction ID common across all participants in this bid request (e.g. across multiple exchanges).
pchain
string
Payment ID chain string per the TAG Payment ID Protocol.
ext
object
Extensions. Reticle carries schain (supply chain) here where present.
Regs object
Regulatory conditions in effect for all impressions in the request.
Attribute
Type
Description
coppa
integer
Flag indicating the request is subject to COPPA: 0 = no, 1 = yes.
ext
object
Extensions. Commonly carries gdpr (0/1) and us_privacy (CCPA string).
Imp object
Describes an impression being offered and the buy-side restrictions on it. A request may include multiple impressions; each carries exactly one of banner, video, audio or native.
Attribute
Type
Description
id
string
Impression ID, unique within the bid request. Typically starts at 1.required
Extensions. Carries the TCF consent string where applicable.
Data object
Additional data about a user or the content, keyed by a data provider (Segments).
Attribute
Type
Description
id
string
Exchange-specific ID for the data provider.
name
string
Exchange-specific name for the data provider.
segment
object[]
Array of Segment objects containing the actual data values.
ext
object
Extensions.
Segment object
A specific data point about a user or piece of content — the key/value pairs within a Data object.
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
Extensions.
Bid response
A bidder that wants the impression replies with a
BidResponse echoing the request id
and carrying one or more seat bids. Each Bid
references an impression by impid.
API framework required to render the creative. See API Frameworks.
protocol
integer
Video response protocol of the markup. See Protocols.
qagmediarating
integer
Creative media rating per IQG guidelines.
language
string
Creative language, ISO-639-1-alpha-2.
dealid
string
Deal ID if this bid pertains to a private marketplace deal.
w
integer
Creative width in DIPs.
h
integer
Creative height in DIPs.
wratio
integer
Relative width when expressing size as a ratio.
hratio
integer
Relative height when expressing size as a ratio.
exp
integer
Advisory seconds the bidder is willing to wait between auction and impression.
ext
object
Extensions.
Enumerations
The enumerated lists referenced by the fields above. Values are integers unless noted. This covers the lists most relevant to Reticle traffic; for any list not shown, the IAB OpenRTB 2.5 values apply.
Auction Type at
Value
Meaning
1
First price auction.
2
Second price plus auction (default).
3
Deal price (deprecated for use at request level; use Deal at).
Mid-roll; the value is the start delay in seconds.
0
Pre-roll.
-1
Generic mid-roll.
-2
Generic post-roll.
Playback Methods playbackmethod
Value
Meaning
1
Auto-play on page load, sound on.
2
Auto-play on page load, sound off.
3
Play on click, sound on.
4
Play on mouse-over, sound on.
5
Play on entering viewport, sound on.
6
Play on entering viewport, sound off by default.
Playback Cessation Modes playbackend
Value
Meaning
1
On completion, or when terminated by the user.
2
On leaving the viewport, or when terminated by the user.
3
On leaving the viewport continues as a floating/slider unit until completion or user termination.
Content Delivery Methods delivery
Value
Meaning
1
Streaming.
2
Progressive.
3
Download.
Companion Types companiontype
Value
Meaning
1
Static resource.
2
HTML resource.
3
Iframe resource.
Feed Types feed
Value
Meaning
1
Music service.
2
FM/AM broadcast.
3
Podcast.
Production Quality prodq
Value
Meaning
0
Unknown.
1
Professionally produced.
2
Prosumer.
3
User-generated content (UGC).
Content Context context
Value
Meaning
1
Video (e.g. an in-stream video player).
2
Game.
3
Music.
4
Application.
5
Text.
6
Other.
7
Unknown.
Location Type type (Geo)
Value
Meaning
1
GPS / location services.
2
IP address.
3
User provided (e.g. registration data).
Device Type devicetype
Value
Meaning
1
Mobile / tablet (version 2.0).
2
Personal computer.
3
Connected TV.
4
Phone.
5
Tablet.
6
Connected device.
7
Set-top box.
Connection Type connectiontype
Value
Meaning
0
Unknown.
1
Ethernet / wired.
2
WIFI.
3
Cellular network — unknown generation.
4
Cellular network — 2G.
5
Cellular network — 3G.
6
Cellular network — 4G.
Substitution macros
Win notice, billing notice and loss notice URLs
(nurl, burl, lurl) and
creative markup may contain substitution macros, which the
exchange replaces before firing. The standard OpenRTB macros:
Macro
Replaced with
${AUCTION_ID}
ID of the bid request (BidRequest.id).
${AUCTION_BID_ID}
ID of the bid (BidResponse.bidid).
${AUCTION_IMP_ID}
ID of the impression (Imp.id).
${AUCTION_SEAT_ID}
ID of the winning seat (SeatBid.seat).
${AUCTION_AD_ID}
ID of the ad markup served (Bid.adid).
${AUCTION_PRICE}
Clearing price using the auction's price rules. May be encrypted.
${AUCTION_CURRENCY}
Bid currency, ISO-4217.
${AUCTION_MBR}
Market bid ratio: bid price / clearing price.
${AUCTION_LOSS}
Loss reason code (on lurl).
Reticle supports all of the macros above.
${AUCTION_PRICE} is substituted in clear text —
it is not encrypted, so no price-decryption key is required.
No-bid & timeouts
A bidder that does not wish to bid should respond as quickly
as possible. Reticle prefers an HTTP
204 No Content; a 200 OK carrying a
BidResponse with no seatbid and an
optional nbr reason (see
No-Bid Reason Codes) is also accepted.
tmax is measured at Reticle's edge and includes
the network round-trip — it is the wall-clock budget from the
request leaving Reticle to the response arriving back. Budget
your compute time comfortably below tmax to leave
room for transit.
Responses that arrive after tmax, that fail to
parse, or that reference an unknown impid are
discarded and counted as timeouts or errors against the seat.
Seats with sustained high timeout or error rates may be
throttled.
Changelog
Versioned changes to this reference will be listed here.
Date
Change
v1.0
Initial release: full OpenRTB 2.5 object model, endpoints and points of presence, token authentication, substitution macros, and no-bid / timeout handling.