diff --git a/src/adaptermanager.js b/src/adaptermanager.js index 77a3d8f38ee..6ab31615c82 100644 --- a/src/adaptermanager.js +++ b/src/adaptermanager.js @@ -27,6 +27,13 @@ exports.callBids = function(bidderArr) { //emit 'bidRequested' event events.emit(CONSTANTS.EVENTS.BID_REQUESTED, bidder); currentBidder.callBids(bidder); + + // if the bidder didn't explicitly set the number of bids + // expected, default to the number of bids passed into the bidder + if (bidmanager.getExpectedBidsCount(bidder.bidderCode) === undefined) { + bidmanager.setExpectedBidsCount(bidder.bidderCode, bidder.bids.length); + } + var currentTime = new Date().getTime(); bidmanager.registerBidRequestTime(bidder.bidderCode, currentTime); diff --git a/src/bidmanager.js b/src/bidmanager.js index fedf0ae6e4f..5731092fa08 100644 --- a/src/bidmanager.js +++ b/src/bidmanager.js @@ -111,6 +111,7 @@ exports.setExpectedBidsCount = function(bidderCode,count){ function getExpectedBidsCount(bidderCode){ return expectedBidsCount[bidderCode]; } +exports.getExpectedBidsCount = getExpectedBidsCount; /* @@ -395,17 +396,13 @@ exports.checkIfAllBidsAreIn = function(adUnitCode) { // check all bids response received by bidder function checkAllBidsResponseReceived(){ var available = true; - - utils._each(bidResponseReceivedCount,function(count,bidderCode){ - //expected bids count check for appnexus - if(bidderCode === 'appnexus'){ - var expectedCount = getExpectedBidsCount(bidderCode); + utils._each(bidResponseReceivedCount, function(count, bidderCode){ + var expectedCount = getExpectedBidsCount(bidderCode); - if(typeof expectedCount === objectType_undefined || count < expectedCount){ - available = false; - } - }else if(count<1){ + // expectedCount should be set in the adapter, or it will be set + // after we call adapter.callBids() + if ((typeof expectedCount === objectType_undefined) || (count < expectedCount)) { available = false; } });