prebid.js 5.17.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/.babelrc.js +3 -6
  2. package/README.md +3 -1
  3. package/browsers.json +1 -8
  4. package/integrationExamples/gpt/akamaidap_segments_example.html +132 -0
  5. package/modules/.submodules.json +1 -0
  6. package/modules/adfBidAdapter.js +21 -16
  7. package/modules/adgenerationBidAdapter.js +28 -4
  8. package/modules/adkernelBidAdapter.js +2 -1
  9. package/modules/admixerBidAdapter.js +11 -0
  10. package/modules/adtelligentBidAdapter.js +2 -1
  11. package/modules/airgridRtdProvider.js +1 -1
  12. package/modules/akamaiDapRtdProvider.js +474 -0
  13. package/modules/akamaiDapRtdProvider.md +47 -0
  14. package/modules/aolBidAdapter.js +2 -1
  15. package/modules/appnexusBidAdapter.js +5 -3
  16. package/modules/atsAnalyticsAdapter.js +67 -46
  17. package/modules/atsAnalyticsAdapter.md +1 -0
  18. package/modules/betweenBidAdapter.js +20 -3
  19. package/modules/bliinkBidAdapter.js +58 -32
  20. package/modules/bliinkBidAdapter.md +29 -6
  21. package/modules/browsiRtdProvider.js +106 -18
  22. package/modules/cleanioRtdProvider.js +192 -0
  23. package/modules/cleanioRtdProvider.md +59 -0
  24. package/modules/codefuelBidAdapter.js +183 -0
  25. package/modules/codefuelBidAdapter.md +111 -0
  26. package/modules/connectIdSystem.js +104 -0
  27. package/modules/connectIdSystem.md +33 -0
  28. package/modules/cwireBidAdapter.js +272 -0
  29. package/modules/cwireBidAdapter.md +43 -0
  30. package/modules/deepintentBidAdapter.js +106 -9
  31. package/modules/deepintentBidAdapter.md +36 -1
  32. package/modules/deltaprojectsBidAdapter.js +252 -0
  33. package/modules/deltaprojectsBidAdapter.md +32 -0
  34. package/modules/dgkeywordRtdProvider.js +0 -1
  35. package/modules/engageyaBidAdapter.js +157 -0
  36. package/modules/gridBidAdapter.js +1 -0
  37. package/modules/gumgumBidAdapter.js +8 -0
  38. package/modules/inskinBidAdapter.js +7 -3
  39. package/modules/ixBidAdapter.js +8 -1
  40. package/modules/jixieBidAdapter.js +8 -2
  41. package/modules/justpremiumBidAdapter.js +6 -1
  42. package/modules/limelightDigitalBidAdapter.js +22 -2
  43. package/modules/livewrappedAnalyticsAdapter.js +53 -3
  44. package/modules/mediakeysBidAdapter.js +2 -1
  45. package/modules/multibid/index.js +3 -3
  46. package/modules/nativoBidAdapter.js +6 -2
  47. package/modules/nextMillenniumBidAdapter.js +12 -3
  48. package/modules/oguryBidAdapter.js +36 -7
  49. package/modules/openxBidAdapter.js +34 -22
  50. package/modules/operaadsBidAdapter.js +21 -1
  51. package/modules/otmBidAdapter.js +146 -0
  52. package/modules/otmBidAdapter.md +27 -26
  53. package/modules/outbrainBidAdapter.js +5 -0
  54. package/modules/pixfutureBidAdapter.js +24 -4
  55. package/modules/pixfutureBidAdapter.md +127 -0
  56. package/modules/playwireBidAdapter.md +61 -0
  57. package/modules/prebidServerBidAdapter/index.js +1 -1
  58. package/modules/proxistoreBidAdapter.js +4 -6
  59. package/modules/publinkIdSystem.js +11 -6
  60. package/modules/pubmaticBidAdapter.js +9 -0
  61. package/modules/pubmaticBidAdapter.md +1 -1
  62. package/modules/rtdModule/index.js +2 -2
  63. package/modules/sonobiBidAdapter.js +7 -0
  64. package/modules/sortableBidAdapter.js +1 -0
  65. package/modules/talkadsBidAdapter.js +129 -0
  66. package/modules/talkadsBidAdapter.md +60 -0
  67. package/modules/teadsBidAdapter.js +3 -0
  68. package/modules/tripleliftBidAdapter.js +22 -5
  69. package/modules/trustxBidAdapter.js +8 -6
  70. package/modules/undertoneBidAdapter.js +9 -5
  71. package/modules/undertoneBidAdapter.md +5 -1
  72. package/modules/unicornBidAdapter.js +3 -3
  73. package/modules/userId/eids.js +18 -0
  74. package/modules/userId/eids.md +7 -0
  75. package/modules/userId/userId.md +12 -0
  76. package/modules/ventesBidAdapter.js +370 -0
  77. package/modules/ventesBidAdapter.md +94 -0
  78. package/modules/videobyteBidAdapter.js +13 -6
  79. package/modules/videobyteBidAdapter.md +49 -0
  80. package/modules/visxBidAdapter.js +15 -22
  81. package/modules/yahoosspBidAdapter.js +637 -0
  82. package/modules/yahoosspBidAdapter.md +795 -0
  83. package/modules/yieldlabBidAdapter.js +48 -3
  84. package/modules/yieldlabBidAdapter.md +16 -1
  85. package/modules/yieldmoSyntheticInventoryModule.js +46 -0
  86. package/modules/yieldmoSyntheticInventoryModule.md +68 -0
  87. package/package.json +1 -1
  88. package/src/adapterManager.js +5 -0
  89. package/src/adapters/bidderFactory.js +4 -3
  90. package/src/auction.js +11 -11
  91. package/src/constants.json +1 -0
  92. package/src/secureCreatives.js +6 -7
  93. package/src/targeting.js +11 -9
  94. package/test/spec/modules/adfBidAdapter_spec.js +83 -29
  95. package/test/spec/modules/adgenerationBidAdapter_spec.js +121 -50
  96. package/test/spec/modules/adtelligentBidAdapter_spec.js +1 -0
  97. package/test/spec/modules/akamaiDapRtdProvider_spec.js +246 -0
  98. package/test/spec/modules/appnexusBidAdapter_spec.js +2 -1
  99. package/test/spec/modules/atsAnalyticsAdapter_spec.js +42 -9
  100. package/test/spec/modules/betweenBidAdapter_spec.js +41 -0
  101. package/test/spec/modules/bliinkBidAdapter_spec.js +87 -36
  102. package/test/spec/modules/browsiRtdProvider_spec.js +62 -7
  103. package/test/spec/modules/cleanioRtdProvider_spec.js +188 -0
  104. package/test/spec/modules/codefuelBidAdapter_spec.js +316 -0
  105. package/test/spec/modules/connectIdSystem_spec.js +189 -0
  106. package/test/spec/modules/cwireBidAdapter_spec.js +246 -0
  107. package/test/spec/modules/deepintentBidAdapter_spec.js +153 -3
  108. package/test/spec/modules/deltaprojectsBidAdapter_spec.js +399 -0
  109. package/test/spec/modules/engageyaBidAdapter_spec.js +286 -0
  110. package/test/spec/modules/gumgumBidAdapter_spec.js +5 -1
  111. package/test/spec/modules/ixBidAdapter_spec.js +13 -3
  112. package/test/spec/modules/jixieBidAdapter_spec.js +13 -11
  113. package/test/spec/modules/justpremiumBidAdapter_spec.js +9 -2
  114. package/test/spec/modules/limelightDigitalBidAdapter_spec.js +155 -1
  115. package/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +67 -12
  116. package/test/spec/modules/multibid_spec.js +31 -31
  117. package/test/spec/modules/nextMillenniumBidAdapter_spec.js +13 -1
  118. package/test/spec/modules/oguryBidAdapter_spec.js +125 -37
  119. package/test/spec/modules/openxBidAdapter_spec.js +85 -13
  120. package/test/spec/modules/operaadsBidAdapter_spec.js +38 -6
  121. package/test/spec/modules/otmBidAdapter_spec.js +67 -0
  122. package/test/spec/modules/outbrainBidAdapter_spec.js +18 -0
  123. package/test/spec/modules/publinkIdSystem_spec.js +6 -6
  124. package/test/spec/modules/pubmaticBidAdapter_spec.js +39 -1
  125. package/test/spec/modules/sonobiBidAdapter_spec.js +34 -1
  126. package/test/spec/modules/sortableBidAdapter_spec.js +11 -0
  127. package/test/spec/modules/talkadsBidAdapter_spec.js +231 -0
  128. package/test/spec/modules/teadsBidAdapter_spec.js +132 -0
  129. package/test/spec/modules/tripleliftBidAdapter_spec.js +128 -0
  130. package/test/spec/modules/trustxBidAdapter_spec.js +3 -3
  131. package/test/spec/modules/undertoneBidAdapter_spec.js +52 -0
  132. package/test/spec/modules/unicornBidAdapter_spec.js +4 -4
  133. package/test/spec/modules/ventesBidAdapter_spec.js +845 -0
  134. package/test/spec/modules/videobyteBidAdapter_spec.js +2 -2
  135. package/test/spec/modules/visxBidAdapter_spec.js +48 -4
  136. package/test/spec/modules/yahoosspBidAdapter_spec.js +1332 -0
  137. package/test/spec/modules/yieldlabBidAdapter_spec.js +65 -1
  138. package/test/spec/modules/yieldmoSyntheticInventoryModule_spec.js +89 -0
  139. package/test/spec/unit/core/adapterManager_spec.js +32 -0
  140. package/test/spec/unit/core/bidderFactory_spec.js +61 -1
  141. package/test/spec/unit/pbjs_api_spec.js +37 -2
  142. package/test/spec/unit/secureCreatives_spec.js +54 -25
  143. package/wdio.conf.js +1 -1
  144. package/modules/turktelekomBidAdapter.md +0 -49
  145. package/yarn.lock +0 -13122
@@ -0,0 +1,795 @@
1
+ # Overview
2
+ **Module Name:** yahoossp Bid Adapter
3
+ **Module Type:** Bidder Adapter
4
+ **Maintainer:** hb-fe-tech@yahooinc.com
5
+
6
+ # Description
7
+ The Yahoo SSP Bid Adapter is an OpenRTB interface that consolidates all previous "Oath.inc" adapters such as: "aol", "oneMobile", "oneDisplay" & "oneVideo" supply-side platforms.
8
+
9
+ # Supported Features:
10
+ * Media Types: Banner & Video
11
+ * Outstream renderer
12
+ * Multi-format adUnits
13
+ * Schain module
14
+ * Price floors module
15
+ * Advertiser domains
16
+ * End-2-End self-served testing mode
17
+ * Outstream renderer/Player
18
+ * User ID Modules - ConnectId and others
19
+ * First Party Data (ortb2 & ortb2Imp)
20
+ * Custom TTL (time to live)
21
+
22
+
23
+ # Adapter Request mode
24
+ Since the yahoossp adapter now supports both Banner and Video adUnits a controller was needed to allow you to define when the adapter should generate a bid-requests to our Yahoo SSP.
25
+
26
+ **Important!** By default the adapter mode is set to "banner" only.
27
+ This means that you do not need to explicitly declare the yahoossp.mode in the Global config to initiate banner adUnit requests.
28
+
29
+ ## Request modes:
30
+ * **undefined** - (Default) Will generate bid-requests for "Banner" formats only.
31
+ * **banner** - Will generate bid-requests for "Banner" formats only (Explicit declaration).
32
+ * **video** - Will generate bid-requests for "Video" formats only (Explicit declaration).
33
+ * **all** - Will generate bid-requests for both "Banner" & "Video" formats
34
+
35
+ **Important!** When setting yahoossp.mode = 'all' Make sure your Yahoo SSP Placement (pos id) supports both Banner & Video placements.
36
+ If it does not, the Yahoo SSP will respond only in the format it is set too.
37
+
38
+ ```javascript
39
+ pbjs.setConfig({
40
+ yahoossp: {
41
+ mode: 'banner' // 'all', 'video', 'banner' (default)
42
+ }
43
+ });
44
+ ```
45
+ # Integration Options
46
+ The `yahoossp` bid adapter supports 2 types of integration:
47
+ 1. **dcn & pos** DEFAULT (Site/App & Position targeting) - For Display partners/publishers.
48
+ 2. **pubId** (Publisher ID) - For legacy "oneVideo" AND New partners/publishers.
49
+ **Important:** pubId integration (option 2) is only possible when your Seller account is setup for "Inventory Mapping".
50
+
51
+ **Please Note:** Most examples in this file are using dcn & pos.
52
+
53
+ ## Who is currently eligible for "pubId" integration
54
+ At this time, only the following partners/publishers are eligble for pubId integration:
55
+ 1. New partners/publishers that do not have any existing accounts on Yahoo SSP (aka: aol, oneMobile, oneDisplay).
56
+ 2. Video SSP (oneVideo) partners/publishers that
57
+ A. Do not have any display/banner inventory.
58
+ B. Do not have any existing accounts on Yahoo SSP (aka: aol, oneMobile, oneDisplay).
59
+
60
+ # Mandaotory Bidder Parameters
61
+ ## dcn & pos (DEFAULT)
62
+ The minimal requirements for the 'yahoossp' bid adapter to generate an outbound bid-request to our Yahoo SSP are:
63
+ 1. At least 1 adUnit including mediaTypes: banner or video
64
+ 2. **bidder.params** object must include:
65
+ A. **dcn:** Yahoo SSP Site/App inventory parameter.
66
+ B. **pos:** Yahoo SSP position inventory parameter.
67
+
68
+ ### Example: dcn & pos Mandatory Parameters (Single banner adUnit)
69
+ ```javascript
70
+ const adUnits = [{
71
+ code: 'your-placement',
72
+ mediaTypes: {
73
+ banner: {
74
+ sizes: [[300, 250]]
75
+ }
76
+ },
77
+ bids: [
78
+ {
79
+ bidder: 'yahoossp',
80
+ params: {
81
+ dcn: '8a969516017a7a396ec539d97f540011', // Site/App ID provided from SSP
82
+ pos: '8a969978017a7aaabab4ab0bc01a0009' // Placement ID provided from SSP
83
+ }
84
+ }
85
+ ]
86
+ }];
87
+ ```
88
+
89
+ ## pubId
90
+ The minimal requirements for the 'yahoossp' bid adapter to generate an outbound bid-request to our Yahoo SSP are:
91
+ 1. At least 1 adUnit including mediaTypes: banner or video
92
+ 2. **bidder.params** object must include:
93
+ A. **pubId:** Yahoo SSP Publisher ID (AKA oneVideo pubId/Exchange name)
94
+
95
+ ### Example: pubId Mandatory Parameters (Single banner adUnit)
96
+ ```javascript
97
+ const adUnits = [{
98
+ code: 'your-placement',
99
+ mediaTypes: {
100
+ banner: {
101
+ sizes: [[300, 250]]
102
+ }
103
+ },
104
+ bids: [
105
+ {
106
+ bidder: 'yahoossp',
107
+ params: {
108
+ pubId: 'DemoPublisher', // Publisher External ID provided from Yahoo SSP.
109
+ }
110
+ }
111
+ ]
112
+ }];
113
+ ```
114
+ # Advanced adUnit Examples:
115
+ ## Banner
116
+ ```javascript
117
+ const adUnits = [{
118
+ code: 'banner-adUnit',
119
+ mediaTypes: {
120
+ banner: {
121
+ sizes: [
122
+ [300, 250]
123
+ ]
124
+ }
125
+ },
126
+ bids: [{
127
+ bidder: 'yahoossp',
128
+ params: {
129
+ dcn: '8a969516017a7a396ec539d97f540011', // Site/App ID provided from Yahoo SSP
130
+ pos: '8a969978017a7aaabab4ab0bc01a0009', // Placement ID provided from Yahoo SSP
131
+ }
132
+ }
133
+ }]
134
+ }];
135
+ ```
136
+ ## Video Instream
137
+ **Important!** Make sure that the Yahoo SSP Placement type (in-stream) matches the adUnit video inventory type.
138
+ **Note:** Make sure to set the adapter mode to allow video requests by setting it to mode: 'video' OR mode: 'all'.
139
+ ```javascript
140
+ pbjs.setConfig({
141
+ yahoossp: {
142
+ mode: 'video'
143
+ }
144
+ });
145
+
146
+ const adUnits = [{
147
+ code: 'video-adUnit',
148
+ mediaTypes: {
149
+ video: {
150
+ context: 'instream',
151
+ playerSize: [
152
+ [300, 250]
153
+ ],
154
+ mimes: ['video/mp4','application/javascript'],
155
+ api: [2]
156
+ }
157
+ },
158
+ bids: [{
159
+ bidder: 'yahoossp',
160
+ params: {
161
+ dcn: '8a969516017a7a396ec539d97f540011', // Site/App ID provided from Yahoo SSP
162
+ pos: '8a96958a017a7a57ac375d50c0c700cc', // Placement ID provided from Yahoo SSP
163
+ }
164
+ }]
165
+ }];
166
+ ```
167
+ ## Video Outstream
168
+ **Important!** Make sure that the Yahoo SSP Placement type (in-feed/ in-article) matches the adUnit video inventory type.
169
+ **Note:** Make sure to set the adapter mode to allow video requests by setting it to mode: 'video' OR mode: 'all'
170
+ ```javascript
171
+ pbjs.setConfig({
172
+ yahoossp: {
173
+ mode: 'video'
174
+ }
175
+ });
176
+
177
+ const adUnits = [{
178
+ code: 'video-adUnit',
179
+ mediaTypes: {
180
+ video: {
181
+ context: 'outstream',
182
+ playerSize: [
183
+ [300, 250]
184
+ ],
185
+ mimes: ['video/mp4','application/javascript'],
186
+ api: [2]
187
+ }
188
+ },
189
+ bids: [{
190
+ bidder: 'yahoossp',
191
+ params: {
192
+ dcn: '8a969516017a7a396ec539d97f540011', // Site/App ID provided from Yahoo SSP
193
+ pos: '8a96958a017a7a57ac375d50c0c700cc', // Placement ID provided from Yahoo SSP
194
+ }
195
+ }]
196
+ }];
197
+ ```
198
+ ## Multi-Format
199
+ **Important!** If you intend to use the yahoossp bidder for both Banner and Video formats please make sure:
200
+ 1. Set the adapter as mode: 'all' - to call the Yahoo SSP for both banner & video formats.
201
+ 2. Make sure the Yahoo SSP placement (pos id) supports both banner & video format requests.
202
+
203
+ ```javascript
204
+ pbjs.setConfig({
205
+ yahoossp: {
206
+ mode: 'all'
207
+ }
208
+ });
209
+
210
+ const adUnits = [{
211
+ code: 'video-adUnit',
212
+ mediaTypes: {
213
+ banner: {
214
+ sizes: [[300, 250]]
215
+ },
216
+ video: {
217
+ context: 'outstream',
218
+ playerSize: [
219
+ [300, 250]
220
+ ],
221
+ mimes: ['video/mp4','application/javascript'],
222
+ api: [2]
223
+ }
224
+ },
225
+ bids: [{
226
+ bidder: 'yahoossp',
227
+ params: {
228
+ dcn: '8a969516017a7a396ec539d97f540011', // Site/App ID provided from Yahoo SSP
229
+ pos: '8a96958a017a7a57ac375d50c0c700cc', // Placement ID provided from Yahoo SSP
230
+ }
231
+ }]
232
+ }];
233
+ ```
234
+
235
+ # Optional: Schain module support
236
+ The yahoossp adapter supports the Prebid.org Schain module and will pass it through to our Yahoo SSP
237
+ For further details please see, https://docs.prebid.org/dev-docs/modules/schain.html
238
+
239
+ ## Global Schain Example:
240
+ ```javascript
241
+ pbjs.setConfig({
242
+ "schain": {
243
+ "validation": "off",
244
+ "config": {
245
+ "ver": "1.0",
246
+ "complete": 1,
247
+ "nodes": [{
248
+ "asi": "some-platform.com",
249
+ "sid": "111111",
250
+ "hp": 1
251
+ }]
252
+ }
253
+ }
254
+ });
255
+ ```
256
+ ## Bidder Specific Schain Example:
257
+ ```javascript
258
+ pbjs.setBidderConfig({
259
+ "bidders": ['yahoossp'], // can list more bidders here if they share the same config
260
+ "config": {
261
+ "schain": {
262
+ "validation": "strict",
263
+ "config": {
264
+ "ver": "1.0",
265
+ "complete": 1,
266
+ "nodes": [{
267
+ "asi": "other-platform.com",
268
+ "sid": "222222",
269
+ "hp": 0
270
+ }]
271
+ }
272
+ }
273
+ }
274
+ });
275
+ ```
276
+
277
+ # Optional: Price floors module & bidfloor
278
+ The yahoossp adapter supports the Prebid.org Price Floors module and will use it to define the outbound bidfloor and currency.
279
+ By default the adapter will always check the existance of Module price floor.
280
+ If a module price floor does not exist you can set a custom bid floor for your impression using "params.bidOverride.imp.bidfloor".
281
+
282
+ **Note:** All override params apply to all requests generated using this configuration regardless of format type.
283
+
284
+ ```javascript
285
+ const adUnits = [{
286
+ code: 'override-pricefloor',
287
+ mediaTypes: {
288
+ banner: {
289
+ sizes: [
290
+ [300, 250]
291
+ ]
292
+ }
293
+ },
294
+ bids: [{
295
+ bidder: 'yahoossp',
296
+ params: {
297
+ dcn: '8a969516017a7a396ec539d97f540011', // Site/App ID provided from Yahoo SSP
298
+ pos: '8a969978017a7aaabab4ab0bc01a0009', // Placement ID provided from Yahoo SSP
299
+ bidOverride :{
300
+ imp: {
301
+ bidfloor: 5.00 // bidOverride priceFloor
302
+ }
303
+ }
304
+ }
305
+ }
306
+ }]
307
+ }];
308
+ ```
309
+
310
+ For further details please see, https://docs.prebid.org/dev-docs/modules/floors.html
311
+
312
+ # Optional: Self-served E2E testing mode
313
+ If you want to see how the yahoossp adapter works and loads you are invited to try it out using our testing mode.
314
+ This is useful for integration testing and response parsing when checking banner vs video capabilities.
315
+
316
+ ## How to use E2E test mode:
317
+ 1. Set the yahoossp global config mode to either 'banner' or 'video' - depending on the adUnit you want to test.
318
+ 2. Add params.testing.e2etest: true to your adUnit bidder config - See examples below.
319
+
320
+ **Note:** When using E2E Test Mode you do not need to pass mandatory bidder params dcn or pos.
321
+
322
+ **Important!** E2E Testing Mode only works when the Bidder Request Mode is set explicitly to either 'banner' or 'video'.
323
+
324
+ ## Activating E2E Test for "Banner"
325
+ ```javascript
326
+ pbjs.setConfig({
327
+ yahoossp: {
328
+ mode: 'banner' // select 'banner' or 'video' to define what response to load
329
+ }
330
+ });
331
+
332
+ const adUnits = [{
333
+ code: 'your-placement',
334
+ mediaTypes: {
335
+ banner: {
336
+ sizes: [[300, 250]]
337
+ }
338
+ },
339
+ bids: [
340
+ {
341
+ bidder: 'yahoossp',
342
+ params: {
343
+ testing: {
344
+ e2etest: true // Activate E2E Test mode
345
+ }
346
+ }
347
+ }
348
+ ]
349
+ }];
350
+
351
+ ```
352
+ ## Activating E2E Test for "Video"
353
+ **Note:** We recommend using Video Outstream as it would load the video response using our Outstream Renderer feature
354
+ ```javascript
355
+ pbjs.setConfig({
356
+ yahoossp: {
357
+ mode: 'video'
358
+ }
359
+ });
360
+
361
+ const adUnits = [{
362
+ code: 'video-adUnit',
363
+ mediaTypes: {
364
+ video: {
365
+ context: 'outstream',
366
+ playerSize: [
367
+ [300, 250]
368
+ ],
369
+ mimes: ['video/mp4','application/javascript'],
370
+ api: [2]
371
+ }
372
+ },
373
+ bids: [{
374
+ bidder: 'yahoossp',
375
+ params: {
376
+ testing: {
377
+ e2etest: true // Activate E2E Test mode
378
+ }
379
+ }
380
+ }]
381
+ }];
382
+ ```
383
+
384
+ # Optional: First Party Data
385
+ The yahoossp adapter now supports first party data passed via:
386
+ 1. Global ortb2 object using pbjs.setConfig()
387
+ 2. adUnit ortb2Imp object declared within an adUnit.
388
+ For further details please see, https://docs.prebid.org/features/firstPartyData.html
389
+ ## Global First Party Data "ortb2"
390
+ ### Passing First Party "site" data:
391
+ ```javascript
392
+ pbjs.setConfig({
393
+ ortb2: {
394
+ site: {
395
+ name: 'yahooAdTech',
396
+ domain: 'yahooadtech.com',
397
+ cat: ['IAB2'],
398
+ sectioncat: ['IAB2-2'],
399
+ pagecat: ['IAB2-2'],
400
+ page: 'https://page.yahooadtech.com/here.html',
401
+ ref: 'https://ref.yahooadtech.com/there.html',
402
+ keywords:'yahoo, ad, tech',
403
+ search: 'SSP',
404
+ content: {
405
+ id: '1234',
406
+ title: 'Title',
407
+ series: 'Series',
408
+ season: 'Season',
409
+ episode: 1,
410
+ cat: ['IAB1', 'IAB1-1', 'IAB1-2', 'IAB2', 'IAB2-1'],
411
+ genre: 'Fantase',
412
+ contentrating: 'C-Rating',
413
+ language: 'EN',
414
+ prodq: 1,
415
+ context: 1,
416
+ len: 200,
417
+ data: [{
418
+ name: "www.dataprovider1.com",
419
+ ext: { segtax: 4 },
420
+ segment: [
421
+ { id: "687" },
422
+ { id: "123" }
423
+ ]
424
+ }],
425
+ ext: {
426
+ network: 'ext-network',
427
+ channel: 'ext-channel',
428
+ data: {
429
+ pageType: "article",
430
+ category: "repair"
431
+ }
432
+ }
433
+ }
434
+ }
435
+ }
436
+ });
437
+ ```
438
+ ### Passing First Party "user" data:
439
+ ```javascript
440
+ pbjs.setConfig({
441
+ ortb2: {
442
+ user: {
443
+ yob: 1985,
444
+ gender: 'm',
445
+ keywords: 'a,b',
446
+ data: [{
447
+ name: "www.dataprovider1.com",
448
+ ext: { segtax: 4 },
449
+ segment: [
450
+ { id: "687" },
451
+ { id: "123" }
452
+ ]
453
+ }],
454
+ ext: {
455
+ data: {
456
+ registered: true,
457
+ interests: ['cars']
458
+ }
459
+ }
460
+ }
461
+ }
462
+ });
463
+ ```
464
+ ### Passing First Party "app.content.data" data:
465
+ ```javascript
466
+ pbjs.setConfig({
467
+ ortb2: {
468
+ app: {
469
+ content: {
470
+ data: [{
471
+ name: "www.dataprovider1.com",
472
+ ext: { segtax: 4 },
473
+ segment: [
474
+ { id: "687" },
475
+ { id: "123" }
476
+ ]
477
+ }],
478
+ }
479
+ }
480
+ }
481
+ });
482
+ ```
483
+
484
+
485
+ ## AdUnit First Party Data "ortb2Imp"
486
+ Most DSPs are adopting the Global Placement ID (GPID).
487
+ Please pass your placement specific GPID value to Yahoo SSP using `adUnit.ortb2Imp.ext.data.pbadslot`.
488
+ ```javascript
489
+ const adUnits = [{
490
+ code: 'placement',
491
+ mediaTypes: {
492
+ banner: {
493
+ sizes: [
494
+ [300, 250]
495
+ ]
496
+ },
497
+ },
498
+ ortb2Imp: {
499
+ ext: {
500
+ data: {
501
+ pbadslot: "homepage-top-rect",
502
+ adUnitSpecificAttribute: "123"
503
+ }
504
+ }
505
+ },
506
+ bids: [{
507
+ bidder: 'yahoossp',
508
+ params: {
509
+ pubdId: 'DemoPublisher'
510
+ }
511
+ }]
512
+ }
513
+ ]
514
+ ```
515
+
516
+ # Optional: Bidder bidOverride Parameters
517
+ The yahoossp adapter allows passing override data to the outbound bid-request in that overrides First Party Data.
518
+ **Important!** We highly recommend using prebid modules to pass data instead of bidder speicifc overrides.
519
+ The use of these parameters are a last resort to force a specific feature or use case in your implementation.
520
+
521
+ Currently the bidOverride object only accepts the following:
522
+ * imp
523
+ * video
524
+ * mimes
525
+ * w
526
+ * h
527
+ * maxbitrate
528
+ * maxduration
529
+ * minduration
530
+ * api
531
+ * delivery
532
+ * pos
533
+ * playbackmethod
534
+ * placement
535
+ * linearity
536
+ * protocols
537
+ * rewarded
538
+ * site
539
+ * page
540
+ * device
541
+ * ip
542
+
543
+
544
+ ```javascript
545
+ const adUnits = [{
546
+ code: 'bidOverride-adUnit',
547
+ mediaTypes: {
548
+ video: {
549
+ context: 'outstream',
550
+ playerSize: [
551
+ [300, 250]
552
+ ],
553
+ }
554
+ },
555
+ bids: [{
556
+ bidder: 'yahoossp',
557
+ params: {
558
+ dcn: '8a969516017a7a396ec539d97f540011',
559
+ pos: '8a96958a017a7a57ac375d50c0c700cc',
560
+ bidOverride: {
561
+ imp: {
562
+ video: {
563
+ mimes: ['video/mp4', 'javascript/application'],
564
+ w: 300,
565
+ h: 200,
566
+ maxbitrate: 4000,
567
+ maxduration: 30,
568
+ minduration: 10,
569
+ api: [1,2],
570
+ delivery: 1,
571
+ pos: 1,
572
+ playbackmethod: 0,
573
+ placement: 1,
574
+ linearity: 1,
575
+ protocols: [2,5],
576
+ startdelay: 0,
577
+ rewarded: 0
578
+ }
579
+ },
580
+ site: {
581
+ page: 'https://yahoossp-bid-adapter.com',
582
+ },
583
+ device: {
584
+ ip: "1.2.3.4"
585
+ }
586
+ }
587
+ }
588
+ }]
589
+ }]
590
+ ```
591
+
592
+ # Optional: Custom Key-Value Pairs
593
+ Custom key-value paris can be used for both inventory targeting and reporting.
594
+ You must set up key-value pairs in the Yahoo SSP before sending them via the adapter otherwise the Ad Server will not be listening and picking them up.
595
+
596
+ Important! Key-value pairs can only contain values of types: String, Number, Array of strings OR Array of numbers
597
+
598
+ ```javascript
599
+ const adUnits = [{
600
+ code: 'key-value-pairs',
601
+ mediaTypes: {
602
+ video: {
603
+ context: 'outstream',
604
+ playerSize: [
605
+ [300, 250]
606
+ ],
607
+ }
608
+ },
609
+ bids: [{
610
+ bidder: 'yahoossp',
611
+ params: {
612
+ dcn: '8a969516017a7a396ec539d97f540011',
613
+ pos: '8a96958a017a7a57ac375d50c0c700cc',
614
+ kvp: {
615
+ key1: 'value', // String
616
+ key2: 123456, // Number
617
+ key3: ['string1','string2', 'string3'], // Array of strings
618
+ key4: [1, 23, 456, 7890] // Array of Numbers
619
+ }
620
+ }
621
+ }]
622
+ }]
623
+ ```
624
+
625
+ # Optional: Custom Cache Time To Live (ttl):
626
+ The yahoossp adapter supports passing of "Time To Live" (ttl) that indicates to prebid chache for how long to keep the chaced winning bid alive. Value is Number in seconds and you can enter any number between 1 - 3600 (seconds).
627
+ The setting can be defined globally using setConfig or within the adUnit.params.
628
+ Global level setConfig overrides adUnit.params.
629
+ If no value is being passed default is 300 seconds.
630
+ ## Global TTL
631
+ ```javascript
632
+ pbjs.setConfig({
633
+ yahoossp: {
634
+ ttl: 300
635
+ }
636
+ });
637
+
638
+ const adUnits = [{
639
+ code: 'global-ttl',
640
+ mediaTypes: {
641
+ video: {
642
+ context: 'outstream',
643
+ playerSize: [
644
+ [300, 250]
645
+ ],
646
+ }
647
+ },
648
+ bids: [{
649
+ bidder: 'yahoossp',
650
+ params: {
651
+ dcn: '8a969516017a7a396ec539d97f540011',
652
+ pos: '8a96958a017a7a57ac375d50c0c700cc',
653
+ }
654
+ }]
655
+ }]
656
+ ```
657
+
658
+ ## Ad Unit Params TTL
659
+ ```javascript
660
+ const adUnits = [{
661
+ code: 'adUnit-ttl',
662
+ mediaTypes: {
663
+ banner: {
664
+ sizes: [[300, 250]],
665
+ }
666
+ },
667
+ bids: [{
668
+ bidder: 'yahoossp',
669
+ params: {
670
+ dcn: '8a969516017a7a396ec539d97f540011',
671
+ pos: '8a96958a017a7a57ac375d50c0c700cc',
672
+ ttl: 300,
673
+ }
674
+ }]
675
+ }]
676
+ ```
677
+ # Optional: Video Features
678
+ ## Rewarded video flag
679
+ To indicate to Yahoo SSP that this adUnit is a rewarded video you can pass the following in the params.bidOverride.imp.video.rewarded: 1
680
+
681
+ ```javascript
682
+ const adUnits = [{
683
+ code: 'rewarded-video-adUnit',
684
+ mediaTypes: {
685
+ video: {
686
+ context: 'outstream',
687
+ playerSize: [
688
+ [300, 250]
689
+ ],
690
+ }
691
+ },
692
+ bids: [{
693
+ bidder: 'yahoossp',
694
+ params: {
695
+ dcn: '8a969516017a7a396ec539d97f540011',
696
+ pos: '8a96958a017a7a57ac375d50c0c700cc',
697
+ bidOverride: {
698
+ imp: {
699
+ video: {
700
+ rewarded: 1
701
+ }
702
+ }
703
+ }
704
+ }
705
+ }]
706
+ }]
707
+ ```
708
+
709
+ ## Site/App Targeting for "pubId" Inventory Mapping
710
+ To target your adUnit explicitly to a specific Site/App Object in Yahoo SSP, you can pass one of the following:
711
+ 1. params.siteId = External Site ID || Video SSP RTBIS Id (in String format).
712
+ 2. params.bidOverride.site.id = External Site ID || Video SSP RTBIS Id (in String format).
713
+ **Important:** Site override is a only supported when using "pubId" mode.
714
+ **Important:** If you are switching from the oneVideo adapter, please make sure to pass inventoryid as a String instead of Integer.
715
+
716
+ ```javascript
717
+ const adUnits = [{
718
+ code: 'pubId-site-targeting-adUnit',
719
+ mediaTypes: {
720
+ video: {
721
+ context: 'outstream',
722
+ playerSize: [
723
+ [300, 250]
724
+ ],
725
+ }
726
+ },
727
+ bids: [{
728
+ bidder: 'yahoossp',
729
+ params: {
730
+ pubId: 'DemoPublisher',
731
+ siteId: '1234567';
732
+ }
733
+ }]
734
+ }]
735
+ ```
736
+
737
+ ## Placement Targeting for "pubId" Inventory Mapping
738
+ To target your adUnit explicitly to a specific Placement within a Site/App Object in Yahoo SSP, you can pass the following params.placementId = External Placement ID || Placement Alias
739
+
740
+ **Important!** Placement override is a only supported when using "pubId" mode.
741
+ **Important!** It is highly recommended that you pass both `siteId` AND `placementId` together to avoid inventory miss matching.
742
+
743
+ ### Site & Placement override
744
+ **Important!** If the placement ID does not reside under the defined Site/App object, the request will not resolve and no response will be sent back from the ad-server.
745
+ ```javascript
746
+ const adUnits = [{
747
+ code: 'pubId-site-targeting-adUnit',
748
+ mediaTypes: {
749
+ video: {
750
+ context: 'outstream',
751
+ playerSize: [
752
+ [300, 250]
753
+ ],
754
+ }
755
+ },
756
+ bids: [{
757
+ bidder: 'yahoossp',
758
+ params: {
759
+ pubId: 'DemoPublisher',
760
+ siteId: '1234567',
761
+ placementId: 'header-250x300'
762
+ }
763
+ }]
764
+ }]
765
+ ```
766
+ ### Placement only override
767
+ **Important!** Using this method is not advised if you have multiple Site/Apps that are broken out of a Run Of Network (RON) Site/App. If the placement ID does not reside under a matching Site/App object, the request will not resolve and no response will be sent back from the ad-server.
768
+ ```javascript
769
+ const adUnits = [{
770
+ code: 'pubId-site-targeting-adUnit',
771
+ mediaTypes: {
772
+ video: {
773
+ context: 'outstream',
774
+ playerSize: [
775
+ [300, 250]
776
+ ],
777
+ }
778
+ },
779
+ bids: [{
780
+ bidder: 'yahoossp',
781
+ params: {
782
+ pubId: 'DemoPublisher',
783
+ placementId: 'header-250x300'
784
+ }
785
+ }]
786
+ }]
787
+ ```
788
+
789
+ # Optional: Legacy override Parameters
790
+ This adapter does not support passing legacy overrides via 'bidder.params.ext' since most of the data should be passed using prebid modules (First Party Data, Schain, Price Floors etc.).
791
+ If you do not know how to pass a custom parameter that you previously used, please contact us using the information provided above.
792
+
793
+ Thanks you,
794
+ Yahoo SSP
795
+