Skip to content

Releases: prebid/Prebid.js

Prebid 0.15.0 Release

17 Nov 16:17
Compare
Choose a tag to compare

New Features

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

Commit Log

Prebid 0.14.0 Release

09 Nov 22:32
Compare
Choose a tag to compare

New Features

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 argument order 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 the adUnit.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 observed script 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)

Commit Log

Prebid 0.13.1 Release

03 Oct 14:40
Compare
Choose a tag to compare

New Features

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

Bug Fixes

Commit Log

Prebid 0.13.0 Release

20 Sep 16:02
Compare
Choose a tag to compare

New Features

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 to video. When an adUnit is configured to support video, all bidders within that adUnit must be video-enabled as well, as configured in adapters.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 to true. The default for this key is false.
$$PREBID_GLOBAL$$.bidderSettings =
{
    standard: {
        suppressEmptyKeys: true,
        adserverTargeting: [
            {
                key: "aKeyWithAValue",
                val: 42
            },
            {
                key: "aKeyWithAnEmptyValue",
                val: ""
            }
        ]
    }
};
  • Setting sendStandardTargeting to false will prevent the standard targeting values from being sent to the ad server. In the example below, only the custom 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 than slice 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

Commit Log

Prebid 0.12.0 Release

22 Aug 23:08
Compare
Choose a tag to compare

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

$$PREBID_GLOBAL$$.getAllWinningBids() returns an array of bid objects that have won their respective auction.

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


Bug fixes in this release

Prebid 0.11.0 Release

20 Jul 21:05
Compare
Choose a tag to compare

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


Bug fixes in this release

Prebid 0.10.0 Release

29 Jun 20:19
Compare
Choose a tag to compare

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

31 May 22:16
Compare
Choose a tag to compare

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

22 Apr 22:10
Compare
Choose a tag to compare

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

Prebid 0.8.0 Release

16 Apr 02:08
Compare
Choose a tag to compare

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 and gpt 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