@@ -3,13 +3,16 @@ import {config} from '../src/config.js';
3
3
import { registerBidder } from '../src/adapters/bidderFactory.js' ;
4
4
import { BANNER , NATIVE , VIDEO } from '../src/mediaTypes.js' ;
5
5
import { convertOrtbRequestToProprietaryNative } from '../src/native.js' ;
6
+ import { Renderer } from '../src/Renderer.js' ;
6
7
7
8
const BIDDER_CODE = 'mediasquare' ;
8
9
const BIDDER_URL_PROD = 'https://pbs-front.mediasquare.fr/'
9
10
const BIDDER_URL_TEST = 'https://bidder-test.mediasquare.fr/'
10
11
const BIDDER_ENDPOINT_AUCTION = 'msq_prebid' ;
11
12
const BIDDER_ENDPOINT_WINNING = 'winning' ;
12
13
14
+ const OUTSTREAM_RENDERER_URL = 'https://acdn.adnxs.com/video/outstream/ANOutstreamVideo.js' ;
15
+
13
16
export const spec = {
14
17
code : BIDDER_CODE ,
15
18
gvlid : 791 ,
@@ -40,11 +43,15 @@ export const spec = {
40
43
const test = config . getConfig ( 'debug' ) ? 1 : 0 ;
41
44
let adunitValue = null ;
42
45
Object . keys ( validBidRequests ) . forEach ( key => {
46
+ floor = { } ;
43
47
adunitValue = validBidRequests [ key ] ;
44
48
if ( typeof adunitValue . getFloor === 'function' ) {
45
- floor = adunitValue . getFloor ( { currency : 'EUR' , mediaType : '*' , size : '*' } ) ;
46
- } else {
47
- floor = { } ;
49
+ if ( Array . isArray ( adunitValue . sizes ) ) {
50
+ adunitValue . sizes . forEach ( value => {
51
+ let tmpFloor = adunitValue . getFloor ( { currency : 'USD' , mediaType : '*' , size : value } ) ;
52
+ if ( tmpFloor != { } ) { floor [ value . join ( 'x' ) ] = tmpFloor ; }
53
+ } ) ;
54
+ }
48
55
}
49
56
codes . push ( {
50
57
owner : adunitValue . params . owner ,
@@ -132,6 +139,7 @@ export const spec = {
132
139
if ( 'url' in value [ 'video' ] ) { bidResponse [ 'vastUrl' ] = value [ 'video' ] [ 'url' ] }
133
140
if ( 'xml' in value [ 'video' ] ) { bidResponse [ 'vastXml' ] = value [ 'video' ] [ 'xml' ] }
134
141
bidResponse [ 'mediaType' ] = 'video' ;
142
+ bidResponse [ 'renderer' ] = createRenderer ( value , OUTSTREAM_RENDERER_URL ) ;
135
143
}
136
144
if ( value . hasOwnProperty ( 'deal_id' ) ) { bidResponse [ 'dealId' ] = value [ 'deal_id' ] ; }
137
145
bidResponses . push ( bidResponse ) ;
@@ -182,4 +190,35 @@ export const spec = {
182
190
}
183
191
184
192
}
193
+
194
+ function outstreamRender ( bid ) {
195
+ bid . renderer . push ( ( ) => {
196
+ window . ANOutstreamVideo . renderAd ( {
197
+ sizes : [ bid . width , bid . height ] ,
198
+ targetId : bid . adUnitCode ,
199
+ adResponse : bid . adResponse ,
200
+ rendererOptions : {
201
+ showBigPlayButton : false ,
202
+ showProgressBar : 'bar' ,
203
+ showVolume : false ,
204
+ allowFullscreen : true ,
205
+ skippable : false ,
206
+ content : bid . vastXml
207
+ }
208
+ } ) ;
209
+ } ) ;
210
+ }
211
+
212
+ function createRenderer ( bid , url ) {
213
+ const renderer = Renderer . install ( {
214
+ id : bid . bidId ,
215
+ url : url ,
216
+ loaded : false ,
217
+ adUnitCode : bid . adUnitCode ,
218
+ targetId : bid . adUnitCode
219
+ } ) ;
220
+ renderer . setRender ( outstreamRender ) ;
221
+ return renderer ;
222
+ }
223
+
185
224
registerBidder ( spec ) ;
0 commit comments