prebid.js 5.18.0 → 5.20.2
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/browsers.json +1 -0
- package/integrationExamples/gpt/akamaidap_segments_example.html +132 -0
- package/modules/.submodules.json +1 -0
- package/modules/adfBidAdapter.js +21 -16
- package/modules/adtelligentBidAdapter.js +2 -1
- package/modules/adxcgBidAdapter.js +311 -359
- package/modules/airgridRtdProvider.js +1 -1
- package/modules/akamaiDapRtdProvider.js +474 -0
- package/modules/akamaiDapRtdProvider.md +47 -0
- package/modules/appnexusBidAdapter.js +9 -3
- package/modules/atsAnalyticsAdapter.js +67 -46
- package/modules/atsAnalyticsAdapter.md +1 -0
- package/modules/betweenBidAdapter.js +20 -3
- 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/deepintentBidAdapter.js +106 -9
- package/modules/deepintentBidAdapter.md +36 -1
- package/modules/deltaprojectsBidAdapter.js +252 -0
- package/modules/deltaprojectsBidAdapter.md +32 -0
- 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/ipromBidAdapter.js +79 -0
- package/modules/ixBidAdapter.js +8 -1
- package/modules/jixieBidAdapter.js +8 -2
- package/modules/justpremiumBidAdapter.js +6 -1
- package/modules/kinessoIdSystem.js +1 -1
- package/modules/limelightDigitalBidAdapter.js +22 -2
- package/modules/livewrappedAnalyticsAdapter.js +49 -1
- package/modules/multibid/index.js +3 -3
- package/modules/nativoBidAdapter.js +5 -1
- package/modules/nextMillenniumBidAdapter.js +12 -3
- package/modules/oguryBidAdapter.js +14 -1
- 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/playwireBidAdapter.md +61 -0
- package/modules/publinkIdSystem.js +11 -6
- package/modules/rtdModule/index.js +2 -2
- package/modules/sonobiBidAdapter.js +7 -0
- package/modules/sortableBidAdapter.js +1 -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/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/yahoosspBidAdapter.js +6 -6
- 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/adtelligentBidAdapter_spec.js +1 -0
- package/test/spec/modules/adxcgBidAdapter_spec.js +827 -571
- package/test/spec/modules/akamaiDapRtdProvider_spec.js +246 -0
- package/test/spec/modules/appnexusBidAdapter_spec.js +16 -1
- package/test/spec/modules/atsAnalyticsAdapter_spec.js +42 -9
- package/test/spec/modules/betweenBidAdapter_spec.js +41 -0
- 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/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/eplanningBidAdapter_spec.js +8 -8
- package/test/spec/modules/gumgumBidAdapter_spec.js +5 -1
- package/test/spec/modules/ipromBidAdapter_spec.js +195 -0
- 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 +52 -7
- 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 +53 -12
- 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/sonobiBidAdapter_spec.js +34 -1
- package/test/spec/modules/sortableBidAdapter_spec.js +11 -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/ventesBidAdapter_spec.js +845 -0
- package/test/spec/modules/videobyteBidAdapter_spec.js +2 -2
- package/test/spec/modules/yieldmoSyntheticInventoryModule_spec.js +89 -0
- package/test/spec/unit/core/adapterManager_spec.js +37 -2
- 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/browsers.json
CHANGED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
<html>
|
|
2
|
+
<head>
|
|
3
|
+
<script async src="../../build/dev/prebid.js"></script>
|
|
4
|
+
<script async src="https://www.googletagservices.com/tag/js/gpt.js"></script>
|
|
5
|
+
<script>
|
|
6
|
+
var FAILSAFE_TIMEOUT = 3300;
|
|
7
|
+
var PREBID_TIMEOUT = 2000;
|
|
8
|
+
|
|
9
|
+
var adUnits = [{
|
|
10
|
+
code: 'div-gpt-ad-1460505748561-0',
|
|
11
|
+
mediaTypes: {
|
|
12
|
+
banner: {
|
|
13
|
+
sizes: [[300, 250], [300,600]],
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
// Replace this object to test a new Adapter!
|
|
17
|
+
bids: [
|
|
18
|
+
{
|
|
19
|
+
bidder: 'appnexus',
|
|
20
|
+
params: {
|
|
21
|
+
placementId: 13144370
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
bidder: 'sovrn',
|
|
26
|
+
params: {
|
|
27
|
+
tagid: 1
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
}];
|
|
33
|
+
|
|
34
|
+
var pbjs = pbjs || {};
|
|
35
|
+
pbjs.que = pbjs.que || [];
|
|
36
|
+
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
<script>
|
|
40
|
+
var googletag = googletag || {};
|
|
41
|
+
googletag.cmd = googletag.cmd || [];
|
|
42
|
+
googletag.cmd.push(function() {
|
|
43
|
+
googletag.pubads().disableInitialLoad();
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
pbjs.que.push(function() {
|
|
47
|
+
pbjs.setConfig({
|
|
48
|
+
debug: true,
|
|
49
|
+
ortb2: {
|
|
50
|
+
user: {
|
|
51
|
+
data: [
|
|
52
|
+
// DAP segment taxonomy inserted here
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
site: {
|
|
56
|
+
ext: {
|
|
57
|
+
data: {
|
|
58
|
+
// DAP SAID will be inserted here
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
imp: {
|
|
63
|
+
ext: {
|
|
64
|
+
data: {
|
|
65
|
+
// DAP SAID will be inserted here
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
realTimeData: {
|
|
71
|
+
dataProviders: [
|
|
72
|
+
{
|
|
73
|
+
name: "dap",
|
|
74
|
+
waitForIt: true,
|
|
75
|
+
params: {
|
|
76
|
+
apiHostname: "prebid.dap.akadns.net",
|
|
77
|
+
apiVersion: "x1",
|
|
78
|
+
domain: "prebid.org",
|
|
79
|
+
identityType: "dap-signature:1.0.0",
|
|
80
|
+
segtax: 503,
|
|
81
|
+
tokenTtl: 5,
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
pbjs.addAdUnits(adUnits);
|
|
88
|
+
pbjs.requestBids({
|
|
89
|
+
bidsBackHandler: sendAdserverRequest,
|
|
90
|
+
timeout: PREBID_TIMEOUT
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
function sendAdserverRequest() {
|
|
95
|
+
if (pbjs.adserverRequestSent) return;
|
|
96
|
+
pbjs.adserverRequestSent = true;
|
|
97
|
+
googletag.cmd.push(function() {
|
|
98
|
+
pbjs.que.push(function() {
|
|
99
|
+
pbjs.setTargetingForGPTAsync();
|
|
100
|
+
googletag.pubads().refresh();
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
setTimeout(function() {
|
|
106
|
+
sendAdserverRequest();
|
|
107
|
+
}, FAILSAFE_TIMEOUT);
|
|
108
|
+
|
|
109
|
+
</script>
|
|
110
|
+
|
|
111
|
+
<script>
|
|
112
|
+
googletag.cmd.push(function () {
|
|
113
|
+
googletag.defineSlot('/19968336/header-bid-tag-0', [[300, 250], [300, 600]], 'div-gpt-ad-1460505748561-0').addService(googletag.pubads());
|
|
114
|
+
googletag.pubads().enableSingleRequest();
|
|
115
|
+
googletag.enableServices();
|
|
116
|
+
});
|
|
117
|
+
</script>
|
|
118
|
+
|
|
119
|
+
<script>!function(a){var e="https://s.go-mpulse.net/boomerang/",t="addEventListener";if("False"=="True")a.BOOMR_config=a.BOOMR_config||{},a.BOOMR_config.PageParams=a.BOOMR_config.PageParams||{},a.BOOMR_config.PageParams.pci=!0,e="https://s2.go-mpulse.net/boomerang/";if(window.BOOMR_API_key="5G3ZS-8L7PG-U23WM-5CA4K-LQ3YP",function(){function n(e){a.BOOMR_onload=e&&e.timeStamp||(new Date).getTime()}if(!a.BOOMR||!a.BOOMR.version&&!a.BOOMR.snippetExecuted){a.BOOMR=a.BOOMR||{},a.BOOMR.snippetExecuted=!0;var i,_,o,r=document.createElement("iframe");if(a[t])a[t]("load",n,!1);else if(a.attachEvent)a.attachEvent("onload",n);r.src="javascript:void(0)",r.title="",r.role="presentation",(r.frameElement||r).style.cssText="width:0;height:0;border:0;display:none;",o=document.getElementsByTagName("script")[0],o.parentNode.insertBefore(r,o);try{_=r.contentWindow.document}catch(O){i=document.domain,r.src="javascript:var d=document.open();d.domain='"+i+"';void(0);",_=r.contentWindow.document}_.open()._l=function(){var a=this.createElement("script");if(i)this.domain=i;a.id="boomr-if-as",a.src=e+"5G3ZS-8L7PG-U23WM-5CA4K-LQ3YP",BOOMR_lstart=(new Date).getTime(),this.body.appendChild(a)},_.write("<bo"+'dy onload="document._l();">'),_.close()}}(),"".length>0)if(a&&"performance"in a&&a.performance&&"function"==typeof a.performance.setResourceTimingBufferSize)a.performance.setResourceTimingBufferSize();!function(){if(BOOMR=a.BOOMR||{},BOOMR.plugins=BOOMR.plugins||{},!BOOMR.plugins.AK){var e=""=="true"?1:0,t="",n="ghh4w4yxem66iyi6ijxa-f-a8f1ed317-clientnsv4-s.akamaihd.net",i="false"=="true"?2:1,_={"ak.v":"32","ak.cp":"540505","ak.ai":parseInt("351538",10),"ak.ol":"0","ak.cr":17,"ak.ipv":4,"ak.proto":"http/1.1","ak.rid":"322de403","ak.r":36326,"ak.a2":e,"ak.m":"dscx","ak.n":"essl","ak.bpcip":"49.207.203.0","ak.cport":5172,"ak.gh":"23.47.149.85","ak.quicv":"","ak.tlsv":"tls1.2","ak.0rtt":"","ak.csrc":"-","ak.acc":"bbr","ak.t":"1629373038","ak.ak":"hOBiQwZUYzCg5VSAfCLimQ==admFPBlxVf0VKeanKFKUThzq+or23aIaVFP5DBXpeOGEuvD5mQz0UZbvK242Y8cupS91bsNaM7uJT3/O00EszGTxlFhkv439YkTWfyegvqVlJhcrZ7jcRkIoyrmjoBqDZoF0WaG4rhwmNzkKEv6T1noRYwEWwRHOG8p7osPXWy5as6KkmhOYUiYk8S5hQj+HFzhYI5YUTx+8urmHdpVIDBkramcrT2V89mb0cH5L2bSGS2hahAA3Kkf+0Dul7r5hDFQaVTf17e4oKdM1G8cKVF5LGRxRl3v4Rn6tBJ+fjrJ7XYQWV30w1LPwcAmSfRX8iTCK4xzHwG1fwDFHb5tWVsxHeEkRgNN3/KhnrCjxKtaROjJeWypJf/rjn1HWHwy7uVVsP9f/HRN3drCCkEvJBmu6yi0jzFFCoeEkbUEoq+8=","ak.pv":"396","ak.dpoabenc":"","ak.tf":i};if(""!==t)_["ak.ruds"]=t;var o={i:!1,av:function(e){var t="http.initiator";if(e&&(!e[t]||"spa_hard"===e[t]))_["ak.feo"]=void 0!==a.aFeoApplied?1:0,BOOMR.addVar(_)},rv:function(){var a=["ak.bpcip","ak.cport","ak.cr","ak.csrc","ak.gh","ak.ipv","ak.m","ak.n","ak.ol","ak.proto","ak.quicv","ak.tlsv","ak.0rtt","ak.r","ak.acc","ak.t","ak.tf"];BOOMR.removeVar(a)}};BOOMR.plugins.AK={akVars:_,akDNSPreFetchDomain:n,init:function(){if(!o.i){var a=BOOMR.subscribe;a("before_beacon",o.av,null,null),a("onbeacon",o.rv,null,null),o.i=!0}return this},is_complete:function(){return!0}}}}()}(window);</script></head>
|
|
120
|
+
|
|
121
|
+
<body>
|
|
122
|
+
<h2>Prebid.js Test</h2>
|
|
123
|
+
<h5>Div-1</h5>
|
|
124
|
+
<div id='div-gpt-ad-1460505748561-0'>
|
|
125
|
+
<script type='text/javascript'>
|
|
126
|
+
googletag.cmd.push(function() { googletag.display('div-gpt-ad-1460505748561-0'); });
|
|
127
|
+
</script>
|
|
128
|
+
</div>
|
|
129
|
+
<h5>Segments Sent to Bidding Adapter</h5>
|
|
130
|
+
<div id="user-segments"></div>
|
|
131
|
+
</body>
|
|
132
|
+
</html>
|
package/modules/.submodules.json
CHANGED
package/modules/adfBidAdapter.js
CHANGED
|
@@ -58,7 +58,11 @@ export const spec = {
|
|
|
58
58
|
aliases: BIDDER_ALIAS,
|
|
59
59
|
gvlid: GVLID,
|
|
60
60
|
supportedMediaTypes: [ NATIVE, BANNER, VIDEO ],
|
|
61
|
-
isBidRequestValid: bid =>
|
|
61
|
+
isBidRequestValid: (bid) => {
|
|
62
|
+
const params = bid.params || {};
|
|
63
|
+
const { mid, inv, mname } = params;
|
|
64
|
+
return !!(mid || (inv && mname));
|
|
65
|
+
},
|
|
62
66
|
buildRequests: (validBidRequests, bidderRequest) => {
|
|
63
67
|
let app, site;
|
|
64
68
|
|
|
@@ -104,12 +108,19 @@ export const spec = {
|
|
|
104
108
|
}) : {};
|
|
105
109
|
const bidfloor = floorInfo.floor;
|
|
106
110
|
const bidfloorcur = floorInfo.currency;
|
|
111
|
+
const { mid, inv, mname } = bid.params;
|
|
107
112
|
|
|
108
113
|
const imp = {
|
|
109
114
|
id: id + 1,
|
|
110
|
-
tagid:
|
|
115
|
+
tagid: mid,
|
|
111
116
|
bidfloor,
|
|
112
|
-
bidfloorcur
|
|
117
|
+
bidfloorcur,
|
|
118
|
+
ext: {
|
|
119
|
+
bidder: {
|
|
120
|
+
inv,
|
|
121
|
+
mname
|
|
122
|
+
}
|
|
123
|
+
}
|
|
113
124
|
};
|
|
114
125
|
|
|
115
126
|
const assets = _map(bid.nativeParams, (bidParams, key) => {
|
|
@@ -153,9 +164,6 @@ export const spec = {
|
|
|
153
164
|
assets
|
|
154
165
|
}
|
|
155
166
|
};
|
|
156
|
-
|
|
157
|
-
bid.mediaType = NATIVE;
|
|
158
|
-
return imp;
|
|
159
167
|
}
|
|
160
168
|
|
|
161
169
|
const bannerParams = deepAccess(bid, 'mediaTypes.banner');
|
|
@@ -172,18 +180,14 @@ export const spec = {
|
|
|
172
180
|
imp.banner = {
|
|
173
181
|
format
|
|
174
182
|
};
|
|
175
|
-
bid.mediaType = BANNER;
|
|
176
|
-
|
|
177
|
-
return imp;
|
|
178
183
|
}
|
|
179
184
|
|
|
180
185
|
const videoParams = deepAccess(bid, 'mediaTypes.video');
|
|
181
186
|
if (videoParams) {
|
|
182
187
|
imp.video = videoParams;
|
|
183
|
-
bid.mediaType = VIDEO;
|
|
184
|
-
|
|
185
|
-
return imp;
|
|
186
188
|
}
|
|
189
|
+
|
|
190
|
+
return imp;
|
|
187
191
|
});
|
|
188
192
|
|
|
189
193
|
const request = {
|
|
@@ -243,6 +247,7 @@ export const spec = {
|
|
|
243
247
|
return bids.map((bid, id) => {
|
|
244
248
|
const bidResponse = bidResponses[id];
|
|
245
249
|
if (bidResponse) {
|
|
250
|
+
const mediaType = deepAccess(bidResponse, 'ext.prebid.type');
|
|
246
251
|
const result = {
|
|
247
252
|
requestId: bid.bidId,
|
|
248
253
|
cpm: bidResponse.price,
|
|
@@ -250,12 +255,12 @@ export const spec = {
|
|
|
250
255
|
ttl: 360,
|
|
251
256
|
netRevenue: bid.netRevenue === 'net',
|
|
252
257
|
currency: cur,
|
|
253
|
-
mediaType
|
|
258
|
+
mediaType,
|
|
254
259
|
width: bidResponse.w,
|
|
255
260
|
height: bidResponse.h,
|
|
256
261
|
dealId: bidResponse.dealid,
|
|
257
262
|
meta: {
|
|
258
|
-
mediaType
|
|
263
|
+
mediaType,
|
|
259
264
|
advertiserDomains: bidResponse.adomain
|
|
260
265
|
}
|
|
261
266
|
};
|
|
@@ -263,10 +268,10 @@ export const spec = {
|
|
|
263
268
|
if (bidResponse.native) {
|
|
264
269
|
result.native = parseNative(bidResponse);
|
|
265
270
|
} else {
|
|
266
|
-
result[
|
|
271
|
+
result[ mediaType === VIDEO ? 'vastXml' : 'ad' ] = bidResponse.adm;
|
|
267
272
|
}
|
|
268
273
|
|
|
269
|
-
if (!bid.renderer &&
|
|
274
|
+
if (!bid.renderer && mediaType === VIDEO && deepAccess(bid, 'mediaTypes.video.context') === 'outstream') {
|
|
270
275
|
result.renderer = Renderer.install({id: bid.bidId, url: OUTSTREAM_RENDERER_URL, adUnitCode: bid.adUnitCode});
|
|
271
276
|
result.renderer.setRender(renderer);
|
|
272
277
|
}
|
|
@@ -20,6 +20,7 @@ const HOST_GETTERS = {
|
|
|
20
20
|
onefiftytwomedia: () => 'ghb.ads.152media.com',
|
|
21
21
|
mediafuse: () => 'ghb.hbmp.mediafuse.com',
|
|
22
22
|
bidsxchange: () => 'ghb.hbd.bidsxchange.com',
|
|
23
|
+
streamkey: () => 'ghb.hb.streamkey.net',
|
|
23
24
|
}
|
|
24
25
|
const getUri = function (bidderCode) {
|
|
25
26
|
let bidderWithoutSuffix = bidderCode.split('_')[0];
|
|
@@ -35,7 +36,7 @@ const syncsCache = {};
|
|
|
35
36
|
export const spec = {
|
|
36
37
|
code: BIDDER_CODE,
|
|
37
38
|
gvlid: 410,
|
|
38
|
-
aliases: ['onefiftytwomedia', 'selectmedia', 'appaloosa', 'bidsxchange',
|
|
39
|
+
aliases: ['onefiftytwomedia', 'selectmedia', 'appaloosa', 'bidsxchange', 'streamkey',
|
|
39
40
|
{ code: 'navelix', gvlid: 380 },
|
|
40
41
|
{
|
|
41
42
|
code: 'mediafuse',
|