Skip to content

Commit

Permalink
Currency support for SmartAdServer adapter (#979)
Browse files Browse the repository at this point in the history
* Smart AdServer adapter

Add Smart AdServer adapter with tests

* fix not supported method

Replace startsWith which is not supported in all browser version by
lastIndexOf.

* Issue with optional parameter

Fix issue when no targeting is specified and remove "undefined" value
passed in url

* Add currency support for SmartAdServer adapter

Add currency support for SmartAdServer adapter
  • Loading branch information
adesmoules authored and jaiminpanchal27 committed Feb 21, 2017
1 parent dac424b commit 73e16e2
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 1 deletion.
2 changes: 2 additions & 0 deletions src/adapters/smartadserver.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ var SmartAdServer = function SmartAdServer() {
bidObject = bidfactory.createBid(1);
bidObject.bidderCode = 'smartadserver';
bidObject.cpm = adUnit.cpm;
bidObject.currency = adUnit.currency;
bidObject.ad = adUnit.ad;
bidObject.width = adUnit.width;
bidObject.height = adUnit.height;
Expand All @@ -40,6 +41,7 @@ var SmartAdServer = function SmartAdServer() {
"siteid": bid.params.siteId,
"pgid": bid.params.pageId,
"fmtid": bid.params.formatId,
"ccy": bid.params.currency || "USD",
"tgt": encodeURIComponent(bid.params.target || ''),
"tag": bid.placementCode,
"sizes": bid.sizes.map(size => size[0] + "x" + size[1]).join(","),
Expand Down
37 changes: 36 additions & 1 deletion test/spec/adapters/smartadserver_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,33 @@ describe("smartadserver adapter tests", function () {
siteId: "1234",
pageId: "5678",
formatId: "90",
target: "test=prebid"
target: "test=prebid",
currency: "EUR"
},
requestId: "efgh5678",
placementCode: "sas_42"
}
]
};

var DEFAULT_PARAMS_WO_OPTIONAL = {
bidderCode: "smartadserver",
bids: [{
bidId: "abcd1234",
sizes: [[300, 250], [300, 200]],
bidder: "smartadserver",
params: {
domain: "http://www.smartadserver.com",
siteId: "1234",
pageId: "5678",
formatId: "90"
},
requestId: "efgh5678",
placementCode: "sas_42"
}
]
};

var BID_RESPONSE = {
cpm: 0.42,
ad: "fake ad content",
Expand Down Expand Up @@ -58,13 +77,29 @@ describe("smartadserver adapter tests", function () {
expect(parsedBidUrlQueryString).to.have.property("pgid").and.to.equal("5678");
expect(parsedBidUrlQueryString).to.have.property("fmtid").and.to.equal("90");
expect(parsedBidUrlQueryString).to.have.property("tgt").and.to.equal("test=prebid");
expect(parsedBidUrlQueryString).to.have.property("ccy").and.to.equal("EUR");
expect(parsedBidUrlQueryString).to.have.property("tag").and.to.equal("sas_42");
expect(parsedBidUrlQueryString).to.have.property("sizes").and.to.equal("300x250,300x200");
expect(parsedBidUrlQueryString).to.have.property("async").and.to.equal("1");

stubLoadScript.restore();
});

it("test optional parameters default value", function () {
var stubLoadScript = sinon.stub(adLoader, "loadScript");

adapter().callBids(DEFAULT_PARAMS_WO_OPTIONAL);

var bidUrl = stubLoadScript.getCall(0).args[0];
var parsedBidUrl = urlParse(bidUrl);
var parsedBidUrlQueryString = querystringify.parse(parsedBidUrl.query);

expect(parsedBidUrlQueryString).to.have.property("tgt").and.to.equal("");
expect(parsedBidUrlQueryString).to.have.property("ccy").and.to.equal("USD");

stubLoadScript.restore();
});

it("creates an empty bid response if no bids", function() {
var stubLoadScript = sinon.stub(adLoader, "loadScript", function(url) {
var bidUrl = stubLoadScript.getCall(0).args[0];
Expand Down

0 comments on commit 73e16e2

Please sign in to comment.