Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aniview Bid Adapter: add support for BANNER #7162

Merged
merged 52 commits into from
Jul 12, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
38f3d5b
Support new aniview bid adapter
itaynave Feb 3, 2019
d50f498
Support new aniview bid adapter
itaynave Feb 6, 2019
ee8b463
Support new aniview bid adapter
itaynave Feb 6, 2019
7a4f754
Support new aniview bid adapter
itaynave Feb 6, 2019
9350489
Fix Consent parameters
itaynave Feb 7, 2019
1d4c5ed
Merge remote-tracking branch 'upstream/master'
itaynave Dec 11, 2019
4713801
Update aniviewBidAdapter.js
itaynave Dec 11, 2019
a0aa080
Update aniviewBidAdapter.js
itaynave Dec 11, 2019
5727d7b
Update aniviewBidAdapter.js
itaynave Dec 11, 2019
25064d2
Update aniviewBidAdapter.js
itaynave Dec 11, 2019
6f354e8
Update aniviewBidAdapter.js
itaynave Dec 11, 2019
f34d645
Update aniviewBidAdapter.js
itaynave Dec 11, 2019
cdfa67b
Update aniviewBidAdapter.js
itaynave Dec 12, 2019
7dac778
Update aniviewBidAdapter.js
itaynave Dec 16, 2019
3b853d5
Update aniviewBidAdapter.js
itaynave Dec 17, 2019
a24e96e
Update aniviewBidAdapter.js
itaynave Dec 18, 2019
25d24a5
Fix size and sample
itaynave Dec 20, 2019
83d3f80
Fix tabs
itaynave Dec 20, 2019
df2c8b5
Fix sizes
itaynave Dec 21, 2019
972cc66
Recheck
itaynave Dec 22, 2019
3f87a8e
Add tgt parameter
itaynave Dec 22, 2019
b7d25ef
Update sample
itaynave Dec 23, 2019
e938550
Merge remote-tracking branch 'upstream/master'
itaynave Dec 24, 2019
1ee8b75
Merge remote-tracking branch 'upstream/master'
itaynave Mar 12, 2020
6de0415
Merge remote-tracking branch 'upstream/master'
itaynave Apr 16, 2020
01863a6
Add support for cookie sync + tests
itaynave Apr 18, 2020
d056ed3
Add support for cookie sync + tests
itaynave Apr 19, 2020
c16e4a3
Merge remote-tracking branch 'upstream/master'
itaynave Apr 19, 2020
d11cca1
Add support for cookie sync + tests
itaynave Apr 19, 2020
19b8db8
Merge remote-tracking branch 'upstream/master'
itaynave Jun 8, 2020
cf29912
Support aliases
itaynave Jun 8, 2020
43fe9bb
Update
itaynave Jun 10, 2020
548eebf
Fix lint
itaynave Jun 10, 2020
aec4c09
Update spec
itaynave Jun 10, 2020
854077d
Merge remote-tracking branch 'upstream/master'
roshecode Aug 13, 2020
35154a4
Aniview Bid Adapter: Added the new alias
roshecode Aug 13, 2020
1189bdf
Merge pull request #1 from roshecode/master
itaynave Aug 18, 2020
3c54ef2
Aniview Bid Adapter: Added the new configs for the renderer
roshecode Aug 19, 2020
6959813
Merge pull request #2 from roshecode/master
itaynave Aug 19, 2020
9c7e737
Aniview Bid Adapter: Added unit tests for the renderer
roshecode Aug 20, 2020
e148052
Aniview Bid Adapter: Have added gvlid
roshecode Aug 25, 2020
d8b3e1a
Merge pull request #3 from roshecode/master
itaynave Aug 25, 2020
61536f4
Merge remote-tracking branch 'upstream/master'
roshecode Aug 26, 2020
90d2813
Merge pull request #4 from roshecode/master
itaynave Aug 26, 2020
d5a3cb7
Merge remote-tracking branch 'upstream/master'
itaynave Apr 28, 2021
ba1c37e
Merge remote-tracking branch 'upstream/master'
roshecode May 27, 2021
d3ffc29
Aniview Bid Adapter: added meta.advertiserDomains to bidResponse and …
roshecode May 27, 2021
25310ed
Merge pull request #5 from roshecode/master
itaynave May 27, 2021
72e3a4f
Support BANNER mediaType
itaynave Jul 11, 2021
e1c6a14
Merge branch 'master' of https://github.com/itaynave/Prebid.js
itaynave Jul 11, 2021
6250469
Merge remote-tracking branch 'upstream/master'
itaynave Jul 11, 2021
fae4d48
Aniview BANNER support
itaynave Jul 11, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 41 additions & 11 deletions modules/aniviewBidAdapter.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { VIDEO } from '../src/mediaTypes.js';
import { VIDEO, BANNER } from '../src/mediaTypes.js';
import { registerBidder } from '../src/adapters/bidderFactory.js';
import { Renderer } from '../src/Renderer.js';
import * as utils from '../src/utils.js';

const BIDDER_CODE = 'aniview';
const GVLID = 780;
Expand Down Expand Up @@ -172,6 +173,22 @@ function getCpmData(xml) {
}
return ret;
}
function buildBanner(xmlStr, bidRequest, bidResponse) {
var rendererData = JSON.stringify({
id: bidRequest.adUnitCode,
debug: window.location.href.indexOf('pbjsDebug') >= 0,
placement: bidRequest.bidRequest.adUnitCode,
width: bidResponse.width,
height: bidResponse.height,
vastXml: xmlStr,
bid: bidResponse,
config: bidRequest.bidRequest.params.rendererConfig
});
var playerDomain = bidRequest.bidRequest.params.playerDomain || 'player.aniview.com';
var ad = '<script src="https://' + playerDomain + '/script/6.1/prebidRenderer.js"></script>';
ad += '<script> window.aniviewRenderer.renderAd(' + rendererData + ') </script>'
return ad;
}
function interpretResponse(serverResponse, bidRequest) {
let bidResponses = [];
if (serverResponse && serverResponse.body) {
Expand All @@ -181,6 +198,10 @@ function interpretResponse(serverResponse, bidRequest) {
try {
let bidResponse = {};
if (bidRequest && bidRequest.data && bidRequest.data.bidId && bidRequest.data.bidId !== '') {
let mediaType = VIDEO;
if (bidRequest.bidRequest && bidRequest.bidRequest.mediaTypes && !bidRequest.bidRequest.mediaTypes[VIDEO]) {
mediaType = BANNER;
}
let xmlStr = serverResponse.body;
let xml = new window.DOMParser().parseFromString(xmlStr, 'text/xml');
if (xml && xml.getElementsByTagName('parsererror').length == 0) {
Expand All @@ -195,18 +216,27 @@ function interpretResponse(serverResponse, bidRequest) {
bidResponse.creativeId = xml.getElementsByTagName('Ad') && xml.getElementsByTagName('Ad')[0] && xml.getElementsByTagName('Ad')[0].getAttribute('id') ? xml.getElementsByTagName('Ad')[0].getAttribute('id') : 'creativeId';
bidResponse.currency = cpmData.currency;
bidResponse.netRevenue = true;
var blob = new Blob([xmlStr], {
type: 'application/xml'
});
bidResponse.vastUrl = window.URL.createObjectURL(blob);
bidResponse.vastXml = xmlStr;
bidResponse.mediaType = VIDEO;
bidResponse.mediaType = mediaType;
if (mediaType === VIDEO) {
try {
var blob = new Blob([xmlStr], {
type: 'application/xml'
});
bidResponse.vastUrl = window.URL.createObjectURL(blob);
} catch (ex) {
utils.logError('Aniview Debug create vastXml error:\n\n' + ex);
}
bidResponse.vastXml = xmlStr;
if (bidRequest.bidRequest && bidRequest.bidRequest.mediaTypes && bidRequest.bidRequest.mediaTypes.video && bidRequest.bidRequest.mediaTypes.video.context === 'outstream') {
bidResponse.renderer = newRenderer(bidRequest);
}
} else {
bidResponse.ad = buildBanner(xmlStr, bidRequest, bidResponse);
}
bidResponse.meta = {
advertiserDomains: []
};

if (bidRequest.bidRequest && bidRequest.bidRequest.mediaTypes && bidRequest.bidRequest.mediaTypes.video && bidRequest.bidRequest.mediaTypes.video.context === 'outstream') { bidResponse.renderer = newRenderer(bidRequest); }

bidResponses.push(bidResponse);
}
} else {}
Expand Down Expand Up @@ -279,8 +309,8 @@ function getUserSyncs(syncOptions, serverResponses) {
export const spec = {
code: BIDDER_CODE,
gvlid: GVLID,
aliases: ['avantisvideo', 'selectmediavideo'],
supportedMediaTypes: [VIDEO],
aliases: ['avantisvideo', 'selectmediavideo', 'vidcrunch'],
supportedMediaTypes: [VIDEO, BANNER],
isBidRequestValid,
buildRequests,
interpretResponse,
Expand Down
23 changes: 23 additions & 0 deletions test/spec/modules/aniviewBidAdapter_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,29 @@ describe('ANIVIEW Bid Adapter Test', function () {
expect(bidResponse.renderer.loaded).to.equal(false)
expect(bidResponse.width).to.equal(640)
expect(bidResponse.height).to.equal(480)
});

it('Support banner format', function () {
const bidRequest = spec.buildRequests([
{
bidId: '253dcb69fb2577',
params: {
playerDomain: 'example.com',
AV_PUBLISHERID: '55b78633181f4603178b4568',
AV_CHANNELID: '55b7904d181f46410f8b4568'
},
mediaTypes: {
banner: {
sizes: [[640, 480]],
}
}
}
])[0]
const bidResponse = spec.interpretResponse(serverResponse, bidRequest)[0]

expect(bidResponse.ad).to.have.string('https://example.com/script/6.1/prebidRenderer.js');
expect(bidResponse.width).to.equal(640)
expect(bidResponse.height).to.equal(480)
})
});

Expand Down