From e7eb67494a779f64cfca11809dadb6e5748fa0f8 Mon Sep 17 00:00:00 2001 From: Dmitry Sinev Date: Tue, 28 May 2024 17:48:30 +0300 Subject: [PATCH 1/2] Appnexus Bid Adapter: parse the currency from the bid if specified --- modules/appnexusBidAdapter.js | 2 +- test/spec/modules/appnexusBidAdapter_spec.js | 34 +++++++++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/modules/appnexusBidAdapter.js b/modules/appnexusBidAdapter.js index 5a81f272db5..ff11f23da03 100644 --- a/modules/appnexusBidAdapter.js +++ b/modules/appnexusBidAdapter.js @@ -597,7 +597,7 @@ function newBid(serverBid, rtbBid, bidderRequest) { cpm: rtbBid.cpm, creativeId: rtbBid.creative_id, dealId: rtbBid.deal_id, - currency: 'USD', + currency: rtbBid.publisher_currency_code || 'USD', netRevenue: true, ttl: 300, adUnitCode: bidRequest.adUnitCode, diff --git a/test/spec/modules/appnexusBidAdapter_spec.js b/test/spec/modules/appnexusBidAdapter_spec.js index c2da2f36223..104a1336dd5 100644 --- a/test/spec/modules/appnexusBidAdapter_spec.js +++ b/test/spec/modules/appnexusBidAdapter_spec.js @@ -1747,7 +1747,7 @@ describe('AppNexusAdapter', function () { 'media_subtype_id': 1, 'cpm': 0.5, 'cpm_publisher_currency': 0.5, - 'publisher_currency_code': '$', + 'publisher_currency_code': 'USD', 'client_initiated_ad_counting': true, 'viewability': { 'config': '' @@ -1832,6 +1832,38 @@ describe('AppNexusAdapter', function () { expect(Object.keys(result[0])).to.have.members(Object.keys(expectedResponse[0])); }); + it('should parse non-default currency', function () { + let eurCpmResponse = deepClone(response); + eurCpmResponse.tags[0].ads[0].publisher_currency_code = 'EUR'; + + let bidderRequest = { + bidderCode: 'appnexus', + bids: [{ + bidId: '3db3773286ee59', + adUnitCode: 'code' + }] + }; + + let result = spec.interpretResponse({ body: eurCpmResponse }, { bidderRequest }); + expect(result[0].currency).to.equal('EUR'); + }); + + it('should parse default currency', function () { + let defaultCpmResponse = deepClone(response); + delete defaultCpmResponse.tags[0].ads[0].publisher_currency_code; + + let bidderRequest = { + bidderCode: 'appnexus', + bids: [{ + bidId: '3db3773286ee59', + adUnitCode: 'code' + }] + }; + + let result = spec.interpretResponse({ body: defaultCpmResponse }, { bidderRequest }); + expect(result[0].currency).to.equal('USD'); + }); + it('should reject 0 cpm bids', function () { let zeroCpmResponse = deepClone(response); zeroCpmResponse.tags[0].ads[0].cpm = 0; From ee4b084fb5c337fe724b2ddf1de60ff3fa3ab2bd Mon Sep 17 00:00:00 2001 From: Dmitry Sinev Date: Wed, 29 May 2024 18:18:07 +0300 Subject: [PATCH 2/2] Appnexus Bid Adapter: parse the currency from the bid if specified, change code to codename --- modules/appnexusBidAdapter.js | 2 +- test/spec/modules/appnexusBidAdapter_spec.js | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/appnexusBidAdapter.js b/modules/appnexusBidAdapter.js index ff11f23da03..b0c91a14a46 100644 --- a/modules/appnexusBidAdapter.js +++ b/modules/appnexusBidAdapter.js @@ -597,7 +597,7 @@ function newBid(serverBid, rtbBid, bidderRequest) { cpm: rtbBid.cpm, creativeId: rtbBid.creative_id, dealId: rtbBid.deal_id, - currency: rtbBid.publisher_currency_code || 'USD', + currency: rtbBid.publisher_currency_codename || 'USD', netRevenue: true, ttl: 300, adUnitCode: bidRequest.adUnitCode, diff --git a/test/spec/modules/appnexusBidAdapter_spec.js b/test/spec/modules/appnexusBidAdapter_spec.js index 104a1336dd5..393768c3063 100644 --- a/test/spec/modules/appnexusBidAdapter_spec.js +++ b/test/spec/modules/appnexusBidAdapter_spec.js @@ -1747,7 +1747,8 @@ describe('AppNexusAdapter', function () { 'media_subtype_id': 1, 'cpm': 0.5, 'cpm_publisher_currency': 0.5, - 'publisher_currency_code': 'USD', + 'publisher_currency_code': '$', + 'publisher_currency_codename': 'USD', 'client_initiated_ad_counting': true, 'viewability': { 'config': '' @@ -1834,7 +1835,7 @@ describe('AppNexusAdapter', function () { it('should parse non-default currency', function () { let eurCpmResponse = deepClone(response); - eurCpmResponse.tags[0].ads[0].publisher_currency_code = 'EUR'; + eurCpmResponse.tags[0].ads[0].publisher_currency_codename = 'EUR'; let bidderRequest = { bidderCode: 'appnexus', @@ -1850,7 +1851,7 @@ describe('AppNexusAdapter', function () { it('should parse default currency', function () { let defaultCpmResponse = deepClone(response); - delete defaultCpmResponse.tags[0].ads[0].publisher_currency_code; + delete defaultCpmResponse.tags[0].ads[0].publisher_currency_codename; let bidderRequest = { bidderCode: 'appnexus',