diff --git a/modules/taboolaBidAdapter.js b/modules/taboolaBidAdapter.js index 8db98409a..487b9e8a0 100644 --- a/modules/taboolaBidAdapter.js +++ b/modules/taboolaBidAdapter.js @@ -85,6 +85,7 @@ export const spec = { const [bidRequest] = validBidRequests; const {refererInfo, gdprConsent = {}, uspConsent} = bidderRequest; const {publisherId} = bidRequest.params; + let {url = END_POINT_URL} = bidRequest.params; const site = getSiteProperties(bidRequest.params, refererInfo); const device = {ua: navigator.userAgent}; const imps = getImps(validBidRequests); @@ -128,7 +129,7 @@ export const spec = { regs }; - const url = [END_POINT_URL, publisherId].join('/'); + url = [url, publisherId].join('/'); return { url, diff --git a/modules/taboolaBidAdapter.md b/modules/taboolaBidAdapter.md index 33e725927..17aa76d0e 100644 --- a/modules/taboolaBidAdapter.md +++ b/modules/taboolaBidAdapter.md @@ -30,7 +30,8 @@ The Taboola Bidding adapter requires setup before beginning. Please contact us o publisherId: 'tester-pub', // your-publisher-id bidfloor: 0.25, // Optional - default is null bcat: ['IAB1-1'], // Optional - default is [] - badv: ['example.com'] // Optional - default is [] + badv: ['example.com'], // Optional - default is [] + url: ['https://example.com'] // Optional - default is null } }] }]; @@ -38,12 +39,13 @@ The Taboola Bidding adapter requires setup before beginning. Please contact us o # Parameters -| Name | Scope | Description | Example | Type | -|----------------|----------|---------------------------------------------------------|----------------------------|--------------| -| `tagId` | required | Tag ID / Placement Name
| `'Below The Article'` | `String` | -| `publisherId` | required | Numeric Publisher ID
(as provided by Taboola) | `'1234567'` | `String` | -| `bcat` | optional | List of blocked advertiser categories (IAB) | `['IAB1-1']` | `Array` | -| `badv` | optional | Blocked Advertiser Domains | `'example.com'` | `String Url` | -| `bidfloor` | optional | CPM bid floor | `0.25` | `Float` | +| Name | Scope | Description | Example | Type | +|---------------|----------|---------------------------------------------------------|----------------------------|--------------| +| `tagId` | required | Tag ID / Placement Name
| `'Below The Article'` | `String` | +| `publisherId` | required | Numeric Publisher ID
(as provided by Taboola) | `'1234567'` | `String` | +| `bcat` | optional | List of blocked advertiser categories (IAB) | `['IAB1-1']` | `Array` | +| `badv` | optional | Blocked Advertiser Domains | `'example.com'` | `String Url` | +| `bidfloor` | optional | CPM bid floor | `0.25` | `Float` | +| `url` | optional | Endpoint Url (only if provided by Taboola) | `https://example.com` | `String` | diff --git a/test/spec/modules/taboolaBidAdapter_spec.js b/test/spec/modules/taboolaBidAdapter_spec.js index 739335e8f..8d29fdc79 100644 --- a/test/spec/modules/taboolaBidAdapter_spec.js +++ b/test/spec/modules/taboolaBidAdapter_spec.js @@ -89,6 +89,32 @@ describe('Taboola Adapter', function () { } expect(spec.isBidRequestValid(bid)).to.equal(true) }) + + it('should succeed when url is null', function () { + const bid = { + bidder: 'taboola', + params: { + publisherId: 'publisherId', + tagId: 'below the article', + url: null + }, + ...displayBidRequestParams + } + expect(spec.isBidRequestValid(bid)).to.equal(true) + }) + + it('should succeed when url is filled', function () { + const bid = { + bidder: 'taboola', + params: { + publisherId: 'publisherId', + tagId: 'below the article', + url: 'https://example.com' + }, + ...displayBidRequestParams + } + expect(spec.isBidRequestValid(bid)).to.equal(true) + }) }) describe('buildRequests', function () { @@ -148,6 +174,26 @@ describe('Taboola Adapter', function () { expect(res.url).to.equal(`${END_POINT_URL}/${commonBidRequest.params.publisherId}`); expect(res.data).to.deep.equal(JSON.stringify(expectedData)); + }); + + it('should fill the url when it is passed', function () { + const commonBidRequestWithUrl = { + bidder: 'taboola', + params: { + publisherId: 'publisherId', + tagId: 'placement name', + url: 'https://example.com' + }, + bidId: 'aa43860a-4644-442a-b5e0-93f268cs4d19', + auctionId: '65746dca-26f3-4186-be13-dfa63469b1b7', + } + const defaultBidRequestWithUrl = { + ...commonBidRequestWithUrl, + ...displayBidRequestParams, + } + const res = spec.buildRequests([defaultBidRequestWithUrl], commonBidderRequest); + + expect(res.url).to.equal(`${commonBidRequestWithUrl.params.url}/${commonBidRequest.params.publisherId}`); }) it('should pass optional parameters in request', function () {