From 3feb6b8356fdba7d60b6ba848b7029a35ddd19bf Mon Sep 17 00:00:00 2001 From: vishalkumarAdpushup Date: Thu, 23 Jan 2025 18:30:38 +0530 Subject: [PATCH] Updated docereeAdManager bid adapter to latest --- modules/docereeAdManagerBidAdapter.js | 252 ++++++++++++++------------ 1 file changed, 140 insertions(+), 112 deletions(-) diff --git a/modules/docereeAdManagerBidAdapter.js b/modules/docereeAdManagerBidAdapter.js index b70278aefd1..5f859169b08 100644 --- a/modules/docereeAdManagerBidAdapter.js +++ b/modules/docereeAdManagerBidAdapter.js @@ -5,128 +5,156 @@ const BIDDER_CODE = 'docereeadmanager'; const END_POINT = 'https://dai.doceree.com/drs/quest'; export const spec = { - code: BIDDER_CODE, - url: '', - supportedMediaTypes: [BANNER], + code: BIDDER_CODE, + url: '', + supportedMediaTypes: [BANNER], - isBidRequestValid: (bid) => { - const { placementId } = bid.params; - return !!placementId; - }, - isGdprConsentPresent: (bid) => { - const { gdpr, gdprconsent } = bid.params; - if (gdpr == '1') { - return !!gdprconsent; - } - return true; - }, - buildRequests: (validBidRequests) => { - const serverRequests = []; - const { data } = config.getConfig('docereeadmanager.user') || {}; + isBidRequestValid: (bid) => { + const { placementId } = bid.params; + return !!placementId; + }, + isGdprConsentPresent: (bid) => { + const { gdpr, gdprconsent } = bid.params; + if (gdpr == '1') { + return !!gdprconsent; + } + return true; + }, + buildRequests: (validBidRequests, bidderRequest) => { + const serverRequests = []; + const { data } = config.getConfig('docereeadmanager.user') || {}; - validBidRequests.forEach(function (validBidRequest) { - const payload = getPayload(validBidRequest, data); + validBidRequests.forEach(function (validBidRequest) { + const payload = getPayload(validBidRequest, data, bidderRequest); - if (!payload) { - return; - } + if (!payload) { + return; + } - serverRequests.push({ - method: 'POST', - url: END_POINT, - data: JSON.stringify(payload.data), - options: { - contentType: 'application/json', - withCredentials: true, - }, - }); - }); + serverRequests.push({ + method: 'POST', + url: END_POINT, + data: JSON.stringify(payload.data), + options: { + contentType: 'application/json', + withCredentials: true + } + }); + }); - return serverRequests; - }, - interpretResponse: (serverResponse) => { - const responseJson = serverResponse ? serverResponse.body : {}; - const bidResponse = { - ad: responseJson.ad, - width: Number(responseJson.width), - height: Number(responseJson.height), - requestId: responseJson.requestId, - netRevenue: true, - ttl: 30, - cpm: responseJson.cpm, - currency: responseJson.currency, - mediaType: BANNER, - creativeId: responseJson.creativeId, - meta: { - advertiserDomains: - Array.isArray(responseJson.meta.advertiserDomains) && - responseJson.meta.advertiserDomains.length > 0 - ? responseJson.meta.advertiserDomains - : [], - }, - }; + return serverRequests; + }, + interpretResponse: (serverResponse) => { + const responseJson = serverResponse ? serverResponse.body : {}; + const bidResponse = { + ad: responseJson.ad, + width: Number(responseJson.width), + height: Number(responseJson.height), + requestId: responseJson.requestId, + netRevenue: true, + ttl: 30, + cpm: responseJson.cpm, + currency: responseJson.currency, + mediaType: BANNER, + creativeId: responseJson.creativeId, + meta: { + advertiserDomains: + Array.isArray(responseJson.meta.advertiserDomains) && + responseJson.meta.advertiserDomains.length > 0 + ? responseJson.meta.advertiserDomains + : [] + } + }; - return [bidResponse]; - }, + return [bidResponse]; + } }; -function getPayload(bid, userData) { - if (!userData || !bid) { - return false; - } +export function getPageUrl() { + let url = ''; + try { + url = window.location.href; + } catch (error) {} + return url; +} + +const handleConsent = (consentValue) => { + try { + if (consentValue === 0 || consentValue === '0') { + consentValue = '0'; + } + } catch (error) {} + return consentValue; +}; + +export function getPayload(bid, userData, bidderRequest) { + if (!userData || !bid) { + return false; + } + + const { bidId, params } = bid; + const { placementId, publisherUrl } = params; + const { + userid, + email, + firstname, + lastname, + hcpid, + dob, + specialization, + gender, + city, + state, + zipcode, + hashedhcpid, + hashedemail, + hashedmobile, + country, + hashedNPI, + organization, + platformUid, + mobile, + userconsent + } = userData; + + const data = { + userid: platformUid || userid || '', + email: email || '', + firstname: firstname || '', + lastname: lastname || '', + specialization: specialization || '', + hcpid: hcpid || '', + gender: gender || '', + city: city || '', + state: state || '', + zipcode: zipcode || '', + pb: 1, + adunit: placementId || '', + requestId: bidId || '', + hashedhcpid: hashedhcpid || hashedNPI || '', + hashedemail: hashedemail || '', + hashedmobile: hashedmobile || '', + country: country || '', + organization: organization || '', + dob: dob || '', + upref: handleConsent(userconsent) || '', + mobile: mobile || '', + pageurl: getPageUrl() || publisherUrl || '' + }; - const { bidId, params } = bid; - const { placementId } = params; - const { - userid, - email, - firstname, - lastname, - specialization, - hcpid, - gender, - city, - state, - zipcode, - hashedNPI, - hashedhcpid, - hashedemail, - hashedmobile, - platformUid, - mobile, - country, - organization, - dob, - } = userData; + try { + if (bidderRequest && bidderRequest.gdprConsent) { + const { gdprApplies, consentString } = bidderRequest.gdprConsent; + data['consent'] = { + gdpr: gdprApplies ? 1 : 0, + gdprstr: consentString || '' + }; + } + } catch (error) {} - const data = { - userid: userid || '', - email: email || '', - firstname: firstname || '', - lastname: lastname || '', - specialization: specialization || '', - hcpid: hcpid || '', - gender: gender || '', - city: city || '', - state: state || '', - zipcode: zipcode || '', - hashedNPI: hashedNPI || '', - pb: 1, - adunit: placementId || '', - requestId: bidId || '', - hashedhcpid: hashedhcpid || '', - hashedemail: hashedemail || '', - hashedmobile: hashedmobile || '', - platformUid: platformUid || '', - mobile: mobile || '', - country: country || '', - organization: organization || '', - dob: dob || '', - userconsent: 1, - }; - return { - data, - }; + return { + data + }; } registerBidder(spec);