@@ -54,7 +54,7 @@ describe('permutiveRtdProvider', function () {
54
54
} )
55
55
}
56
56
} )
57
- it ( 'sets segment targeting for Rubicon ' , function ( ) {
57
+ it ( 'sets segment targeting for Magnite ' , function ( ) {
58
58
const data = transformedTargeting ( )
59
59
const adUnits = getAdUnits ( )
60
60
const config = getConfig ( )
@@ -93,10 +93,29 @@ describe('permutiveRtdProvider', function () {
93
93
} )
94
94
}
95
95
} )
96
+ it ( 'sets segment targeting for TrustX' , function ( ) {
97
+ const data = transformedTargeting ( )
98
+ const adUnits = getAdUnits ( )
99
+ const config = getConfig ( )
100
+
101
+ initSegments ( { adUnits } , callback , config )
102
+
103
+ function callback ( ) {
104
+ adUnits . forEach ( adUnit => {
105
+ adUnit . bids . forEach ( bid => {
106
+ const { bidder, params } = bid
107
+
108
+ if ( bidder === 'trustx' ) {
109
+ expect ( deepAccess ( params , 'keywords.p_standard' ) ) . to . eql ( data . ac )
110
+ }
111
+ } )
112
+ } )
113
+ }
114
+ } )
96
115
} )
97
116
98
117
describe ( 'Custom segment targeting' , function ( ) {
99
- it ( 'sets custom segment targeting for Rubicon ' , function ( ) {
118
+ it ( 'sets custom segment targeting for Magnite ' , function ( ) {
100
119
const data = transformedTargeting ( )
101
120
const adUnits = getAdUnits ( )
102
121
const config = getConfig ( )
@@ -129,6 +148,81 @@ describe('permutiveRtdProvider', function () {
129
148
} )
130
149
} )
131
150
151
+ describe ( 'Existing key-value targeting' , function ( ) {
152
+ it ( 'doesn\'t overwrite existing key-values for Xandr' , function ( ) {
153
+ const adUnits = getAdUnits ( )
154
+ const config = getConfig ( )
155
+
156
+ initSegments ( { adUnits } , callback , config )
157
+
158
+ function callback ( ) {
159
+ adUnits . forEach ( adUnit => {
160
+ adUnit . bids . forEach ( bid => {
161
+ const { bidder, params } = bid
162
+
163
+ if ( bidder === 'appnexus' ) {
164
+ expect ( deepAccess ( params , 'keywords.test_kv' ) ) . to . eql ( [ 'true' ] )
165
+ }
166
+ } )
167
+ } )
168
+ }
169
+ } )
170
+ it ( 'doesn\'t overwrite existing key-values for Magnite' , function ( ) {
171
+ const adUnits = getAdUnits ( )
172
+ const config = getConfig ( )
173
+
174
+ initSegments ( { adUnits } , callback , config )
175
+
176
+ function callback ( ) {
177
+ adUnits . forEach ( adUnit => {
178
+ adUnit . bids . forEach ( bid => {
179
+ const { bidder, params } = bid
180
+
181
+ if ( bidder === 'rubicon' ) {
182
+ expect ( deepAccess ( params , 'visitor.test_kv' ) ) . to . eql ( [ 'true' ] )
183
+ }
184
+ } )
185
+ } )
186
+ }
187
+ } )
188
+ it ( 'doesn\'t overwrite existing key-values for Ozone' , function ( ) {
189
+ const adUnits = getAdUnits ( )
190
+ const config = getConfig ( )
191
+
192
+ initSegments ( { adUnits } , callback , config )
193
+
194
+ function callback ( ) {
195
+ adUnits . forEach ( adUnit => {
196
+ adUnit . bids . forEach ( bid => {
197
+ const { bidder, params } = bid
198
+
199
+ if ( bidder === 'ozone' ) {
200
+ expect ( deepAccess ( params , 'customData.0.targeting.test_kv' ) ) . to . eql ( [ 'true' ] )
201
+ }
202
+ } )
203
+ } )
204
+ }
205
+ } )
206
+ it ( 'doesn\'t overwrite existing key-values for TrustX' , function ( ) {
207
+ const adUnits = getAdUnits ( )
208
+ const config = getConfig ( )
209
+
210
+ initSegments ( { adUnits } , callback , config )
211
+
212
+ function callback ( ) {
213
+ adUnits . forEach ( adUnit => {
214
+ adUnit . bids . forEach ( bid => {
215
+ const { bidder, params } = bid
216
+
217
+ if ( bidder === 'trustx' ) {
218
+ expect ( deepAccess ( params , 'keywords.test_kv' ) ) . to . eql ( [ 'true' ] )
219
+ }
220
+ } )
221
+ } )
222
+ }
223
+ } )
224
+ } )
225
+
132
226
describe ( 'Permutive on page' , function ( ) {
133
227
it ( 'checks if Permutive is on page' , function ( ) {
134
228
expect ( isPermutiveOnPage ( ) ) . to . equal ( false )
@@ -168,7 +262,7 @@ function getConfig () {
168
262
name : 'permutive' ,
169
263
waitForIt : true ,
170
264
params : {
171
- acBidders : [ 'appnexus' , 'rubicon' , 'ozone' ] ,
265
+ acBidders : [ 'appnexus' , 'rubicon' , 'ozone' , 'trustx' ] ,
172
266
maxSegs : 500
173
267
}
174
268
}
@@ -197,15 +291,20 @@ function getTargetingData () {
197
291
}
198
292
199
293
function getAdUnits ( ) {
294
+ const div_1_sizes = [
295
+ [ 300 , 250 ] ,
296
+ [ 300 , 600 ]
297
+ ]
298
+ const div_2_sizes = [
299
+ [ 728 , 90 ] ,
300
+ [ 970 , 250 ]
301
+ ]
200
302
return [
201
303
{
202
304
code : '/19968336/header-bid-tag-0' ,
203
305
mediaTypes : {
204
306
banner : {
205
- sizes : [
206
- [ 300 , 250 ] ,
207
- [ 300 , 600 ]
208
- ]
307
+ sizes : div_1_sizes
209
308
}
210
309
} ,
211
310
bids : [
@@ -214,7 +313,7 @@ function getAdUnits () {
214
313
params : {
215
314
placementId : 13144370 ,
216
315
keywords : {
217
- inline_kvs : [ '1 ' ]
316
+ test_kv : [ 'true ' ]
218
317
}
219
318
}
220
319
} ,
@@ -228,7 +327,7 @@ function getAdUnits () {
228
327
area : [ 'home' ]
229
328
} ,
230
329
visitor : {
231
- inline_kvs : [ '1 ' ]
330
+ test_kv : [ 'true ' ]
232
331
}
233
332
}
234
333
} ,
@@ -242,38 +341,54 @@ function getAdUnits () {
242
341
{
243
342
settings : { } ,
244
343
targeting : {
245
- inline_kvs : [ '1' , '2' , '3' , '4 ']
344
+ test_kv : [ 'true ' ]
246
345
}
247
346
}
248
347
] ,
249
348
ozoneData : { }
250
349
}
350
+ } ,
351
+ {
352
+ bidder : 'trustx' ,
353
+ params : {
354
+ uid : 45 ,
355
+ keywords : {
356
+ test_kv : [ 'true' ]
357
+ }
358
+ }
251
359
}
252
360
]
253
361
} ,
254
362
{
255
363
code : '/19968336/header-bid-tag-1' ,
256
364
mediaTypes : {
257
365
banner : {
258
- sizes : [
259
- [ 728 , 90 ] ,
260
- [ 970 , 250 ]
261
- ]
366
+ sizes : div_2_sizes
262
367
}
263
368
} ,
264
369
bids : [
265
370
{
266
371
bidder : 'appnexus' ,
267
372
params : {
268
- placementId : 13144370
373
+ placementId : 13144370 ,
374
+ keywords : {
375
+ test_kv : [ 'true' ]
376
+ }
269
377
}
270
378
} ,
271
379
{
272
380
bidder : 'ozone' ,
273
381
params : {
274
382
publisherId : 'OZONEGMG0001' ,
275
383
siteId : '4204204209' ,
276
- placementId : '0420420500'
384
+ placementId : '0420420500' ,
385
+ customData : [
386
+ {
387
+ targeting : {
388
+ test_kv : [ 'true' ]
389
+ }
390
+ }
391
+ ]
277
392
}
278
393
}
279
394
]
0 commit comments