Reticle Contact sales
Contents

Integration

OpenRTB Reference

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.

Spec · IAB OpenRTB 2.5 Transport · HTTP POST + JSON Version · 1.0

Overview

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:

BidRequest · JSON
{
  "id": "80ce30c53c16e6ede735f123ef6e32361bfc7b22",
  "at": 2,
  "cur": ["USD"],
  "tmax": 120,
  "imp": [
    {
      "id": "1",
      "bidfloor": 0.03,
      "bidfloorcur": "USD",
      "secure": 1,
      "banner": {
        "pos": 1,
        "format": [
          { "w": 300, "h": 250 },
          { "w": 300, "h": 600 }
        ],
        "battr": [1, 3]
      }
    }
  ],
  "app": {
    "id": "agltb3B1Yi1pbmMr",
    "name": "Example Game",
    "bundle": "com.example.game",
    "cat": ["IAB9-30"],
    "publisher": { "id": "ex-pub-778", "name": "Example Publisher" }
  },
  "device": {
    "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X)",
    "ip": "123.145.167.10",
    "os": "iOS",
    "osv": "16.0",
    "devicetype": 1,
    "connectiontype": 2,
    "ifa": "AA000DFE74168477C70D291f574D344790E0BB11"
  },
  "user": { "id": "55816b39711f9b5acf3b90e313ed29e51665623f" },
  "source": { "fd": 1, "tid": "tx-77f2c1", "pchain": "ssp.example:pub-778" },
  "regs": { "coppa": 0, "ext": { "gdpr": 0 } }
}

BidRequest object

Top-level bid request. At least one imp is required, as is a means of identifying context via site or app.

AttributeTypeDescription
idstringUnique ID of the bid request, provided by the exchange.required
impobject[]Array of Imp objects; at least one is required.required
siteobjectSite object; recommended for a website. Mutually exclusive with app.
appobjectApp object; recommended for a non-browser app. Mutually exclusive with site.
deviceobjectDevice object; the device the impression will render on.
userobjectUser object; the human user of the device.
testintegerTest mode: 0 = live, 1 = test (no billing). Default 0.
atintegerAuction type. 1 = first price, 2 = second price plus. See Auction Type. Default 2.
tmaxintegerMaximum time in milliseconds the exchange allows for bids, from request receipt to response.
wseatstring[]Allow-list of buyer seats permitted to bid. Omission implies no restriction.
bseatstring[]Block-list of buyer seats restricted from bidding.
allimpsinteger1 if all impressions offered for this device/user are in this request. Default 0.
curstring[]Allowed currencies for bids, ISO-4217. Reticle sends a single entry.
wlangstring[]Allow-list of languages for creatives, ISO-639-1-alpha-2.
bcatstring[]Blocked advertiser categories, IAB content taxonomy.
badvstring[]Blocked advertiser domains (e.g. advertiser.com).
bappstring[]Blocked apps by platform-specific exchange bundle/app IDs.
sourceobjectSource object describing the inventory source and the supply chain.
regsobjectRegs object; regulatory conditions in force.
extobjectExchange-specific extensions.

Source object

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.

AttributeTypeDescription
fdintegerEntity responsible for the final impression sale decision: 0 = exchange, 1 = upstream source.
tidstringTransaction ID common across all participants in this bid request (e.g. across multiple exchanges).
pchainstringPayment ID chain string per the TAG Payment ID Protocol.
extobjectExtensions. Reticle carries schain (supply chain) here where present.

Regs object

Regulatory conditions in effect for all impressions in the request.

AttributeTypeDescription
coppaintegerFlag indicating the request is subject to COPPA: 0 = no, 1 = yes.
extobjectExtensions. 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.

AttributeTypeDescription
idstringImpression ID, unique within the bid request. Typically starts at 1.required
metricobject[]Array of Metric objects.
bannerobjectBanner object; present for a banner impression.
videoobjectVideo object; present for a video impression.
audioobjectAudio object; present for an audio impression.
nativeobjectNative object; present for a native impression.
pmpobjectPmp object; private marketplace deals applicable to this impression.
displaymanagerstringName of the ad mediation partner, SDK technology or player rendering the ad (for in-app).
displaymanagerverstringVersion of the above.
instlinteger1 = interstitial / full-screen, 0 = not. Default 0.
tagidstringIdentifier for specific ad placement or ad tag used to initiate the auction.
bidfloorfloatMinimum bid for this impression, CPM. Default 0.
bidfloorcurstringCurrency of bidfloor, ISO-4217. Default USD.
clickbrowserintegerBrowser type opened on click: 0 = embedded, 1 = native.
secureintegerRequire secure HTTPS creative assets and markup: 0 = non-secure, 1 = secure.
iframebusterstring[]Supported iframe busters.
expintegerAdvisory seconds between the auction and the actual impression.
extobjectExtensions.

Metric object

An optional metric — such as a viewability or click-through-rate estimate — for the impression, along with the vendor that computed it.

AttributeTypeDescription
typestringType of metric, e.g. viewability, session_depth.
valuefloatNumber representing the value of the metric; probabilities are in the range 0.0–1.0.
vendorstringSource of the value. EXCHANGE when the exchange itself computed it.
extobjectExtensions.

Banner object

Represents a banner impression or a companion for video/audio. Sizes may be given as one or more Format objects in format.

AttributeTypeDescription
formatobject[]Array of Format objects representing permitted sizes. Recommended over w/h.
wintegerExact width in DIPs; recommended if only one size.
hintegerExact height in DIPs; recommended if only one size.
btypeinteger[]Blocked banner ad types. See Banner Ad Types.
battrinteger[]Blocked creative attributes. See Creative Attributes.
posintegerAd position on screen. See Ad Position.
mimesstring[]Content MIME types supported (e.g. for HTML5 banners).
topframeintegerDelivery in the top frame (1) or an iframe (0).
expdirinteger[]Directions in which the banner may expand. See Expandable Direction.
apiinteger[]Supported API frameworks. See API Frameworks.
idstringUnique identifier, useful when Banner is a companion for video/audio.
vcmintegerFor companions: 0 = concurrent, 1 = end-card.
extobjectExtensions.

Video object

Represents an in-stream or in-banner video impression.

AttributeTypeDescription
mimesstring[]Supported content MIME types (e.g. video/mp4).required
mindurationintegerMinimum video ad duration in seconds.
maxdurationintegerMaximum video ad duration in seconds.
protocolsinteger[]Supported video protocols. See Protocols.
wintegerWidth of the video player in DIPs.
hintegerHeight of the video player in DIPs.
startdelayintegerStart delay for pre/mid/post-roll placements. See Start Delay.
placementintegerPlacement type. See Video Placement Types.
linearityintegerLinear vs non-linear. See Video Linearity.
skipintegerWhether the player allows skip: 0 = no, 1 = yes.
skipminintegerVideos of total duration greater than this may be skippable. Default 0.
skipafterintegerNumber of seconds a skippable video must play before skip is enabled. Default 0.
sequenceintegerPosition in a set of ads to be played in sequence.
battrinteger[]Blocked creative attributes. See Creative Attributes.
maxextendedintegerMaximum extended ad duration beyond maxduration.
minbitrateintegerMinimum bit rate in Kbps.
maxbitrateintegerMaximum bit rate in Kbps.
boxingallowedintegerLetter-boxing of 4:3 content into a 16:9 window: 1 = allowed. Default 1.
playbackmethodinteger[]Allowed playback methods. See Playback Methods.
playbackendintegerEvent that causes playback to end. See Playback Cessation.
deliveryinteger[]Supported delivery methods. See Content Delivery Methods.
posintegerAd position on screen. See Ad Position.
companionadobject[]Array of Banner objects for companion ads.
apiinteger[]Supported API frameworks. See API Frameworks.
companiontypeinteger[]Supported VAST companion types. See Companion Types.
extobjectExtensions.

Audio object

Represents an audio impression, e.g. in a music or podcast stream.

AttributeTypeDescription
mimesstring[]Supported content MIME types.required
mindurationintegerMinimum ad duration in seconds.
maxdurationintegerMaximum ad duration in seconds.
protocolsinteger[]Supported audio protocols. See Protocols.
startdelayintegerStart delay for pre/mid/post-roll. See Start Delay.
sequenceintegerPosition in a sequence of ads.
battrinteger[]Blocked creative attributes.
maxextendedintegerMaximum extended ad duration beyond maxduration.
minbitrateintegerMinimum bit rate in Kbps.
maxbitrateintegerMaximum bit rate in Kbps.
deliveryinteger[]Supported delivery methods.
companionadobject[]Array of Banner companion ads.
apiinteger[]Supported API frameworks.
companiontypeinteger[]Supported companion types.
maxseqintegerMaximum number of ads in a dynamic audio ad pod.
feedintegerType of audio feed. See Feed Types.
stitchedintegerWhether the ad is stitched into audio content: 1 = yes.
nvolintegerVolume normalization mode.
extobjectExtensions.

Native object

Represents a native impression. The native creative spec itself is carried as a serialized string in request per the IAB Native Ad Specification.

AttributeTypeDescription
requeststringNative markup request object, serialized as a string per the Native Ad spec.required
verstringVersion of the Native Ad spec to which request conforms.
apiinteger[]Supported API frameworks. See API Frameworks.
battrinteger[]Blocked creative attributes.
extobjectExtensions.

Format object

Represents an allowed size (height and width) or a ratio for a banner impression.

AttributeTypeDescription
wintegerWidth in device-independent pixels.
hintegerHeight in device-independent pixels.
wratiointegerRelative width when expressing size as a ratio.
hratiointegerRelative height when expressing size as a ratio.
wminintegerMinimum width in DIPs when a ratio is given.
extobjectExtensions.

Pmp object

The private marketplace container for direct deals between buyers and sellers that may apply to this impression.

AttributeTypeDescription
private_auctioninteger1 = only bids on deals in deals are accepted, 0 = all bids accepted. Default 0.
dealsobject[]Array of Deal objects.
extobjectExtensions.

Deal object

A specific deal struck between a buyer and seller, applicable to a direct or private-marketplace transaction.

AttributeTypeDescription
idstringUnique deal ID for this impression.required
bidfloorfloatMinimum deal price for this impression, CPM. Default 0.
bidfloorcurstringCurrency of bidfloor, ISO-4217. Default USD.
atintegerOptional override of the overall auction type: 1 = first price, 2 = second price, 3 = fixed price.
wseatstring[]Allow-list of buyer seats permitted to bid on this deal.
wadomainstring[]Allow-list of advertiser domains permitted to bid on this deal.
extobjectExtensions.

Site object

Details of the website. Present for web inventory; mutually exclusive with App.

AttributeTypeDescription
idstringExchange-specific site ID.
namestringSite name.
domainstringDomain of the site.
catstring[]IAB content categories of the site.
sectioncatstring[]IAB content categories of the current section.
pagecatstring[]IAB content categories of the current page.
pagestringURL of the page where the impression will be shown.
refstringReferrer URL that caused navigation to the current page.
searchstringSearch string that caused navigation to the current page.
mobileintegerMobile-optimized: 1 = yes, 0 = no.
privacypolicyinteger1 if the site has a privacy policy.
publisherobjectPublisher of the site.
contentobjectContent within the site.
keywordsstringComma-separated list of keywords about the site.
extobjectExtensions.

App object

Details of the non-browser application. Present for in-app inventory; mutually exclusive with Site.

AttributeTypeDescription
idstringExchange-specific app ID.
namestringApp name.
bundlestringPlatform-specific application identifier, e.g. the bundle or package name (com.example.game) or numeric store ID.
domainstringDomain of the app.
storeurlstringApp store URL for an installed app.
catstring[]IAB content categories of the app.
sectioncatstring[]IAB content categories of the current section.
pagecatstring[]IAB content categories of the current page/view.
verstringApplication version.
privacypolicyinteger1 if the app has a privacy policy.
paidinteger1 = paid app, 0 = free.
publisherobjectPublisher of the app.
contentobjectContent within the app.
keywordsstringComma-separated list of keywords about the app.
extobjectExtensions.

Publisher object

Details of the publisher of the site or app.

AttributeTypeDescription
idstringExchange-specific publisher ID.
namestringPublisher name.
catstring[]IAB content categories that describe the publisher.
domainstringHighest-level domain of the publisher (e.g. publisher.com).
extobjectExtensions.

Content object

Details of the content in which the impression will appear (independent of the site/app).

AttributeTypeDescription
idstringID uniquely identifying the content.
episodeintegerEpisode number.
titlestringContent title.
seriesstringContent series.
seasonstringContent season (e.g. Season 3).
artiststringArtist credited with the content.
genrestringGenre describing the content.
albumstringAlbum to which the content belongs (typically audio).
isrcstringInternational Standard Recording Code.
producerobjectProducer of the content.
urlstringURL of the content, for buy-side contextualization or review.
catstring[]IAB content categories of the content.
prodqintegerProduction quality. See Production Quality.
contextintegerType of content. See Content Context.
contentratingstringContent rating (e.g. MPAA).
userratingstringUser rating of the content (e.g. number of stars).
qagmediaratingintegerMedia rating per IQG guidelines.
keywordsstringComma-separated list of keywords describing the content.
livestreaminteger1 = live, 0 = on-demand.
sourcerelationshipinteger1 = direct, 0 = indirect.
lenintegerLength of the content in seconds (video/audio).
languagestringContent language, ISO-639-1-alpha-2.
embeddableinteger1 if the content is embeddable off the site/app.
dataobject[]Array of Data objects with additional content data.
extobjectExtensions.

Producer object

Defines the producer of the content in which an ad will be shown — distinct from the site or app publisher.

AttributeTypeDescription
idstringContent producer or originator ID.
namestringContent producer or originator name.
catstring[]IAB content categories describing the producer.
domainstringHighest-level domain of the content producer.
extobjectExtensions.

Device object

Information about the device through which the impression is offered, including hardware, platform, location and carrier.

AttributeTypeDescription
uastringBrowser user agent string.
geoobjectGeo object; location of the device.
dntintegerDo Not Track: 0 = tracking unrestricted, 1 = do not track.
lmtintegerLimit Ad Tracking: 0 = unrestricted, 1 = limited.
ipstringIPv4 address closest to the device.
ipv6stringIPv6 address closest to the device.
devicetypeintegerGeneral device type. See Device Type.
makestringDevice make (e.g. Apple).
modelstringDevice model (e.g. iPhone).
osstringDevice operating system (e.g. iOS).
osvstringDevice operating system version.
hwvstringHardware version of the device.
hintegerPhysical height of the screen in pixels.
wintegerPhysical width of the screen in pixels.
ppiintegerScreen size as pixels per linear inch.
pxratiofloatRatio of physical pixels to device-independent pixels.
jsintegerSupport for JavaScript: 0 = no, 1 = yes.
geofetchinteger1 if the geolocation API will be available to JavaScript in the ad.
flashverstringVersion of Flash supported by the browser.
languagestringBrowser language, ISO-639-1-alpha-2.
carrierstringCarrier or ISP (e.g. VERIZON), preferably using MCC-MNC.
mccmncstringMobile carrier as MCC-MNC (e.g. 310-005).
connectiontypeintegerNetwork connection type. See Connection Type.
ifastringID for Advertisers — the device advertising ID, unhashed.
didsha1stringHardware device ID (e.g. IMEI), SHA1-hashed.
didmd5stringHardware device ID, MD5-hashed.
dpidsha1stringPlatform device ID (e.g. Android ID), SHA1-hashed.
dpidmd5stringPlatform device ID, MD5-hashed.
macsha1stringMAC address of the device, SHA1-hashed.
macmd5stringMAC address of the device, MD5-hashed.
extobjectExtensions.

Geo object

Geographic location, appearing on both Device (physical device location) and User (user's home base).

AttributeTypeDescription
latfloatLatitude from -90.0 to +90.0, south negative.
lonfloatLongitude from -180.0 to +180.0, west negative.
typeintegerSource of the location data. See Location Type.
accuracyintegerEstimated location accuracy in metres (for GPS).
lastfixintegerSeconds since the geolocation fix was established.
ipserviceintegerService or provider used to derive geo from IP.
countrystringCountry code, ISO-3166-1-alpha-3.
regionstringRegion code, ISO-3166-2.
regionfips104stringRegion of a country using FIPS 10-4 (deprecated).
metrostringGoogle metro code / DMA.
citystringCity using UN/LOCODE.
zipstringZIP or postal code.
utcoffsetintegerLocal time as the number of minutes from UTC.
extobjectExtensions.

User object

Information about the human user of the device — the advertising audience.

AttributeTypeDescription
idstringExchange-specific ID for the user.
buyeruidstringBuyer-specific ID for the user, mapped by the exchange (from a cookie sync or similar).
yobintegerYear of birth as a 4-digit integer.
genderstringM, F or O.
keywordsstringComma-separated list of keywords, interests or intent.
customdatastringOptional buyer-specific data previously stored by the exchange.
geoobjectGeo object; the user's home base (not necessarily the current location).
dataobject[]Array of Data objects with additional user data.
extobjectExtensions. Carries the TCF consent string where applicable.

Data object

Additional data about a user or the content, keyed by a data provider (Segments).

AttributeTypeDescription
idstringExchange-specific ID for the data provider.
namestringExchange-specific name for the data provider.
segmentobject[]Array of Segment objects containing the actual data values.
extobjectExtensions.

Segment object

A specific data point about a user or piece of content — the key/value pairs within a Data object.

AttributeTypeDescription
idstringID of the data segment specific to the data provider.
namestringName of the data segment specific to the data provider.
valuestringString representation of the data segment value.
extobjectExtensions.

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.

BidResponse · JSON
{
  "id": "80ce30c53c16e6ede735f123ef6e32361bfc7b22",
  "bidid": "abc1123",
  "cur": "USD",
  "seatbid": [
    {
      "seat": "example-dsp",
      "bid": [
        {
          "id": "1",
          "impid": "1",
          "price": 0.5,
          "adid": "88ab13",
          "adm": "",
          "adomain": ["advertiser.com"],
          "cid": "campaign-9",
          "crid": "creative-112",
          "cat": ["IAB3-1"],
          "attr": [1],
          "w": 300,
          "h": 250,
          "nurl": "https://bid.example-dsp.com/win?i=${AUCTION_ID}&p=${AUCTION_PRICE}",
          "burl": "https://bid.example-dsp.com/billing?i=${AUCTION_ID}&p=${AUCTION_PRICE}"
        }
      ]
    }
  ]
}

BidResponse object

Top-level bid response. The id must match the request id. A response with no bids may be a 204 or a BidResponse with an empty or absent seatbid.

AttributeTypeDescription
idstringID of the bid request to which this is a response.required
seatbidobject[]Array of SeatBid objects; one per seat that wishes to bid.
bididstringBidder-generated response ID, for logging and tracing.
curstringBid currency, ISO-4217. Default USD.
customdatastringOptional data the bidder wants the exchange to store on the user; returned on future requests.
nbrintegerReason for not bidding. See No-Bid Reason Codes.
extobjectExtensions.

SeatBid object

A collection of bids made on behalf of a single buyer seat. A response may contain multiple.

AttributeTypeDescription
bidobject[]Array of one or more Bid objects for this seat.required
seatstringID of the buyer seat on whose behalf the bid is made.
groupinteger1 = bids must win/lose as a group (impression-level), 0 = independent. Default 0.
extobjectExtensions.

Bid object

A single bid on a specific impression. id, impid and price are required; the winning bid's markup is delivered in adm or fetched from nurl.

AttributeTypeDescription
idstringBidder-generated bid ID, for logging and tracing.required
impidstringid of the Imp this bid applies to.required
pricefloatBid price, CPM. Interpreted per the auction type. Always sent in the response currency.required
nurlstringWin notice URL, called on win. Markup may be returned here or via adm. Supports macros.
burlstringBilling notice URL, called when the impression is billable.
lurlstringLoss notice URL, called when the bid loses.
admstringCreative markup — the ad. Format depends on the impression type (HTML, VAST XML, native JSON).
adidstringID of a preloaded ad to be served if the bid wins.
adomainstring[]Advertiser domains of the creative (e.g. advertiser.com), for block-list checking.
bundlestringBundle or package name of the app being advertised (for install/app ads).
iurlstringURL of a sample image of the creative, for buyer-side content checking.
cidstringCampaign ID that the bid/creative belongs to.
cridstringCreative ID for reporting content issues or defects.
tacticstringTactic ID to enable buyers to label bids for reporting.
catstring[]IAB content categories of the creative.
attrinteger[]Creative attributes present. See Creative Attributes.
apiintegerAPI framework required to render the creative. See API Frameworks.
protocolintegerVideo response protocol of the markup. See Protocols.
qagmediaratingintegerCreative media rating per IQG guidelines.
languagestringCreative language, ISO-639-1-alpha-2.
dealidstringDeal ID if this bid pertains to a private marketplace deal.
wintegerCreative width in DIPs.
hintegerCreative height in DIPs.
wratiointegerRelative width when expressing size as a ratio.
hratiointegerRelative height when expressing size as a ratio.
expintegerAdvisory seconds the bidder is willing to wait between auction and impression.
extobjectExtensions.

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
1First price auction.
2Second price plus auction (default).
3Deal price (deprecated for use at request level; use Deal at).
500+Exchange-specific values.

No-Bid Reason Codes nbr

Value Meaning
0Unknown error.
1Technical error.
2Invalid request.
3Known web spider.
4Suspected non-human traffic.
5Cloud, data centre or proxy IP.
6Unsupported device.
7Blocked publisher or site.
8Unmatched user.
9Daily reader cap met.
10Daily domain cap met.

Banner Ad Types btype

Value Meaning
1XHTML text ad.
2XHTML banner ad.
3JavaScript ad.
4Iframe.

Creative Attributes attr

Value Meaning
1Audio ad, auto-play.
2Audio ad, user-initiated.
3Expandable, automatic.
4Expandable, user-initiated (click).
5Expandable, user-initiated (rollover).
6In-banner video ad, auto-play.
7In-banner video ad, user-initiated.
8Pop (e.g. over, under or upon exit).
9Provocative or suggestive imagery.
10Shaky, flashing, flickering, extreme animation, smileys.
11Surveys.
12Text only.
13User interactive (e.g. embedded games).
14Windows dialog or alert style.
15Has an audio on/off button.
16Ad provides a skip button (e.g. skippable video).
17Adobe Flash.

Ad Position pos

Value Meaning
0Unknown.
1Above the fold.
2May or may not be initially visible (deprecated).
3Below the fold.
4Header.
5Footer.
6Sidebar.
7Full screen.

Expandable Direction expdir

Value Meaning
1Left.
2Right.
3Up.
4Down.
5Full screen.

API Frameworks api

Value Meaning
1VPAID 1.0.
2VPAID 2.0.
3MRAID 1.0.
4ORMMA.
5MRAID 2.0.
6MRAID 3.0.
7OMID 1.0.

Video Linearity linearity

Value Meaning
1Linear / in-stream.
2Non-linear / overlay.

Protocols protocol / protocols

Value Meaning
1VAST 1.0.
2VAST 2.0.
3VAST 3.0.
4VAST 1.0 Wrapper.
5VAST 2.0 Wrapper.
6VAST 3.0 Wrapper.
7VAST 4.0.
8VAST 4.0 Wrapper.
9DAAST 1.0.
10DAAST 1.0 Wrapper.

Video Placement Types placement

Value Meaning
1In-stream.
2In-banner.
3In-article.
4In-feed.
5Interstitial / slider / floating.

Start Delay startdelay

Value Meaning
> 0Mid-roll; the value is the start delay in seconds.
0Pre-roll.
-1Generic mid-roll.
-2Generic post-roll.

Playback Methods playbackmethod

Value Meaning
1Auto-play on page load, sound on.
2Auto-play on page load, sound off.
3Play on click, sound on.
4Play on mouse-over, sound on.
5Play on entering viewport, sound on.
6Play on entering viewport, sound off by default.

Playback Cessation Modes playbackend

Value Meaning
1On completion, or when terminated by the user.
2On leaving the viewport, or when terminated by the user.
3On leaving the viewport continues as a floating/slider unit until completion or user termination.

Content Delivery Methods delivery

Value Meaning
1Streaming.
2Progressive.
3Download.

Companion Types companiontype

Value Meaning
1Static resource.
2HTML resource.
3Iframe resource.

Feed Types feed

Value Meaning
1Music service.
2FM/AM broadcast.
3Podcast.

Production Quality prodq

Value Meaning
0Unknown.
1Professionally produced.
2Prosumer.
3User-generated content (UGC).

Content Context context

Value Meaning
1Video (e.g. an in-stream video player).
2Game.
3Music.
4Application.
5Text.
6Other.
7Unknown.

Location Type type (Geo)

Value Meaning
1GPS / location services.
2IP address.
3User provided (e.g. registration data).

Device Type devicetype

Value Meaning
1Mobile / tablet (version 2.0).
2Personal computer.
3Connected TV.
4Phone.
5Tablet.
6Connected device.
7Set-top box.

Connection Type connectiontype

Value Meaning
0Unknown.
1Ethernet / wired.
2WIFI.
3Cellular network — unknown generation.
4Cellular network — 2G.
5Cellular network — 3G.
6Cellular 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.0Initial release: full OpenRTB 2.5 object model, endpoints and points of presence, token authentication, substitution macros, and no-bid / timeout handling.