From 80b56b183356690be9c131f6e5ce26c41b14b4dc Mon Sep 17 00:00:00 2001
From: sagar4596 <132884303+sagar4596@users.noreply.github.com>
Date: Tue, 31 Oct 2023 12:05:52 +0530
Subject: [PATCH 01/21] added DocereeAdManager bid Adapter
---
modules/docereeAdManager.js | 106 ++++++++++++++++++
modules/docereeAdManager.md | 36 ++++++
test/spec/modules/docereeAdManager_spec.js | 123 +++++++++++++++++++++
3 files changed, 265 insertions(+)
create mode 100644 modules/docereeAdManager.js
create mode 100644 modules/docereeAdManager.md
create mode 100644 test/spec/modules/docereeAdManager_spec.js
diff --git a/modules/docereeAdManager.js b/modules/docereeAdManager.js
new file mode 100644
index 00000000000..b52da12ba87
--- /dev/null
+++ b/modules/docereeAdManager.js
@@ -0,0 +1,106 @@
+import { registerBidder } from '../src/adapters/bidderFactory.js';
+import { config } from '../src/config.js';
+import { BANNER } from '../src/mediaTypes.js';
+const BIDDER_CODE = 'docereeAdManager';
+const END_POINT = 'https://prebidexample.sagargolait.repl.co';
+
+export const spec = {
+ 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');
+
+ // TODO: this should probably look at refererInfo
+ // const { page, domain, token } = config.getConfig("customAdapter.context");
+
+ validBidRequests.forEach(function (validBidRequest) {
+ const payload = getPayload(validBidRequest, data);
+ 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: [responseJson.meta.advertiserDomains],
+ },
+ };
+
+ return [bidResponse];
+ },
+};
+
+function getPayload(bid, bidderRequest) {
+ const { adUnitCode, bidId } = bid;
+ const {
+ userid,
+ email,
+ firstname,
+ lastname,
+ specialization,
+ hcpid,
+ gender,
+ city,
+ state,
+ zipcode,
+ hashedNPI,
+ pb,
+ privacyConsent,
+ } = bidderRequest;
+
+ return {
+ data: {
+ userid: userid,
+ email: email,
+ firstname: firstname,
+ lastname: lastname,
+ specialization: specialization,
+ hcpid: hcpid,
+ gender: gender,
+ city: city,
+ state: state,
+ zipcode: zipcode,
+ hashedNPI: hashedNPI,
+ pb: pb,
+ privacyConsent: privacyConsent,
+ adunit: adUnitCode,
+ requestId: bidId,
+ },
+ };
+}
+
+registerBidder(spec);
diff --git a/modules/docereeAdManager.md b/modules/docereeAdManager.md
new file mode 100644
index 00000000000..971c8a6439d
--- /dev/null
+++ b/modules/docereeAdManager.md
@@ -0,0 +1,36 @@
+# Overview
+
+```
+Module Name: Doceree AdManager Adapter
+Module Type: Bidder Adapter
+Maintainer: tech.stack@doceree.com
+```
+
+
+
+Connects to Doceree demand source to fetch bids.
+Please use `docereeAdManager` as the bidder code.
+
+# Test Parameters
+
+```
+var adUnits = [
+ {
+ code: 'DOC-397-1',
+ sizes: [
+ [300, 250]
+ ],
+ bids: [
+ {
+ bidder: "docereeAdManager",
+ params: {
+ placementId: 'DOC_7jm9j5eqkl0xvc5w', //required
+ publisherUrl: document.URL || window.location.href, //optional
+ gdpr: '1', //optional
+ gdprConsent:'CPQfU1jPQfU1jG0AAAENAwCAAAAAAAAAAAAAAAAAAAAA.IGLtV_T9fb2vj-_Z99_tkeYwf95y3p-wzhheMs-8NyZeH_B4Wv2MyvBX4JiQKGRgksjLBAQdtHGlcTQgBwIlViTLMYk2MjzNKJrJEilsbO2dYGD9Pn8HT3ZCY70-vv__7v3ff_3g', //optional
+ }
+ }
+ ]
+ }
+];
+```
diff --git a/test/spec/modules/docereeAdManager_spec.js b/test/spec/modules/docereeAdManager_spec.js
new file mode 100644
index 00000000000..b535406d026
--- /dev/null
+++ b/test/spec/modules/docereeAdManager_spec.js
@@ -0,0 +1,123 @@
+import { expect } from "chai";
+import { spec } from "../../../modules/docereeAdManager.js";
+import { config } from "../../../src/config.js";
+
+describe("docereeAdManager", function () {
+ config.setConfig({
+ doceree: {
+ user: {
+ data: {
+ userid: "",
+ email: "",
+ firstName: "",
+ lastName: "",
+ specialization: "",
+ hcpid: "",
+ gender: "",
+ city: "",
+ state: "",
+ zipCode: "",
+ hashedNPI: "",
+ mobile: "",
+ pb: "",
+ privacyConsent: "",
+ },
+ },
+ },
+ });
+ let bid = {
+ bidId: "testing",
+ bidder: "docereeAdManager",
+ params: {
+ placementId: "DOC_7jm9j5eqkl0xvc5w",
+ gdpr: "1",
+ gdprConsent:
+ "CPQfU1jPQfU1jG0AAAENAwCAAAAAAAAAAAAAAAAAAAAA.IGLtV_T9fb2vj-_Z99_tkeYwf95y3p-wzhheMs-8NyZeH_B4Wv2MyvBX4JiQKGRgksjLBAQdtHGlcTQgBwIlViTLMYk2MjzNKJrJEilsbO2dYGD9Pn8HT3ZCY70-vv__7v3ff_3g",
+ },
+ };
+
+ describe("isBidRequestValid", function () {
+ it("Should return true if placementId is present", function () {
+ expect(spec.isBidRequestValid(bid)).to.be.true;
+ });
+ it("Should return false if placementId is not present", function () {
+ delete bid.params.placementId;
+ expect(spec.isBidRequestValid(bid)).to.be.false;
+ });
+ });
+
+ describe("isGdprConsentPresent", function () {
+ it("Should return true if gdpr consent is present", function () {
+ expect(spec.isGdprConsentPresent(bid)).to.be.true;
+ });
+ });
+
+ describe("buildRequests", function () {
+ let serverRequest = spec.buildRequests([bid]);
+ serverRequest = serverRequest[0];
+ it("Creates a ServerRequest object with method, URL and data", function () {
+ expect(serverRequest).to.exist;
+ expect(serverRequest.method).to.exist;
+ expect(serverRequest.url).to.exist;
+ expect(serverRequest.data).to.exist;
+ });
+ it("Returns POST method", function () {
+ expect(serverRequest.method).to.equal("POST");
+ });
+ it("Returns valid URL", function () {
+ expect(serverRequest.url).to.equal(
+ "https://prebidexample.sagargolait.repl.co"
+ );
+ });
+ });
+ describe("interpretResponse", function () {
+ it("Should interpret banner response", function () {
+ const banner = {
+ body: {
+ cpm: 3.576,
+ currency: "USD",
+ width: 250,
+ height: 300,
+ ad: "
I am an ad
",
+ ttl: 30,
+ creativeId: "div-1",
+ netRevenue: false,
+ bidderCode: "123",
+ dealId: 232,
+ requestId: "123",
+ meta: {
+ brandId: null,
+ advertiserDomains: ["https://prebidexample.sagargolait.repl.co"],
+ },
+ },
+ };
+ let bannerResponses = spec.interpretResponse(banner);
+ expect(bannerResponses).to.be.an("array").that.is.not.empty;
+ let dataItem = bannerResponses[0];
+ expect(dataItem).to.have.all.keys(
+ "requestId",
+ "cpm",
+ "width",
+ "height",
+ "ad",
+ "ttl",
+ "netRevenue",
+ "currency",
+ "mediaType",
+ "creativeId",
+ "meta"
+ );
+ expect(dataItem.requestId).to.equal("123");
+ expect(dataItem.cpm).to.equal(3.576);
+ expect(dataItem.width).to.equal(250);
+ expect(dataItem.height).to.equal(300);
+ expect(dataItem.ad).to.equal("I am an ad
");
+ expect(dataItem.ttl).to.equal(30);
+ expect(dataItem.netRevenue).to.be.true;
+ expect(dataItem.currency).to.equal("USD");
+ expect(dataItem.creativeId).to.equal("div-1");
+ expect(dataItem.meta.advertiserDomains).to.be.an("array").that.is.not
+ .empty;
+ });
+ });
+});
From 423ca3db109bfe27b1e1e6960b66db9273e9711d Mon Sep 17 00:00:00 2001
From: sagar4596 <132884303+sagar4596@users.noreply.github.com>
Date: Tue, 31 Oct 2023 16:39:49 +0530
Subject: [PATCH 02/21] adapter prod api added
---
modules/docereeAdManager.js | 11 +-
modules/docereeAdManager.md | 27 ++++-
package-lock.json | 2 +-
test/spec/modules/docereeAdManager_spec.js | 120 ++++++++++-----------
4 files changed, 93 insertions(+), 67 deletions(-)
diff --git a/modules/docereeAdManager.js b/modules/docereeAdManager.js
index b52da12ba87..5e8585b1d53 100644
--- a/modules/docereeAdManager.js
+++ b/modules/docereeAdManager.js
@@ -2,7 +2,7 @@ import { registerBidder } from '../src/adapters/bidderFactory.js';
import { config } from '../src/config.js';
import { BANNER } from '../src/mediaTypes.js';
const BIDDER_CODE = 'docereeAdManager';
-const END_POINT = 'https://prebidexample.sagargolait.repl.co';
+const END_POINT = 'https://dai.doceree.com';
export const spec = {
code: BIDDER_CODE,
@@ -35,7 +35,7 @@ export const spec = {
data: JSON.stringify(payload.data),
options: {
contentType: 'application/json',
- withCredentials: true
+ withCredentials: true,
},
});
});
@@ -65,7 +65,8 @@ export const spec = {
};
function getPayload(bid, bidderRequest) {
- const { adUnitCode, bidId } = bid;
+ const { bidId, params } = bid;
+ const { placementId } = params;
const {
userid,
email,
@@ -95,9 +96,9 @@ function getPayload(bid, bidderRequest) {
state: state,
zipcode: zipcode,
hashedNPI: hashedNPI,
- pb: pb,
+ pb: 1,
privacyConsent: privacyConsent,
- adunit: adUnitCode,
+ adunit: placementId,
requestId: bidId,
},
};
diff --git a/modules/docereeAdManager.md b/modules/docereeAdManager.md
index 971c8a6439d..82a15cccab1 100644
--- a/modules/docereeAdManager.md
+++ b/modules/docereeAdManager.md
@@ -24,7 +24,7 @@ var adUnits = [
{
bidder: "docereeAdManager",
params: {
- placementId: 'DOC_7jm9j5eqkl0xvc5w', //required
+ placementId: 'DOC-500-3', //required
publisherUrl: document.URL || window.location.href, //optional
gdpr: '1', //optional
gdprConsent:'CPQfU1jPQfU1jG0AAAENAwCAAAAAAAAAAAAAAAAAAAAA.IGLtV_T9fb2vj-_Z99_tkeYwf95y3p-wzhheMs-8NyZeH_B4Wv2MyvBX4JiQKGRgksjLBAQdtHGlcTQgBwIlViTLMYk2MjzNKJrJEilsbO2dYGD9Pn8HT3ZCY70-vv__7v3ff_3g', //optional
@@ -34,3 +34,28 @@ var adUnits = [
}
];
```
+
+```javascript
+pbjs.setBidderConfig({
+ bidders: ["docereeAdManager"],
+ config: {
+ docereeAdManager: {
+ user: {
+ data: {
+ userid: "DE.V1.138353881958.178023499",
+ email: "",
+ firstname: "RAYMOND",
+ lastname: "SCHONDELMEYER",
+ specialization: "Pediatrics",
+ hcpid: "9980811134",
+ gender: "Male",
+ city: "",
+ state: "",
+ zipcode: "65201",
+ hashedNPI: "",
+ },
+ },
+ },
+ },
+});
+```
diff --git a/package-lock.json b/package-lock.json
index 04e92c2f79e..5fc0f0ec641 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -6,7 +6,7 @@
"packages": {
"": {
"name": "prebid.js",
- "version": "8.8.0-pre",
+ "version": "8.12.0-pre",
"license": "Apache-2.0",
"dependencies": {
"@babel/core": "^7.16.7",
diff --git a/test/spec/modules/docereeAdManager_spec.js b/test/spec/modules/docereeAdManager_spec.js
index b535406d026..e562b07a40c 100644
--- a/test/spec/modules/docereeAdManager_spec.js
+++ b/test/spec/modules/docereeAdManager_spec.js
@@ -1,122 +1,122 @@
-import { expect } from "chai";
-import { spec } from "../../../modules/docereeAdManager.js";
-import { config } from "../../../src/config.js";
+import { expect } from 'chai';
+import { spec } from '../../../modules/docereeAdManager.js';
+import { config } from '../../../src/config.js';
-describe("docereeAdManager", function () {
+describe('docereeAdManager', function () {
config.setConfig({
- doceree: {
+ docereeAdManager: {
user: {
data: {
- userid: "",
- email: "",
- firstName: "",
- lastName: "",
- specialization: "",
- hcpid: "",
- gender: "",
- city: "",
- state: "",
- zipCode: "",
- hashedNPI: "",
- mobile: "",
- pb: "",
- privacyConsent: "",
+ userid: '',
+ email: '',
+ firstName: '',
+ lastName: '',
+ specialization: '',
+ hcpid: '',
+ gender: '',
+ city: '',
+ state: '',
+ zipCode: '',
+ hashedNPI: '',
+ mobile: '',
+ pb: '',
+ privacyConsent: '',
},
},
},
});
let bid = {
- bidId: "testing",
- bidder: "docereeAdManager",
+ bidId: 'testing',
+ bidder: 'docereeAdManager',
params: {
- placementId: "DOC_7jm9j5eqkl0xvc5w",
- gdpr: "1",
+ placementId: 'DOC-500-3',
+ gdpr: '1',
gdprConsent:
- "CPQfU1jPQfU1jG0AAAENAwCAAAAAAAAAAAAAAAAAAAAA.IGLtV_T9fb2vj-_Z99_tkeYwf95y3p-wzhheMs-8NyZeH_B4Wv2MyvBX4JiQKGRgksjLBAQdtHGlcTQgBwIlViTLMYk2MjzNKJrJEilsbO2dYGD9Pn8HT3ZCY70-vv__7v3ff_3g",
+ 'CPQfU1jPQfU1jG0AAAENAwCAAAAAAAAAAAAAAAAAAAAA.IGLtV_T9fb2vj-_Z99_tkeYwf95y3p-wzhheMs-8NyZeH_B4Wv2MyvBX4JiQKGRgksjLBAQdtHGlcTQgBwIlViTLMYk2MjzNKJrJEilsbO2dYGD9Pn8HT3ZCY70-vv__7v3ff_3g',
},
};
- describe("isBidRequestValid", function () {
- it("Should return true if placementId is present", function () {
+ describe('isBidRequestValid', function () {
+ it('Should return true if placementId is present', function () {
expect(spec.isBidRequestValid(bid)).to.be.true;
});
- it("Should return false if placementId is not present", function () {
+ it('Should return false if placementId is not present', function () {
delete bid.params.placementId;
expect(spec.isBidRequestValid(bid)).to.be.false;
});
});
- describe("isGdprConsentPresent", function () {
- it("Should return true if gdpr consent is present", function () {
+ describe('isGdprConsentPresent', function () {
+ it('Should return true if gdpr consent is present', function () {
expect(spec.isGdprConsentPresent(bid)).to.be.true;
});
});
- describe("buildRequests", function () {
+ describe('buildRequests', function () {
let serverRequest = spec.buildRequests([bid]);
serverRequest = serverRequest[0];
- it("Creates a ServerRequest object with method, URL and data", function () {
+ it('Creates a ServerRequest object with method, URL and data', function () {
expect(serverRequest).to.exist;
expect(serverRequest.method).to.exist;
expect(serverRequest.url).to.exist;
expect(serverRequest.data).to.exist;
});
- it("Returns POST method", function () {
- expect(serverRequest.method).to.equal("POST");
+ it('Returns POST method', function () {
+ expect(serverRequest.method).to.equal('POST');
});
- it("Returns valid URL", function () {
+ it('Returns valid URL', function () {
expect(serverRequest.url).to.equal(
- "https://prebidexample.sagargolait.repl.co"
+ 'https://dai.doceree.com'
);
});
});
- describe("interpretResponse", function () {
- it("Should interpret banner response", function () {
+ describe('interpretResponse', function () {
+ it('Should interpret banner response', function () {
const banner = {
body: {
cpm: 3.576,
- currency: "USD",
+ currency: 'USD',
width: 250,
height: 300,
- ad: "I am an ad
",
+ ad: 'I am an ad
',
ttl: 30,
- creativeId: "div-1",
+ creativeId: 'div-1',
netRevenue: false,
- bidderCode: "123",
+ bidderCode: '123',
dealId: 232,
- requestId: "123",
+ requestId: '123',
meta: {
brandId: null,
- advertiserDomains: ["https://prebidexample.sagargolait.repl.co"],
+ advertiserDomains: ['https://dai.doceree.com'],
},
},
};
let bannerResponses = spec.interpretResponse(banner);
- expect(bannerResponses).to.be.an("array").that.is.not.empty;
+ expect(bannerResponses).to.be.an('array').that.is.not.empty;
let dataItem = bannerResponses[0];
expect(dataItem).to.have.all.keys(
- "requestId",
- "cpm",
- "width",
- "height",
- "ad",
- "ttl",
- "netRevenue",
- "currency",
- "mediaType",
- "creativeId",
- "meta"
+ 'requestId',
+ 'cpm',
+ 'width',
+ 'height',
+ 'ad',
+ 'ttl',
+ 'netRevenue',
+ 'currency',
+ 'mediaType',
+ 'creativeId',
+ 'meta'
);
- expect(dataItem.requestId).to.equal("123");
+ expect(dataItem.requestId).to.equal('123');
expect(dataItem.cpm).to.equal(3.576);
expect(dataItem.width).to.equal(250);
expect(dataItem.height).to.equal(300);
- expect(dataItem.ad).to.equal("I am an ad
");
+ expect(dataItem.ad).to.equal('I am an ad
');
expect(dataItem.ttl).to.equal(30);
expect(dataItem.netRevenue).to.be.true;
- expect(dataItem.currency).to.equal("USD");
- expect(dataItem.creativeId).to.equal("div-1");
- expect(dataItem.meta.advertiserDomains).to.be.an("array").that.is.not
+ expect(dataItem.currency).to.equal('USD');
+ expect(dataItem.creativeId).to.equal('div-1');
+ expect(dataItem.meta.advertiserDomains).to.be.an('array').that.is.not
.empty;
});
});
From 925ebd0bea9021f3f5d3edf6abf1357fd42522a1 Mon Sep 17 00:00:00 2001
From: sagar4596 <132884303+sagar4596@users.noreply.github.com>
Date: Tue, 31 Oct 2023 16:53:38 +0530
Subject: [PATCH 03/21] new configs added
---
modules/docereeAdManager.js | 39 ++++---
modules/docereeAdManager.md | 28 +++--
test/spec/modules/docereeAdManager_spec.js | 123 +++++++++++----------
3 files changed, 104 insertions(+), 86 deletions(-)
diff --git a/modules/docereeAdManager.js b/modules/docereeAdManager.js
index 5e8585b1d53..20a2bf28283 100644
--- a/modules/docereeAdManager.js
+++ b/modules/docereeAdManager.js
@@ -1,12 +1,12 @@
-import { registerBidder } from '../src/adapters/bidderFactory.js';
-import { config } from '../src/config.js';
-import { BANNER } from '../src/mediaTypes.js';
-const BIDDER_CODE = 'docereeAdManager';
-const END_POINT = 'https://dai.doceree.com';
+import { registerBidder } from "../src/adapters/bidderFactory.js";
+import { config } from "../src/config.js";
+import { BANNER } from "../src/mediaTypes.js";
+const BIDDER_CODE = "docereeAdManager";
+const END_POINT = "https://dai.doceree.com";
export const spec = {
code: BIDDER_CODE,
- url: '',
+ url: "",
supportedMediaTypes: [BANNER],
isBidRequestValid: (bid) => {
@@ -15,14 +15,14 @@ export const spec = {
},
isGdprConsentPresent: (bid) => {
const { gdpr, gdprConsent } = bid.params;
- if (gdpr == '1') {
+ if (gdpr == "1") {
return !!gdprConsent;
}
return true;
},
buildRequests: (validBidRequests) => {
const serverRequests = [];
- const { data } = config.getConfig('docereeAdManager.user');
+ const { data } = config.getConfig("docereeAdManager.user");
// TODO: this should probably look at refererInfo
// const { page, domain, token } = config.getConfig("customAdapter.context");
@@ -30,11 +30,11 @@ export const spec = {
validBidRequests.forEach(function (validBidRequest) {
const payload = getPayload(validBidRequest, data);
serverRequests.push({
- method: 'POST',
+ method: "POST",
url: END_POINT,
data: JSON.stringify(payload.data),
options: {
- contentType: 'application/json',
+ contentType: "application/json",
withCredentials: true,
},
});
@@ -53,7 +53,7 @@ export const spec = {
ttl: 30,
cpm: responseJson.cpm,
currency: responseJson.currency,
- mediaType: 'banner',
+ mediaType: "banner",
creativeId: responseJson.creativeId,
meta: {
advertiserDomains: [responseJson.meta.advertiserDomains],
@@ -74,13 +74,18 @@ function getPayload(bid, bidderRequest) {
lastname,
specialization,
hcpid,
- gender,
+ gd,
city,
state,
zipcode,
hashedNPI,
- pb,
privacyConsent,
+ hashedhcpid,
+ hashedemail,
+ hashedmobile,
+ country,
+ organization,
+ dob,
} = bidderRequest;
return {
@@ -91,7 +96,7 @@ function getPayload(bid, bidderRequest) {
lastname: lastname,
specialization: specialization,
hcpid: hcpid,
- gender: gender,
+ gender: gd,
city: city,
state: state,
zipcode: zipcode,
@@ -100,6 +105,12 @@ function getPayload(bid, bidderRequest) {
privacyConsent: privacyConsent,
adunit: placementId,
requestId: bidId,
+ hashedhcpid: hashedhcpid,
+ hashedemail: hashedemail,
+ hashedmobile: hashedmobile,
+ country: country,
+ organization: organization,
+ dob: dob,
},
};
}
diff --git a/modules/docereeAdManager.md b/modules/docereeAdManager.md
index 82a15cccab1..30c699c3661 100644
--- a/modules/docereeAdManager.md
+++ b/modules/docereeAdManager.md
@@ -42,17 +42,23 @@ pbjs.setBidderConfig({
docereeAdManager: {
user: {
data: {
- userid: "DE.V1.138353881958.178023499",
- email: "",
- firstname: "RAYMOND",
- lastname: "SCHONDELMEYER",
- specialization: "Pediatrics",
- hcpid: "9980811134",
- gender: "Male",
- city: "",
- state: "",
- zipcode: "65201",
- hashedNPI: "",
+ email: "DALIA.WENCKUS@GMAIL.COM",
+ firstName: "DR. DALIA",
+ lastName: "WENCKUS",
+ mobile: "9812345675",
+ specialization: "Internal Medicine",
+ organization: "Max Lifecare",
+ hcpid: "1992915645",
+ dob: "1987-08-27",
+ gd: "Female",
+ city: "Oildale",
+ state: "California",
+ country: "California",
+ hashedhcpid: "",
+ hashedemail: "",
+ hashedmobile: "",
+ adunit: "DOC-491-1",
+ userid: "7d26d8ca-233a-46c2-9d36-7c5d261e151d",
},
},
},
diff --git a/test/spec/modules/docereeAdManager_spec.js b/test/spec/modules/docereeAdManager_spec.js
index e562b07a40c..53828a63cbf 100644
--- a/test/spec/modules/docereeAdManager_spec.js
+++ b/test/spec/modules/docereeAdManager_spec.js
@@ -1,122 +1,123 @@
-import { expect } from 'chai';
-import { spec } from '../../../modules/docereeAdManager.js';
-import { config } from '../../../src/config.js';
+import { expect } from "chai";
+import { spec } from "../../../modules/docereeAdManager.js";
+import { config } from "../../../src/config.js";
-describe('docereeAdManager', function () {
+describe("docereeAdManager", function () {
config.setConfig({
docereeAdManager: {
user: {
data: {
- userid: '',
- email: '',
- firstName: '',
- lastName: '',
- specialization: '',
- hcpid: '',
- gender: '',
- city: '',
- state: '',
- zipCode: '',
- hashedNPI: '',
- mobile: '',
- pb: '',
- privacyConsent: '',
+ email: "",
+ firstName: "",
+ lastName: "",
+ mobile: "",
+ specialization: "",
+ organization: "",
+ hcpid: "",
+ dob: "",
+ gd: "",
+ city: "",
+ state: "",
+ country: "",
+ hashedhcpid: "",
+ hashedemail: "",
+ hashedmobile: "",
+ adunit: "",
+ userid: "",
},
},
},
});
let bid = {
- bidId: 'testing',
- bidder: 'docereeAdManager',
+ bidId: "testing",
+ bidder: "docereeAdManager",
params: {
- placementId: 'DOC-500-3',
- gdpr: '1',
+ placementId: "DOC-500-3",
+ gdpr: "1",
gdprConsent:
- 'CPQfU1jPQfU1jG0AAAENAwCAAAAAAAAAAAAAAAAAAAAA.IGLtV_T9fb2vj-_Z99_tkeYwf95y3p-wzhheMs-8NyZeH_B4Wv2MyvBX4JiQKGRgksjLBAQdtHGlcTQgBwIlViTLMYk2MjzNKJrJEilsbO2dYGD9Pn8HT3ZCY70-vv__7v3ff_3g',
+ "CPQfU1jPQfU1jG0AAAENAwCAAAAAAAAAAAAAAAAAAAAA.IGLtV_T9fb2vj-_Z99_tkeYwf95y3p-wzhheMs-8NyZeH_B4Wv2MyvBX4JiQKGRgksjLBAQdtHGlcTQgBwIlViTLMYk2MjzNKJrJEilsbO2dYGD9Pn8HT3ZCY70-vv__7v3ff_3g",
},
};
- describe('isBidRequestValid', function () {
- it('Should return true if placementId is present', function () {
+ describe("isBidRequestValid", function () {
+ it("Should return true if placementId is present", function () {
expect(spec.isBidRequestValid(bid)).to.be.true;
});
- it('Should return false if placementId is not present', function () {
+ it("Should return false if placementId is not present", function () {
delete bid.params.placementId;
expect(spec.isBidRequestValid(bid)).to.be.false;
});
});
- describe('isGdprConsentPresent', function () {
- it('Should return true if gdpr consent is present', function () {
+ describe("isGdprConsentPresent", function () {
+ it("Should return true if gdpr consent is present", function () {
expect(spec.isGdprConsentPresent(bid)).to.be.true;
});
});
- describe('buildRequests', function () {
+ describe("buildRequests", function () {
let serverRequest = spec.buildRequests([bid]);
serverRequest = serverRequest[0];
- it('Creates a ServerRequest object with method, URL and data', function () {
+ it("Creates a ServerRequest object with method, URL and data", function () {
expect(serverRequest).to.exist;
expect(serverRequest.method).to.exist;
expect(serverRequest.url).to.exist;
expect(serverRequest.data).to.exist;
});
- it('Returns POST method', function () {
- expect(serverRequest.method).to.equal('POST');
+ it("Returns POST method", function () {
+ expect(serverRequest.method).to.equal("POST");
});
- it('Returns valid URL', function () {
- expect(serverRequest.url).to.equal(
- 'https://dai.doceree.com'
- );
+ it("Returns valid URL", function () {
+ expect(serverRequest.url).to.equal("https://dai.doceree.com");
});
});
- describe('interpretResponse', function () {
- it('Should interpret banner response', function () {
+ describe("interpretResponse", function () {
+ it("Should interpret banner response", function () {
const banner = {
body: {
cpm: 3.576,
- currency: 'USD',
+ currency: "USD",
width: 250,
height: 300,
- ad: 'I am an ad
',
+ ad: "I am an ad
",
ttl: 30,
- creativeId: 'div-1',
+ creativeId: "div-1",
netRevenue: false,
- bidderCode: '123',
+ bidderCode: "123",
dealId: 232,
- requestId: '123',
+ requestId: "123",
meta: {
brandId: null,
- advertiserDomains: ['https://dai.doceree.com'],
+ advertiserDomains: ["https://dai.doceree.com"],
},
},
};
let bannerResponses = spec.interpretResponse(banner);
- expect(bannerResponses).to.be.an('array').that.is.not.empty;
+ expect(bannerResponses).to.be.an("array").that.is.not.empty;
let dataItem = bannerResponses[0];
expect(dataItem).to.have.all.keys(
- 'requestId',
- 'cpm',
- 'width',
- 'height',
- 'ad',
- 'ttl',
- 'netRevenue',
- 'currency',
- 'mediaType',
- 'creativeId',
- 'meta'
+ "requestId",
+ "cpm",
+ "width",
+ "height",
+ "ad",
+ "ttl",
+ "netRevenue",
+ "currency",
+ "mediaType",
+ "creativeId",
+ "meta"
);
- expect(dataItem.requestId).to.equal('123');
+ expect(dataItem.requestId).to.equal("123");
expect(dataItem.cpm).to.equal(3.576);
expect(dataItem.width).to.equal(250);
expect(dataItem.height).to.equal(300);
- expect(dataItem.ad).to.equal('I am an ad
');
+ expect(dataItem.ad).to.equal("I am an ad
");
expect(dataItem.ttl).to.equal(30);
expect(dataItem.netRevenue).to.be.true;
- expect(dataItem.currency).to.equal('USD');
- expect(dataItem.creativeId).to.equal('div-1');
- expect(dataItem.meta.advertiserDomains).to.be.an('array').that.is.not
+ expect(dataItem.currency).to.equal("USD");
+ expect(dataItem.creativeId).to.equal("div-1");
+ expect(dataItem.meta.advertiserDomains).to.be.an("array").that.is.not
.empty;
});
});
From e520aef3fdfdf8947006d4b13eb151d7cbe2f32e Mon Sep 17 00:00:00 2001
From: sagar4596 <132884303+sagar4596@users.noreply.github.com>
Date: Tue, 31 Oct 2023 17:56:26 +0530
Subject: [PATCH 04/21] md file changes
---
modules/docereeAdManager.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/docereeAdManager.md b/modules/docereeAdManager.md
index 30c699c3661..8afba6db08c 100644
--- a/modules/docereeAdManager.md
+++ b/modules/docereeAdManager.md
@@ -1,7 +1,7 @@
# Overview
```
-Module Name: Doceree AdManager Adapter
+Module Name: Doceree AdManager Bidder Adapter
Module Type: Bidder Adapter
Maintainer: tech.stack@doceree.com
```
From 537a8c223dbeb49941c0db6fa85c0eb6df67cb04 Mon Sep 17 00:00:00 2001
From: sagar4596 <132884303+sagar4596@users.noreply.github.com>
Date: Tue, 31 Oct 2023 18:08:01 +0530
Subject: [PATCH 05/21] double quotes to singlequotes
---
modules/docereeAdManager.js | 24 ++--
modules/docereeAdManager.md | 38 +++----
test/spec/modules/docereeAdManager_spec.js | 124 ++++++++++-----------
3 files changed, 93 insertions(+), 93 deletions(-)
diff --git a/modules/docereeAdManager.js b/modules/docereeAdManager.js
index 20a2bf28283..b0179e5f3bb 100644
--- a/modules/docereeAdManager.js
+++ b/modules/docereeAdManager.js
@@ -1,12 +1,12 @@
-import { registerBidder } from "../src/adapters/bidderFactory.js";
-import { config } from "../src/config.js";
-import { BANNER } from "../src/mediaTypes.js";
-const BIDDER_CODE = "docereeAdManager";
-const END_POINT = "https://dai.doceree.com";
+import { registerBidder } from '../src/adapters/bidderFactory.js';
+import { config } from '../src/config.js';
+import { BANNER } from '../src/mediaTypes.js';
+const BIDDER_CODE = 'docereeAdManager';
+const END_POINT = 'https://dai.doceree.com';
export const spec = {
code: BIDDER_CODE,
- url: "",
+ url: '',
supportedMediaTypes: [BANNER],
isBidRequestValid: (bid) => {
@@ -15,26 +15,26 @@ export const spec = {
},
isGdprConsentPresent: (bid) => {
const { gdpr, gdprConsent } = bid.params;
- if (gdpr == "1") {
+ if (gdpr == '1') {
return !!gdprConsent;
}
return true;
},
buildRequests: (validBidRequests) => {
const serverRequests = [];
- const { data } = config.getConfig("docereeAdManager.user");
+ const { data } = config.getConfig('docereeAdManager.user');
// TODO: this should probably look at refererInfo
- // const { page, domain, token } = config.getConfig("customAdapter.context");
+ // const { page, domain, token } = config.getConfig('customAdapter.context');
validBidRequests.forEach(function (validBidRequest) {
const payload = getPayload(validBidRequest, data);
serverRequests.push({
- method: "POST",
+ method: 'POST',
url: END_POINT,
data: JSON.stringify(payload.data),
options: {
- contentType: "application/json",
+ contentType: 'application/json',
withCredentials: true,
},
});
@@ -53,7 +53,7 @@ export const spec = {
ttl: 30,
cpm: responseJson.cpm,
currency: responseJson.currency,
- mediaType: "banner",
+ mediaType: 'banner',
creativeId: responseJson.creativeId,
meta: {
advertiserDomains: [responseJson.meta.advertiserDomains],
diff --git a/modules/docereeAdManager.md b/modules/docereeAdManager.md
index 8afba6db08c..78b2726bfbe 100644
--- a/modules/docereeAdManager.md
+++ b/modules/docereeAdManager.md
@@ -22,7 +22,7 @@ var adUnits = [
],
bids: [
{
- bidder: "docereeAdManager",
+ bidder: 'docereeAdManager',
params: {
placementId: 'DOC-500-3', //required
publisherUrl: document.URL || window.location.href, //optional
@@ -37,28 +37,28 @@ var adUnits = [
```javascript
pbjs.setBidderConfig({
- bidders: ["docereeAdManager"],
+ bidders: ['docereeAdManager'],
config: {
docereeAdManager: {
user: {
data: {
- email: "DALIA.WENCKUS@GMAIL.COM",
- firstName: "DR. DALIA",
- lastName: "WENCKUS",
- mobile: "9812345675",
- specialization: "Internal Medicine",
- organization: "Max Lifecare",
- hcpid: "1992915645",
- dob: "1987-08-27",
- gd: "Female",
- city: "Oildale",
- state: "California",
- country: "California",
- hashedhcpid: "",
- hashedemail: "",
- hashedmobile: "",
- adunit: "DOC-491-1",
- userid: "7d26d8ca-233a-46c2-9d36-7c5d261e151d",
+ email: 'DALIA.WENCKUS@GMAIL.COM',
+ firstName: 'DR. DALIA',
+ lastName: 'WENCKUS',
+ mobile: '9812345675',
+ specialization: 'Internal Medicine',
+ organization: 'Max Lifecare',
+ hcpid: '1992915645',
+ dob: '1987-08-27',
+ gd: 'Female',
+ city: 'Oildale',
+ state: 'California',
+ country: 'California',
+ hashedhcpid: '',
+ hashedemail: '',
+ hashedmobile: '',
+ adunit: 'DOC-491-1',
+ userid: '7d26d8ca-233a-46c2-9d36-7c5d261e151d',
},
},
},
diff --git a/test/spec/modules/docereeAdManager_spec.js b/test/spec/modules/docereeAdManager_spec.js
index 53828a63cbf..6db6ae5fcc7 100644
--- a/test/spec/modules/docereeAdManager_spec.js
+++ b/test/spec/modules/docereeAdManager_spec.js
@@ -1,123 +1,123 @@
-import { expect } from "chai";
-import { spec } from "../../../modules/docereeAdManager.js";
-import { config } from "../../../src/config.js";
+import { expect } from 'chai';
+import { spec } from '../../../modules/docereeAdManager.js';
+import { config } from '../../../src/config.js';
-describe("docereeAdManager", function () {
+describe('docereeAdManager', function () {
config.setConfig({
docereeAdManager: {
user: {
data: {
- email: "",
- firstName: "",
- lastName: "",
- mobile: "",
- specialization: "",
- organization: "",
- hcpid: "",
- dob: "",
- gd: "",
- city: "",
- state: "",
- country: "",
- hashedhcpid: "",
- hashedemail: "",
- hashedmobile: "",
- adunit: "",
- userid: "",
+ email: '',
+ firstName: '',
+ lastName: '',
+ mobile: '',
+ specialization: '',
+ organization: '',
+ hcpid: '',
+ dob: '',
+ gd: '',
+ city: '',
+ state: '',
+ country: '',
+ hashedhcpid: '',
+ hashedemail: '',
+ hashedmobile: '',
+ adunit: '',
+ userid: '',
},
},
},
});
let bid = {
- bidId: "testing",
- bidder: "docereeAdManager",
+ bidId: 'testing',
+ bidder: 'docereeAdManager',
params: {
- placementId: "DOC-500-3",
- gdpr: "1",
+ placementId: 'DOC-500-3',
+ gdpr: '1',
gdprConsent:
- "CPQfU1jPQfU1jG0AAAENAwCAAAAAAAAAAAAAAAAAAAAA.IGLtV_T9fb2vj-_Z99_tkeYwf95y3p-wzhheMs-8NyZeH_B4Wv2MyvBX4JiQKGRgksjLBAQdtHGlcTQgBwIlViTLMYk2MjzNKJrJEilsbO2dYGD9Pn8HT3ZCY70-vv__7v3ff_3g",
+ 'CPQfU1jPQfU1jG0AAAENAwCAAAAAAAAAAAAAAAAAAAAA.IGLtV_T9fb2vj-_Z99_tkeYwf95y3p-wzhheMs-8NyZeH_B4Wv2MyvBX4JiQKGRgksjLBAQdtHGlcTQgBwIlViTLMYk2MjzNKJrJEilsbO2dYGD9Pn8HT3ZCY70-vv__7v3ff_3g',
},
};
- describe("isBidRequestValid", function () {
- it("Should return true if placementId is present", function () {
+ describe('isBidRequestValid', function () {
+ it('Should return true if placementId is present', function () {
expect(spec.isBidRequestValid(bid)).to.be.true;
});
- it("Should return false if placementId is not present", function () {
+ it('Should return false if placementId is not present', function () {
delete bid.params.placementId;
expect(spec.isBidRequestValid(bid)).to.be.false;
});
});
- describe("isGdprConsentPresent", function () {
- it("Should return true if gdpr consent is present", function () {
+ describe('isGdprConsentPresent', function () {
+ it('Should return true if gdpr consent is present', function () {
expect(spec.isGdprConsentPresent(bid)).to.be.true;
});
});
- describe("buildRequests", function () {
+ describe('buildRequests', function () {
let serverRequest = spec.buildRequests([bid]);
serverRequest = serverRequest[0];
- it("Creates a ServerRequest object with method, URL and data", function () {
+ it('Creates a ServerRequest object with method, URL and data', function () {
expect(serverRequest).to.exist;
expect(serverRequest.method).to.exist;
expect(serverRequest.url).to.exist;
expect(serverRequest.data).to.exist;
});
- it("Returns POST method", function () {
- expect(serverRequest.method).to.equal("POST");
+ it('Returns POST method', function () {
+ expect(serverRequest.method).to.equal('POST');
});
- it("Returns valid URL", function () {
- expect(serverRequest.url).to.equal("https://dai.doceree.com");
+ it('Returns valid URL', function () {
+ expect(serverRequest.url).to.equal('https://dai.doceree.com');
});
});
- describe("interpretResponse", function () {
- it("Should interpret banner response", function () {
+ describe('interpretResponse', function () {
+ it('Should interpret banner response', function () {
const banner = {
body: {
cpm: 3.576,
- currency: "USD",
+ currency: 'USD',
width: 250,
height: 300,
- ad: "I am an ad
",
+ ad: 'I am an ad
',
ttl: 30,
- creativeId: "div-1",
+ creativeId: 'div-1',
netRevenue: false,
- bidderCode: "123",
+ bidderCode: '123',
dealId: 232,
- requestId: "123",
+ requestId: '123',
meta: {
brandId: null,
- advertiserDomains: ["https://dai.doceree.com"],
+ advertiserDomains: ['https://dai.doceree.com'],
},
},
};
let bannerResponses = spec.interpretResponse(banner);
- expect(bannerResponses).to.be.an("array").that.is.not.empty;
+ expect(bannerResponses).to.be.an('array').that.is.not.empty;
let dataItem = bannerResponses[0];
expect(dataItem).to.have.all.keys(
- "requestId",
- "cpm",
- "width",
- "height",
- "ad",
- "ttl",
- "netRevenue",
- "currency",
- "mediaType",
- "creativeId",
- "meta"
+ 'requestId',
+ 'cpm',
+ 'width',
+ 'height',
+ 'ad',
+ 'ttl',
+ 'netRevenue',
+ 'currency',
+ 'mediaType',
+ 'creativeId',
+ 'meta'
);
- expect(dataItem.requestId).to.equal("123");
+ expect(dataItem.requestId).to.equal('123');
expect(dataItem.cpm).to.equal(3.576);
expect(dataItem.width).to.equal(250);
expect(dataItem.height).to.equal(300);
- expect(dataItem.ad).to.equal("I am an ad
");
+ expect(dataItem.ad).to.equal('I am an ad
');
expect(dataItem.ttl).to.equal(30);
expect(dataItem.netRevenue).to.be.true;
- expect(dataItem.currency).to.equal("USD");
- expect(dataItem.creativeId).to.equal("div-1");
- expect(dataItem.meta.advertiserDomains).to.be.an("array").that.is.not
+ expect(dataItem.currency).to.equal('USD');
+ expect(dataItem.creativeId).to.equal('div-1');
+ expect(dataItem.meta.advertiserDomains).to.be.an('array').that.is.not
.empty;
});
});
From 5b0c50282935415e499c85197a244aae5bea80e9 Mon Sep 17 00:00:00 2001
From: sagar4596 <132884303+sagar4596@users.noreply.github.com>
Date: Thu, 2 Nov 2023 12:42:42 +0530
Subject: [PATCH 06/21] removed unwanted code
---
modules/docereeAdManager.js | 3 ---
1 file changed, 3 deletions(-)
diff --git a/modules/docereeAdManager.js b/modules/docereeAdManager.js
index b0179e5f3bb..ee3e44462f3 100644
--- a/modules/docereeAdManager.js
+++ b/modules/docereeAdManager.js
@@ -24,9 +24,6 @@ export const spec = {
const serverRequests = [];
const { data } = config.getConfig('docereeAdManager.user');
- // TODO: this should probably look at refererInfo
- // const { page, domain, token } = config.getConfig('customAdapter.context');
-
validBidRequests.forEach(function (validBidRequest) {
const payload = getPayload(validBidRequest, data);
serverRequests.push({
From 63c0e45a4bf8c440293473a90aa4fe07c60191a2 Mon Sep 17 00:00:00 2001
From: sagar4596 <132884303+sagar4596@users.noreply.github.com>
Date: Thu, 2 Nov 2023 14:48:47 +0530
Subject: [PATCH 07/21] empty commit
From bc52b6bfa754d163cc3aa7cde30bd72413c3b7c8 Mon Sep 17 00:00:00 2001
From: Doceree-techStack
Date: Thu, 9 Nov 2023 12:39:20 +0530
Subject: [PATCH 08/21] bidder name lower cased and few configs added
---
modules/docereeAdManager.js | 17 ++++++++---------
modules/docereeAdManager.md | 15 ++++++++-------
test/spec/modules/docereeAdManager_spec.js | 19 ++++++++++---------
3 files changed, 26 insertions(+), 25 deletions(-)
diff --git a/modules/docereeAdManager.js b/modules/docereeAdManager.js
index ee3e44462f3..07c5dbe94a6 100644
--- a/modules/docereeAdManager.js
+++ b/modules/docereeAdManager.js
@@ -1,8 +1,8 @@
import { registerBidder } from '../src/adapters/bidderFactory.js';
import { config } from '../src/config.js';
import { BANNER } from '../src/mediaTypes.js';
-const BIDDER_CODE = 'docereeAdManager';
-const END_POINT = 'https://dai.doceree.com';
+const BIDDER_CODE = 'docereeadmanager';
+const END_POINT = 'https://dai.doceree.com/drs/quest';
export const spec = {
code: BIDDER_CODE,
@@ -14,15 +14,15 @@ export const spec = {
return !!placementId;
},
isGdprConsentPresent: (bid) => {
- const { gdpr, gdprConsent } = bid.params;
+ const { gdpr, gdprconsent } = bid.params;
if (gdpr == '1') {
- return !!gdprConsent;
+ return !!gdprconsent;
}
return true;
},
buildRequests: (validBidRequests) => {
const serverRequests = [];
- const { data } = config.getConfig('docereeAdManager.user');
+ const { data } = config.getConfig('docereeadmanager.user');
validBidRequests.forEach(function (validBidRequest) {
const payload = getPayload(validBidRequest, data);
@@ -71,12 +71,11 @@ function getPayload(bid, bidderRequest) {
lastname,
specialization,
hcpid,
- gd,
+ gender,
city,
state,
zipcode,
hashedNPI,
- privacyConsent,
hashedhcpid,
hashedemail,
hashedmobile,
@@ -93,13 +92,12 @@ function getPayload(bid, bidderRequest) {
lastname: lastname,
specialization: specialization,
hcpid: hcpid,
- gender: gd,
+ gender: gender,
city: city,
state: state,
zipcode: zipcode,
hashedNPI: hashedNPI,
pb: 1,
- privacyConsent: privacyConsent,
adunit: placementId,
requestId: bidId,
hashedhcpid: hashedhcpid,
@@ -108,6 +106,7 @@ function getPayload(bid, bidderRequest) {
country: country,
organization: organization,
dob: dob,
+ userconsent: 1,
},
};
}
diff --git a/modules/docereeAdManager.md b/modules/docereeAdManager.md
index 78b2726bfbe..1f00c9ec488 100644
--- a/modules/docereeAdManager.md
+++ b/modules/docereeAdManager.md
@@ -9,7 +9,7 @@ Maintainer: tech.stack@doceree.com
Connects to Doceree demand source to fetch bids.
-Please use `docereeAdManager` as the bidder code.
+Please use `docereeadmanager` as the bidder code.
# Test Parameters
@@ -22,12 +22,12 @@ var adUnits = [
],
bids: [
{
- bidder: 'docereeAdManager',
+ bidder: 'docereeadmanager',
params: {
placementId: 'DOC-500-3', //required
publisherUrl: document.URL || window.location.href, //optional
gdpr: '1', //optional
- gdprConsent:'CPQfU1jPQfU1jG0AAAENAwCAAAAAAAAAAAAAAAAAAAAA.IGLtV_T9fb2vj-_Z99_tkeYwf95y3p-wzhheMs-8NyZeH_B4Wv2MyvBX4JiQKGRgksjLBAQdtHGlcTQgBwIlViTLMYk2MjzNKJrJEilsbO2dYGD9Pn8HT3ZCY70-vv__7v3ff_3g', //optional
+ gdprconsent:'CPQfU1jPQfU1jG0AAAENAwCAAAAAAAAAAAAAAAAAAAAA.IGLtV_T9fb2vj-_Z99_tkeYwf95y3p-wzhheMs-8NyZeH_B4Wv2MyvBX4JiQKGRgksjLBAQdtHGlcTQgBwIlViTLMYk2MjzNKJrJEilsbO2dYGD9Pn8HT3ZCY70-vv__7v3ff_3g', //optional
}
}
]
@@ -43,22 +43,23 @@ pbjs.setBidderConfig({
user: {
data: {
email: 'DALIA.WENCKUS@GMAIL.COM',
- firstName: 'DR. DALIA',
- lastName: 'WENCKUS',
+ firstname: 'DR. DALIA',
+ lastname: 'WENCKUS',
mobile: '9812345675',
specialization: 'Internal Medicine',
organization: 'Max Lifecare',
hcpid: '1992915645',
dob: '1987-08-27',
- gd: 'Female',
+ gender: 'Female',
city: 'Oildale',
state: 'California',
country: 'California',
hashedhcpid: '',
hashedemail: '',
hashedmobile: '',
- adunit: 'DOC-491-1',
userid: '7d26d8ca-233a-46c2-9d36-7c5d261e151d',
+ zipcode: '',
+ userconsent: '1',
},
},
},
diff --git a/test/spec/modules/docereeAdManager_spec.js b/test/spec/modules/docereeAdManager_spec.js
index 6db6ae5fcc7..e12856c91e0 100644
--- a/test/spec/modules/docereeAdManager_spec.js
+++ b/test/spec/modules/docereeAdManager_spec.js
@@ -2,35 +2,36 @@ import { expect } from 'chai';
import { spec } from '../../../modules/docereeAdManager.js';
import { config } from '../../../src/config.js';
-describe('docereeAdManager', function () {
+describe('docereeadmanager', function () {
config.setConfig({
- docereeAdManager: {
+ docereeadmanager: {
user: {
data: {
email: '',
- firstName: '',
- lastName: '',
+ firstname: '',
+ lastname: '',
mobile: '',
specialization: '',
organization: '',
hcpid: '',
dob: '',
- gd: '',
+ gender: '',
city: '',
state: '',
country: '',
hashedhcpid: '',
hashedemail: '',
hashedmobile: '',
- adunit: '',
userid: '',
+ zipcode: '',
+ userconsent: '',
},
},
},
});
let bid = {
bidId: 'testing',
- bidder: 'docereeAdManager',
+ bidder: 'docereeadmanager',
params: {
placementId: 'DOC-500-3',
gdpr: '1',
@@ -68,7 +69,7 @@ describe('docereeAdManager', function () {
expect(serverRequest.method).to.equal('POST');
});
it('Returns valid URL', function () {
- expect(serverRequest.url).to.equal('https://dai.doceree.com');
+ expect(serverRequest.url).to.equal('https://dai.doceree.com/drs/quest');
});
});
describe('interpretResponse', function () {
@@ -88,7 +89,7 @@ describe('docereeAdManager', function () {
requestId: '123',
meta: {
brandId: null,
- advertiserDomains: ['https://dai.doceree.com'],
+ advertiserDomains: ['https://dai.doceree.com/drs/quest'],
},
},
};
From ea533b1906cf427e1870b4cfb077e3c53d72057a Mon Sep 17 00:00:00 2001
From: Doceree-techStack
Date: Thu, 9 Nov 2023 12:42:06 +0530
Subject: [PATCH 09/21] md file changes
---
modules/docereeAdManager.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/docereeAdManager.md b/modules/docereeAdManager.md
index 1f00c9ec488..e8bf2d83c32 100644
--- a/modules/docereeAdManager.md
+++ b/modules/docereeAdManager.md
@@ -37,9 +37,9 @@ var adUnits = [
```javascript
pbjs.setBidderConfig({
- bidders: ['docereeAdManager'],
+ bidders: ['docereeadmanager'],
config: {
- docereeAdManager: {
+ docereeadmanager: {
user: {
data: {
email: 'DALIA.WENCKUS@GMAIL.COM',
From e9ca9511787230ffcb2da780fd4ab379d2ae8f57 Mon Sep 17 00:00:00 2001
From: Doceree-techStack
Date: Thu, 9 Nov 2023 13:01:35 +0530
Subject: [PATCH 10/21] spec file changes
---
test/spec/modules/docereeAdManager_spec.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/spec/modules/docereeAdManager_spec.js b/test/spec/modules/docereeAdManager_spec.js
index e12856c91e0..535ee3116c1 100644
--- a/test/spec/modules/docereeAdManager_spec.js
+++ b/test/spec/modules/docereeAdManager_spec.js
@@ -35,7 +35,7 @@ describe('docereeadmanager', function () {
params: {
placementId: 'DOC-500-3',
gdpr: '1',
- gdprConsent:
+ gdprconsent:
'CPQfU1jPQfU1jG0AAAENAwCAAAAAAAAAAAAAAAAAAAAA.IGLtV_T9fb2vj-_Z99_tkeYwf95y3p-wzhheMs-8NyZeH_B4Wv2MyvBX4JiQKGRgksjLBAQdtHGlcTQgBwIlViTLMYk2MjzNKJrJEilsbO2dYGD9Pn8HT3ZCY70-vv__7v3ff_3g',
},
};
From 3f4baf00826f6c54caaee59dc9c392a09522c7a8 Mon Sep 17 00:00:00 2001
From: Doceree-techStack
Date: Thu, 9 Nov 2023 14:26:07 +0530
Subject: [PATCH 11/21] empty commit
From d17793832338fd160e01b6f1339502686b066a73 Mon Sep 17 00:00:00 2001
From: Doceree-techStack
Date: Thu, 9 Nov 2023 14:44:59 +0530
Subject: [PATCH 12/21] empty commit
From 0dcb61fd58bd0701f33d5716580f5e22f7164f5e Mon Sep 17 00:00:00 2001
From: Doceree-techStack
Date: Sat, 11 Nov 2023 16:31:39 +0530
Subject: [PATCH 13/21] issues resolved
---
...nager.js => docereeAdManagerBidAdapter.js} | 19 ++++++++++++++-----
...nager.md => docereeAdManagerBidAdapter.md} | 12 ++++++------
....js => docereeAdManagerBidAdapter_spec.js} | 4 ++--
3 files changed, 22 insertions(+), 13 deletions(-)
rename modules/{docereeAdManager.js => docereeAdManagerBidAdapter.js} (85%)
rename modules/{docereeAdManager.md => docereeAdManagerBidAdapter.md} (86%)
rename test/spec/modules/{docereeAdManager_spec.js => docereeAdManagerBidAdapter_spec.js} (97%)
diff --git a/modules/docereeAdManager.js b/modules/docereeAdManagerBidAdapter.js
similarity index 85%
rename from modules/docereeAdManager.js
rename to modules/docereeAdManagerBidAdapter.js
index 07c5dbe94a6..f08ba331233 100644
--- a/modules/docereeAdManager.js
+++ b/modules/docereeAdManagerBidAdapter.js
@@ -22,10 +22,15 @@ export const spec = {
},
buildRequests: (validBidRequests) => {
const serverRequests = [];
- const { data } = config.getConfig('docereeadmanager.user');
+ const { data } = config.getConfig('docereeadmanager.user') || {};
validBidRequests.forEach(function (validBidRequest) {
const payload = getPayload(validBidRequest, data);
+
+ if (!payload) {
+ return;
+ }
+
serverRequests.push({
method: 'POST',
url: END_POINT,
@@ -50,10 +55,14 @@ export const spec = {
ttl: 30,
cpm: responseJson.cpm,
currency: responseJson.currency,
- mediaType: 'banner',
+ mediaType: BANNER,
creativeId: responseJson.creativeId,
meta: {
- advertiserDomains: [responseJson.meta.advertiserDomains],
+ advertiserDomains:
+ Array.isArray(responseJson.meta.advertiserDomains) &&
+ responseJson.meta.advertiserDomains.length > 0
+ ? responseJson.meta.advertiserDomains
+ : [],
},
};
@@ -61,7 +70,7 @@ export const spec = {
},
};
-function getPayload(bid, bidderRequest) {
+function getPayload(bid, userData) {
const { bidId, params } = bid;
const { placementId } = params;
const {
@@ -82,7 +91,7 @@ function getPayload(bid, bidderRequest) {
country,
organization,
dob,
- } = bidderRequest;
+ } = userData;
return {
data: {
diff --git a/modules/docereeAdManager.md b/modules/docereeAdManagerBidAdapter.md
similarity index 86%
rename from modules/docereeAdManager.md
rename to modules/docereeAdManagerBidAdapter.md
index e8bf2d83c32..bedbf57b179 100644
--- a/modules/docereeAdManager.md
+++ b/modules/docereeAdManagerBidAdapter.md
@@ -24,7 +24,7 @@ var adUnits = [
{
bidder: 'docereeadmanager',
params: {
- placementId: 'DOC-500-3', //required
+ placementId: 'DOC-19-1', //required
publisherUrl: document.URL || window.location.href, //optional
gdpr: '1', //optional
gdprconsent:'CPQfU1jPQfU1jG0AAAENAwCAAAAAAAAAAAAAAAAAAAAA.IGLtV_T9fb2vj-_Z99_tkeYwf95y3p-wzhheMs-8NyZeH_B4Wv2MyvBX4JiQKGRgksjLBAQdtHGlcTQgBwIlViTLMYk2MjzNKJrJEilsbO2dYGD9Pn8HT3ZCY70-vv__7v3ff_3g', //optional
@@ -42,13 +42,13 @@ pbjs.setBidderConfig({
docereeadmanager: {
user: {
data: {
- email: 'DALIA.WENCKUS@GMAIL.COM',
- firstname: 'DR. DALIA',
- lastname: 'WENCKUS',
- mobile: '9812345675',
+ email: 'XXX.XXX@GMAIL.COM',
+ firstname: 'DR. XXX',
+ lastname: 'XXX',
+ mobile: '981234XXXX',
specialization: 'Internal Medicine',
organization: 'Max Lifecare',
- hcpid: '1992915645',
+ hcpid: '199291XXXX',
dob: '1987-08-27',
gender: 'Female',
city: 'Oildale',
diff --git a/test/spec/modules/docereeAdManager_spec.js b/test/spec/modules/docereeAdManagerBidAdapter_spec.js
similarity index 97%
rename from test/spec/modules/docereeAdManager_spec.js
rename to test/spec/modules/docereeAdManagerBidAdapter_spec.js
index 535ee3116c1..26b054f4e29 100644
--- a/test/spec/modules/docereeAdManager_spec.js
+++ b/test/spec/modules/docereeAdManagerBidAdapter_spec.js
@@ -1,5 +1,5 @@
import { expect } from 'chai';
-import { spec } from '../../../modules/docereeAdManager.js';
+import { spec } from '../../../modules/docereeAdManagerBidAdapter.js';
import { config } from '../../../src/config.js';
describe('docereeadmanager', function () {
@@ -33,7 +33,7 @@ describe('docereeadmanager', function () {
bidId: 'testing',
bidder: 'docereeadmanager',
params: {
- placementId: 'DOC-500-3',
+ placementId: 'DOC-19-1',
gdpr: '1',
gdprconsent:
'CPQfU1jPQfU1jG0AAAENAwCAAAAAAAAAAAAAAAAAAAAA.IGLtV_T9fb2vj-_Z99_tkeYwf95y3p-wzhheMs-8NyZeH_B4Wv2MyvBX4JiQKGRgksjLBAQdtHGlcTQgBwIlViTLMYk2MjzNKJrJEilsbO2dYGD9Pn8HT3ZCY70-vv__7v3ff_3g',
From f11782636e589f9f18443d773afe83ae46b75fd8 Mon Sep 17 00:00:00 2001
From: Doceree-techStack
Date: Sat, 11 Nov 2023 18:25:47 +0530
Subject: [PATCH 14/21] empty commit
From 631a7c562bca0613c9baeb67c5e26f485ed26b49 Mon Sep 17 00:00:00 2001
From: Doceree-techStack
Date: Wed, 15 Nov 2023 13:37:53 +0530
Subject: [PATCH 15/21] issue fixes
---
modules/docereeAdManagerBidAdapter.js | 71 ++++++++++++++-------------
1 file changed, 38 insertions(+), 33 deletions(-)
diff --git a/modules/docereeAdManagerBidAdapter.js b/modules/docereeAdManagerBidAdapter.js
index f08ba331233..8e4d55d4d8e 100644
--- a/modules/docereeAdManagerBidAdapter.js
+++ b/modules/docereeAdManagerBidAdapter.js
@@ -1,12 +1,12 @@
-import { registerBidder } from '../src/adapters/bidderFactory.js';
-import { config } from '../src/config.js';
-import { BANNER } from '../src/mediaTypes.js';
-const BIDDER_CODE = 'docereeadmanager';
-const END_POINT = 'https://dai.doceree.com/drs/quest';
+import { registerBidder } from "../src/adapters/bidderFactory.js";
+import { config } from "../src/config.js";
+import { BANNER } from "../src/mediaTypes.js";
+const BIDDER_CODE = "docereeadmanager";
+const END_POINT = "https://dai.doceree.com/drs/quest";
export const spec = {
code: BIDDER_CODE,
- url: '',
+ url: "",
supportedMediaTypes: [BANNER],
isBidRequestValid: (bid) => {
@@ -15,14 +15,14 @@ export const spec = {
},
isGdprConsentPresent: (bid) => {
const { gdpr, gdprconsent } = bid.params;
- if (gdpr == '1') {
+ if (gdpr == "1") {
return !!gdprconsent;
}
return true;
},
buildRequests: (validBidRequests) => {
const serverRequests = [];
- const { data } = config.getConfig('docereeadmanager.user') || {};
+ const { data } = config.getConfig("docereeadmanager.user") || {};
validBidRequests.forEach(function (validBidRequest) {
const payload = getPayload(validBidRequest, data);
@@ -32,11 +32,11 @@ export const spec = {
}
serverRequests.push({
- method: 'POST',
+ method: "POST",
url: END_POINT,
data: JSON.stringify(payload.data),
options: {
- contentType: 'application/json',
+ contentType: "application/json",
withCredentials: true,
},
});
@@ -71,6 +71,10 @@ export const spec = {
};
function getPayload(bid, userData) {
+ if (!userData || !bid || bid.length === 0) {
+ return false;
+ }
+
const { bidId, params } = bid;
const { placementId } = params;
const {
@@ -93,30 +97,31 @@ function getPayload(bid, userData) {
dob,
} = userData;
+ const data = {
+ userid: userid ? userid : "",
+ email: email ? email : "",
+ firstname: firstname ? firstname : "",
+ lastname: lastname ? lastname : "",
+ specialization: specialization ? specialization : "",
+ hcpid: hcpid ? hcpid : "",
+ gender: gender ? gender : "",
+ city: city ? city : "",
+ state: state ? state : "",
+ zipcode: zipcode ? zipcode : "",
+ hashedNPI: hashedNPI ? hashedNPI : "",
+ pb: 1,
+ adunit: placementId ? placementId : "",
+ requestId: bidId ? bidId : "",
+ hashedhcpid: hashedhcpid ? hashedhcpid : "",
+ hashedemail: hashedemail ? hashedemail : "",
+ hashedmobile: hashedmobile ? hashedmobile : "",
+ country: country ? country : "",
+ organization: organization ? organization : "",
+ dob: dob ? dob : "",
+ userconsent: 1,
+ };
return {
- 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,
- country: country,
- organization: organization,
- dob: dob,
- userconsent: 1,
- },
+ data,
};
}
From da3d6a15f5934cf28863856b4143a6fd80ffb110 Mon Sep 17 00:00:00 2001
From: Doceree-techStack
Date: Wed, 15 Nov 2023 13:39:00 +0530
Subject: [PATCH 16/21] minor change
---
modules/docereeAdManagerBidAdapter.js | 58 +++++++++++++--------------
1 file changed, 29 insertions(+), 29 deletions(-)
diff --git a/modules/docereeAdManagerBidAdapter.js b/modules/docereeAdManagerBidAdapter.js
index 8e4d55d4d8e..8ea360b4b4a 100644
--- a/modules/docereeAdManagerBidAdapter.js
+++ b/modules/docereeAdManagerBidAdapter.js
@@ -1,12 +1,12 @@
-import { registerBidder } from "../src/adapters/bidderFactory.js";
-import { config } from "../src/config.js";
-import { BANNER } from "../src/mediaTypes.js";
-const BIDDER_CODE = "docereeadmanager";
-const END_POINT = "https://dai.doceree.com/drs/quest";
+import { registerBidder } from '../src/adapters/bidderFactory.js';
+import { config } from '../src/config.js';
+import { BANNER } from '../src/mediaTypes.js';
+const BIDDER_CODE = 'docereeadmanager';
+const END_POINT = 'https://dai.doceree.com/drs/quest';
export const spec = {
code: BIDDER_CODE,
- url: "",
+ url: '',
supportedMediaTypes: [BANNER],
isBidRequestValid: (bid) => {
@@ -15,14 +15,14 @@ export const spec = {
},
isGdprConsentPresent: (bid) => {
const { gdpr, gdprconsent } = bid.params;
- if (gdpr == "1") {
+ if (gdpr == '1') {
return !!gdprconsent;
}
return true;
},
buildRequests: (validBidRequests) => {
const serverRequests = [];
- const { data } = config.getConfig("docereeadmanager.user") || {};
+ const { data } = config.getConfig('docereeadmanager.user') || {};
validBidRequests.forEach(function (validBidRequest) {
const payload = getPayload(validBidRequest, data);
@@ -32,11 +32,11 @@ export const spec = {
}
serverRequests.push({
- method: "POST",
+ method: 'POST',
url: END_POINT,
data: JSON.stringify(payload.data),
options: {
- contentType: "application/json",
+ contentType: 'application/json',
withCredentials: true,
},
});
@@ -98,26 +98,26 @@ function getPayload(bid, userData) {
} = userData;
const data = {
- userid: userid ? userid : "",
- email: email ? email : "",
- firstname: firstname ? firstname : "",
- lastname: lastname ? lastname : "",
- specialization: specialization ? specialization : "",
- hcpid: hcpid ? hcpid : "",
- gender: gender ? gender : "",
- city: city ? city : "",
- state: state ? state : "",
- zipcode: zipcode ? zipcode : "",
- hashedNPI: hashedNPI ? hashedNPI : "",
+ userid: userid ? userid : '',
+ email: email ? email : '',
+ firstname: firstname ? firstname : '',
+ lastname: lastname ? lastname : '',
+ specialization: specialization ? specialization : '',
+ hcpid: hcpid ? hcpid : '',
+ gender: gender ? gender : '',
+ city: city ? city : '',
+ state: state ? state : '',
+ zipcode: zipcode ? zipcode : '',
+ hashedNPI: hashedNPI ? hashedNPI : '',
pb: 1,
- adunit: placementId ? placementId : "",
- requestId: bidId ? bidId : "",
- hashedhcpid: hashedhcpid ? hashedhcpid : "",
- hashedemail: hashedemail ? hashedemail : "",
- hashedmobile: hashedmobile ? hashedmobile : "",
- country: country ? country : "",
- organization: organization ? organization : "",
- dob: dob ? dob : "",
+ adunit: placementId ? placementId : '',
+ requestId: bidId ? bidId : '',
+ hashedhcpid: hashedhcpid ? hashedhcpid : '',
+ hashedemail: hashedemail ? hashedemail : '',
+ hashedmobile: hashedmobile ? hashedmobile : '',
+ country: country ? country : '',
+ organization: organization ? organization : '',
+ dob: dob ? dob : '',
userconsent: 1,
};
return {
From e0d70c9f086b4c5f7157d877da3d72917e244d8d Mon Sep 17 00:00:00 2001
From: Doceree-techStack
Date: Wed, 15 Nov 2023 13:42:24 +0530
Subject: [PATCH 17/21] empty commit
From ced84ad54ce348e0037bf57c039cfca4b2f38f1d Mon Sep 17 00:00:00 2001
From: Doceree-techStack
Date: Wed, 15 Nov 2023 13:49:46 +0530
Subject: [PATCH 18/21] minor change
---
modules/docereeAdManagerBidAdapter.js | 38 +++++++++++++--------------
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/modules/docereeAdManagerBidAdapter.js b/modules/docereeAdManagerBidAdapter.js
index 8ea360b4b4a..38921981b12 100644
--- a/modules/docereeAdManagerBidAdapter.js
+++ b/modules/docereeAdManagerBidAdapter.js
@@ -98,26 +98,26 @@ function getPayload(bid, userData) {
} = userData;
const data = {
- userid: userid ? userid : '',
- email: email ? email : '',
- firstname: firstname ? firstname : '',
- lastname: lastname ? lastname : '',
- specialization: specialization ? specialization : '',
- hcpid: hcpid ? hcpid : '',
- gender: gender ? gender : '',
- city: city ? city : '',
- state: state ? state : '',
- zipcode: zipcode ? zipcode : '',
- hashedNPI: hashedNPI ? hashedNPI : '',
+ 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 ? placementId : '',
- requestId: bidId ? bidId : '',
- hashedhcpid: hashedhcpid ? hashedhcpid : '',
- hashedemail: hashedemail ? hashedemail : '',
- hashedmobile: hashedmobile ? hashedmobile : '',
- country: country ? country : '',
- organization: organization ? organization : '',
- dob: dob ? dob : '',
+ adunit: placementId || '',
+ requestId: bidId || '',
+ hashedhcpid: hashedhcpid || '',
+ hashedemail: hashedemail || '',
+ hashedmobile: hashedmobile || '',
+ country: country || '',
+ organization: organization || '',
+ dob: dob || '',
userconsent: 1,
};
return {
From 6c38c301ea9028f2dd8933196315f1b60c31f621 Mon Sep 17 00:00:00 2001
From: Doceree-techStack
Date: Wed, 15 Nov 2023 14:33:58 +0530
Subject: [PATCH 19/21] empty commit
From e08131c95efe913159d71eec42e20b7abe77673a Mon Sep 17 00:00:00 2001
From: Doceree-techStack
Date: Wed, 15 Nov 2023 15:04:14 +0530
Subject: [PATCH 20/21] conditional changes
---
index.html | 158 ++++++++++++++++++++++++++
modules/docereeAdManagerBidAdapter.js | 2 +-
2 files changed, 159 insertions(+), 1 deletion(-)
create mode 100644 index.html
diff --git a/index.html b/index.html
new file mode 100644
index 00000000000..a9eb806dfe0
--- /dev/null
+++ b/index.html
@@ -0,0 +1,158 @@
+
+
+
+
+
+ Custom Prebid.js Adapter Example
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/docereeAdManagerBidAdapter.js b/modules/docereeAdManagerBidAdapter.js
index 38921981b12..d3765f5a130 100644
--- a/modules/docereeAdManagerBidAdapter.js
+++ b/modules/docereeAdManagerBidAdapter.js
@@ -71,7 +71,7 @@ export const spec = {
};
function getPayload(bid, userData) {
- if (!userData || !bid || bid.length === 0) {
+ if (!userData || !bid) {
return false;
}
From 1ba4aeac5aac363d613615d0d9e2e0e6b154e164 Mon Sep 17 00:00:00 2001
From: Doceree-techStack
Date: Wed, 15 Nov 2023 15:04:53 +0530
Subject: [PATCH 21/21] removed unwanted code
---
index.html | 158 -----------------------------------------------------
1 file changed, 158 deletions(-)
delete mode 100644 index.html
diff --git a/index.html b/index.html
deleted file mode 100644
index a9eb806dfe0..00000000000
--- a/index.html
+++ /dev/null
@@ -1,158 +0,0 @@
-
-
-
-
-
- Custom Prebid.js Adapter Example
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-