diff --git a/integrationExamples/gpt/inskin_example.html b/integrationExamples/gpt/inskin_example.html
new file mode 100644
index 00000000000..197a5b1ffe1
--- /dev/null
+++ b/integrationExamples/gpt/inskin_example.html
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Prebid.js Test
+ Div-1
+
+
+
+
+
diff --git a/modules/inskinBidAdapter.js b/modules/inskinBidAdapter.js
index fbd87083b58..ae8eebcb7ae 100644
--- a/modules/inskinBidAdapter.js
+++ b/modules/inskinBidAdapter.js
@@ -116,9 +116,15 @@ export const spec = {
if (serverResponse) {
const decision = serverResponse.decisions && serverResponse.decisions[bidId];
- const price = decision && decision.pricing && decision.pricing.clearPrice;
+ const data = decision && decision.contents && decision.contents[0] && decision.contents[0].data;
+ const pubCPM = data && data.customData && data.customData.pubCPM;
+ const clearPrice = decision && decision.pricing && decision.pricing.clearPrice;
+ const price = pubCPM || clearPrice;
if (decision && price) {
+ decision.impressionUrl += ('&property:pubcpm=' + price);
+ bidObj.price = price;
+
bid.requestId = bidId;
bid.cpm = price;
bid.width = decision.width;
@@ -149,6 +155,7 @@ export const spec = {
const id = 'ism_tag_' + Math.floor((Math.random() * 10e16));
window[id] = {
bidId: e.data.bidId,
+ bidPrice: bidsMap[e.data.bidId].price,
serverResponse
};
const script = document.createElement('script');
diff --git a/test/spec/modules/inskinBidAdapter_spec.js b/test/spec/modules/inskinBidAdapter_spec.js
index 8a62a465a5b..896fe36d443 100644
--- a/test/spec/modules/inskinBidAdapter_spec.js
+++ b/test/spec/modules/inskinBidAdapter_spec.js
@@ -82,6 +82,9 @@ const RESPONSE = {
'type': 'html',
'body': '',
'data': {
+ 'customData': {
+ 'pubCPM': 1
+ },
'height': 90,
'width': 728,
'imageUrl': 'https://static.adzerk.net/Advertisers/b0ab77db8a7848c8b78931aed022a5ef.gif',
@@ -241,6 +244,13 @@ describe('InSkin BidAdapter', function () {
});
});
+ it('cpm is correctly set', function () {
+ let bids = spec.interpretResponse(RESPONSE, REQUEST);
+
+ expect(bids[0].cpm).to.equal(0.5);
+ expect(bids[1].cpm).to.equal(1);
+ });
+
it('handles nobid responses', function () {
let EMPTY_RESP = Object.assign({}, RESPONSE, {'body': {'decisions': null}})
let bids = spec.interpretResponse(EMPTY_RESP, REQUEST);