Skip to content

Commit

Permalink
Tappx Bid Adapter: add floor module support (#6626)
Browse files Browse the repository at this point in the history
* UPDATE: add initial UID

* UPDATE: UID change user ext

* UPDATE: UID clean logs

* UPDATE: add host info

* UPDATE: tappx bid adapter universal id

* UPDATE: fix bidder param

* UPDATE: tappxBidAdapter tests

* tappxBidAdapter - fix spacing

* tappxBidAdapter: add test  user eids array

* tappxBidAdapter: update eids array

* FIX: package-lock.json

* Conversant adapter: add adomain, remove digitrust (#6495)

* Update eids.js

* Update eids_spec.js

* Update eids.js

* Update pubmaticBidAdapter_spec.js

* Update eids.js

* Update eids_spec.js

* Update conversantBidAdapter_spec.js

* Update rubiconBidAdapter_spec.js

* Update conversantBidAdapter_spec.js

* Delete test/spec/adapters directory

* Update userId_spec.js

* Update conversantBidAdapter.js

* Update conversantBidAdapter_spec.js

* Update conversantBidAdapter_spec.js

* Update conversantBidAdapter_spec.js

* Rads Bid Adapter: add GDPR support & user sync support (#6455)

* Proxistore Bid Adapter: add cookieless url endpoint & use floor module (#6427)

* use floor module

* call cookieless endpoint when necessary

* test endpoint url

* change url endpoint

* delete console log

* fix tests

* add language to url

* use ortb interface

* unit test

* update test unit

* create proxistore module

* add unit tests and documentation

* delete modules

* delete module

* add proxistore rtd submodule

* delete proxistore module

* spacing

* change url

* AdYoulike Bid Adapter: Add an "Insertion" tracking for Native mediatype (#6481)

* add insertion event

* add missing campaign ID parameter

* update unit test with new tracking checked

* Dspx Bid Adapter : add user sync support (#6456)

* Add sync support for dspx adapter

* Dspx Bid Adapter : add user sync support

Co-authored-by: Alexander <[email protected]>

* Multibid Module: add new module to handle multiple bids from single bidder & update rubicon adapter (#6404)

* Multibid module - create new module
- Expands the number of key value pairs going to the ad server in the normal Prebid way by establishing the concept of a "dynamic alias"

First commit

* Continued updates from 1st commit

* Adding logWarn for filtered bids

* Update to include passing multibid configuration to PBS requests

* Update to rubicon bid adapter to pass query param rp_maxbids value taken from bidderRequest.bidLimit

* Update to config to look for camelcase property names according to spec. These convert to all lowercase when passed to PBS endpoint

* Adjust RP adapter to always include maxbids value - default is 1

* Added support for bidders array in multibid config

* Fixed floor comparison to be <= bid cpm as oppossed to just < bid cpm. Updated md file to fix camelCase tpyo

* Update to include originalBidderRequest in video call to prebid cache

* Update to ignore adpod bids from multibid and allow them to return as normal bids

* Adding uid2 to submodules.json (#6508)

* NextRoll ID System: add new ID module (#6396)

* Add Nextroll ID Module

* Add nextroll to eids

* Make configuration value names consistent with Adapter Module

* Use parnerId instead of sellerId

* Add nextroll to userId and eids md files

* Remove storage configuration

* Rename nextroll -> nextrollId

* Add nextrollId to common ID specs

* Qwarry Bid Adapter: add GDPR and consent string handling (#6489)

* qwarry bid adapter

* formatting fixes

* fix tests for qwarry

* qwarry bid adapter

* add header for qwarry bid adapter

* bid requests fix

* fix tests

* response fix

* fix tests for Qwarry bid adapter

* add pos parameter to qwarry bid adapter

* qwarryBidAdapter onBidWon hotfix

* Change bidder endpoint url for Qwarry adapter

* add referer JS detection

* use bidderRequest.refererInfo

* fix tests

* GDPR consent string support

* NPE fix

Co-authored-by: Artem Kostritsa <[email protected]>
Co-authored-by: Alexander Kascheev <[email protected]>
Co-authored-by: pro-nsk <[email protected]>

* Zemanta Bid Adapter: add support for new params & consent strings to usersync URL (#6468)

* add gvl id to spec

* add support for bcat and badv params

* add consent strings to usersync url

* add bcat and badv params to doc

* Automatad Bid Adapter: Add meta.advertiserDomains to bid response (#6509)


* added bid meta with advertiserDomains

* Adhese Bid Adapter: add support for caching video content (#6501)

* adpod category support test

* Revert "adpod category support test"

This reverts commit 70a3cf2.

* adpod category support test

* Revert "adpod category support test"

This reverts commit 70a3cf2.

* Adhese Bid Adapter: cache video content

Co-authored-by: Tim Sturtewagen <[email protected]>
Co-authored-by: Mateusz <[email protected]>

* update apacdex unit test to disable debug mode (#6511)

* Telaria: not setting adid (#6507)

* Prebid 4.33.0 Release

* increment pre version

* rubicon: removing maxduration as a required bidder parameter (#6513)

* Zemanta adapter: add advertiserDomains (#6517)

* Lemma Bid Adapter: accepting the floor to use the getFloor function (#6497)

* lemmaBidAdapter.js

Added lemma bid adapter file

* lemmaBidAdapter.md

Added lemma bid adapter md file

* lemmaBidAdapter_spec.js

Added lemma bid adapter test spec file

* Update lemmaBidAdapter.js

Fixed automated code review alert comparison between inconvertible types

* Update lemmaBidAdapter.js

Fixed review changes

* Update lemmaBidAdapter.md

Correct parameter value.

* Update lemmaBidAdapter.js

Lemma Bid Adapter - v3.0 compliance

* Update lemmaBidAdapter_spec.js

Lemma Bid Adapter - v3.0 compliance

* Update lemmaBidAdapter.md

Lemma Bid Adapter - v3.0 compliance

* Update lemmaBidAdapter.js

Added user sync support into bid adapter.

* updated include modules file extension.

updated include modules js file extension.

* Update lemmaBidAdapter_spec.js

Added unit test for user sync feature.

* Update lemmaBidAdapter.js

Fixed format error.

* Update lemmaBidAdapter_spec.js

Fixed format error and typo error.

* Set mediaType key value into bid object

Set mediaType key value into the bid object.

* Update lemmaBidAdapter.js

remove duplicate function

* Update lemmaBidAdapter.js

Remove non supported code.

* Update lemmaBidAdapter_spec.js

Remove GDPR test cases.

* Update lemmaBidAdapter.js

Made changes for accepting the floor to use the getFloor function

* Update lemmaBidAdapter.js

correct undefined keyword name.

* Update lemmaBidAdapter_spec.js

Added test coverage floor value

* Update lemmaBidAdapter.js

Remove trailing spaces on lines 379 and 381.

* Update lemmaBidAdapter_spec.js

Added getFloor function test case changes, Please review it.

* Update lemmaBidAdapter_spec.js

* Update lemmaBidAdapter.js

* Update lemmaBidAdapter.js

Fixed lint issue.

* Update lemmaBidAdapter_spec.js

Fixed test cases.

* Update lemmaBidAdapter_spec.js

Made suggested changes. Please review it.

Co-authored-by: Abhijit Mane <[email protected]>

* Mediasquare Bid Adapter: fix getUserSyncs issue with empty bids + add metrics to onBidWon Event (#6480)

* Mediasquare bidder: fix getUserSyncs issue with empty bids + add metrics to onBidWon Event

* Mediasquare bidder: fix getUserSyncs issue with empty bids + add metrics to onBidWon Event

* removing status as it does not seem populated when called

* add tests

* Update nextroll ID variable name to match published ID module (#6519)

* Merkle User ID Module: updates to user id submodule (#6503)

* AdKernel Bid/Analytics Adapters: user privacy related changes (#6488)

* SynacorMedia: remove adId from the bid response (#6520)

* Rubicon: making doc data types consistent (#6526)

* Synacormedia Bid Adapter: add meta.advertiserDomains (#6527)

* Adloox Analytics Adapter: add new analytics adapter (#6308)

* gulp: fix supplying list of browsers to test against

The following now works: gulp test --browserstack --nolint --nolintfix --browsers=bs_ie_11_windows_10 --file 'test/spec/modules/adloox{AnalyticsAdapter,AdServerVideo,RtdProvider}_spec.js'

* instreamTracking: unit test tidy

From @robertrmartinez in #6308 (comment)

* adloaderStub: expose stub for other unit tests to use

From @robertrmartinez in #6308 (comment)

* Adloox analytic module

* Seedtag adapter: Fixing bug preventing to receive the right params onTimeout. (#6525)

* adot bid adapter: add publisher path from bidder config to endpoint url (#6476)

* Admixer ID System: add userId submodule  (#6238)

* Migrating to Prebid 1.0

* Migrating to Prebid 1.0

* Fix spec

* add gdpr and usp

* remove changes in gdpr_hello_world.html

* Update gdpr_hello_world.html

add spaces

* add user syncs

* remove comments

* tests

* admixer id system

* admixer id system

* admixer id system eids.md userId.md

* admixer id system .submodules.json

* admixer id system

Co-authored-by: atkachov <[email protected]>

* PBJS Core: call custom render func after loadscript if provided (#6422)

* Pubxai Analytics Adapter: bug fixes and code revamp (#6474)

* Updated PubxAiAnalytics adapter - Bug fixes and Code restructuring

* Updated endpoint URLs

* Changed array.includes to array.indexOf to fix IE issue

* Code cleanup and changes as suggested.

* Updated browser testing order and edge browser token

* PBJS Core: canBidderRegisterSync ignoring iframe sync disabled by default (#6535)

* Update eids.js

* Update eids_spec.js

* Update eids.js

* Update pubmaticBidAdapter_spec.js

* Update eids.js

* Update eids_spec.js

* Update conversantBidAdapter_spec.js

* Update rubiconBidAdapter_spec.js

* Update conversantBidAdapter_spec.js

* Delete test/spec/adapters directory

* Update userId_spec.js

* Update userSync.js

* Update userSync_spec.js

* Added automatic tzo and targetId to adserver request. (#6534)

* Impactify Bid Adapter: add new bid adapter (#6518)

* Add impactify adapter with MD file

* Add impactify adapter

* Prebid 4.34.0 Release

* Increment pre version

* Prebid server adapter: add config for openx hosting (#6530)

* Yieldmo adapter: add meta data to bids (#6550)

* Smartx Bid Adapter: Add meta.advertiserDomains support (#6547)

* Onevideo / Adap.tv Adapter: updated example configuration (#6546)

* Mass Deal Rendering Module: support multiple custom configs for dealId and rendering (#6500)

* ZetaSsp Bid Adapter: add new bid adapter (#6432)

* Adnuntius Bid Adapter: Fix for bid too low. (#6557)

* Added automatic tzo and targetId to adserver request.

* Fixing issues with bid price being too low.

* Fixing issues with bid price being too low.

* ReadPeak Bid Adapter: fix api issues, add gdpr consent, & getfloor module support (#6548)

* BetweenBidAdatper: added sharedid support (#6531)

* adWMG Bid Adapter: update endpoints for cookie sync (#6544)

* Support floorCPM parameter, fix some minor bugs

* fix space-in-parens circleci error

* example fix

* clean usersync URL

* spaces

* spaces

* add new unit tests, compatibility with IE11

* remove logInfo

* Check for floorCPM value

* Check params before sending

* New endpoints

* code format

* new endpoint for cookie sync

* update tests

Co-authored-by: Mikhail Dykun <[email protected]>

* Yieldmo Bid Adapter: add support for the floors module (#6541)

* Sortable Bid Adapter: add eids support (#6565)

* Add Sortable adapter for Prebid 3.x

Update tests to reflect changes.

* Add .js in imports

* hostname not host: don't include port

* Trivial change to trigger build: failure wasn't our adapter

* More failures in other adapters

* PR Feedback

- use https for URL
- fix examples in markdown
- request to endpoint should work now

* Feedback: add native and video examples

* Update unit tests

Co-authored-by: Shannon Broekhoven <[email protected]>

* Outbrain Bid Adapter: replacing Zemanta (#6558)

* Sirdata Real-time Data Module: add new RTD module (#6515)

* Logicad Bid Adapter: add support for userid modules (#6529)

* ATS-identityLinkIdSystem - add use3P config property to control firing of 3P envelope endpoint (#6568)

* Proxistore Bid Adapter: add support for tcf v2 consent (#6543)

* use tcf v2 consent

* set cosentGiven to false and test Gdpr api v2

* BlueBillyWig Bid Adapter: add renderer customization options (#6540)

* add Blue Billywig adapter

* Blue Billywig Adapter - update according to review feedback

* Blue Billywig Adapter - update to try and pass CircleCI

* Remove the last for .. of in bluebillywigBidAdapter.js, hopefully...

* Update bluebillywigBidAdapter test parameters to match renderer to rendererCode rename

* Blue Billywig - Also pass through site config with OpenRTB request

* add Blue Billywig adapter

* Blue Billywig Adapter - update according to review feedback

* Blue Billywig Adapter - update to try and pass CircleCI

* Remove the last for .. of in bluebillywigBidAdapter.js, hopefully...

* Code quality update, always hit user syncs, improved video params

* Remove unnecessary export

* Add rendererSettings param to bluebillywig adapter

* Kick off CircleCi tests manually

Co-authored-by: Klaas-Jan Boon <[email protected]>
Co-authored-by: Chris Huie <[email protected]>

* OpenX Bid Adapter: Set Deal ID for video requests (#6573)

* 33Across Bid Adapter: add support for User ID modules (#6554)

* pubGENIUS bid adapter: support floor module (#6555)

* Welect Bid Adapter: update url of API (#6570)

* update api url

* update api url in tests

* Bright Mountain Media Bid Adapter: change bidder code to bmtm; alias old name (#6574)

* Adtelligent Bid Adapter: add adUrl support & new alias (#6559)

* add adUrl support

* add adUrl test

* Bright Mountain Media Bid Adapter: Change Endpoint URL (#6576)

* tappxBidAdapter: update

* tasppxBidAdapter: add video

* tappxBidAdapter: update video

* tappxBidAdapter: update name interpret banner

* tappxBidAdapter: add tests for video

* tappxBidAdapter: add adomain

* tappxBidAdapter: update adapter version

* tappxBidAdapter: update interpretBid adomain and dealid

* tappxBidAdapter: update isBidRequestValid

* tappxBidAdapter: update tests. Adding video to isBidRequestValid

* tappxBidAdapter: update doc .md file

* Tappx - Change accept floor module

* Tappx - feature simplification

* Tappx - remove log

* Change version

* Try to unrevert bad merge change

* Tappx - prebid recomendations and changes

* Tappx - CircleCI hotfixes

* Tappx - Non important fix

* Tappx - Test Coverage

* Tappx - CircleCI hotfixes

* Tappx - Only USD allowed in module floor + test

* Tappx - aesthetic change for uniformity of logs

* Tappx - CircleCI hotfixes

* Tappx - remove don't used module

* Tappx - Change the place and only one let

* Tappx - use of beforeEach

* Tappx - CircleCI hotfixes

Co-authored-by: marc_tappx <[email protected]>
Co-authored-by: Patrick McCann <[email protected]>
Co-authored-by: onlsol <[email protected]>
Co-authored-by: vincentproxistore <[email protected]>
Co-authored-by: guiann <[email protected]>
Co-authored-by: Alexander <[email protected]>
Co-authored-by: mmoschovas <[email protected]>
Co-authored-by: SKOCHERI <[email protected]>
Co-authored-by: Abimael Martinez <[email protected]>
Co-authored-by: artemiokost <[email protected]>
Co-authored-by: Artem Kostritsa <[email protected]>
Co-authored-by: Alexander Kascheev <[email protected]>
Co-authored-by: pro-nsk <[email protected]>
Co-authored-by: Rok Sušnik <[email protected]>
Co-authored-by: Kanchika - Automatad <[email protected]>
Co-authored-by: Paweł L <[email protected]>
Co-authored-by: Tim Sturtewagen <[email protected]>
Co-authored-by: Mateusz <[email protected]>
Co-authored-by: jsnellbaker <[email protected]>
Co-authored-by: bretg <[email protected]>
Co-authored-by: Jason Snellbaker <[email protected]>
Co-authored-by: Lemma Dev <[email protected]>
Co-authored-by: Abhijit Mane <[email protected]>
Co-authored-by: matthieularere-msq <[email protected]>
Co-authored-by: Denis Logachov <[email protected]>
Co-authored-by: RAJKUMAR NATARAJAN <[email protected]>
Co-authored-by: Alexander Clouter <[email protected]>
Co-authored-by: Laura Morillo-Velarde <[email protected]>
Co-authored-by: Giudici-a <[email protected]>
Co-authored-by: Galphimbl <[email protected]>
Co-authored-by: atkachov <[email protected]>
Co-authored-by: Jérémie Girault <[email protected]>
Co-authored-by: Phaneendra Hegde <[email protected]>
Co-authored-by: Mikael Lundin <[email protected]>
Co-authored-by: Thomas <[email protected]>
Co-authored-by: Mike Chowla <[email protected]>
Co-authored-by: Deivydas Šabaras <[email protected]>
Co-authored-by: ym-atsymuk <[email protected]>
Co-authored-by: Skylinar <[email protected]>
Co-authored-by: Adam Browning <[email protected]>
Co-authored-by: Catalin Ciocov <[email protected]>
Co-authored-by: asurovenko-zeta <[email protected]>
Co-authored-by: readpeaktuomo <[email protected]>
Co-authored-by: Ignat Khaylov <[email protected]>
Co-authored-by: nyakove <[email protected]>
Co-authored-by: Mikhail Dykun <[email protected]>
Co-authored-by: ym-dlabuzov <[email protected]>
Co-authored-by: karentnarvaez <[email protected]>
Co-authored-by: Shannon Broekhoven <[email protected]>
Co-authored-by: nouchy <[email protected]>
Co-authored-by: logicad <[email protected]>
Co-authored-by: mamatic <[email protected]>
Co-authored-by: Klaas-Jan Boon <[email protected]>
Co-authored-by: Klaas-Jan Boon <[email protected]>
Co-authored-by: Chris Huie <[email protected]>
Co-authored-by: Kenan Gillet <[email protected]>
Co-authored-by: Aparna Rao <[email protected]>
Co-authored-by: Meng <[email protected]>
Co-authored-by: Nick Duitz <[email protected]>
Co-authored-by: BrightMountainMedia <[email protected]>
Co-authored-by: Gena <[email protected]>
Co-authored-by: Albert Grandes <[email protected]>
  • Loading branch information
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 5 deletions.
26 changes: 21 additions & 5 deletions modules/tappxBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { config } from '../src/config.js';
const BIDDER_CODE = 'tappx';
const TTL = 360;
const CUR = 'USD';
const TAPPX_BIDDER_VERSION = '0.1.10413';
const TAPPX_BIDDER_VERSION = '0.1.10420';
const TYPE_CNN = 'prebidjs';
const VIDEO_SUPPORT = ['instream'];

Expand Down Expand Up @@ -262,11 +262,29 @@ function buildOneRequest(validBidRequests, bidderRequest) {
imp.secure = 1;

imp.bidfloor = utils.deepAccess(validBidRequests, 'params.bidfloor');
if (utils.isFn(validBidRequests.getFloor)) {
try {
let floor = validBidRequests.getFloor({
currency: CUR,
mediaType: '*',
size: '*'
});
if (utils.isPlainObject(floor) && !isNaN(floor.floor) && floor.currency === 'USD') {
imp.bidfloor = floor.floor;
} else {
utils.logWarn('[TAPPX]: ', 'Currency not valid. Use only USD with Tappx.');
}
} catch (e) {
utils.logWarn('[TAPPX]: ', e);
imp.bidfloor = utils.deepAccess(validBidRequests, 'params.bidfloor'); // Be sure that we have an imp.bidfloor
}
}

let bidder = {};
bidder.tappxkey = TAPPXKEY;
bidder.endpoint = ENDPOINT;
bidder.host = hostInfo.url;
bidder.bidfloor = BIDFLOOR;
bidder.ext = (typeof BIDEXTRA == 'object') ? BIDEXTRA : undefined;

imp.ext = {};
Expand Down Expand Up @@ -338,9 +356,7 @@ function buildOneRequest(validBidRequests, bidderRequest) {
payload.params = params;
payload.regs = regs;
// < Payload
utils.logMessage('---------------------');
utils.logMessage(JSON.stringify(payload));
utils.logMessage('---------------------');

return {
method: 'POST',
url: `https://${HOST}/${ENDPOINT}?type_cnn=${TYPE_CNN}&v=${TAPPX_BIDDER_VERSION}`,
Expand All @@ -365,7 +381,7 @@ function getHostInfo(hostParam) {
domainInfo.domain = hostParam.split('/', 1)[0];
domainInfo.url = hostParam;

let regexNewEndpoints = new RegExp(`^(zz.*|testing)\.ssp\.tappx\.com$`, 'i');
let regexNewEndpoints = new RegExp(`^(vz.*|zz.*|testing)\.ssp\.tappx\.com$`, 'i');
let regexClassicEndpoints = new RegExp(`^[a-z]{3}\.[a-z]{3}\.tappx\.com$`, 'i');

if (regexNewEndpoints.test(domainInfo.domain)) {
Expand Down
39 changes: 39 additions & 0 deletions test/spec/modules/tappxBidAdapter_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -293,4 +293,43 @@ describe('Tappx bid adapter', function () {
expect(consent[0].url).to.match(/&type=iframe/);
});
})

describe('module Floor implementation', function() {
let getFloorResponse, bidderRequest_f;
beforeEach(function() {
getFloorResponse = {};
bidderRequest_f = c_BIDREQUEST;
})
it('should correctly send hard floors when getFloor function is present and returns valid floor', function () {
// default getFloor response is empty object so should not break and not send hard_floor
bidderRequest_f.bids[0].getFloor = () => getFloorResponse;
let request = spec.buildRequests(bidderRequest_f.bids, bidderRequest_f);
let payload;

getFloorResponse = undefined;
request = spec.buildRequests(bidderRequest_f.bids, bidderRequest_f);

// without Module floor
payload = JSON.parse(request[0].data);
expect(payload.imp[0].bidfloor).to.equal(0.05);

// make it respond with USD floor and string floor
getFloorResponse = {currency: 'USD', floor: '1.23'};
request = spec.buildRequests(bidderRequest_f.bids, bidderRequest_f);
payload = JSON.parse(request[0].data);
expect(payload.imp[0].bidfloor).to.equal('1.23');

// make it respond with EUR floor (not valid)
getFloorResponse = {currency: 'EUR', floor: '1.23'};
request = spec.buildRequests(bidderRequest_f.bids, bidderRequest_f);
payload = JSON.parse(request[0].data);
expect(payload.imp[0].bidfloor).to.equal(0.05); // Default value from tappx/bidder bidfloor

// make it respond with USD floor and num floor
getFloorResponse = {currency: 'USD', floor: 1.23};
request = spec.buildRequests(bidderRequest_f.bids, bidderRequest_f);
payload = JSON.parse(request[0].data);
expect(payload.imp[0].bidfloor).to.equal(1.23);
});
})
});

0 comments on commit 5ff016d

Please sign in to comment.