prebid.js 5.17.0 → 5.20.1
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/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 +9 -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/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 +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 +16 -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/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 +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 +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/modules/turktelekomBidAdapter.md +0 -49
- package/yarn.lock +0 -13122
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
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {tryAppendQueryString, getBidIdParameter} from '../src/utils.js';
|
|
2
2
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
3
3
|
import {BANNER, NATIVE} from '../src/mediaTypes.js';
|
|
4
4
|
import {config} from '../src/config.js';
|
|
@@ -25,7 +25,7 @@ export const spec = {
|
|
|
25
25
|
* @return ServerRequest Info describing the request to the server.
|
|
26
26
|
*/
|
|
27
27
|
buildRequests: function (validBidRequests, bidderRequest) {
|
|
28
|
-
const ADGENE_PREBID_VERSION = '1.
|
|
28
|
+
const ADGENE_PREBID_VERSION = '1.2.0';
|
|
29
29
|
let serverRequests = [];
|
|
30
30
|
for (let i = 0, len = validBidRequests.length; i < len; i++) {
|
|
31
31
|
const validReq = validBidRequests[i];
|
|
@@ -118,13 +118,25 @@ export const spec = {
|
|
|
118
118
|
function createAd(body, bidRequest) {
|
|
119
119
|
let ad = body.ad;
|
|
120
120
|
if (body.vastxml && body.vastxml.length > 0) {
|
|
121
|
-
|
|
121
|
+
if (isUpperBillboard(body)) {
|
|
122
|
+
const marginTop = bidRequest.params.marginTop ? bidRequest.params.marginTop : '0';
|
|
123
|
+
ad = `<body>${createADGBrowserMTag()}${insertVASTMethodForADGBrowserM(body.vastxml, marginTop)}</body>`;
|
|
124
|
+
} else {
|
|
125
|
+
ad = `<body><div id="apvad-${bidRequest.bidId}"></div>${createAPVTag()}${insertVASTMethodForAPV(bidRequest.bidId, body.vastxml)}</body>`;
|
|
126
|
+
}
|
|
122
127
|
}
|
|
123
128
|
ad = appendChildToBody(ad, body.beacon);
|
|
124
129
|
if (removeWrapper(ad)) return removeWrapper(ad);
|
|
125
130
|
return ad;
|
|
126
131
|
}
|
|
127
132
|
|
|
133
|
+
function isUpperBillboard(body) {
|
|
134
|
+
if (body.location_params && body.location_params.option && body.location_params.option.ad_type) {
|
|
135
|
+
return body.location_params.option.ad_type === 'upper_billboard';
|
|
136
|
+
}
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
|
|
128
140
|
function isNative(body) {
|
|
129
141
|
if (!body) return false;
|
|
130
142
|
return body.native_ad && body.native_ad.assets.length > 0;
|
|
@@ -190,7 +202,12 @@ function createAPVTag() {
|
|
|
190
202
|
return apvScript.outerHTML;
|
|
191
203
|
}
|
|
192
204
|
|
|
193
|
-
function
|
|
205
|
+
function createADGBrowserMTag() {
|
|
206
|
+
const ADGBrowserMURL = 'https://i.socdm.com/sdk/js/adg-browser-m.js';
|
|
207
|
+
return `<script type="text/javascript" src="${ADGBrowserMURL}"></script>`;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
function insertVASTMethodForAPV(targetId, vastXml) {
|
|
194
211
|
let apvVideoAdParam = {
|
|
195
212
|
s: targetId
|
|
196
213
|
};
|
|
@@ -200,6 +217,13 @@ function insertVASTMethod(targetId, vastXml) {
|
|
|
200
217
|
return script.outerHTML;
|
|
201
218
|
}
|
|
202
219
|
|
|
220
|
+
function insertVASTMethodForADGBrowserM(vastXml, marginTop) {
|
|
221
|
+
const script = document.createElement(`script`);
|
|
222
|
+
script.type = 'text/javascript';
|
|
223
|
+
script.innerHTML = `window.ADGBrowserM.init({vastXml: '${vastXml.replace(/\r?\n/g, '')}', marginTop: '${marginTop}'});`;
|
|
224
|
+
return script.outerHTML;
|
|
225
|
+
}
|
|
226
|
+
|
|
203
227
|
/**
|
|
204
228
|
*
|
|
205
229
|
* @param ad
|
|
@@ -19,9 +19,20 @@ export const spec = {
|
|
|
19
19
|
* Make a server request from the list of BidRequests.
|
|
20
20
|
*/
|
|
21
21
|
buildRequests: function (validRequest, bidderRequest) {
|
|
22
|
+
let w;
|
|
23
|
+
let docRef;
|
|
24
|
+
do {
|
|
25
|
+
w = w ? w.parent : window;
|
|
26
|
+
try {
|
|
27
|
+
docRef = w.document.referrer;
|
|
28
|
+
} catch (e) {
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
} while (w !== window.top);
|
|
22
32
|
const payload = {
|
|
23
33
|
imps: [],
|
|
24
34
|
ortb2: config.getConfig('ortb2'),
|
|
35
|
+
docReferrer: docRef,
|
|
25
36
|
};
|
|
26
37
|
let endpointUrl;
|
|
27
38
|
if (bidderRequest) {
|
|
@@ -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',
|
|
@@ -33,7 +33,7 @@ export function attachScriptTagToDOM(rtdConfig) {
|
|
|
33
33
|
edktInitializor.load = function(e) {
|
|
34
34
|
var p = e || 'sdk';
|
|
35
35
|
var n = document.createElement('script');
|
|
36
|
-
n.type = '
|
|
36
|
+
n.type = 'module';
|
|
37
37
|
n.async = true;
|
|
38
38
|
n.src = 'https://cdn.edkt.io/' + p + '/edgekit.min.js';
|
|
39
39
|
document.getElementsByTagName('head')[0].appendChild(n);
|