prebid.js 5.18.0 → 6.1.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 +1 -10
- package/README.md +3 -1
- package/browsers.json +1 -8
- package/gulpfile.js +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/adheseBidAdapter.js +7 -2
- package/modules/adkernelBidAdapter.js +1 -0
- package/modules/adlivetechBidAdapter.md +61 -0
- package/modules/adomikAnalyticsAdapter.js +10 -4
- 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/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 +181 -0
- package/modules/codefuelBidAdapter.md +111 -0
- package/modules/connectIdSystem.js +104 -0
- package/modules/connectIdSystem.md +33 -0
- package/modules/datablocksBidAdapter.js +3 -3
- package/modules/deepintentBidAdapter.js +107 -10
- package/modules/deepintentBidAdapter.md +36 -1
- package/modules/deltaprojectsBidAdapter.js +252 -0
- package/modules/deltaprojectsBidAdapter.md +32 -0
- package/modules/engageyaBidAdapter.js +171 -0
- package/modules/glimpseBidAdapter.js +31 -16
- package/modules/gptPreAuction.js +11 -5
- package/modules/gridBidAdapter.js +1 -0
- package/modules/gumgumBidAdapter.js +8 -0
- package/modules/id5IdSystem.md +6 -6
- package/modules/imRtdProvider.js +31 -0
- package/modules/inskinBidAdapter.js +7 -3
- package/modules/ixBidAdapter.js +174 -22
- package/modules/jixieBidAdapter.js +8 -2
- package/modules/justpremiumBidAdapter.js +6 -1
- package/modules/limelightDigitalBidAdapter.js +22 -2
- package/modules/livewrappedAnalyticsAdapter.js +49 -1
- package/modules/merkleIdSystem.js +5 -0
- package/modules/multibid/index.js +3 -3
- package/modules/nativoBidAdapter.js +32 -2
- package/modules/nextMillenniumBidAdapter.js +12 -3
- package/modules/oguryBidAdapter.js +16 -2
- package/modules/openxBidAdapter.js +40 -23
- 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/prebidServerBidAdapter/index.js +3 -3
- package/modules/publinkIdSystem.js +11 -6
- package/modules/pubmaticBidAdapter.js +2 -0
- package/modules/rtdModule/index.js +2 -2
- package/modules/saambaaBidAdapter.js +420 -0
- package/modules/saambaaBidAdapter.md +65 -68
- package/modules/seedtagBidAdapter.js +6 -0
- package/modules/smaatoBidAdapter.js +6 -1
- package/modules/sonobiBidAdapter.js +7 -0
- package/modules/sortableBidAdapter.js +1 -0
- package/modules/sspBCBidAdapter.js +34 -3
- package/modules/teadsBidAdapter.js +3 -0
- package/modules/tripleliftBidAdapter.js +22 -5
- package/modules/trustxBidAdapter.js +18 -7
- 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/vidoomyBidAdapter.js +51 -100
- package/modules/visxBidAdapter.js +1 -1
- package/modules/yahoosspBidAdapter.js +6 -6
- package/modules/yieldlabBidAdapter.js +41 -10
- package/modules/yieldlabBidAdapter.md +91 -48
- package/modules/yieldmoSyntheticInventoryModule.js +46 -0
- package/modules/yieldmoSyntheticInventoryModule.md +68 -0
- package/package.json +6 -1
- package/src/adapterManager.js +19 -8
- 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/adheseBidAdapter_spec.js +27 -1
- package/test/spec/modules/adomikAnalyticsAdapter_spec.js +3 -1
- 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/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/datablocksBidAdapter_spec.js +3 -3
- 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 +422 -0
- package/test/spec/modules/eplanningBidAdapter_spec.js +8 -8
- package/test/spec/modules/glimpseBidAdapter_spec.js +33 -0
- package/test/spec/modules/gptPreAuction_spec.js +58 -4
- package/test/spec/modules/gumgumBidAdapter_spec.js +5 -1
- package/test/spec/modules/imRtdProvider_spec.js +25 -0
- package/test/spec/modules/ixBidAdapter_spec.js +298 -5
- package/test/spec/modules/jixieBidAdapter_spec.js +13 -11
- package/test/spec/modules/justpremiumBidAdapter_spec.js +9 -2
- package/test/spec/modules/konduitWrapper_spec.js +0 -1
- package/test/spec/modules/limelightDigitalBidAdapter_spec.js +155 -1
- package/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +52 -7
- package/test/spec/modules/merkleIdSystem_spec.js +18 -0
- package/test/spec/modules/multibid_spec.js +31 -31
- package/test/spec/modules/nativoBidAdapter_spec.js +35 -18
- package/test/spec/modules/nextMillenniumBidAdapter_spec.js +13 -1
- package/test/spec/modules/oguryBidAdapter_spec.js +66 -23
- package/test/spec/modules/openxBidAdapter_spec.js +90 -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/prebidServerBidAdapter_spec.js +19 -2
- package/test/spec/modules/publinkIdSystem_spec.js +6 -6
- package/test/spec/modules/seedtagBidAdapter_spec.js +3 -0
- package/test/spec/modules/smaatoBidAdapter_spec.js +30 -0
- package/test/spec/modules/sonobiBidAdapter_spec.js +34 -1
- package/test/spec/modules/sortableBidAdapter_spec.js +11 -0
- package/test/spec/modules/sspBCBidAdapter_spec.js +33 -3
- 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 +45 -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/vidoomyBidAdapter_spec.js +32 -13
- package/test/spec/modules/visxBidAdapter_spec.js +1 -1
- package/test/spec/modules/yieldlabBidAdapter_spec.js +81 -0
- package/test/spec/modules/yieldmoSyntheticInventoryModule_spec.js +89 -0
- package/test/spec/unit/core/adapterManager_spec.js +56 -6
- 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/.babelrc.js
CHANGED
|
@@ -14,16 +14,7 @@ module.exports = {
|
|
|
14
14
|
[
|
|
15
15
|
useLocal('@babel/preset-env'),
|
|
16
16
|
{
|
|
17
|
-
"
|
|
18
|
-
"browsers": [
|
|
19
|
-
"chrome >= 75",
|
|
20
|
-
"safari >=10",
|
|
21
|
-
"edge >= 70",
|
|
22
|
-
"ff >= 70",
|
|
23
|
-
"ie >= 11",
|
|
24
|
-
"ios >= 11"
|
|
25
|
-
]
|
|
26
|
-
}
|
|
17
|
+
"useBuiltIns": "entry"
|
|
27
18
|
}
|
|
28
19
|
]
|
|
29
20
|
],
|
package/README.md
CHANGED
|
@@ -59,6 +59,8 @@ module.exports = {
|
|
|
59
59
|
loader: 'babel-loader',
|
|
60
60
|
// presets and plugins for Prebid.js must be manually specified separate from your other babel rule.
|
|
61
61
|
// this can be accomplished by requiring prebid's .babelrc.js file (requires Babel 7 and Node v8.9.0+)
|
|
62
|
+
// as of Prebid 6, babelrc.js only targets modern browsers. One can change the targets and build for
|
|
63
|
+
// older browsers if they prefer, but integration tests on ie11 were removed in Prebid.js 6.0
|
|
62
64
|
options: require('prebid.js/.babelrc.js')
|
|
63
65
|
}
|
|
64
66
|
}
|
|
@@ -314,7 +316,7 @@ For instructions on writing tests for Prebid.js, see [Testing Prebid.js](http://
|
|
|
314
316
|
|
|
315
317
|
### Supported Browsers
|
|
316
318
|
|
|
317
|
-
Prebid.js is supported on IE11 and modern browsers.
|
|
319
|
+
Prebid.js is supported on IE11 and modern browsers until 5.x. 6.x+ transpiles to target >0.25%; not Opera Mini; not IE11.
|
|
318
320
|
|
|
319
321
|
### Governance
|
|
320
322
|
Review our governance model [here](https://github.com/prebid/Prebid.js/tree/master/governance.md).
|
package/browsers.json
CHANGED
|
@@ -15,14 +15,6 @@
|
|
|
15
15
|
"device": null,
|
|
16
16
|
"os": "Windows"
|
|
17
17
|
},
|
|
18
|
-
"bs_ie_11_windows_10": {
|
|
19
|
-
"base": "BrowserStack",
|
|
20
|
-
"os_version": "10",
|
|
21
|
-
"browser": "ie",
|
|
22
|
-
"browser_version": "11.0",
|
|
23
|
-
"device": null,
|
|
24
|
-
"os": "Windows"
|
|
25
|
-
},
|
|
26
18
|
"bs_chrome_90_windows_10": {
|
|
27
19
|
"base": "BrowserStack",
|
|
28
20
|
"os_version": "10",
|
|
@@ -71,4 +63,5 @@
|
|
|
71
63
|
"device": null,
|
|
72
64
|
"os": "OS X"
|
|
73
65
|
}
|
|
66
|
+
|
|
74
67
|
}
|
package/gulpfile.js
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
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
4
4
|
import { BANNER, VIDEO } from '../src/mediaTypes.js';
|
|
5
|
+
import { config } from '../src/config.js';
|
|
5
6
|
|
|
6
7
|
const BIDDER_CODE = 'adhese';
|
|
7
8
|
const GVLID = 553;
|
|
@@ -20,11 +21,15 @@ export const spec = {
|
|
|
20
21
|
if (validBidRequests.length === 0) {
|
|
21
22
|
return null;
|
|
22
23
|
}
|
|
24
|
+
|
|
23
25
|
const { gdprConsent, refererInfo } = bidderRequest;
|
|
24
26
|
|
|
27
|
+
const adheseConfig = config.getConfig('adhese');
|
|
25
28
|
const gdprParams = (gdprConsent && gdprConsent.consentString) ? { xt: [gdprConsent.consentString] } : {};
|
|
26
29
|
const refererParams = (refererInfo && refererInfo.referer) ? { xf: [base64urlEncode(refererInfo.referer)] } : {};
|
|
27
|
-
const
|
|
30
|
+
const globalCustomParams = (adheseConfig && adheseConfig.globalTargets) ? cleanTargets(adheseConfig.globalTargets) : {};
|
|
31
|
+
const commonParams = { ...globalCustomParams, ...gdprParams, ...refererParams };
|
|
32
|
+
const vastContentAsUrl = !(adheseConfig && adheseConfig.vastContentAsUrl == false);
|
|
28
33
|
|
|
29
34
|
const slots = validBidRequests.map(bid => ({
|
|
30
35
|
slotname: bidToSlotName(bid),
|
|
@@ -34,7 +39,7 @@ export const spec = {
|
|
|
34
39
|
const payload = {
|
|
35
40
|
slots: slots,
|
|
36
41
|
parameters: commonParams,
|
|
37
|
-
vastContentAsUrl:
|
|
42
|
+
vastContentAsUrl: vastContentAsUrl,
|
|
38
43
|
user: {
|
|
39
44
|
ext: {
|
|
40
45
|
eids: getEids(validBidRequests),
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Overview
|
|
2
|
+
|
|
3
|
+
Module Name: Adlivetech Bidder Adapter
|
|
4
|
+
Module Type: Bidder Adapter
|
|
5
|
+
Maintainer: grid-tech@themediagrid.com
|
|
6
|
+
|
|
7
|
+
# Description
|
|
8
|
+
|
|
9
|
+
Module that connects to Grid demand source to fetch bids.
|
|
10
|
+
The adapter is GDPR compliant and supports banner and video (instream and outstream).
|
|
11
|
+
|
|
12
|
+
# Test Parameters
|
|
13
|
+
```
|
|
14
|
+
var adUnits = [
|
|
15
|
+
{
|
|
16
|
+
code: 'test-div',
|
|
17
|
+
sizes: [[300, 250]],
|
|
18
|
+
bids: [
|
|
19
|
+
{
|
|
20
|
+
bidder: "adlivetech",
|
|
21
|
+
params: {
|
|
22
|
+
uid: '1',
|
|
23
|
+
bidFloor: 0.5
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
},{
|
|
28
|
+
code: 'test-div',
|
|
29
|
+
sizes: [[728, 90]],
|
|
30
|
+
bids: [
|
|
31
|
+
{
|
|
32
|
+
bidder: "adlivetech",
|
|
33
|
+
params: {
|
|
34
|
+
uid: 2,
|
|
35
|
+
keywords: {
|
|
36
|
+
brandsafety: ['disaster'],
|
|
37
|
+
topic: ['stress', 'fear']
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
code: 'test-div',
|
|
45
|
+
sizes: [[728, 90]],
|
|
46
|
+
mediaTypes: { video: {
|
|
47
|
+
context: 'instream',
|
|
48
|
+
playerSize: [728, 90],
|
|
49
|
+
mimes: ['video/mp4']
|
|
50
|
+
},
|
|
51
|
+
bids: [
|
|
52
|
+
{
|
|
53
|
+
bidder: "adlivetech",
|
|
54
|
+
params: {
|
|
55
|
+
uid: 11
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
];
|
|
61
|
+
```
|
|
@@ -12,6 +12,7 @@ const bidRequested = CONSTANTS.EVENTS.BID_REQUESTED;
|
|
|
12
12
|
const bidResponse = CONSTANTS.EVENTS.BID_RESPONSE;
|
|
13
13
|
const bidWon = CONSTANTS.EVENTS.BID_WON;
|
|
14
14
|
const bidTimeout = CONSTANTS.EVENTS.BID_TIMEOUT;
|
|
15
|
+
const ua = navigator.userAgent;
|
|
15
16
|
|
|
16
17
|
let adomikAdapter = Object.assign(adapter({}),
|
|
17
18
|
{
|
|
@@ -47,7 +48,7 @@ let adomikAdapter = Object.assign(adapter({}),
|
|
|
47
48
|
type: 'request',
|
|
48
49
|
event: {
|
|
49
50
|
bidder: bid.bidder.toUpperCase(),
|
|
50
|
-
placementCode: bid.
|
|
51
|
+
placementCode: bid.adUnitCode
|
|
51
52
|
}
|
|
52
53
|
});
|
|
53
54
|
});
|
|
@@ -67,6 +68,10 @@ adomikAdapter.initializeBucketEvents = function() {
|
|
|
67
68
|
adomikAdapter.bucketEvents = [];
|
|
68
69
|
}
|
|
69
70
|
|
|
71
|
+
adomikAdapter.maxPartLength = function () {
|
|
72
|
+
return (ua.includes(' MSIE ')) ? 1600 : 60000;
|
|
73
|
+
};
|
|
74
|
+
|
|
70
75
|
adomikAdapter.sendTypedEvent = function() {
|
|
71
76
|
const groupedTypedEvents = adomikAdapter.buildTypedEvents();
|
|
72
77
|
|
|
@@ -108,9 +113,10 @@ adomikAdapter.sendTypedEvent = function() {
|
|
|
108
113
|
// Encode object in base64
|
|
109
114
|
const encodedBuf = window.btoa(stringBulkEvents);
|
|
110
115
|
|
|
111
|
-
// Create final url and split it
|
|
116
|
+
// Create final url and split it (+endpoint length)
|
|
112
117
|
const encodedUri = encodeURIComponent(encodedBuf);
|
|
113
|
-
const
|
|
118
|
+
const maxLength = adomikAdapter.maxPartLength();
|
|
119
|
+
const splittedUrl = encodedUri.match(new RegExp(`.{1,${maxLength}}`, 'g'));
|
|
114
120
|
|
|
115
121
|
splittedUrl.forEach((split, i) => {
|
|
116
122
|
const partUrl = `${split}&id=${adomikAdapter.currentContext.id}&part=${i}&on=${splittedUrl.length - 1}`;
|
|
@@ -121,7 +127,7 @@ adomikAdapter.sendTypedEvent = function() {
|
|
|
121
127
|
|
|
122
128
|
adomikAdapter.sendWonEvent = function (wonEvent) {
|
|
123
129
|
const stringWonEvent = JSON.stringify(wonEvent)
|
|
124
|
-
logInfo('Won event sent to adomik prebid analytic ' +
|
|
130
|
+
logInfo('Won event sent to adomik prebid analytic ' + stringWonEvent);
|
|
125
131
|
|
|
126
132
|
// Encode object in base64
|
|
127
133
|
const encodedBuf = window.btoa(stringWonEvent);
|
|
@@ -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);
|