Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PubWise Bid Adapter: clean up and updates to adUnit parsing #9066

Merged
merged 4 commits into from
Oct 18, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 14 additions & 12 deletions modules/pubwiseBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ import { _each, isStr, deepClone, isArray, deepSetValue, inIframe, logMessage, l
import { config } from '../src/config.js';
import { registerBidder } from '../src/adapters/bidderFactory.js';
import { BANNER, NATIVE } from '../src/mediaTypes.js';
import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
const VERSION = '0.1.0';
const VERSION = '0.2.0';
const GVLID = 842;
const NET_REVENUE = true;
const UNDEFINED = undefined;
Expand Down Expand Up @@ -117,9 +116,6 @@ export const spec = {
* @return ServerRequest Info describing the request to the server.
*/
buildRequests: function (validBidRequests, bidderRequest) {
// convert Native ORTB definition to old-style prebid native definition
validBidRequests = convertOrtbRequestToProprietaryNative(validBidRequests);

var refererInfo;
if (bidderRequest && bidderRequest.refererInfo) {
refererInfo = bidderRequest.refererInfo;
Expand Down Expand Up @@ -170,7 +166,7 @@ export const spec = {
payload.user.geo.lon = _parseSlotParam('lon', conf.lon);
payload.user.yob = _parseSlotParam('yob', conf.yob);
payload.device.geo = payload.user.geo;
payload.site.page = payload.site.page.trim();
payload.site.page = payload.site?.page?.trim();
payload.site.domain = _getDomainFromURL(payload.site.page);

// add the content object from config in request
Expand All @@ -184,7 +180,7 @@ export const spec = {
}

// passing transactionId in source.tid
deepSetValue(payload, 'source.tid', conf.transactionId);
deepSetValue(payload, 'source.tid', bidderRequest?.auctionId);

// schain
if (validBidRequests[0].schain) {
Expand Down Expand Up @@ -440,7 +436,10 @@ function _createImpressionObject(bid, conf) {
tagid: bid.params.adUnit || undefined,
bidfloor: _parseSlotParam('bidFloor', bid.params.bidFloor), // capitalization dicated by 3.2.4 spec
secure: 1,
bidfloorcur: bid.params.currency ? _parseSlotParam('currency', bid.params.currency) : DEFAULT_CURRENCY // capitalization dicated by 3.2.4 spec
bidfloorcur: bid.params.currency ? _parseSlotParam('currency', bid.params.currency) : DEFAULT_CURRENCY, // capitalization dicated by 3.2.4 spec
ext: {
tid: (bid.transactionId ? bid.transactionId : '')
}
};

if (bid.hasOwnProperty('mediaTypes')) {
Expand Down Expand Up @@ -494,7 +493,11 @@ function _parseSlotParam(paramName, paramValue) {

function _parseAdSlot(bid) {
_logInfo('parseAdSlot bid', bid)
bid.params.adUnit = '';
if (bid.adUnitCode) {
bid.params.adUnit = bid.adUnitCode;
} else {
bid.params.adUnit = '';
}
bid.params.width = 0;
bid.params.height = 0;
bid.params.adSlot = _cleanSlotName(bid.params.adSlot);
Expand Down Expand Up @@ -532,9 +535,8 @@ function _cleanSlotName(slotName) {

function _initConf(refererInfo) {
return {
// TODO: do the fallbacks make sense here?
pageURL: refererInfo?.page || window.location.href,
refURL: refererInfo?.ref || window.document.referrer
pageURL: refererInfo?.page,
refURL: refererInfo?.ref
};
}

Expand Down
10 changes: 6 additions & 4 deletions test/spec/modules/pubwiseBidAdapter_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ const sampleBidderBannerRequest = {
'bidFloor': '1.00',
'currency': 'USD',
'adSlot': '',
'adUnit': '',
'adUnit': 'div-gpt-ad-1460505748561-0',
'bcat': [
'IAB25-3',
'IAB26-1',
Expand Down Expand Up @@ -535,13 +535,15 @@ describe('PubWiseAdapter', function () {

describe('Handling Request Construction', function () {
it('bid requests are not mutable', function() {
let sourceBidRequest = utils.deepClone(sampleValidBidRequests)
spec.buildRequests(sampleValidBidRequests, {auctinId: 'placeholder'});
let sourceBidRequest = utils.deepClone(sampleValidBidRequests);
spec.buildRequests(sampleValidBidRequests, {auctionId: 'placeholder'});
expect(sampleValidBidRequests).to.deep.equal(sourceBidRequest, 'Should be unedited as they are used elsewhere');
});
it('should handle complex bidRequest', function() {
let request = spec.buildRequests(sampleValidBidRequests, sampleBidderRequest);
expect(request.bidderRequest).to.equal(sampleBidderRequest);
expect(request.bidderRequest).to.equal(sampleBidderRequest, "Bid Request Doesn't Match Sample");
expect(request.data.source.tid).to.equal(sampleBidderRequest.auctionId, 'AuctionId -> source.tid Mismatch');
expect(request.data.imp[0].ext.tid).to.equal(sampleBidderRequest.bids[0].transactionId, 'TransactionId -> ext.tid Mismatch');
});
it('must conform to API for buildRequests', function() {
let request = spec.buildRequests(sampleValidBidRequests);
Expand Down