Skip to content

Commit 823c7a6

Browse files
m-oranskayaJacobKlein26
authored andcommitted
Adriver Bid and Id Modules: buyerid bug fix (prebid#8768)
* initial commit * adriver id submodule add * add id system tests, fix adriver bid adapter tests * adriver: fix buyerid * remarks fixing * removal of excess * delete custom parameter * bug fixes
1 parent b2f846c commit 823c7a6

File tree

4 files changed

+16
-34
lines changed

4 files changed

+16
-34
lines changed

modules/adriverBidAdapter.js

+5-12
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// ADRIVER BID ADAPTER for Prebid 1.13
22
import { logInfo, getWindowLocation, getBidIdParameter, _each } from '../src/utils.js';
3-
import {registerBidder} from '../src/adapters/bidderFactory.js';
3+
import { registerBidder } from '../src/adapters/bidderFactory.js';
44
import { getStorageManager } from '../src/storageManager.js';
55

66
const BIDDER_CODE = 'adriver';
@@ -22,8 +22,6 @@ export const spec = {
2222
},
2323

2424
buildRequests: function (validBidRequests, bidderRequest) {
25-
logInfo('validBidRequests', validBidRequests);
26-
2725
let win = getWindowLocation();
2826
let customID = Math.round(Math.random() * 999999999) + '-' + Math.round(new Date() / 1000) + '-1-46-';
2927
let siteId = getBidIdParameter('siteid', validBidRequests[0].params) + '';
@@ -99,22 +97,17 @@ export const spec = {
9997
});
10098
});
10199

102-
let userid = validBidRequests[0].userId;
103-
let adrcidCookie = storage.getDataFromLocalStorage('adrcid') || validBidRequests[0].userId.adrcid;
104-
100+
let adrcidCookie = storage.getDataFromLocalStorage('adrcid') || validBidRequests[0].userId?.adrcid;
105101
if (adrcidCookie) {
106-
payload.adrcid = adrcidCookie;
107-
payload.id5 = userid.id5id;
108-
payload.sharedid = userid.pubcid;
109-
payload.unifiedid = userid.tdid;
102+
payload.user.buyerid = adrcidCookie;
110103
}
111104
const payloadString = JSON.stringify(payload);
112105

113106
return {
114107
method: 'POST',
115108
url: ADRIVER_BID_URL,
116-
data: payloadString,
117-
};
109+
data: payloadString
110+
}
118111
},
119112

120113
interpretResponse: function (serverResponse, bidRequest) {

modules/adriverIdSystem.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ export const adriverIdSubmodule = {
7373
callback();
7474
}
7575
};
76-
ajax(url, callbacks, undefined, {method: 'GET'});
76+
let newUrl = url + '&cid=' + (storage.getDataFromLocalStorage('adrcid') || storage.getCookie('adrcid'));
77+
ajax(newUrl, callbacks, undefined, {method: 'GET'});
7778
}
7879
};
7980
return {callback: resp};

test/spec/modules/adriverBidAdapter_spec.js

+6-13
Original file line numberDiff line numberDiff line change
@@ -297,25 +297,18 @@ describe('adriverAdapter', function () {
297297
{ adrcid: undefined }
298298
]
299299
cookieValues.forEach(cookieValue => describe('test cookie exist or not behavior', function () {
300-
let expectedValues = {
301-
adrcid: cookieValue.adrcid,
302-
at: '',
303-
cur: '',
304-
tmax: '',
305-
site: '',
306-
id: '',
307-
user: '',
308-
device: '',
309-
imp: ''
310-
}
300+
let expectedValues = [
301+
'buyerid',
302+
'ext'
303+
]
311304

312305
it('check adrcid if it exists', function () {
313306
bidRequests[0].userId.adrcid = cookieValue.adrcid;
314307
const payload = JSON.parse(spec.buildRequests(bidRequests).data);
315308
if (cookieValue.adrcid) {
316-
expect(Object.keys(payload)).to.have.members(Object.keys(expectedValues));
309+
expect(Object.keys(payload.user)).to.have.members(expectedValues);
317310
} else {
318-
expect(payload.adrcid).to.equal(undefined);
311+
expect(payload.user.buyerid).to.equal(0);
319312
}
320313
});
321314
}));

test/spec/modules/adriverIdSystem_spec.js

+3-8
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ describe('AdriverIdSystem', function () {
3232
expect(request.url).to.include('https://ad.adriver.ru/cgi-bin/json.cgi');
3333
request.respond(503, null, 'Unavailable');
3434
expect(logErrorStub.calledOnce).to.be.true;
35-
expect(callbackSpy.calledOnce).to.be.true;
3635
});
3736

3837
it('test call user sync url with the right params', function() {
@@ -67,16 +66,12 @@ describe('AdriverIdSystem', function () {
6766
let request = server.requests[0];
6867
request.respond(200, { 'Content-Type': 'application/json' }, JSON.stringify({ adrcid: response.adrcid }));
6968

70-
let expectedExpiration = new Date();
71-
expectedExpiration.setTime(expectedExpiration.getTime() + 86400 * 1825 * 1000);
69+
let now = new Date();
70+
now.setTime(now.getTime() + 86400 * 1825 * 1000);
7271
const minimalDate = new Date(0).toString();
7372

74-
function dateStringFor(date, maxDeltaMs = 2000) {
75-
return sinon.match((val) => Math.abs(date.getTime() - new Date(val).getTime()) <= maxDeltaMs)
76-
}
77-
7873
if (response.adrcid) {
79-
expect(setCookieStub.calledWith('adrcid', response.adrcid, dateStringFor(expectedExpiration))).to.be.true;
74+
expect(setCookieStub.calledWith('adrcid', response.adrcid, now.toUTCString())).to.be.true;
8075
expect(setLocalStorageStub.calledWith('adrcid', response.adrcid)).to.be.true;
8176
} else {
8277
expect(setCookieStub.calledWith('adrcid', '', minimalDate)).to.be.false;

0 commit comments

Comments
 (0)