@@ -6,7 +6,7 @@ import JSEncrypt from 'jsencrypt/bin/jsencrypt';
6
6
import sha256 from 'crypto-js/sha256' ;
7
7
8
8
const BIDDER_CODE = 'adagio' ;
9
- const VERSION = '2.0 .0' ;
9
+ const VERSION = '2.1 .0' ;
10
10
const FEATURES_VERSION = '1' ;
11
11
const ENDPOINT = 'https://mp.4dex.io/prebid' ;
12
12
const SUPPORTED_MEDIA_TYPES = [ 'banner' ] ;
@@ -93,6 +93,9 @@ const _features = {
93
93
const viewportDims = _features . getViewPortDimensions ( ) . split ( 'x' ) ;
94
94
const w = utils . getWindowTop ( ) ;
95
95
const body = w . document . body ;
96
+ if ( ! body ) {
97
+ return ''
98
+ }
96
99
const html = w . document . documentElement ;
97
100
const pageHeight = Math . max ( body . scrollHeight , body . offsetHeight , html . clientHeight , html . scrollHeight , html . offsetHeight ) ;
98
101
@@ -129,6 +132,8 @@ const _features = {
129
132
} ,
130
133
131
134
getSlotPosition : function ( element ) {
135
+ if ( ! element ) return '' ;
136
+
132
137
const w = utils . getWindowTop ( ) ;
133
138
const d = w . document ;
134
139
const el = element ;
@@ -288,22 +293,19 @@ function _getFeatures(bidRequest) {
288
293
element = w . document . getElementById ( adUnitElementId ) ;
289
294
}
290
295
291
- let features = { } ;
292
- if ( element ) {
293
- features = Object . assign ( { } , {
294
- print_number : _features . getPrintNumber ( bidRequest . adUnitCode ) . toString ( ) ,
295
- page_dimensions : _features . getPageDimensions ( ) . toString ( ) ,
296
- viewport_dimensions : _features . getViewPortDimensions ( ) . toString ( ) ,
297
- dom_loading : _features . isDomLoading ( ) . toString ( ) ,
298
- // layout: features.getLayout().toString(),
299
- adunit_position : _features . getSlotPosition ( element ) . toString ( ) ,
300
- user_timestamp : _features . getTimestamp ( ) . toString ( ) ,
301
- device : _features . getDevice ( ) . toString ( ) ,
302
- url : w . location . origin + w . location . pathname ,
303
- browser : _features . getBrowser ( ) ,
304
- os : _features . getOS ( )
305
- } )
306
- }
296
+ const features = {
297
+ print_number : _features . getPrintNumber ( bidRequest . adUnitCode ) . toString ( ) ,
298
+ page_dimensions : _features . getPageDimensions ( ) . toString ( ) ,
299
+ viewport_dimensions : _features . getViewPortDimensions ( ) . toString ( ) ,
300
+ dom_loading : _features . isDomLoading ( ) . toString ( ) ,
301
+ // layout: features.getLayout().toString(),
302
+ adunit_position : _features . getSlotPosition ( element ) . toString ( ) ,
303
+ user_timestamp : _features . getTimestamp ( ) . toString ( ) ,
304
+ device : _features . getDevice ( ) . toString ( ) ,
305
+ url : w . location . origin + w . location . pathname ,
306
+ browser : _features . getBrowser ( ) ,
307
+ os : _features . getOS ( )
308
+ } ;
307
309
308
310
const adUnitFeature = { } ;
309
311
adUnitFeature [ adUnitElementId ] = {
@@ -351,7 +353,7 @@ export const spec = {
351
353
w . ADAGIO = w . ADAGIO || { } ;
352
354
w . ADAGIO . adUnits = w . ADAGIO . adUnits || { } ;
353
355
w . ADAGIO . pbjsAdUnits = w . ADAGIO . pbjsAdUnits || [ ] ;
354
- isValid = ! ! ( organizationId && site && placement && adUnitElementId && document . getElementById ( adUnitElementId ) !== null ) ;
356
+ isValid = ! ! ( organizationId && site && placement && adUnitElementId ) ;
355
357
const tempAdUnits = w . ADAGIO . pbjsAdUnits . filter ( ( adUnit ) => adUnit . code !== adUnitCode ) ;
356
358
tempAdUnits . push ( {
357
359
code : adUnitCode ,
@@ -392,6 +394,9 @@ export const spec = {
392
394
393
395
// Regroug ad units by siteId
394
396
const groupedAdUnits = adUnits . reduce ( ( groupedAdUnits , adUnit ) => {
397
+ if ( adUnit . params && adUnit . params . organizationId ) {
398
+ adUnit . params . organizationId = adUnit . params . organizationId . toString ( ) ;
399
+ }
395
400
( groupedAdUnits [ adUnit . params . organizationId ] = groupedAdUnits [ adUnit . params . organizationId ] || [ ] ) . push ( adUnit ) ;
396
401
return groupedAdUnits ;
397
402
} , { } ) ;
@@ -415,7 +420,7 @@ export const spec = {
415
420
featuresVersion : FEATURES_VERSION
416
421
} ,
417
422
options : {
418
- contentType : 'application/json '
423
+ contentType : 'text/plain '
419
424
}
420
425
}
421
426
} ) ;
0 commit comments