From 7fc3e46f43e97d89d206fc9a5843b483985b305a Mon Sep 17 00:00:00 2001 From: Jacek Drobiecki Date: Mon, 16 Oct 2017 08:25:23 +0200 Subject: [PATCH 01/14] Initial revision of adocean bid adapter (ADOCEAN-13634, ADOCEAN-13635) --- modules/adoceanBidAdapter.js | 104 +++++++++++++++++++++++++++++++++++ modules/adoceanBidAdapter.md | 30 ++++++++++ 2 files changed, 134 insertions(+) create mode 100644 modules/adoceanBidAdapter.js create mode 100644 modules/adoceanBidAdapter.md diff --git a/modules/adoceanBidAdapter.js b/modules/adoceanBidAdapter.js new file mode 100644 index 00000000000..35b89fdb4c6 --- /dev/null +++ b/modules/adoceanBidAdapter.js @@ -0,0 +1,104 @@ +import * as utils from 'src/utils'; +import { registerBidder } from 'src/adapters/bidderFactory'; +import { config } from 'src/config'; + +const BIDDER_CODE = 'adocean'; + +function buildEndpointUrl(emiter, payload) { + let payloadString = ""; + utils._each(payload, function(v, k) { + if (payloadString.length) { + payloadString += "&"; + } + payloadString += k + "=" + encodeURIComponent(v); + }); + + return 'https://' + emiter + '/ad.json?' + payloadString; +} + +function buildRequest(masterBidRequests, masterId) { + const firstBid = masterBidRequests[0]; + const payload = { + id: masterId, + }; + + const bidIdMap = {}; + + utils._each(masterBidRequests, function(v) { + bidIdMap[v.slaveId] = v.bidId; + }); + + return { + method: 'GET', + url: buildEndpointUrl(firstBid.emiter, payload), + data: {}, + bidIdMap: bidIdMap + }; +} + +function assignToMaster(bidRequest, bidRequestsByMaster) { + const masterId = bidRequest.masterId || bidRequest.slaveId; + bidRequestsByMaster[masterId] = bidRequestsByMaster[masterId] || []; + bidRequestsByMaster[masterId].push(bidRequest); +} + +function interpretRespons(placementResponse, bidRequest, bids) { + if (!placementResponse.error) { + let adCode = "