Skip to content

Prebid 0.13.0 Release

Compare
Choose a tag to compare
@matthewlane matthewlane released this 20 Sep 16:02
· 8215 commits to master since this release

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