diff --git a/modules/adponeBidAdapter.js b/modules/adponeBidAdapter.js
index f128785afff..49c0365fc87 100644
--- a/modules/adponeBidAdapter.js
+++ b/modules/adponeBidAdapter.js
@@ -4,34 +4,20 @@ import {triggerPixel} from '../src/utils.js';
const ADPONE_CODE = 'adpone';
const ADPONE_ENDPOINT = 'https://rtb.adpone.com/bid-request';
-const ADPONE_SYNC_ENDPOINT = 'https://eu-ads.adpone.com';
const ADPONE_REQUEST_METHOD = 'POST';
const ADPONE_CURRENCY = 'EUR';
-function _createSync() {
- return {
- type: 'iframe',
- url: ADPONE_SYNC_ENDPOINT
- }
-}
-
-function getUserSyncs(syncOptions) {
- return (syncOptions && syncOptions.iframeEnabled) ? _createSync() : ([]);
-}
-
export const spec = {
code: ADPONE_CODE,
supportedMediaTypes: [BANNER],
- getUserSyncs,
-
isBidRequestValid: bid => {
return !!bid.params.placementId && !!bid.bidId && bid.bidder === 'adpone'
},
- buildRequests: bidRequests => {
+ buildRequests: (bidRequests, bidderRequest) => {
return bidRequests.map(bid => {
- const url = ADPONE_ENDPOINT + '?pid=' + bid.params.placementId;
+ let url = ADPONE_ENDPOINT + '?pid=' + bid.params.placementId;
const data = {
at: 1,
id: bid.bidId,
@@ -49,6 +35,11 @@ export const spec = {
withCredentials: true
};
+ if (bidderRequest && bidderRequest.gdprConsent) {
+ url += '&gdpr_applies=' + bidderRequest.gdprConsent.gdprApplies;
+ url += '&consentString=' + bidderRequest.gdprConsent.consentString;
+ }
+
return {
method: ADPONE_REQUEST_METHOD,
url,
@@ -67,18 +58,27 @@ export const spec = {
serverResponse.body.seatbid.forEach(seatbid => {
if (seatbid.bid.length) {
- answer = [...answer, ...seatbid.bid.filter(bid => bid.price > 0).map(bid => ({
- id: bid.id,
- requestId: bidRequest.data.id,
- cpm: bid.price,
- ad: bid.adm,
- width: bid.w || 0,
- height: bid.h || 0,
- currency: serverResponse.body.cur || ADPONE_CURRENCY,
- netRevenue: true,
- ttl: 300,
- creativeId: bid.crid || 0
- }))];
+ answer = [...answer, ...seatbid.bid.filter(bid => bid.price > 0).map(adponeBid => {
+ const bid = {
+ id: adponeBid.id,
+ requestId: bidRequest.data.id,
+ cpm: adponeBid.price,
+ ad: adponeBid.adm,
+ width: adponeBid.w || 0,
+ height: adponeBid.h || 0,
+ currency: serverResponse.body.cur || ADPONE_CURRENCY,
+ netRevenue: true,
+ ttl: 300,
+ creativeId: adponeBid.crid || 0
+ };
+
+ if (adponeBid.meta && adponeBid.meta.adomain && adponeBid.meta.adomain.length > 0) {
+ bid.meta = {};
+ bid.meta.advertiserDomains = adponeBid.meta.adomain;
+ }
+
+ return bid
+ })];
}
});
diff --git a/test/spec/modules/adponeBidAdapter_spec.js b/test/spec/modules/adponeBidAdapter_spec.js
index 737f1c284e1..92fd672df47 100644
--- a/test/spec/modules/adponeBidAdapter_spec.js
+++ b/test/spec/modules/adponeBidAdapter_spec.js
@@ -110,122 +110,109 @@ describe('adponeBidAdapter', function () {
expect(spec.isBidRequestValid(invalidBid)).to.be.false;
});
});
-});
-
-describe('interpretResponse', function () {
- let serverResponse;
- let bidRequest = { data: {id: '1234'} };
-
- beforeEach(function () {
- serverResponse = {
- body: {
- id: '2579e20c0bb89',
- seatbid: [
- {
- bid: [
- {
- id: '613673EF-A07C-4486-8EE9-3FC71A7DC73D',
- impid: '2579e20c0bb89_0',
- price: 1,
- adm: '',
- adomain: [
- 'www.addomain.com'
- ],
- iurl: 'https://localhost11',
- crid: 'creative111',
- h: 250,
- w: 300,
- ext: {
- dspid: 6
+ describe('interpretResponse', function () {
+ let serverResponse;
+ let bidRequest = { data: {id: '1234'} };
+
+ beforeEach(function () {
+ serverResponse = {
+ body: {
+ id: '2579e20c0bb89',
+ seatbid: [
+ {
+ bid: [
+ {
+ id: '613673EF-A07C-4486-8EE9-3FC71A7DC73D',
+ impid: '2579e20c0bb89_0',
+ price: 1,
+ adm: '',
+ meta: {
+ adomain: [
+ 'adpone.com'
+ ]
+ },
+ iurl: 'https://localhost11',
+ crid: 'creative111',
+ h: 250,
+ w: 300,
+ ext: {
+ dspid: 6
+ }
}
- }
- ],
- seat: 'adpone'
- }
- ],
- cur: 'USD'
- },
- };
- });
-
- it('validate_response_params', function() {
- const newResponse = spec.interpretResponse(serverResponse, bidRequest);
- expect(newResponse[0].id).to.be.equal('613673EF-A07C-4486-8EE9-3FC71A7DC73D');
- expect(newResponse[0].requestId).to.be.equal('1234');
- expect(newResponse[0].cpm).to.be.equal(1);
- expect(newResponse[0].width).to.be.equal(300);
- expect(newResponse[0].height).to.be.equal(250);
- expect(newResponse[0].currency).to.be.equal('USD');
- expect(newResponse[0].netRevenue).to.be.equal(true);
- expect(newResponse[0].ttl).to.be.equal(300);
- expect(newResponse[0].ad).to.be.equal('');
- });
+ ],
+ seat: 'adpone'
+ }
+ ],
+ cur: 'USD'
+ },
+ };
+ });
- it('should correctly reorder the server response', function () {
- const newResponse = spec.interpretResponse(serverResponse, bidRequest);
- expect(newResponse.length).to.be.equal(1);
- expect(newResponse[0]).to.deep.equal({
- id: '613673EF-A07C-4486-8EE9-3FC71A7DC73D',
- requestId: '1234',
- cpm: 1,
- width: 300,
- height: 250,
- creativeId: 'creative111',
- currency: 'USD',
- netRevenue: true,
- ttl: 300,
- ad: ''
+ it('validate_response_params', function() {
+ const newResponse = spec.interpretResponse(serverResponse, bidRequest);
+ expect(newResponse[0].id).to.be.equal('613673EF-A07C-4486-8EE9-3FC71A7DC73D');
+ expect(newResponse[0].requestId).to.be.equal('1234');
+ expect(newResponse[0].cpm).to.be.equal(1);
+ expect(newResponse[0].width).to.be.equal(300);
+ expect(newResponse[0].height).to.be.equal(250);
+ expect(newResponse[0].currency).to.be.equal('USD');
+ expect(newResponse[0].netRevenue).to.be.equal(true);
+ expect(newResponse[0].ttl).to.be.equal(300);
+ expect(newResponse[0].ad).to.be.equal('');
});
- });
- it('should not add responses if the cpm is 0 or null', function () {
- serverResponse.body.seatbid[0].bid[0].price = 0;
- let response = spec.interpretResponse(serverResponse, bidRequest);
- expect(response).to.deep.equal([]);
+ it('should correctly reorder the server response', function () {
+ const newResponse = spec.interpretResponse(serverResponse, bidRequest);
+ expect(newResponse.length).to.be.equal(1);
+ expect(newResponse[0]).to.deep.equal({
+ id: '613673EF-A07C-4486-8EE9-3FC71A7DC73D',
+ meta: {
+ advertiserDomains: [
+ 'adpone.com'
+ ]
+ },
+ requestId: '1234',
+ cpm: 1,
+ width: 300,
+ height: 250,
+ creativeId: 'creative111',
+ currency: 'USD',
+ netRevenue: true,
+ ttl: 300,
+ ad: ''
+ });
+ });
- serverResponse.body.seatbid[0].bid[0].price = null;
- response = spec.interpretResponse(serverResponse, bidRequest);
- expect(response).to.deep.equal([])
- });
- it('should add responses if the cpm is valid', function () {
- serverResponse.body.seatbid[0].bid[0].price = 0.5;
- let response = spec.interpretResponse(serverResponse, bidRequest);
- expect(response).to.not.deep.equal([]);
- });
-});
+ it('should not add responses if the cpm is 0 or null', function () {
+ serverResponse.body.seatbid[0].bid[0].price = 0;
+ let response = spec.interpretResponse(serverResponse, bidRequest);
+ expect(response).to.deep.equal([]);
-describe('getUserSyncs', function () {
- it('Verifies that getUserSyncs is a function', function () {
- expect((typeof (spec.getUserSyncs)).should.equals('function'));
- });
- it('Verifies getUserSyncs returns expected result', function () {
- expect((typeof (spec.getUserSyncs)).should.equals('function'));
- expect(spec.getUserSyncs({iframeEnabled: true})).to.deep.equal({
- type: 'iframe',
- url: 'https://eu-ads.adpone.com'
+ serverResponse.body.seatbid[0].bid[0].price = null;
+ response = spec.interpretResponse(serverResponse, bidRequest);
+ expect(response).to.deep.equal([])
+ });
+ it('should add responses if the cpm is valid', function () {
+ serverResponse.body.seatbid[0].bid[0].price = 0.5;
+ let response = spec.interpretResponse(serverResponse, bidRequest);
+ expect(response).to.not.deep.equal([]);
});
});
- it('Verifies that iframeEnabled: false returns an empty array', function () {
- expect(spec.getUserSyncs({iframeEnabled: false})).to.deep.equal(EMPTY_ARRAY);
- });
- it('Verifies that iframeEnabled: null returns an empty array', function () {
- expect(spec.getUserSyncs(null)).to.deep.equal(EMPTY_ARRAY);
- });
-});
-describe('test onBidWon function', function () {
- beforeEach(function() {
- sinon.stub(utils, 'triggerPixel');
- });
- afterEach(function() {
- utils.triggerPixel.restore();
- });
- it('exists and is a function', () => {
- expect(spec.onBidWon).to.exist.and.to.be.a('function');
- });
- it('should return nothing', function () {
- var response = spec.onBidWon({});
- expect(response).to.be.an('undefined')
- expect(utils.triggerPixel.called).to.equal(true);
+ describe('test onBidWon function', function () {
+ beforeEach(function() {
+ sinon.stub(utils, 'triggerPixel');
+ });
+ afterEach(function() {
+ utils.triggerPixel.restore();
+ });
+ it('exists and is a function', () => {
+ expect(spec.onBidWon).to.exist.and.to.be.a('function');
+ });
+ it('should return nothing', function () {
+ var response = spec.onBidWon({});
+ expect(response).to.be.an('undefined')
+ expect(utils.triggerPixel.called).to.equal(true);
+ });
});
});