diff --git a/modules/insticatorBidAdapter.js b/modules/insticatorBidAdapter.js index 8c3939928c8..57e50c3e1d2 100644 --- a/modules/insticatorBidAdapter.js +++ b/modules/insticatorBidAdapter.js @@ -14,6 +14,7 @@ const ENDPOINT = 'https://ex.ingage.tech/v1/openrtb'; // production endpoint const USER_ID_KEY = 'hb_insticator_uid'; const USER_ID_COOKIE_EXP = 2592000000; // 30 days const BID_TTL = 300; // 5 minutes +const ASI_REGEX = /^insticator\.com$/; config.setDefaults({ insticator: { @@ -118,6 +119,17 @@ function buildUser() { }; } +function extractSchain(bids) { + if (!bids) return; + + const bid = bids.find(bid => + bid.schain && + bid.schain.nodes && + bid.schain.nodes.find(node => ASI_REGEX.test(node.asi)) + ); + return bid ? bid.schain : bids[0].schain; +} + function buildRequest(validBidRequests, bidderRequest) { const req = { id: bidderRequest.bidderRequestId, @@ -145,13 +157,10 @@ function buildRequest(validBidRequests, bidderRequest) { }; } - if (bidderRequest.schain) { - req.source = { - ...req.source, - ext: { - schain: bidderRequest.schain, - } - } + const schain = extractSchain(bidderRequest.bids); + + if (schain) { + req.source.ext = { schain }; } return req;