@@ -3,7 +3,7 @@ var bidmanager = require('../bidmanager.js'),
3
3
CONSTANTS = require ( '../constants.json' ) ;
4
4
5
5
import { ajax as ajax } from '../ajax' ;
6
-
6
+
7
7
module . exports = function ( bidManager , global , loader ) {
8
8
9
9
var version = "0.9.0.0" ,
@@ -15,24 +15,24 @@ module.exports = function(bidManager, global, loader){
15
15
loadStart ,
16
16
configuredPlacements = [ ] ,
17
17
fat = / ( ^ v | ( \. 0 ) + $ ) / gi;
18
-
18
+
19
19
if ( typeof global === "undefined" )
20
20
global = window ;
21
-
21
+
22
22
if ( typeof bidManager === "undefined" )
23
23
bidManager = bidmanager ;
24
-
24
+
25
25
if ( typeof loader === "undefined" )
26
26
loader = ajax ;
27
-
27
+
28
28
function applyMacros ( txt , values ) {
29
29
return txt . replace ( / \{ ( [ ^ \} ] + ) \} / g, function ( match ) {
30
30
var v = values [ match . replace ( / [ \{ \} ] / g, "" ) . toLowerCase ( ) ] ;
31
31
if ( typeof v !== "undefined" ) return v ;
32
32
return match ;
33
33
} ) ;
34
34
}
35
-
35
+
36
36
function load ( bidParams , url , callback ) {
37
37
loader ( url , function ( responseText , response ) {
38
38
if ( response . status === 200 )
@@ -49,7 +49,7 @@ module.exports = function(bidManager, global, loader){
49
49
t = "application/x-shockwave-flash" ,
50
50
x = global . ActiveXObject ;
51
51
52
- if ( p &&
52
+ if ( p &&
53
53
p [ "Shockwave Flash" ] &&
54
54
m &&
55
55
m [ t ] &&
@@ -63,28 +63,28 @@ module.exports = function(bidManager, global, loader){
63
63
64
64
return false ;
65
65
}
66
-
66
+
67
67
var bidderCode = "rhythmone" ;
68
-
68
+
69
69
function attempt ( valueFunction , defaultValue ) {
70
70
try {
71
71
return valueFunction ( ) ;
72
72
} catch ( ex ) { }
73
73
return defaultValue ;
74
74
}
75
-
75
+
76
76
function logToConsole ( txt ) {
77
77
if ( debug )
78
78
console . log ( txt ) ;
79
79
}
80
-
80
+
81
81
function getBidParameters ( bids ) {
82
82
for ( var i = 0 ; i < bids . length ; i ++ )
83
83
if ( typeof bids [ i ] . params === "object" && bids [ i ] . params . placementId )
84
84
return bids [ i ] . params ;
85
85
return null ;
86
86
}
87
-
87
+
88
88
function noBids ( params ) {
89
89
for ( var i = 0 ; i < params . bids . length ; i ++ ) {
90
90
if ( params . bids [ i ] . success !== 1 ) {
@@ -95,26 +95,26 @@ module.exports = function(bidManager, global, loader){
95
95
}
96
96
}
97
97
}
98
-
98
+
99
99
function getRMPURL ( bidParams , bids ) {
100
100
var endpoint = "//tag.1rx.io/rmp/{placementId}/0/{path}?z={zone}" ,
101
101
query = [ ] ;
102
102
103
103
if ( typeof bidParams . endpoint === "string" )
104
104
endpoint = bidParams . endpoint ;
105
-
105
+
106
106
if ( typeof bidParams . zone === "string" )
107
107
defaultZone = bidParams . zone ;
108
-
108
+
109
109
if ( typeof bidParams . path === "string" )
110
110
defaultPath = bidParams . path ;
111
-
111
+
112
112
if ( bidParams . debug === true )
113
113
debug = true ;
114
-
114
+
115
115
if ( bidParams . trace === true )
116
116
query . push ( "trace=true" ) ;
117
-
117
+
118
118
endpoint = applyMacros ( endpoint , {
119
119
placementid :bidParams . placementId ,
120
120
zone : defaultZone ,
@@ -146,24 +146,24 @@ module.exports = function(bidManager, global, loader){
146
146
p ( "tz" , ( new Date ( ) ) . getTimezoneOffset ( ) ) ;
147
147
p ( "dtype" , ( ( / ( i o s | i p o d | i p a d | i p h o n e | a n d r o i d ) / i) . test ( global . navigator . userAgent ) ? 1 : ( ( / ( s m a r t [ - ] ? t v | h b b t v | a p p l e t v | g o o g l e t v | h d m i | n e t c a s t \. t v | v i e r a | n e t t v | r o k u | \b d t v \b | s o n y d t v | i n e t t v b r o w s e r | \b t v \b ) / i) . test ( global . navigator . userAgent ) ? 3 : 2 ) ) ) ;
148
148
p ( "flash" , ( flashInstalled ( ) ? 1 : 0 ) ) ;
149
-
149
+
150
150
var heights = [ ] ,
151
151
widths = [ ] ,
152
152
floors = [ ] ,
153
153
mediaTypes = [ ] ,
154
154
i = 0 ;
155
155
156
156
configuredPlacements = [ ] ;
157
-
157
+
158
158
p ( "hbv" , global . $$PREBID_GLOBAL$$ . version . replace ( fat , "" ) + "," + version . replace ( fat , "" ) ) ;
159
-
159
+
160
160
for ( ; i < bids . length ; i ++ ) {
161
161
162
162
var th = [ ] , tw = [ ] ;
163
-
163
+
164
164
if ( bids [ i ] . sizes . length > 0 && typeof bids [ i ] . sizes [ 0 ] === "number" )
165
165
bids [ i ] . sizes = [ bids [ i ] . sizes ] ;
166
-
166
+
167
167
for ( var j = 0 ; j < bids [ i ] . sizes . length ; j ++ ) {
168
168
tw . push ( bids [ i ] . sizes [ j ] [ 0 ] ) ;
169
169
th . push ( bids [ i ] . sizes [ j ] [ 1 ] ) ;
@@ -174,18 +174,18 @@ module.exports = function(bidManager, global, loader){
174
174
mediaTypes . push ( ( ( / v i d e o / i) . test ( bids [ i ] . mediaType ) ? "v" : "d" ) ) ;
175
175
floors . push ( 0 ) ;
176
176
}
177
-
177
+
178
178
p ( "imp" , configuredPlacements ) ;
179
179
p ( "w" , widths ) ;
180
180
p ( "h" , heights ) ;
181
181
p ( "floor" , floors ) ;
182
182
p ( "t" , mediaTypes ) ;
183
-
183
+
184
184
endpoint += "&" + query . join ( "&" ) ;
185
-
185
+
186
186
return endpoint ;
187
187
}
188
-
188
+
189
189
function sendAuditBeacon ( placementId ) {
190
190
var data = {
191
191
doc_version : 1 ,
@@ -196,41 +196,41 @@ module.exports = function(bidManager, global, loader){
196
196
q = [ ] ,
197
197
u = "//hbevents.1rx.io/audit?" ,
198
198
i = new Image ( ) ;
199
-
199
+
200
200
if ( ao && ao . length > 0 ) {
201
201
data . ancestor_origins = ao [ ao . length - 1 ] ;
202
- }
203
-
202
+ }
203
+
204
204
data . popped = window . opener !== null ?1 :0 ;
205
205
data . framed = window . top === window ?0 :1 ;
206
-
206
+
207
207
try {
208
208
data . url = window . top . document . location . href . toString ( ) ;
209
209
} catch ( ex ) {
210
210
data . url = window . document . location . href . toString ( ) ;
211
211
}
212
-
212
+
213
213
var prebid_instance = global . $$PREBID_GLOBAL$$ ;
214
-
214
+
215
215
data . prebid_version = prebid_instance . version . replace ( fat , "" ) ;
216
216
data . response_ms = ( new Date ( ) ) . getTime ( ) - loadStart ;
217
217
data . placement_codes = configuredPlacements . join ( "," ) ;
218
218
data . bidder_version = version ;
219
219
data . prebid_timeout = prebid_instance . cbTimeout || prebid_instance . bidderTimeout ;
220
-
220
+
221
221
for ( var k in data ) {
222
222
q . push ( encodeURIComponent ( k ) + "=" + encodeURIComponent ( ( typeof data [ k ] === "object" ? JSON . stringify ( data [ k ] ) : data [ k ] ) ) ) ;
223
- }
223
+ }
224
224
225
225
q . sort ( ) ;
226
226
i . src = u + q . join ( "&" ) ;
227
227
}
228
-
228
+
229
229
this . callBids = function ( params ) {
230
230
231
231
var slotMap = { } ,
232
232
bidParams = getBidParameters ( params . bids ) ;
233
-
233
+
234
234
debug = ( bidParams !== null && bidParams . debug === true ) ;
235
235
236
236
if ( bidParams === null ) {
@@ -240,7 +240,7 @@ module.exports = function(bidManager, global, loader){
240
240
241
241
for ( var i = 0 ; i < params . bids . length ; i ++ )
242
242
slotMap [ params . bids [ i ] . placementCode ] = params . bids [ i ] ;
243
-
243
+
244
244
loadStart = ( new Date ( ) ) . getTime ( ) ;
245
245
load ( bidParams , getRMPURL ( bidParams , params . bids ) , function ( code , msg , txt ) {
246
246
@@ -255,32 +255,32 @@ module.exports = function(bidManager, global, loader){
255
255
try {
256
256
var result = JSON . parse ( txt ) ,
257
257
registerBid = function ( bid ) {
258
-
258
+
259
259
slotMap [ bid . impid ] . success = 1 ;
260
-
260
+
261
261
var pbResponse = bidfactory . createBid ( CONSTANTS . STATUS . GOOD ) ,
262
262
placementCode = slotMap [ bid . impid ] . placementCode ;
263
-
263
+
264
264
placementCodes [ placementCode ] = false ;
265
-
265
+
266
266
pbResponse . bidderCode = bidderCode ;
267
267
pbResponse . cpm = parseFloat ( bid . price ) ;
268
268
pbResponse . width = bid . w ;
269
269
pbResponse . height = bid . h ;
270
-
270
+
271
271
if ( ( / v i d e o / i) . test ( slotMap [ bid . impid ] . mediaType ) ) {
272
272
pbResponse . mediaType = "video" ;
273
273
pbResponse . vastUrl = bid . nurl ;
274
274
pbResponse . descriptionUrl = bid . nurl ;
275
275
}
276
276
else
277
277
pbResponse . ad = bid . adm ;
278
-
278
+
279
279
logToConsole ( "registering bid " + placementCode + " " + JSON . stringify ( pbResponse ) ) ;
280
-
280
+
281
281
bidManager . addBidResponse ( placementCode , pbResponse ) ;
282
282
} ;
283
-
283
+
284
284
for ( i = 0 ; result . seatbid && i < result . seatbid . length ; i ++ )
285
285
for ( var j = 0 ; result . seatbid [ i ] . bid && j < result . seatbid [ i ] . bid . length ; j ++ ) {
286
286
registerBid ( result . seatbid [ i ] . bid [ j ] ) ;
@@ -292,7 +292,7 @@ module.exports = function(bidManager, global, loader){
292
292
// if no bids are successful, inform prebid
293
293
noBids ( params ) ;
294
294
} ) ;
295
-
295
+
296
296
logToConsole ( "version: " + version ) ;
297
297
} ;
298
- } ;
298
+ } ;
0 commit comments