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

TheMediaGrid Bid Adapter: fix keywords workflow #7130

Merged
merged 65 commits into from
Jul 6, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
94d2b3a
Added TheMediaGridNM Bid Adapter
TheMediaGrid Mar 12, 2020
3ba8fd8
Updated required params for TheMediaGridNM Bid Adapter
TheMediaGrid Mar 12, 2020
b830678
Update TheMediGridNM Bid Adapter
TheMediaGrid Mar 17, 2020
9675d02
Fix tests for TheMediaGridNM Bid Adapter
TheMediaGrid Mar 17, 2020
65cb00f
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Mar 17, 2020
f1cba4a
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Mar 31, 2020
52e593c
Fixes after review for TheMediaGridNM Bid Adapter
TheMediaGrid Mar 31, 2020
7b99287
Merge remote-tracking branch 'upstream/master'
TheMediaGrid May 12, 2020
83fb2b4
Add support of multi-format in TheMediaGrid Bid Adapter
TheMediaGrid May 12, 2020
926f4d9
Merge remote-tracking branch 'upstream/master'
TheMediaGrid May 26, 2020
66f2ac8
Update sync url for grid and gridNM Bid Adapters
TheMediaGrid May 26, 2020
b2fb704
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Jun 9, 2020
4fcf522
TheMediaGrid Bid Adapter: added keywords adUnit parameter
TheMediaGrid Jun 9, 2020
6906f1b
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Jun 15, 2020
bfe4f5e
Update TheMediaGrid Bid Adapter to support keywords from config
TheMediaGrid Jun 15, 2020
d2c199b
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Jul 4, 2020
64b5b8d
Implement new request format for TheMediaGrid Bid Adapter
TheMediaGrid Jul 10, 2020
ef493f7
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Jul 23, 2020
4481d01
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Jul 27, 2020
faa9bfb
Fix jwpseg params for TheMediaGrid Bid Adapter
TheMediaGrid Jul 27, 2020
dc645c7
Update unit tests for The Media Grid Bid Adapter
TheMediaGrid Jul 29, 2020
340cae4
Fix typo in TheMediaGrid Bid Adapter
TheMediaGrid Aug 10, 2020
6fa4e21
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Aug 10, 2020
250601e
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Sep 2, 2020
a4904d6
Added test for jwTargeting in TheMediaGrid Bid Adapter
TheMediaGrid Sep 3, 2020
dfef5e1
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Oct 7, 2020
1644021
The new request format was made by default in TheMediaGrid Bid Adapter
TheMediaGrid Oct 8, 2020
54237d7
Update userId format in ad request for TheMediaGrid Bid Adapter
TheMediaGrid Oct 12, 2020
a8c7096
Added bidFloor parameter for TheMediaGrid Bid Adapter
TheMediaGrid Oct 14, 2020
e9fb25d
Fix for review TheMediaGrid Bid Adapter
TheMediaGrid Oct 20, 2020
9039a79
Support floorModule in TheMediaGrid Bid Adapter
TheMediaGrid Oct 20, 2020
07a13b2
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Oct 21, 2020
aea2b2e
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Nov 25, 2020
2347817
Fix empty bidfloor for TheMediaGrid Bid Adapter
TheMediaGrid Nov 25, 2020
a7c3733
Some change to restart autotests
TheMediaGrid Nov 30, 2020
0763615
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Nov 30, 2020
81c6700
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Dec 17, 2020
77ce199
Fix userIds format for TheMediaGrid Bid Adapter
TheMediaGrid Dec 18, 2020
4b944e8
Remove digitrust userId from TheMediaGrid Bid Adapter
TheMediaGrid Dec 21, 2020
192cb9a
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Feb 10, 2021
e7994ca
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Feb 11, 2021
01e4c8e
Protocols was added in video section in ad request for TheMediaGrid B…
TheMediaGrid Feb 11, 2021
a2c90fb
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Feb 26, 2021
97e1c5e
TheMediaGrid: fix trouble with alias using
TheMediaGrid Feb 26, 2021
ae34924
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Mar 1, 2021
21cad2b
TheMediaGridNM: fix trouble with alias
TheMediaGrid Mar 1, 2021
0cf3d1d
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Mar 10, 2021
94fccff
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Apr 12, 2021
ecfa441
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Apr 14, 2021
ebf5684
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Apr 16, 2021
da4e7a3
TheMediaGrid Bid Adapter: added support of PBAdSlot module
TheMediaGrid Apr 16, 2021
419fd89
TheMediaGrid Bid Adapter: fix typo
TheMediaGrid Apr 21, 2021
7845ee4
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Apr 26, 2021
8036bfa
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Apr 26, 2021
3e9b878
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Apr 27, 2021
2645aff
Merge remote-tracking branch 'upstream/master'
TheMediaGrid May 20, 2021
d76839f
GridNM Bid Adapter: use absent in params data from mediaTypes
TheMediaGrid May 24, 2021
126b9af
GridNM Bid Adapter: fix md file + add advertiserDomains support
TheMediaGrid May 24, 2021
5ae8585
Merge remote-tracking branch 'upstream/master'
TheMediaGrid May 31, 2021
3504295
TheMediaGrid and gridNM Bid Adapter: minor netRevenue fixes
TheMediaGrid May 31, 2021
271b24c
gridNM Bid Adapter updates after review
TheMediaGrid Jun 2, 2021
635b87c
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Jul 1, 2021
e299874
TheMediaGrid Bid Adapter: fix keywords workflow
TheMediaGrid Jul 1, 2021
6503708
Merge remote-tracking branch 'upstream/master'
TheMediaGrid Jul 2, 2021
dc7263e
fix testing and kick off lgtm again
ChrisHuie Jul 6, 2021
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
52 changes: 28 additions & 24 deletions modules/gridBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,6 @@ export const spec = {
}
const {params: {uid, keywords}, mediaTypes, bidId, adUnitCode, rtd, ortb2Imp} = bid;
bidsMap[bidId] = bid;
if (!pageKeywords && !utils.isEmpty(keywords)) {
pageKeywords = utils.transformBidderParamKeywords(keywords);
}
const bidFloor = _getFloor(mediaTypes || {}, bid);
const jwTargeting = rtd && rtd.jwplayer && rtd.jwplayer.targeting;
if (jwTargeting) {
Expand All @@ -104,6 +101,12 @@ export const spec = {
impObj.ext.gpid = impObj.ext.data.adserver.adslot;
}
}
if (!utils.isEmpty(keywords)) {
if (!pageKeywords) {
pageKeywords = keywords;
}
impObj.ext.bidder = { keywords };
}

if (bidFloor) {
impObj.bidfloor = bidFloor;
Expand Down Expand Up @@ -185,17 +188,28 @@ export const spec = {
request.user = user;
}

const configKeywords = utils.transformBidderParamKeywords({
'user': utils.deepAccess(config.getConfig('ortb2.user'), 'keywords') || null,
'context': utils.deepAccess(config.getConfig('ortb2.site'), 'keywords') || null
});
const userKeywords = utils.deepAccess(config.getConfig('ortb2.user'), 'keywords') || null;
const siteKeywords = utils.deepAccess(config.getConfig('ortb2.site'), 'keywords') || null;

if (configKeywords.length) {
pageKeywords = (pageKeywords || []).concat(configKeywords);
if (userKeywords) {
pageKeywords = pageKeywords || {};
pageKeywords.user = pageKeywords.user || {};
pageKeywords.user.ortb2 = [
{
name: 'keywords',
keywords: userKeywords.split(','),
}
];
}

if (pageKeywords && pageKeywords.length > 0) {
pageKeywords.forEach(deleteValues);
if (siteKeywords) {
pageKeywords = pageKeywords || {};
pageKeywords.site = pageKeywords.site || {};
pageKeywords.site.ortb2 = [
{
name: 'keywords',
keywords: siteKeywords.split(','),
}
];
}

if (pageKeywords) {
Expand Down Expand Up @@ -311,16 +325,6 @@ function _getFloor (mediaTypes, bid) {
return floor;
}

function isPopulatedArray(arr) {
return !!(utils.isArray(arr) && arr.length > 0);
}

function deleteValues(keyPairObj) {
if (isPopulatedArray(keyPairObj.value) && keyPairObj.value[0] === '') {
delete keyPairObj.value;
}
}

function _getBidFromResponse(respItem) {
if (!respItem) {
utils.logError(LOG_ERROR_MESS.emptySeatbid);
Expand All @@ -341,11 +345,11 @@ function _addBidResponse(serverBid, bidRequest, bidResponses) {
const bid = bidRequest.bidsMap[serverBid.impid];
if (bid) {
const bidResponse = {
requestId: bid.bidId, // bid.bidderRequestId,
requestId: bid.bidId, // bid.bidderRequestId
cpm: serverBid.price,
width: serverBid.w,
height: serverBid.h,
creativeId: serverBid.auid, // bid.bidId,
creativeId: serverBid.auid, // bid.bidId
currency: 'USD',
netRevenue: true,
ttl: TIME_TO_LIVE,
Expand Down
42 changes: 39 additions & 3 deletions test/spec/modules/gridBidAdapter_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -402,11 +402,47 @@ describe('TheMediaGrid Adapter', function () {

it('should contain the keyword values if it present in ortb2.(site/user)', function () {
const getConfigStub = sinon.stub(config, 'getConfig').callsFake(
arg => arg === 'ortb2.user' ? {'keywords': 'foo'} : (arg === 'ortb2.site' ? {'keywords': 'bar'} : null));
const request = spec.buildRequests([bidRequests[0]], bidderRequest);
arg => arg === 'ortb2.user' ? {'keywords': 'foo,any'} : (arg === 'ortb2.site' ? {'keywords': 'bar'} : null));
const keywords = {
'site': {
'somePublisher': [
{
'name': 'someName',
'brandsafety': ['disaster'],
'topic': ['stress', 'fear']
}
]
}
};
const bidRequestWithKW = { ...bidRequests[0], params: { ...bidRequests[0].params, keywords } }
const request = spec.buildRequests([bidRequestWithKW], bidderRequest);
expect(request.data).to.be.an('string');
const payload = parseRequest(request.data);
expect(payload.ext.keywords).to.deep.equal([{'key': 'user', 'value': ['foo']}, {'key': 'context', 'value': ['bar']}]);
expect(payload.ext.keywords).to.deep.equal({
'site': {
'somePublisher': [
{
'name': 'someName',
'brandsafety': ['disaster'],
'topic': ['stress', 'fear']
}
],
'ortb2': [
{
'name': 'keywords',
'keywords': ['bar']
}
]
},
'user': {
'ortb2': [
{
'name': 'keywords',
'keywords': ['foo', 'any']
}
]
}
});
getConfigStub.restore();
});

Expand Down