Skip to content

Commit

Permalink
Ogury Bid Adapter: Add xandr sync (prebid#9118)
Browse files Browse the repository at this point in the history
  • Loading branch information
fermeaux authored and jorgeluisrocha committed May 18, 2023
1 parent efe6cf0 commit bd51823
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 19 deletions.
8 changes: 6 additions & 2 deletions modules/oguryBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const DEFAULT_TIMEOUT = 1000;
const BID_HOST = 'https://mweb-hb.presage.io/api/header-bidding-request';
const TIMEOUT_MONITORING_HOST = 'https://ms-ads-monitoring-events.presage.io';
const MS_COOKIE_SYNC_DOMAIN = 'https://ms-cookie-sync.presage.io';
const ADAPTER_VERSION = '1.2.13';
const ADAPTER_VERSION = '1.3.0';

function getClientWidth() {
const documentElementClientWidth = window.top.document.documentElement.clientWidth
Expand Down Expand Up @@ -56,6 +56,10 @@ function getUserSyncs(syncOptions, serverResponses, gdprConsent, uspConsent) {
{
type: 'image',
url: `${MS_COOKIE_SYNC_DOMAIN}/ttd/init-sync?iab_string=${(gdprConsent && gdprConsent.consentString) || ''}&source=prebid`
},
{
type: 'image',
url: `${MS_COOKIE_SYNC_DOMAIN}/xandr/init-sync?iab_string=${(gdprConsent && gdprConsent.consentString) || ''}&source=prebid`
}
]
}
Expand Down Expand Up @@ -209,6 +213,6 @@ export const spec = {
onBidWon,
getWindowContext,
onTimeout
};
}

registerBidder(spec);
50 changes: 33 additions & 17 deletions test/spec/modules/oguryBidAdapter_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -119,109 +119,125 @@ describe('OguryBidAdapter', function () {
};
});

it('should return syncs array with two elements of type image', () => {
it('should return syncs array with three elements of type image', () => {
const userSyncs = spec.getUserSyncs(syncOptions, [], gdprConsent);

expect(userSyncs).to.have.lengthOf(2);
expect(userSyncs).to.have.lengthOf(3);
expect(userSyncs[0].type).to.equal('image');
expect(userSyncs[0].url).to.contain('https://ms-cookie-sync.presage.io/v1/init-sync/bid-switch');
expect(userSyncs[1].type).to.equal('image');
expect(userSyncs[1].url).to.contain('https://ms-cookie-sync.presage.io/ttd/init-sync');
expect(userSyncs[2].type).to.equal('image');
expect(userSyncs[2].url).to.contain('https://ms-cookie-sync.presage.io/xandr/init-sync');
});

it('should set the source as query param', () => {
const userSyncs = spec.getUserSyncs(syncOptions, [], gdprConsent);
expect(userSyncs[0].url).to.contain('source=prebid');
expect(userSyncs[1].url).to.contain('source=prebid');
expect(userSyncs[2].url).to.contain('source=prebid');
});

it('should set the tcString as query param', () => {
const userSyncs = spec.getUserSyncs(syncOptions, [], gdprConsent);
expect(userSyncs[0].url).to.contain(`iab_string=${gdprConsent.consentString}`);
expect(userSyncs[1].url).to.contain(`iab_string=${gdprConsent.consentString}`);
expect(userSyncs[2].url).to.contain(`iab_string=${gdprConsent.consentString}`);
});

it('should return an empty array when pixel is disable', () => {
syncOptions.pixelEnabled = false;
expect(spec.getUserSyncs(syncOptions, [], gdprConsent)).to.have.lengthOf(0);
});

it('should return syncs array with two elements of type image when consentString is undefined', () => {
it('should return syncs array with three elements of type image when consentString is undefined', () => {
gdprConsent = {
gdprApplies: true,
consentString: undefined
};

const userSyncs = spec.getUserSyncs(syncOptions, [], gdprConsent);
expect(userSyncs).to.have.lengthOf(2);
expect(userSyncs).to.have.lengthOf(3);
expect(userSyncs[0].type).to.equal('image');
expect(userSyncs[0].url).to.equal('https://ms-cookie-sync.presage.io/v1/init-sync/bid-switch?iab_string=&source=prebid')
expect(userSyncs[1].type).to.equal('image');
expect(userSyncs[1].url).to.equal('https://ms-cookie-sync.presage.io/ttd/init-sync?iab_string=&source=prebid')
expect(userSyncs[2].type).to.equal('image');
expect(userSyncs[2].url).to.equal('https://ms-cookie-sync.presage.io/xandr/init-sync?iab_string=&source=prebid')
});

it('should return syncs array with two elements of type image when consentString is null', () => {
it('should return syncs array with three elements of type image when consentString is null', () => {
gdprConsent = {
gdprApplies: true,
consentString: null
};

const userSyncs = spec.getUserSyncs(syncOptions, [], gdprConsent);
expect(userSyncs).to.have.lengthOf(2);
expect(userSyncs).to.have.lengthOf(3);
expect(userSyncs[0].type).to.equal('image');
expect(userSyncs[0].url).to.equal('https://ms-cookie-sync.presage.io/v1/init-sync/bid-switch?iab_string=&source=prebid')
expect(userSyncs[1].type).to.equal('image');
expect(userSyncs[1].url).to.equal('https://ms-cookie-sync.presage.io/ttd/init-sync?iab_string=&source=prebid')
expect(userSyncs[2].type).to.equal('image');
expect(userSyncs[2].url).to.equal('https://ms-cookie-sync.presage.io/xandr/init-sync?iab_string=&source=prebid')
});

it('should return syncs array with two elements of type image when gdprConsent is undefined', () => {
it('should return syncs array with three elements of type image when gdprConsent is undefined', () => {
gdprConsent = undefined;

const userSyncs = spec.getUserSyncs(syncOptions, [], gdprConsent);
expect(userSyncs).to.have.lengthOf(2);
expect(userSyncs).to.have.lengthOf(3);
expect(userSyncs[0].type).to.equal('image');
expect(userSyncs[0].url).to.equal('https://ms-cookie-sync.presage.io/v1/init-sync/bid-switch?iab_string=&source=prebid')
expect(userSyncs[1].type).to.equal('image');
expect(userSyncs[1].url).to.equal('https://ms-cookie-sync.presage.io/ttd/init-sync?iab_string=&source=prebid')
expect(userSyncs[2].type).to.equal('image');
expect(userSyncs[2].url).to.equal('https://ms-cookie-sync.presage.io/xandr/init-sync?iab_string=&source=prebid')
});

it('should return syncs array with two elements of type image when gdprConsent is null', () => {
it('should return syncs array with three elements of type image when gdprConsent is null', () => {
gdprConsent = null;

const userSyncs = spec.getUserSyncs(syncOptions, [], gdprConsent);
expect(userSyncs).to.have.lengthOf(2);
expect(userSyncs).to.have.lengthOf(3);
expect(userSyncs[0].type).to.equal('image');
expect(userSyncs[0].url).to.equal('https://ms-cookie-sync.presage.io/v1/init-sync/bid-switch?iab_string=&source=prebid')
expect(userSyncs[1].type).to.equal('image');
expect(userSyncs[1].url).to.equal('https://ms-cookie-sync.presage.io/ttd/init-sync?iab_string=&source=prebid')
expect(userSyncs[2].type).to.equal('image');
expect(userSyncs[2].url).to.equal('https://ms-cookie-sync.presage.io/xandr/init-sync?iab_string=&source=prebid')
});

it('should return syncs array with two elements of type image when gdprConsent is null and gdprApplies is false', () => {
it('should return syncs array with three elements of type image when gdprConsent is null and gdprApplies is false', () => {
gdprConsent = {
gdprApplies: false,
consentString: null
};

const userSyncs = spec.getUserSyncs(syncOptions, [], gdprConsent);
expect(userSyncs).to.have.lengthOf(2);
expect(userSyncs).to.have.lengthOf(3);
expect(userSyncs[0].type).to.equal('image');
expect(userSyncs[0].url).to.equal('https://ms-cookie-sync.presage.io/v1/init-sync/bid-switch?iab_string=&source=prebid')
expect(userSyncs[1].type).to.equal('image');
expect(userSyncs[1].url).to.equal('https://ms-cookie-sync.presage.io/ttd/init-sync?iab_string=&source=prebid')
expect(userSyncs[2].type).to.equal('image');
expect(userSyncs[2].url).to.equal('https://ms-cookie-sync.presage.io/xandr/init-sync?iab_string=&source=prebid')
});

it('should return syncs array with two elements of type image when gdprConsent is empty string and gdprApplies is false', () => {
it('should return syncs array with three elements of type image when gdprConsent is empty string and gdprApplies is false', () => {
gdprConsent = {
gdprApplies: false,
consentString: ''
};

const userSyncs = spec.getUserSyncs(syncOptions, [], gdprConsent);
expect(userSyncs).to.have.lengthOf(2);
expect(userSyncs).to.have.lengthOf(3);
expect(userSyncs[0].type).to.equal('image');
expect(userSyncs[0].url).to.equal('https://ms-cookie-sync.presage.io/v1/init-sync/bid-switch?iab_string=&source=prebid')
expect(userSyncs[1].type).to.equal('image');
expect(userSyncs[1].url).to.equal('https://ms-cookie-sync.presage.io/ttd/init-sync?iab_string=&source=prebid')
expect(userSyncs[2].type).to.equal('image');
expect(userSyncs[2].url).to.equal('https://ms-cookie-sync.presage.io/xandr/init-sync?iab_string=&source=prebid')
});
});

Expand Down Expand Up @@ -279,7 +295,7 @@ describe('OguryBidAdapter', function () {
},
ext: {
prebidversion: '$prebid.version$',
adapterversion: '1.2.13'
adapterversion: '1.3.0'
},
device: {
w: stubbedWidth,
Expand Down Expand Up @@ -659,7 +675,7 @@ describe('OguryBidAdapter', function () {
advertiserDomains: openRtbBidResponse.body.seatbid[0].bid[0].adomain
},
nurl: openRtbBidResponse.body.seatbid[0].bid[0].nurl,
adapterVersion: '1.2.13',
adapterVersion: '1.3.0',
prebidVersion: '$prebid.version$'
}, {
requestId: openRtbBidResponse.body.seatbid[0].bid[1].impid,
Expand All @@ -676,7 +692,7 @@ describe('OguryBidAdapter', function () {
advertiserDomains: openRtbBidResponse.body.seatbid[0].bid[1].adomain
},
nurl: openRtbBidResponse.body.seatbid[0].bid[1].nurl,
adapterVersion: '1.2.13',
adapterVersion: '1.3.0',
prebidVersion: '$prebid.version$'
}]

Expand Down

0 comments on commit bd51823

Please sign in to comment.