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.
- package/.babelrc.js +3 -6
- package/README.md +3 -1
- package/browsers.json +1 -8
- package/integrationExamples/gpt/akamaidap_segments_example.html +132 -0
- package/modules/.submodules.json +1 -0
- package/modules/adfBidAdapter.js +21 -16
- package/modules/adgenerationBidAdapter.js +28 -4
- package/modules/adkernelBidAdapter.js +2 -1
- package/modules/admixerBidAdapter.js +11 -0
- package/modules/adtelligentBidAdapter.js +2 -1
- package/modules/airgridRtdProvider.js +1 -1
- package/modules/akamaiDapRtdProvider.js +474 -0
- package/modules/akamaiDapRtdProvider.md +47 -0
- package/modules/aolBidAdapter.js +2 -1
- package/modules/appnexusBidAdapter.js +5 -3
- package/modules/atsAnalyticsAdapter.js +67 -46
- package/modules/atsAnalyticsAdapter.md +1 -0
- package/modules/betweenBidAdapter.js +20 -3
- package/modules/bliinkBidAdapter.js +58 -32
- package/modules/bliinkBidAdapter.md +29 -6
- package/modules/browsiRtdProvider.js +106 -18
- package/modules/cleanioRtdProvider.js +192 -0
- package/modules/cleanioRtdProvider.md +59 -0
- package/modules/codefuelBidAdapter.js +183 -0
- package/modules/codefuelBidAdapter.md +111 -0
- package/modules/connectIdSystem.js +104 -0
- package/modules/connectIdSystem.md +33 -0
- package/modules/cwireBidAdapter.js +272 -0
- package/modules/cwireBidAdapter.md +43 -0
- package/modules/deepintentBidAdapter.js +106 -9
- package/modules/deepintentBidAdapter.md +36 -1
- package/modules/deltaprojectsBidAdapter.js +252 -0
- package/modules/deltaprojectsBidAdapter.md +32 -0
- package/modules/dgkeywordRtdProvider.js +0 -1
- package/modules/engageyaBidAdapter.js +157 -0
- package/modules/gridBidAdapter.js +1 -0
- package/modules/gumgumBidAdapter.js +8 -0
- package/modules/inskinBidAdapter.js +7 -3
- package/modules/ixBidAdapter.js +8 -1
- package/modules/jixieBidAdapter.js +8 -2
- package/modules/justpremiumBidAdapter.js +6 -1
- package/modules/limelightDigitalBidAdapter.js +22 -2
- package/modules/livewrappedAnalyticsAdapter.js +53 -3
- package/modules/mediakeysBidAdapter.js +2 -1
- package/modules/multibid/index.js +3 -3
- package/modules/nativoBidAdapter.js +6 -2
- package/modules/nextMillenniumBidAdapter.js +12 -3
- package/modules/oguryBidAdapter.js +36 -7
- package/modules/openxBidAdapter.js +34 -22
- package/modules/operaadsBidAdapter.js +21 -1
- package/modules/otmBidAdapter.js +146 -0
- package/modules/otmBidAdapter.md +27 -26
- package/modules/outbrainBidAdapter.js +5 -0
- package/modules/pixfutureBidAdapter.js +24 -4
- package/modules/pixfutureBidAdapter.md +127 -0
- package/modules/playwireBidAdapter.md +61 -0
- package/modules/prebidServerBidAdapter/index.js +1 -1
- package/modules/proxistoreBidAdapter.js +4 -6
- package/modules/publinkIdSystem.js +11 -6
- package/modules/pubmaticBidAdapter.js +9 -0
- package/modules/pubmaticBidAdapter.md +1 -1
- package/modules/rtdModule/index.js +2 -2
- package/modules/sonobiBidAdapter.js +7 -0
- package/modules/sortableBidAdapter.js +1 -0
- package/modules/talkadsBidAdapter.js +129 -0
- package/modules/talkadsBidAdapter.md +60 -0
- package/modules/teadsBidAdapter.js +3 -0
- package/modules/tripleliftBidAdapter.js +22 -5
- package/modules/trustxBidAdapter.js +8 -6
- package/modules/undertoneBidAdapter.js +9 -5
- package/modules/undertoneBidAdapter.md +5 -1
- package/modules/unicornBidAdapter.js +3 -3
- package/modules/userId/eids.js +18 -0
- package/modules/userId/eids.md +7 -0
- package/modules/userId/userId.md +12 -0
- package/modules/ventesBidAdapter.js +370 -0
- package/modules/ventesBidAdapter.md +94 -0
- package/modules/videobyteBidAdapter.js +13 -6
- package/modules/videobyteBidAdapter.md +49 -0
- package/modules/visxBidAdapter.js +15 -22
- package/modules/yahoosspBidAdapter.js +637 -0
- package/modules/yahoosspBidAdapter.md +795 -0
- package/modules/yieldlabBidAdapter.js +48 -3
- package/modules/yieldlabBidAdapter.md +16 -1
- package/modules/yieldmoSyntheticInventoryModule.js +46 -0
- package/modules/yieldmoSyntheticInventoryModule.md +68 -0
- package/package.json +1 -1
- package/src/adapterManager.js +5 -0
- package/src/adapters/bidderFactory.js +4 -3
- package/src/auction.js +11 -11
- package/src/constants.json +1 -0
- package/src/secureCreatives.js +6 -7
- package/src/targeting.js +11 -9
- package/test/spec/modules/adfBidAdapter_spec.js +83 -29
- package/test/spec/modules/adgenerationBidAdapter_spec.js +121 -50
- package/test/spec/modules/adtelligentBidAdapter_spec.js +1 -0
- package/test/spec/modules/akamaiDapRtdProvider_spec.js +246 -0
- package/test/spec/modules/appnexusBidAdapter_spec.js +2 -1
- package/test/spec/modules/atsAnalyticsAdapter_spec.js +42 -9
- package/test/spec/modules/betweenBidAdapter_spec.js +41 -0
- package/test/spec/modules/bliinkBidAdapter_spec.js +87 -36
- package/test/spec/modules/browsiRtdProvider_spec.js +62 -7
- package/test/spec/modules/cleanioRtdProvider_spec.js +188 -0
- package/test/spec/modules/codefuelBidAdapter_spec.js +316 -0
- package/test/spec/modules/connectIdSystem_spec.js +189 -0
- package/test/spec/modules/cwireBidAdapter_spec.js +246 -0
- package/test/spec/modules/deepintentBidAdapter_spec.js +153 -3
- package/test/spec/modules/deltaprojectsBidAdapter_spec.js +399 -0
- package/test/spec/modules/engageyaBidAdapter_spec.js +286 -0
- package/test/spec/modules/gumgumBidAdapter_spec.js +5 -1
- package/test/spec/modules/ixBidAdapter_spec.js +13 -3
- package/test/spec/modules/jixieBidAdapter_spec.js +13 -11
- package/test/spec/modules/justpremiumBidAdapter_spec.js +9 -2
- package/test/spec/modules/limelightDigitalBidAdapter_spec.js +155 -1
- package/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +67 -12
- package/test/spec/modules/multibid_spec.js +31 -31
- package/test/spec/modules/nextMillenniumBidAdapter_spec.js +13 -1
- package/test/spec/modules/oguryBidAdapter_spec.js +125 -37
- package/test/spec/modules/openxBidAdapter_spec.js +85 -13
- package/test/spec/modules/operaadsBidAdapter_spec.js +38 -6
- package/test/spec/modules/otmBidAdapter_spec.js +67 -0
- package/test/spec/modules/outbrainBidAdapter_spec.js +18 -0
- package/test/spec/modules/publinkIdSystem_spec.js +6 -6
- package/test/spec/modules/pubmaticBidAdapter_spec.js +39 -1
- package/test/spec/modules/sonobiBidAdapter_spec.js +34 -1
- package/test/spec/modules/sortableBidAdapter_spec.js +11 -0
- package/test/spec/modules/talkadsBidAdapter_spec.js +231 -0
- package/test/spec/modules/teadsBidAdapter_spec.js +132 -0
- package/test/spec/modules/tripleliftBidAdapter_spec.js +128 -0
- package/test/spec/modules/trustxBidAdapter_spec.js +3 -3
- package/test/spec/modules/undertoneBidAdapter_spec.js +52 -0
- package/test/spec/modules/unicornBidAdapter_spec.js +4 -4
- package/test/spec/modules/ventesBidAdapter_spec.js +845 -0
- package/test/spec/modules/videobyteBidAdapter_spec.js +2 -2
- package/test/spec/modules/visxBidAdapter_spec.js +48 -4
- package/test/spec/modules/yahoosspBidAdapter_spec.js +1332 -0
- package/test/spec/modules/yieldlabBidAdapter_spec.js +65 -1
- package/test/spec/modules/yieldmoSyntheticInventoryModule_spec.js +89 -0
- package/test/spec/unit/core/adapterManager_spec.js +32 -0
- package/test/spec/unit/core/bidderFactory_spec.js +61 -1
- package/test/spec/unit/pbjs_api_spec.js +37 -2
- package/test/spec/unit/secureCreatives_spec.js +54 -25
- package/wdio.conf.js +1 -1
- package/modules/turktelekomBidAdapter.md +0 -49
- 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
|
+
|