Rubicon Project
Features
Bidder Code | rubicon | Prebid.org Member | yes |
---|---|---|---|
Media Types | display, video | GDPR TCF Support | yes |
User IDs | all | USP/CCPA Support | yes |
Supply Chain Support | yes | COPPA Support | yes |
Demand Chain Support | no | Safeframes OK | yes |
Supports Deals | yes | Prebid.js Adapter | yes |
IAB GVL ID | 52 | Prebid Server Adapter | yes |
Floors Module Support | yes | First Party Data Support | yes |
"Send All Bids" Ad Server Keys
These are the bidder-specific keys that would be targeted within GAM in a Send-All-Bids scenario. GAM truncates keys to 20 characters.hb_pb_rubicon |
hb_bidder_rubicon |
hb_adid_rubicon |
hb_size_rubicon |
hb_source_rubicon |
hb_format_rubicon |
hb_cache_host_rubico |
hb_cache_id_rubicon |
hb_uuid_rubicon |
hb_cache_path_rubico |
hb_deal_rubicon |
Registration
For both Prebid.js and Prebid Server, the Rubicon Project adapter requires setup and approval from the Magnite team, even for existing accounts. Please reach out to your account team or globalsupport@magnite.com for more information.
Bid Params
Name | Scope | Description | Example | Type |
---|---|---|---|---|
accountId |
required | The publisher account ID | 4934 |
integer |
siteId |
required | The site ID | 13945 |
integer |
zoneId |
required | The zone ID | 23948 |
integer |
position |
optional | Set the page position. Valid values are “atf” and “btf”. | 'atf' |
string |
userId |
optional | Site-specific user ID may be reflected back in creatives for analysis. Note that userId needs to be the same for all slots. | '12345abc' |
string |
floor |
optional | Sets the global floor – no bids will be made under this value. | 0.50 |
float |
latLong |
optional | Sets the latitude and longitude for the visitor (avail since PBJS 1.10) | [40.7608, 111.8910] |
Array<float> |
inventory |
optional | See below for details on First Party Data. In release 4.29 and earlier, this parameter allows the definition of an object defining arbitrary key-value pairs concerning the page for use in targeting. The values must be arrays. | {"rating":["5-star"], "prodtype":["tech","mobile"]} |
object |
visitor |
optional | See below for details on First Party Data. In release 4.29 and earlier, this parameter allows the definition of an object defining arbitrary key-value pairs concerning the visitor for use in targeting. The values must be arrays. | {"ucat":["new"], "search":["iphone"]} |
object |
keywords |
optional | See below for details on First Party Data. In release 4.29 and earlier, this can be used to influence reports for client-side display. To get video or server-side reporting, please use First Party data or the inventory/visitor parameters. | ['travel', 'tourism'] |
Array<string> |
video |
required for video | Video targeting parameters. See the video section below. | {"language": "en"} |
object |
First Party Data
In release 4.30 and later, publishers should use the ortb2
method of setting First Party Data. The following fields are supported:
- ortb2.site.ext.data.*
- ortb2.site.keywords
- ortb2.site.content.data[]
- ortb2.user.ext.data.*
- ortb2.user.data[]
With regards to Contextual and Audience segments, the Magnite exchange supports the IAB standard taxonomies. See the segment management user guide for more information.
Example first party data that’s available to all bidders and all adunits:
pbjs.setConfig({
ortb2: {
site: {
keywords: "kw1,kw2", // sent to Rubicon as 'keywords' available in reports for client-side display ads
ext: {
data: {
prodtype: ["tech","mobile"] // site.ext.data is sent to Rubicon as "inventory" data
}
}
},
user: {
ext: {
data: {
ucat:["new"] // user.ext.data is sent to Rubicon as "visitor" data
}
}
}
}
};
Example of first party data available only to the Rubicon Project bidder. Applies across all ad units.
pbjs.setBidderConfig({
bidders: ["rubicon"],
config: {
ortb2: {
site: {
keywords: "kw1,kw2", // sent to Rubicon as 'keywords' available in reports for client-side display ads
ext: {
data: {
prodtype: ["tech","mobile"] // site.ext.data is sent to Rubicon as "inventory" data
}
}
},
user: {
ext: {
data: {
ucat:["new"] // user.ext.data is sent to Rubicon as "visitor" data
}
}
}
}
}
};
For Prebid.js 4.29 and before, use the bidder specific AdUnit parameters noted above:
var adUnit = {
...
bids: [{
bidder: 'rubicon',
params: {
accountId: 7780, // replace account/site/zone params
siteId: 87184,
zoneId: 413290,
inventory: {
prodtype: ["tech","mobile"]
},
visitor: {
ucat:["new"]
}
}
}]
};
mediaTypes.video
The following video parameters are supported here so publishers may fully declare their video inventory:
Name | Scope | Description | Example | Type |
---|---|---|---|---|
context | required | instream or outstream | “outstream” | string |
playerSize | required | width, height of the player in pixels | [640,360] - will be translated to w and h in bid request | array |
mimes | required | List of content MIME types supported by the player (see openRTB v2.5 for options) | [“video/mp4”] | array |
protocols | required | Supported video bid response protocol values 1: VAST 1.0 2: VAST 2.0 3: VAST 3.0 4: VAST 1.0 Wrapper 5: VAST 2.0 Wrapper 6: VAST 3.0 Wrapper 7: VAST 4.0 8: VAST 4.0 Wrapper |
[2,3,5,6] | array |
api | required | Supported API framework values: 1: VPAID 1.0 2: VPAID 2.0 3: MRAID-1 4: ORMMA 5: MRAID-2 |
[2] | array |
linearity | required | OpenRTB2 linearity. 1: linear (in-stream ad), 2: non-linear (overlay ad) | 1 | integer |
maxduration | recommended | Maximum video ad duration in seconds. | 30 | integer |
minduration | recommended | Minimum video ad duration in seconds | 6 | integer |
playbackmethod | recommended | Playback methods that may be in use. Only one method is typically used in practice. (see openRTB v2.5 section 5.10 for options) | [2] | array |
skip | optional | Indicates if the player will allow the video to be skipped, where 0 = no, 1 = yes. | 1 | integer |
skipafter | optional | Number of seconds a video must play before skipping is enabled; only applicable if the ad is skippable. | 6 | integer |
minbitrate | optional | Minimum bit rate in Kbps. | 300 | integer |
maxbitrate | optional | Maximum bit rate in Kbps. | 9600 | integer |
startdelay* | recommended | Indicates the start delay in seconds for pre-roll, mid-roll, or post-roll ad placements. >0: Mid-Roll (value indicates start delay in second) 0: Pre-Roll -1: Generic Mid-Roll -2: Generic Post-Roll |
0 | integer |
placement* | recommended | Placement type for the impression. (see openRTB v2.5 section 5.9 for options) | 1 | integer |
bids.params.video
The following Rubicon Project-specific video parameters are supported:
Name | Scope | Description | Example | Type |
---|---|---|---|---|
size_id |
optional for Prebid.js, required for Prebid Server | Integer indicating the Rubicon Project video ad format ID. If not set, Prebid.js can infer from mediaTypes.video.context, placement, startDelay | 201 |
integer |
language |
recommended | Indicates the language of the content video, in ISO 639-1/alpha2. Highly recommended for successful monetization for pre-, mid-, and post-roll video ads. Not applicable for interstitial and outstream. | 'en' |
string |
Here’s a video example for Prebid.js 2.5 or later:
var videoAdUnit = {
code: 'myVideoAdUnit',
mediaTypes: {
video: {
context: 'instream',
playerSize: [640, 480],
mimes: ['video/mp4', 'video/x-ms-wmv'] // you must review all video
protocols: [2,3,5,6], // parameters to ensure validity
api: [2], // for your player and DSPs
maxduration:30,
linearity: 1
}
},
bids: [{
bidder: 'rubicon',
params: {
accountId: 7780, // replace params
siteId: 87184,
zoneId: 413290,
video: {
language: 'en'
}
}
}]
};
This example adunit will also work in Prebid.js 2.4 and earlier, but mimes, protocols and api are not required.
We recommend discussing video demand with your Magnite account representative.
Lists of values are in the OpenRTB 2.5 documentation as referenced above.
Outstream Video
As of Prebid.js 4.37 Magnite’s Rubicon Project adapter supports outstream video in two ways: using your own renderer or using ours. See the Prebid.org Outstream documentation for more information on using your own renderer.
Outstream Renderer
The Magnite outstream renderer is a JavaScript tag that will load our outstream video player and render when it is 50% or more in view, pause when it’s more than 50% out of view, and close when the ad has completed playing.
The renderer appearance can be configured with the following parameters, all of them optional. If any parameter is missing, the default value will be used. All options are case-sensitive and unknown options will be ignored. Additional advanced options are available by calling your Magnite account representative.
pbjs.setConfig({
rubicon: {
rendererConfig: {
align: 'center', // player placement: left|center|right (default is center)
position: 'append' // position relative to ad unit: append|prepend|before|after (default is after)
closeButton: true, // display 'Close' button (default is false)
label: 'Advertisement', // custom text to display above the player (default is '-')
collapse: true // remove the player from the page after ad playback (default is true)
}
}
});
- The Rubicon Project adapter does not make concurrent banner and video requests. Instead, the adapter will send a video request if bids[].params.video is supplied, else a banner request will be made.
Configuration
Single-Request
By default, the Rubicon Project adapter sends one request to rubiconproject.com for each AdUnit. For example, if there are 4 PBJS AdUnits defined on the page, you’ll see 4 calls out to rubiconproject.com/fastlane.json.
As of PBJS 1.12, the Rubicon Project adapter supports Single Request
mode, where all AdUnit requests are made in a single call to rubiconproject.com. To turn this feature on, call setConfig
:
pbjs.setConfig({
rubicon: {singleRequest: true}
});
Notes
1) There can only be one siteId and zoneId in an AdUnit bid. To get bids on multiple sitesIds or zoneIds, just add more ‘rubicon’ entries in the bids array.
2) Bids through the Rubicon Project Exchange are by default ‘net’. For certain use cases it is possible for publishers to define a bid as either ‘net’ or ‘gross’. In either case the Rubicon platform does not signal externally to other systems either bid state.
For Prebid, the Rubicon Project bid adapter reports the revenue type as ‘gross’ by default before 2.35 and ‘net’ by default in 2.35 and later (as the vast majority of accounts are net and all new accounts are net).
It’s important to note that what the Rubicon Prebid bid adapter reports is not directly related to the setting with the Rubicon Project exchange. If you are a publisher who has set your Rubicon exchange revenue type set to ‘gross’ and you’d like the Rubicon bid adapter to also report ‘gross’, you can change the 2.35+ default ‘net’ setting in Prebid.js with:
pbjs.setConfig({ rubicon: {netRevenue: false} });