Skip to content

Commit 2d0f6ca

Browse files
haohanysnapwich
authored andcommitted
Do client-side user syncs when using the OpenRTB endpoint (#2410)
1 parent b1f043d commit 2d0f6ca

File tree

2 files changed

+35
-8
lines changed

2 files changed

+35
-8
lines changed

modules/prebidServerBidAdapter.js

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,20 @@ function doBidderSync(type, url, bidder) {
149149
}
150150
}
151151

152+
/**
153+
* Do client-side syncs for bidders.
154+
*
155+
* @param {Array} bidders a list of bidder names
156+
*/
157+
function doClientSideSyncs(bidders) {
158+
bidders.forEach(bidder => {
159+
let clientAdapter = adaptermanager.getBidAdapter(bidder);
160+
if (clientAdapter && clientAdapter.registerSyncs) {
161+
clientAdapter.registerSyncs([]);
162+
}
163+
});
164+
}
165+
152166
/**
153167
* Try to convert a value to a type.
154168
* If it can't be done, the value will be returned.
@@ -345,14 +359,6 @@ const LEGACY_PROTOCOL = {
345359
});
346360
}
347361

348-
// do client-side syncs if available
349-
requestedBidders.forEach(bidder => {
350-
let clientAdapter = adaptermanager.getBidAdapter(bidder);
351-
if (clientAdapter && clientAdapter.registerSyncs) {
352-
clientAdapter.registerSyncs([]);
353-
}
354-
});
355-
356362
if (result.bids) {
357363
result.bids.forEach(bidObj => {
358364
const bidRequest = utils.getBidRequest(bidObj.bid_id, bidRequests);
@@ -674,6 +680,7 @@ export function PrebidServer() {
674680
}
675681

676682
done();
683+
doClientSideSyncs(requestedBidders);
677684
}
678685

679686
return Object.assign(this, {

test/spec/modules/prebidServerBidAdapter_spec.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -722,6 +722,26 @@ describe('S2S Adapter', () => {
722722
adapterManager.getBidAdapter.restore();
723723
});
724724

725+
it('registers client user syncs when using OpenRTB endpoint', () => {
726+
let rubiconAdapter = {
727+
registerSyncs: sinon.spy()
728+
};
729+
sinon.stub(adapterManager, 'getBidAdapter').returns(rubiconAdapter);
730+
731+
const s2sConfig = Object.assign({}, CONFIG, {
732+
endpoint: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction'
733+
});
734+
config.setConfig({s2sConfig});
735+
736+
server.respondWith(JSON.stringify(RESPONSE_OPENRTB));
737+
adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax);
738+
server.respond();
739+
740+
sinon.assert.calledOnce(rubiconAdapter.registerSyncs);
741+
742+
adapterManager.getBidAdapter.restore();
743+
});
744+
725745
it('registers bid responses when server requests cookie sync', () => {
726746
server.respondWith(JSON.stringify(RESPONSE_NO_PBS_COOKIE));
727747

0 commit comments

Comments
 (0)