Skip to content

Commit d7972a4

Browse files
Nate CoziWill Alexander
Nate Cozi
authored and
Will Alexander
committed
Maintenance/refactor hb deal (prebid#935)
* refactored the way hb_deal is handled in adserverTargeting * Add Sharethrough adapter (prebid#865) * Rz/submit to prebid (prebid#4) Added Sharethrough Adapter * fix warnings * added beacons * made compatible with chrome 37. other minor changes * win beacon fired in analytics adapter * specs for new analytics adapter * add try catch blocks. misc refactor * removed test page * remove debugger * refactor analytics adapter * removed test endpoint * analytics url parameter is empty * removed bidwon listener on adapter * removed analytics from package.json * refactor hb_deal targeting key as a standard key * rollback errant style fixes * more fixes
1 parent c096665 commit d7972a4

File tree

6 files changed

+22
-30
lines changed

6 files changed

+22
-30
lines changed

src/adapters/sharethrough.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ var SharethroughAdapter = function SharethroughAdapter() {
1616
const bids = params.bids;
1717

1818
addEventListener("message", _receiveMessage, false);
19-
19+
2020
// cycle through bids
2121
for (let i = 0; i < bids.length; i += 1) {
2222
const bidRequest = bids[i];

src/bidmanager.js

+8-6
Original file line numberDiff line numberDiff line change
@@ -130,12 +130,8 @@ exports.addBidResponse = function (adUnitCode, bid) {
130130

131131
//if there is any key value pairs to map do here
132132
var keyValues = {};
133-
if (bid.bidderCode && (bid.cpm > 0 || bid.dealId)) {
133+
if (bid.bidderCode && bid.cpm > 0) {
134134
keyValues = getKeyValueTargetingPairs(bid.bidderCode, bid);
135-
136-
if (bid.dealId) {
137-
keyValues[`hb_deal_${bid.bidderCode}`] = bid.dealId;
138-
}
139135
}
140136

141137
bid.adserverTargeting = keyValues;
@@ -204,7 +200,8 @@ function setKeys(keyValues, bidderSettings, custBidObj) {
204200
}
205201

206202
if (
207-
typeof bidderSettings.suppressEmptyKeys !== "undefined" && bidderSettings.suppressEmptyKeys === true &&
203+
(typeof bidderSettings.suppressEmptyKeys !== "undefined" && bidderSettings.suppressEmptyKeys === true ||
204+
key === "hb_deal") && // hb_deal is suppressed automatically if not set
208205
(
209206
utils.isEmptyStr(value) ||
210207
value === null ||
@@ -404,6 +401,11 @@ function getStandardBidderSettings() {
404401
val: function (bidResponse) {
405402
return bidResponse.size;
406403
}
404+
}, {
405+
key: 'hb_deal',
406+
val: function (bidResponse) {
407+
return bidResponse.dealId;
408+
}
407409
}
408410
]
409411
};

src/constants.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
"hb_bidder",
5555
"hb_adid",
5656
"hb_pb",
57-
"hb_size"
57+
"hb_size",
58+
"hb_deal"
5859
]
5960
}

src/targeting.js

+6-20
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ targeting.getAllTargeting = function(adUnitCode) {
2929
// `alwaysUseBid=true`. If sending all bids is enabled, add targeting for losing bids.
3030
var targeting = getWinningBidTargeting(adUnitCodes)
3131
.concat(getAlwaysUseBidTargeting(adUnitCodes))
32-
.concat($$PREBID_GLOBAL$$._sendAllBids ? getBidLandscapeTargeting(adUnitCodes) : [])
33-
.concat(getDealTargeting(adUnitCodes));
32+
.concat($$PREBID_GLOBAL$$._sendAllBids ? getBidLandscapeTargeting(adUnitCodes) : []);
3433

3534
//store a reference of the targeting keys
3635
targeting.map(adUnitCode => {
@@ -101,14 +100,8 @@ targeting.setTargetingForAst = function() {
101100

102101
function getWinningBidTargeting() {
103102
let winners = targeting.getWinningBids();
104-
105-
// winning bids with deals need an hb_deal targeting key
106-
// adding hb_deal to bid.adserverTargeting if it exists in winners array
107-
winners
108-
.filter(bid => bid.dealId)
109-
.map(bid => bid.adserverTargeting.hb_deal = bid.dealId);
110-
111103
let standardKeys = getStandardKeys();
104+
112105
winners = winners.map(winner => {
113106
return {
114107
[winner.adUnitCode]: Object.keys(winner.adserverTargeting)
@@ -163,7 +156,10 @@ function getBidLandscapeTargeting(adUnitCodes) {
163156
.map(bid => {
164157
if (bid.adserverTargeting) {
165158
return {
166-
[bid.adUnitCode]: getTargetingMap(bid, standardKeys)
159+
[bid.adUnitCode]: getTargetingMap(bid, standardKeys.filter(
160+
key => typeof bid.adserverTargeting[key] !== 'undefined') // mainly for possibly
161+
// unset hb_deal
162+
)
167163
};
168164
}
169165
}).filter(bid => bid); // removes empty elements in array
@@ -177,16 +173,6 @@ function getTargetingMap(bid, keys) {
177173
});
178174
}
179175

180-
function getDealTargeting() {
181-
return $$PREBID_GLOBAL$$._bidsReceived.filter(bid => bid.dealId).map(bid => {
182-
const dealKey = `hb_deal_${bid.bidderCode}`;
183-
return {
184-
[bid.adUnitCode]: getTargetingMap(bid, CONSTANTS.TARGETING_KEYS)
185-
.concat({ [dealKey.substring(0, 20)]: [bid.adserverTargeting[dealKey]] })
186-
};
187-
});
188-
}
189-
190176
targeting.isApntagDefined = function() {
191177
if (window.apntag && utils.isFn(window.apntag.setKeywords)) {
192178
return true;

test/spec/adapters/sharethrough_spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ describe('sharethrough adapter', () => {
116116
],
117117
"stxUserId": ""
118118
};
119-
119+
120120
pbjs.strcallback(bidderReponse1);
121121
pbjs.strcallback(bidderReponse2);
122122

test/spec/bidmanager_spec.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,9 @@ describe('bidmanager.js', function () {
422422
bidmanager.adjustBids(bid)
423423
assert.equal(bid.cpm, 0);
424424

425+
// reset bidderSettings so we don't mess up further tests
426+
$$PREBID_GLOBAL$$.bidderSettings = {};
427+
425428
});
426429
});
427430

@@ -474,7 +477,7 @@ describe('bidmanager.js', function () {
474477
bid.dealId = "test deal";
475478
bidmanager.addBidResponse(bid.adUnitCode, bid);
476479
const addedBid = $$PREBID_GLOBAL$$._bidsReceived.pop();
477-
assert.equal(addedBid.adserverTargeting[`hb_deal_${bid.bidderCode}`], bid.dealId, 'dealId placed in adserverTargeting');
480+
assert.equal(addedBid.adserverTargeting[`hb_deal`], bid.dealId, 'dealId placed in adserverTargeting');
478481
});
479482

480483
it('should not alter bid adID', () => {

0 commit comments

Comments
 (0)