Releases: prebid/Prebid.js
Prebid 0.15.0 Release
New Features
- New adapter: RhythmOne (#657 - @jstocker76)
- New adapter: Vertoz (#789 - @Prebid-Vertoz)
- New adapter: AdKernel (#739 - @ckbo3hrk)
- New adapter: Conversant Media (#708 - @msahagu2)
New Adapters
RhythmOne
{
bidder: 'rhythmone',
params: {
placementId: "549",
zone: "hb",
path: "mvo"
}
}
Vertoz
{
bidder: 'vertoz',
params: {
placementId:'VZH123' //REQUIRED AD unit id
}
}
AdKernel
{
bidder: 'adkernel',
params: {
zoneId : '30164',
host : 'cpm.metaadserving.com'
}
}
Conversant Media
{
bidder: 'conversant',
params: {
site_id: '87293'
}
}
Maintenance
- Updated the AMP example to allow config passed as amp-ad json attribute (#779 - @protonate)
- remove nyan cat reporter as it slows down tests considerably (#778 - @protonate)
- HIRO Media Adaptor : Update server request parameter names and JSDoc annotations (#781 - @ronenst)
- getPresetTargeting no longer used (#771 - @protonate)
- Handle rubicon targeting and default bidder settings (#743 - @snapwich)
- Use proper MAS size ordering and mapping for rubiconLite adapter (#765 - @snapwich)
- RubiconLite is now just Rubicon and "rubicon" aliases "rubiconLite" (#783 - @snapwich)
- Add version to global namespace (#794 - @yconoclast)
- PulsePoint Adapter - Support for additional parameters (#784 - @anand-venkatraman)
Bug Fixes
- Resolve IE 10 unit tests failures related to ajax requests. (#768 @mkendall)
- Fixes #590 Filter bid arrays using adUnitsFilter function (#750 - @protonate)
- Adblade adaptor size fix so that it works for both "[[w, h]]" or "[w, h]" (#744 - @frazjp65)
- wrap getTopWindowUrl in try/catch for iframed cases (#788 - @protonate)
- Adform adapter tests fixed for IE 9 #769 (#793 - @braizhas)
- Change the way sendStandardTargeting works (#741 - @snapwich, #787 - @protonate)
- Babel plugin fixes to make the generated code syntax valid in ie8 (#799 - @ojotoxy)
- Fix 'skippable' targeting typo (#804 - @matthewlane)
Prebid 0.14.0 Release
New Features
- New adapter: HIRO Media (#660 - @ronenst)
- New adapter: Roxot (#633 - @kir-roxot)
- New adapter: AdButler (#707 - @dharton)
- New adapter: Komoona (#626 - @itayo155)
- New adapter: rubiconLite adapter (#740 - @snapwich)
- New feature: Custom cpm bucket sizing (#742 - @mkendall07)
- New feature:
pbjs.setBidderSequence
to shuffle order bidders are called in (#760 - @matthewlane) - New feature: AMP Integration example (Alpha) (#756 - @protonate)
- New feature:
pbjs.getHighestCpmBids
for getting winning bids (#755 - @matthewlane)
Custom cpm bucket sizing
- This feature will allow finer control over the CPM bucket sizing, precision and caps.
Example:
const customConfigObject = {
"buckets" : [{
"precision" 2, //default is 2 if omitted - means 2.1234 rounded to 2 decimal places = 2.12
"min" : 0,
"max" : 5,
"increment" : 0.01,
},
{
"precision" 2,
"min" : 5,
"max" : 8,
"increment" : 0.05,
},
{
"precision" 2,
"min" : 8,
"max" : 20,
"increment" : 0.5
}]
};
//set custom config object.
$$PREBID_GLOBAL$$.setPriceGranularity(customConfigObject);
API method pbjs.setBidderSequence
to shuffle the order bidders are called
- Adds api method
pbjs.setBidderSequence
to set the order bidders are called in. The method takes an argumentorder
that currently accepts the string'random'
to shuffle the sequence bidders are called in. If the sequence is not set with this method, the bidders are called in the order they are defined within theadUnit.bids
array on page which is the current default.
Example use:
pbjs.setBidderSequence('random');
AMP Integration example (Alpha)
- An example of integrating Prebid.js into an AMP page to fill
<amp-ad>
components with Prebid demand.
See /integrationExamples/gpt/amp/
for example files and instructions.
API method pbjs.getHighestCpmBids
for retrieving winning bids
- Adds pbjs.getHighestCpmBids to public api for retrieving winning bids.
pbjs.getHighestCpmBids() => array of winning bid objects for each ad unit on page
pbjs.getHighestCpmBids(adUnitCode) => array with the winning bid object for the given ad unit
New Adapters
HIRO Media
{
bidder: 'hiromedia',
params: {
accountId: 'test'
}
}
(by default only 300x250
will have bid requests sent)
Roxot
{
bidder: 'roxot',
params: {
"publisherId": "bea17352-fb94-490d-b206-45096c96dbbc"
}
}
AdButler
{
bidder: 'adbutler',
params: {
accountID : '167283', //required
zoneID : '210093', //required
minCPM: '1.00', //optional
maxCPM: '5.00', //optional
keyword : 'green' //optional
}
}
Komoona
{
bidder: 'komoona',
params: {
hbid : '386c04fc5b36-468a-8bd8-7f622065a',
placementId: '809af69d0e3cbacc4efe7077c19ba29d'
}
}
RubiconLite
Optimized version of the RubiconProject adapter.
{
bidder: 'rubiconLite',
params: {
//same as the existing rubicon adapter
}
}
Maintenance
- Sonobi adapter refactored for params, config settings, video, floor, deals, and unit tests (#639 - @Studnicky)
- indexExchange adapter added new bid parameter size for differentiating size configurations (#654 - @indexexchange)
- indexExchange adapter added test mode support with pbjs_ix_debug=sandbox query string (#655 - @indexexchange)
- Address unit tests failures (#642) by stubbing, rather than spying on,
adLoader
in tests. This prevents requesting resources that are not always script responses and should resolve observedscript errors
. (#678 - @mkendall07) - appnexusAst adapter updated to find the ad with an rtb property with new
getRtbBid
function (#679 - @protonate) - Rubicon adapter updated to register individual responses as they come in individually using a new Fastlane event (#676 - @snapwich)
- README updated to explain where to run the
npm install
(#682 - @dugwood) - Optimize AOL adapter and heavily reduce the size (#653 - @marian-r)
- Adapter loader refactor for unit testing (#698 - @mhipszki )
- Add GitHub issue template (#714 - @matthewlane )
- Add config for testing iOS on Browserstack (#726 - @matthewlane)
- Deal handling added in Adform adapter (#723 - @braizhas)
- UnderdogMedia refactored the code and added optional divId param (#720 - @ojotoxy)
- Sonobi Adapter: Add explicit referrer for embedded iFrame auctions (#677 - @Studnicky)
- Adform adapter refactoring (#677 - @braizhas)
- Add contribution guidelines (#761 - @matthewlane)
- Suppress bid requests when bidder has no defined size (#758 @mkendall07)
Bug Fixes
- Allow bid to be zero for the floor price to work (#685 - @dugwood)
- Fix processCallbacks to accept an optional list of arguments (#717 - @csirmaz)
- Set
ref
param correctly in Sonobi adapter (#712 - @edahood-sonobi) - Fix bug in
sendStandardTargeting
filter function (#719 - @snapwich) - Fix retrieving 3rd party pixels from bid response in AOL adapter (#732 - @marian-r)
- Memeglobal adapter bug fix - added host in url (#737 - @AlexStanovsky)
- Add workaround to prevent IX adapter from ending auction early (#763 - @protonate)
Prebid 0.13.1 Release
New Features
- New adapter: DefyMedia (#650- @mkendall07)
- Support for device size detection and size mapping - see below (#651- @mkendall07)
adUnit.sizeMapping
- Prebid.js now supports variable sizing based on device width detected.
-Example configuration:
var adUnit = {
code: 'code',
sizeMapping: [ //new!
{
minWidth : 1024, //if device screen width is greater than 1024, use these sizes
sizes : [[300,250],[728,90]]
},
{
minWidth : 480, //if device screen width is < 1024 && > 480, use these sizes
sizes : [120,60]
},
{
minWidth : 0, //if device screen width is < 480 && > 0, use these sizes
sizes : [20,20]
}
],
bids: [...]
}
-If sizeMapping
is defined, then using adUnit.size
param is optional. If device screen width is not able to be determined, the adUnit.size
will be used.
New Adapters
DefyMedia
DefyMedia is available as a AppNexus aliased bidder.
{
bidder: 'defymedia',
params: {
placementId : '12345',
}
}
Maintenance
- New sizes available on Rubicon Adapter (#646, #649 - @mlommatzsch, @tegner)
- add an
--https
flag to run local dev server over https (#670 - @protonate)
Bug Fixes
- Stabilize unit tests by fixing random TypeErrors - various commits (#642 - @matthewlane )
- Initial value 0 for adder. (#656 - @CarsonBanov )
- fixed bug with using non standard "standard" keys and alwaysSendBid config (#665 - @mkendall07 )
- XDomainRequest does not support
readyState
(#668 - @mkendall07) - test ie variant of url parse pathname (#669 - @protonate)
Prebid 0.13.0 Release
New Features
- New adapter: Centro (#556 - @Niksok)
- New adapter: Adblade (#587 - @frazjp65)
- New adapter: Piximedia (#595 - @christopher-allene-piximedia)
- New adapter: GetIntent (#579 - @dmart28)
- Video Support (Beta) - See details below.
- Support for pbjs.bidderSetting "suppressEmptyKeys". (#558 - @snapwich)
- Custom sendStandardTargeting implemented in bidderSettings per bidder (#559 - @snapwich)
- Support for ie9 in ajax helper function (#570 - @snapwich)
- Adding deal support to Openx adapter #596 (#601 - @jaiminpanchal27)
- Add IX Deal Support for IndexExchange adapter (#638 - @indexexchange)
Video Support (Beta)
- Prebid.js now supports video adUnits, defining bidders as video-enabled, and building a master video tag.
- adUnits can support video demand requests by setting
mediaType
tovideo
. When an adUnit is configured to support video, all bidders within that adUnit must be video-enabled as well, as configured inadapters.json
.
const adUnit2 = {
code: topSlotCode,
mediaType: 'video',
sizes: topSlotSizes,
bids: [
{
bidder: 'appnexusAst',
params: {
placementId: 'id',
}
]
};
- Define bidders as video-enabled in
adapters.json
Currently only "appnexusAst" is supported for video. We expect other adapters to start updating their code to support video in the future.
{
"appnexusAst": {
"supportedMediaTypes": ["video"]
}
}
Note that media type banner
is implied for existing adapters.
- Build a master video tag with
pbjs.buildMasterVideoTagFromAdserverTag(adserverTag, options)
. Example usage:
const adserverTag = '<dfp_tag>'; // base ad server tag, see: https://support.google.com/dfp_premium/answer/1068325
const options = {
'adserver': 'dfp',
'code': 'video1' // code that matches the video adUnit declared above
};
// generate URL
const masterTagUrl = pbjs.buildMasterVideoTagFromAdserverTag(adserverTag, options);
// send masterTagUrl to the video player
invokeVideoPlayer(masterTagUrl);
New pbjs.bidderSettings
- Keys with no value can be suppressed from the ad server by setting
suppressEmptyKeys
totrue
. The default for this key isfalse
.
$$PREBID_GLOBAL$$.bidderSettings =
{
standard: {
suppressEmptyKeys: true,
adserverTargeting: [
{
key: "aKeyWithAValue",
val: 42
},
{
key: "aKeyWithAnEmptyValue",
val: ""
}
]
}
};
- Setting
sendStandardTargeting
tofalse
will prevent the standard targeting values from being sent to the ad server. In the example below, only thecustom
key will be sent to the ad server.
$$PREBID_GLOBAL$$.bidderSettings =
{
appnexus: {
alwaysUseBid: true,
sendStandardTargeting: false,
adserverTargeting: [
{
key: "hb_bidder",
val: function (bidResponse) {
return bidResponse.bidderCode;
}
},
{
key: "hb_adid",
val: function (bidResponse) {
return bidResponse.adId;
}
},
{
key: "hb_pb",
val: function (bidResponse) {
return bidResponse.pbHg;
}
},
{
key: "custom",
val: 42
}
]
}
};
New Adapters
Centro
{
bidder: 'centro',
params: {
unit: 28136,
}
}
Adblade
{
bidder: 'adblade',
params: {
partnerId: 39875,
bidfloor: 0.01 // OPTIONAL float bid floor in $ CPM
}
}
Piximedia
{
bidder: 'piximedia',
params: {
siteId: 'PIXIMEDIA',
placementId: 'PREBID'
}
}
GetIntent
{
bidder: 'getintent',
params: {
pid: '7',
tid: 'prebid_test',
}
}
Maintenance
- End2end testing (#571 - @jaiminpanchal27)
- Karma opens debug.html by default (#540 - @protonate)
- Log unsupported ad type only for good bids (#547 - @matthewlane)
- getBidderCodes now loops over adUnits object if passed (#557 - @snapwich)
- Added rubicon adapter unit tests and renamed var to bidderRequest to be more accurate (#576 - @snapwich)
- Set bid response ID to bid request ID for triplelift. (#567 - @nanek)
- Set bid response ID to bid request ID for aardvark. (#568 - @nanek)
- Update Sonobi adapter for: config settings, video, floor, deals, unit tests (#591 - @Studnicky)
- Make jshint errors more obvious. (#603 - @mkendall07)
- Add back legacy DFP example. Update instant load method to mitigate issue #419 - race condition fix. (#569 - @mkendall07)
- Prevent renderAd from overwriting the website DOM document (#607 - @kasparsd)
- Allow bypassing ajax preflights with config options (#630 - @matthewlane)
- Added timeouts to rubicon adapter that consider time-to-start costs (#629 - @snapwich)
Bug Fixes
- Ensure that all deal bid keys are truncated to DFP max length - #578 (#580 - @indexexchange)
- Deal override fix to resolve #618 (#619 - @indexexchange)
- Use var ad instead of incorrect ads in rubicon adapter (#546 - @snapwich)
- Restore url.js and modifications to ajax.js (#551 - @protonate)
- Fixed error in safari (#555 - @dmitriyshashkin)
- Add withCredentials into appnexusAst adapter request. (#573 - @mkendall07)
- Fix(krux): add undefined checks for no bid responses to kruxlink adapter (#584 - @sethyates)
- Callback deleted before calling clearAuction (#636 - @protonate)
- Use
splice
rather thanslice
to remove bids from array (#637 - @protonate) - Modify handling of no-bids in Krux Link adapter (#628 - @jgreens)
- Accept custom timeout (#641 - @protonate). You may see less bids eligible to participate in the auction as a result. We have added
$$PREBID_GLOBAL$$.timeoutBuffer
to mitigate the affect of the hard timeout value. This value can be adjusted up/down for publisher to fine tune results. - Fixed 'pbjs is not defined' error (#640 - @mkendall07)
Removed
- Unused build dependencies (#622 - @matthewlane)
Prebid 0.12.0 Release
This version of Prebid.js brought to you by over 20 members of the open source community. Thank you for supporting open source software.
New Features
- New Adapter: J Carter Marketing Contributed by @JCarterGw
- New Adapter: Underdog Media Contributed by @ojotoxy
- New Adapter: Meme Global Contributed by @naamushka
- New API method
getAllWinningBids
Contributed by @d6u - New Event: Auction End Contributed by @ialex
- Full bid object available to
bidderSettings[bidderCode].bidCpmAdjustment
Contributed by @CarsonBanov
New adapter for J Carter Marketing - how to add
var adUnits = [
{
code: '/9968336/header-bid-tag-0',
sizes: [[300, 250], [300, 600]],
bids: [
{
bidder: 'jcm',
params: {
}
}
]
}
];
New adapter for Underdog Media - how to add
var adUnits = [
{
code: '/9968336/header-bid-tag-0',
sizes: [[300, 250], [300, 600]],
bids: [
{
bidder: 'underdogmedia',
params: {
siteId: 'TO ADD'
}
}
]
}
];
New adapter for Meme Global - how to add
var adUnits = [
{
code: '/9968336/header-bid-tag-0',
sizes: [[300, 250], [300, 600]],
bids: [
{
bidder: 'memeglobal',
params: {
tagid: TO_ADD
}
}
]
}
];
New API Method: getAllWinningBids
New Event: auctionEnd
An Auction End event is fired when an auction has completed.
Full bid object available to bidCpmAdjustment
bidderSettings[bidderCode].bidCpmAdjustment
now receives the full bid object.
Maintenance
- @matthewlane appnexusAst single request to
ut
endpoint - @protonate Set Bid Response ID to Bid Request ID
- @protonate Cache library scripts to improve performance
- @protonate Queue bid requests
- @nanek Update Triplelift to match bid request & response IDs
- @matthewlane Update AppNexus AST to match bid request & response IDs
- @CLKeenan
getLoadTimeDistribution
sorting fix - @mkendall07 exclude
polyfill.js
from code coverage - @mkendall07 run tests using Travis CI
- @protonate add Coveralls code coverage reporting
- @matthewlane deprecate use of Bower
- @mkendall07 fail build on jshint errors
- @protonate remove bid request lookup fallback
- @nanek Unit tests for Aardvark adapter
- @nanek Unit tests for TripleLift adapter
Bug fixes in this release
- @therazor Fixes to timeout and
timedOutBidders
- @snapwich Call
externalOneTimeCallback
only once - @ehoch IE
includes
polyfill fix - @jaiminpanchal27 IE
find
polyfill fix - @matthewlane Fix
parseInt
errors in some browsers - @snapwich Fix remove ad unit iteration
- @snapwich Rubicon adapter support multi-size bid requests
- commit log here: 0.11.0...0.12.0)
Prebid 0.11.0 Release
New Features
- New Event: initAuction A new event is emitted at the start of an auction #441
- Specify adapters to build from CLI Keep config for adapters to load in separate file #424 (closes #420) contributed by @mhipszki
- Custom Namespace for
pbjs
Set the Prebid global variable #409 - contributed by @nedstankus, #293 & #257 - contributed by @ojotoxy, closes #115
Maintenance
- @nanek Update sovrn adapter to add empty bids for any request where no bid is returned. (#425)
- @tiffwu Updates to TripleLift adapter (#440)
- @matthewlane Remove legacy browser implementation check. Closes #403 (#442)
- @matthewlane Update gulp commands to run under Node 4.x (#438)
- @CarsonBanov Sovrn adapter handles custom sizes (#423)
- @relegit Added support for single size in Adequant adapter(#429)
- @ajsouza Small alteration to Rubicon Project adapter (#430)
- @mkendall07 Async call made for Pubmatic adapter (#356)
- @protonate Invoke bids back callback if adUnits empty (#454)
- @mkendall07 Misc linter errors silenced in build (#450)
Bug fixes in this release
- @jaiminpanchal27 Fix clearTargeting erasing pub keys (#446)
- commit log here: 0.10.0...0.11.0)
Prebid 0.10.0 Release
This release of Prebid.js highlights another milestone in the growth of the project: over 20 bidder adapters are now included. The community continues to grow with people joining in on reporting bugs, suggesting features and providing code. Thank you for supporting open source software.
New Features
- Enable Deals in Prebid Return a
dealId
in a bid response and include with ad server targeting - New adapter for RTK Aardvark (contributed by @naegelin)
- New adapter for WideOrbit (contributed by @bjorn-wo)
- New adapter for Sekindo (contributed by @sekindo)
- New adapter for Krux Link (contributed by @sethyates)
- New adapter for AdMedia (contributed by @devmusings)
Maintenance
- Add 3 additional size options to Rubicon adapter (contributed by @aurelienjoneau)
Enable Deals in Prebid
If a dealId
is returned in the bid response it will be included in ad server targeting. Learn more about how to enable deals in Prebid.
New adapter for RTK Aardvark - how to add
var adUnits = [
{
code: '/9968336/header-bid-tag-0',
sizes: [[300, 250], [300, 600]],
bids: [
{
bidder: 'aardvark',
params: {
//The RTK Auction ID
ai: "TO ADD",
//The RTK Ad Unit ID (shortcode)
sc: "TO ADD"
}
}
]
}
];
New adapter for WideOrbit - how to add
var adUnits = [
{
code: '/9968336/header-bid-tag-0',
sizes: [[300, 250], [300, 600]],
bids: [
{
bidder: 'wideorbit',
params: {
pbId: 123, // REQUIRED Publisher Id,
pId: 123456 // REQUIRED Placement Id
}
}
]
}
];
New adapter for Sekindo - how to add
var adUnits = [
{
code: '/9968336/header-bid-tag-0',
sizes: [[300, 250], [300, 600]],
bids: [
{
bidder: 'sekindo',
params: {
spaceId: 14071, // REQUIRED int. To get one, contact http://www.sekindo.com
bidfloor: 0.2 // OPTIONAL float bid floor in $ CPM
}
}
]
}
];
New adapter for Krux Link - how to add
var adUnits = [
{
code: '/9968336/header-bid-tag-0',
sizes: [[300, 250], [300, 600]],
bids: [
{
bidder: 'kruxlink',
params: {
impid: 37
}
}
]
}
];
New adapter for AdMedia - how to add
var adUnits = [
{
code: '/9968336/header-bid-tag-0',
sizes: [[300, 250], [300, 600]],
bids: [
{
bidder: 'admedia',
params: {
//Publisher ID
aid: '1234' //Use 1234 for test ads
}
}
]
}
];
Bug fixes in this release
- GPT Clear Targeting Fix: #391
- IndexExchange issue with clearing old bids: #396
- commit log here: 0.9.2...0.10.0)
Prebid 0.9.2 Release
This maintenance and bug fix release of Prebid.js brought to you by over 15 members of the developer community. Thank you for supporting open source software.
New Features
- Handle Ties Deterministically #381 (contributed by @CarsonBanov)
- Add support for 'dense' price granularity mode
Maintenance
- Restore return format of bidsBackHandler callback #371
- Test Coverage for public API at 100% #361
- Sonobi adapter support for single-size array #339 (contributed by @Studnicky)
- Sizes added to Rubicon adapter (contributed by @bretg)
- #349 Refactor of Prebid
- Add code climate badge
- Add travis-ci badge
- #341 Add isitmaintained.com badges
- added info-level log message to
setPriceGranularity()
(contributed by @eyedar)
Handle Ties Deterministically
Ties for winning bid will now go to the first bid response received.
New 'dense' option for pbjs.setPriceGranularity()
pbjs.setPriceGranularity('dense')
will set price bucket targeting as shown:
cpm | granularity |
---|---|
cpm <= 3 | .01 increments |
cpm <= 8 | .05 increments |
cpm <= 20 | .50 increments |
cpm > 20 | pb capped at 20 |
Bug fixes in this release
- #346 Fix "Add a Bidder Adapter" link in README (contributed by @kyleslattery)
- Fix
pbjs.enableSendAllBids()
when using DivId for your adunit.code - #344 Test pbjs.renderAd public api function
- #331 Don't set targeting for CPM of zero (contributed by @mmilleruva)
- Only call OpenX setPageURL, setRefererURL, and addPage if the options are set (contributed by @jamarzka)
- Update line item creative code to handle cases when window.top does not hold pbjs
- Address #171 - updated code example
- #337 Fix issue - enable requesting to DFP even if prebid.js isn't loaded yet
- Fix for Object.assign missing from IE
- commit log here: 0.8.1...0.9.2)
Prebid 0.8.1 Release
This patch release contains some important updates.
Also as additional adapters are added it is not recommended to build and run Prebid.js with all available adapters. Therefore we are moving the latest CDN hosted version to a ./not-for-prod/.prebid.js
path.
Production implementations should build from source with only required adapters or customize the Prebid.js build easily using the Download page: http://prebid.org/download.html
New Features
- New API method
pbjs.enableSendAllBids()
set Prebid to send targeting keys for all bidders to ad server - Add bidFloor parameter for AOL adapter #324 contributed by @kizzard
New API method pbjs.enableSendAllBids()
pbjs.enableSendAllBids()
can be called from the implementation page which will set Prebid to include targeting information for each bidder returned in a call to requestBids()
when making an ad server request. This call needs to be made before the call to pbjs.setTargetingForGPTAsync()
.
Targeting key/pairs would then look like this:
{
"hb_bidder": "appnexus",
"hb_adid": "191f4aca0c0be8",
"hb_pb": "10.00",
"hb_size": "300x250",
"hb_bidder_springserve": "springserve",
"hb_adid_springserve": "129a7ed7a6fb40e",
"hb_pb_springserve": "10.00",
"hb_size_springserve": "300x250",
"hb_bidder_triplelift": "triplelift",
"hb_adid_triplelift": "1663076dadb443d",
"hb_pb_triplelift": "10.00",
"hb_size_triplelift": "0x0",
"hb_bidder_appnexus": "appnexus",
"hb_adid_appnexus": "191f4aca0c0be8",
"hb_pb_appnexus": "10.00",
"hb_size_appnexus": "300x250",
"hb_bidder_pagescience": "pagescience",
"hb_adid_pagescience": "2024c6abebaa183",
"hb_pb_pagescience": "10.00",
"hb_size_pagescience": "300x250",
}
any custom targeting will continue to take precedence over defaults.
Add bidfloor parameter for AOL adapter
The AOL adapter now accepts a bidfloor
param as:
{
bidder: 'aol',
params: {
network: '1234',
placement: 45656,
bidFloor : '10' // String - optional bid floor amount in dollars
}
}
Bug fixes in this release
- #323 Patch indexExchange adapter to allow more than 20 slots to be requested (contributed by @indexexchange)
- #325 Use
package.json
to populate version information (contributed by @steven-hadfield) - #318 Remove unneeded variable (contributed by @mmilleruva)
- commit log here: https://github.com/prebid/Prebid.js/compare/0.8.0...0.8.1)
Prebid 0.8.0 Release
This version of Prebid.js brought to you by over 20 members of the developer community. Thank you for supporting open source software.
You can improve performance by loading the Prebid and GPT libraries in parallel. See the example pages for changes to be made to the page to achieve this. (ht to @BartVB for the suggestion).
New Features
- Prebid.org download page Easily customize Prebid.js build http://prebid.org/download.html
- New adapter for Sonobi (contributed by @astudnicky, closes #90)
- New adapter for Brightcom (contributed by @matan-ybrant)
- New adapter for Adequant (contributed by @relegit)
- New API for
pbjs.setPriceGranularity()
adjust price bucket granularity in one line - Alias adapters with config setting Specificy aliases in
package.json
"adapters" - Metadata added "REPO_AND_VERSION" available in
constants.json
to get repo owner, library and version info (contributed by @cliffliang) - Analytics Customization Support for Google Analytics named trackers (contributed by @bborn, closes #291)
- Always send default keys Always use default bid key/value pairs in addition to any customizations (#295)
- Performance Improvements load
prebid
andgpt
in parallel (suggested by @BartVB, closes #276) - Code quality & style reports in terminal (run
gulp quality
checks before opening PRs) - New consolidated library for AOL (contributed by @sneako)
- Multiple size slot support in IndexExchange adapter (contributed by @indexexchange)
New adapter for Sonobi - how to add:
var adUnits = [{
code: '/9968336/header-bid-tag-0',
sizes: [[300, 250], [300, 600]],
bids: [{
bidder: 'sonobi', // New format
params: {
dom_id: 'PER SLOT', // <String> dom Id
ad_unit:'PER SLOT' // <String> ad unit code
}
},
{
bidder: 'sonobi', // Old account format
params: {
dom_id: 'PER SLOT', // <String> dom Id
placement_id:'PER SLOT' // <String> placement Id
}
}]
}];
New adapter for Brightcom - how to add
var adUnits = [
{
code: '/9968336/header-bid-tag-0',
sizes: [[300, 250], [300, 600]],
bids: [
{
bidder: 'brightcom',
params: {
tagId: 12345 // Tag ID supplied by Brightcom - brightcom.com
}
}
]
}
];
New adapter for Adequant - how to add:
var adUnits = [{
code: '/9968336/header-bid-tag-0',
sizes: [[300, 250], [300, 600]],
bids: [{
bidder: 'adequant',
params: {
publisher_id: '1234567', // REQUIRED int or str publisher ID. To get one, register at https://control.adequant.com
bidfloor: 0.01 // OPTIONAL float bid floor in $ CPM
}
}
]}
}];
New API for pbjs.setPriceGranularity()
pbjs.setPriceGranularity
is a Prebid API method to configure which price bucket is used for "hb_pb". The accepted values are, "low", "medium", "high" and "auto", with "medium" being the default. Also introduces the "auto" price bucket which applies a sliding scale to determine granularity as:
cpm | granularity |
---|---|
cpm < 5 | .05 increments |
cpm > 5 and < 10 | .10 increments |
cpm > 10 and < 20 | .50 increments |
cpm > 20 | pb capped at 20 |
Alias adapters with config setting
Adapter aliases can be specified in the "adapters" section of ./package.json
. You can pass an object in the adapters array as shown:
"adapters": [
"triplelift",
"rubicon",
{ "appnexus": {"alias": "brealtime"} }
]
This syntax could also be used to pass additional build-level config to a given adapter, though alias is the only such property read in the adapter loader at the moment.
New Metadata for Github account and version
A new metadata string can be found in constants.json
for "REPO_AND_VERSION" which provides the Github account name that the code was downloaded from (e.g. "prebid") the library ("prebid") and version ("0.8.0"). This can be useful for included in bid requests or for analytics. The returned value is e.g. "prebid_prebid_0.8.0"
.
Analytics Customization
Google Analytics named trackers are now supported. A custom tracker name (or multiple tracker names) can be registerd with GA on your page like so:
ga('create', 'UA-xxxxxxxx-x', 'auto', 'customTrackerName');
And used with prebid by passing that tracker name in the pbjs.enableAnalytics
options:
pbjs.enableAnalytics({
provider: 'ga',
options: {
global: 'ga', // <string> name of GA global. Default is 'ga'
trackerName: 'customTrackerName',
enableDistribution: false, // <bool> enable/disable distribution. Recommend disable to save bandwidth/calls
}
});
Always send default keys
Bidders will always get key value pairs that are set in the default (i.e. hb_pb
, hb_bidder
, hb_adid
, hb_size
) even if using alwaysUseBid=true
. If you choose to use the same key as the default keys, the standard value will be overwritten with the custom value.
Bug fixes in this release
- #267 Fix for
pbjs
not defined error - reported by @dmitriyshashkin - #269 and 272 Fix for Google Analytics not reporting initial events or timeout events (reported by @dmitriyshashkin)
- #254 Fix for Rubicon adapter bug with multiple iframes (reported by @Deimos01 and fixed by @bretg)
- [#245] Use
node 4.x
or greater - [#279] Fix
bids undefined
error (fixed by @steven-hadfield) - Other misc bug fixes (see the full commit log here: https://github.com/prebid/Prebid.js/compare/0.7.0...0.8.0)