prebid.js 5.16.0 → 5.20.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/.devcontainer/Dockerfile +11 -0
- package/.devcontainer/devcontainer.json +27 -0
- package/.devcontainer/postCreate.sh +6 -0
- 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 +3 -1
- package/modules/admixerBidAdapter.js +11 -0
- package/modules/adnuntiusBidAdapter.js +1 -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 +89 -63
- 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/glimpseBidAdapter.js +160 -48
- package/modules/glimpseBidAdapter.md +11 -74
- package/modules/gridBidAdapter.js +1 -0
- package/modules/gridNMBidAdapter.js +7 -6
- package/modules/gumgumBidAdapter.js +16 -2
- package/modules/iasRtdProvider.js +83 -67
- 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/kargoBidAdapter.js +14 -7
- package/modules/kargoBidAdapter.md +20 -0
- package/modules/limelightDigitalBidAdapter.js +22 -2
- package/modules/livewrappedAnalyticsAdapter.js +53 -3
- package/modules/mediakeysBidAdapter.js +405 -14
- package/modules/mediakeysBidAdapter.md +108 -0
- package/modules/multibid/index.js +3 -3
- package/modules/mytargetBidAdapter.js +112 -0
- package/modules/nativoBidAdapter.js +48 -29
- package/modules/nativoBidAdapter.md +0 -1
- package/modules/nextMillenniumBidAdapter.js +12 -3
- package/modules/nextrollBidAdapter.js +375 -0
- package/modules/nobidBidAdapter.js +2 -1
- 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 +17 -7
- package/modules/publinkIdSystem.md +7 -2
- package/modules/pubmaticBidAdapter.js +22 -6
- package/modules/pubmaticBidAdapter.md +1 -1
- package/modules/relaidoBidAdapter.js +8 -2
- package/modules/rtdModule/index.js +2 -2
- package/modules/sharethroughBidAdapter.js +12 -19
- package/modules/slimcutBidAdapter.js +121 -0
- package/modules/sonobiBidAdapter.js +7 -0
- package/modules/sortableBidAdapter.js +1 -0
- package/modules/spotxBidAdapter.js +15 -1
- package/modules/sspBCBidAdapter.js +207 -12
- package/modules/sspBCBidAdapter.md +1 -1
- package/modules/talkadsBidAdapter.js +129 -0
- package/modules/talkadsBidAdapter.md +60 -0
- package/modules/tappxBidAdapter.js +6 -5
- package/modules/teadsBidAdapter.js +3 -0
- package/modules/tripleliftBidAdapter.js +22 -5
- package/modules/trustxBidAdapter.js +17 -11
- 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/vidoomyBidAdapter.js +20 -12
- 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/yieldmoBidAdapter.js +20 -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/.eslintrc.js +2 -1
- package/test/spec/modules/adfBidAdapter_spec.js +83 -29
- package/test/spec/modules/adgenerationBidAdapter_spec.js +121 -50
- package/test/spec/modules/adnuntiusBidAdapter_spec.js +68 -0
- 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 +77 -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/glimpseBidAdapter_spec.js +302 -204
- package/test/spec/modules/gridNMBidAdapter_spec.js +40 -1
- package/test/spec/modules/gumgumBidAdapter_spec.js +23 -6
- package/test/spec/modules/iasRtdProvider_spec.js +71 -6
- 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/mediakeysBidAdapter_spec.js +406 -51
- package/test/spec/modules/multibid_spec.js +31 -31
- package/test/spec/modules/mytargetBidAdapter_spec.js +199 -0
- package/test/spec/modules/nativoBidAdapter_spec.js +50 -3
- package/test/spec/modules/nextMillenniumBidAdapter_spec.js +13 -1
- package/test/spec/modules/nextrollBidAdapter_spec.js +290 -0
- package/test/spec/modules/nobidBidAdapter_spec.js +65 -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 +34 -15
- package/test/spec/modules/pubmaticBidAdapter_spec.js +217 -1
- package/test/spec/modules/relaidoBidAdapter_spec.js +21 -20
- package/test/spec/modules/sharethroughBidAdapter_spec.js +156 -136
- package/test/spec/modules/slimcutBidAdapter_spec.js +200 -0
- package/test/spec/modules/sonobiBidAdapter_spec.js +34 -1
- package/test/spec/modules/sortableBidAdapter_spec.js +11 -0
- package/test/spec/modules/spotxBidAdapter_spec.js +36 -0
- package/test/spec/modules/sspBCBidAdapter_spec.js +210 -62
- 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 +38 -5
- 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/yieldmoBidAdapter_spec.js +30 -9
- 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/modules/turktelekomBidAdapter.md +0 -49
|
@@ -10,7 +10,7 @@ export const storage = getStorageManager();
|
|
|
10
10
|
|
|
11
11
|
const BIDDER_CODE = 'jixie';
|
|
12
12
|
const EVENTS_URL = 'https://hbtra.jixie.io/sync/hb?';
|
|
13
|
-
const JX_OUTSTREAM_RENDERER_URL = 'https://scripts.jixie.
|
|
13
|
+
const JX_OUTSTREAM_RENDERER_URL = 'https://scripts.jixie.media/jxhbrenderer.1.1.min.js';
|
|
14
14
|
const REQUESTS_URL = 'https://hb.jixie.io/v2/hbpost';
|
|
15
15
|
const sidTTLMins_ = 30;
|
|
16
16
|
|
|
@@ -104,7 +104,8 @@ function getMiscDims_() {
|
|
|
104
104
|
let ret = {
|
|
105
105
|
pageurl: '',
|
|
106
106
|
domain: '',
|
|
107
|
-
device: 'unknown'
|
|
107
|
+
device: 'unknown',
|
|
108
|
+
mkeywords: ''
|
|
108
109
|
}
|
|
109
110
|
try {
|
|
110
111
|
let refererInfo_ = getRefererInfo();
|
|
@@ -112,6 +113,10 @@ function getMiscDims_() {
|
|
|
112
113
|
ret.pageurl = url_;
|
|
113
114
|
ret.domain = parseUrl(url_).host;
|
|
114
115
|
ret.device = getDevice_();
|
|
116
|
+
let keywords = document.getElementsByTagName('meta')['keywords'];
|
|
117
|
+
if (keywords && keywords.content) {
|
|
118
|
+
ret.mkeywords = keywords.content;
|
|
119
|
+
}
|
|
115
120
|
} catch (error) {}
|
|
116
121
|
return ret;
|
|
117
122
|
}
|
|
@@ -167,6 +172,7 @@ export const spec = {
|
|
|
167
172
|
device: miscDims.device,
|
|
168
173
|
domain: miscDims.domain,
|
|
169
174
|
pageurl: miscDims.pageurl,
|
|
175
|
+
mkeywords: miscDims.mkeywords,
|
|
170
176
|
bids: bids,
|
|
171
177
|
cfg: jixieCfgBlob
|
|
172
178
|
}, ids);
|
|
@@ -4,7 +4,7 @@ import { deepAccess } from '../src/utils.js';
|
|
|
4
4
|
const BIDDER_CODE = 'justpremium'
|
|
5
5
|
const GVLID = 62
|
|
6
6
|
const ENDPOINT_URL = 'https://pre.ads.justpremium.com/v/2.0/t/xhr'
|
|
7
|
-
const JP_ADAPTER_VERSION = '1.8'
|
|
7
|
+
const JP_ADAPTER_VERSION = '1.8.1'
|
|
8
8
|
const pixels = []
|
|
9
9
|
|
|
10
10
|
export const spec = {
|
|
@@ -101,6 +101,11 @@ export const spec = {
|
|
|
101
101
|
advertiserDomains: bid.adomain && bid.adomain.length > 0 ? bid.adomain : []
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
|
+
if (bid.ext && bid.ext.pg) {
|
|
105
|
+
bidResponse.adserverTargeting = {
|
|
106
|
+
'hb_deal_justpremium': 'jp_pg'
|
|
107
|
+
}
|
|
108
|
+
}
|
|
104
109
|
bidResponses.push(bidResponse)
|
|
105
110
|
}
|
|
106
111
|
})
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { _each } from '../src/utils.js';
|
|
2
|
-
import {config} from '../src/config.js';
|
|
3
|
-
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
2
|
+
import { config } from '../src/config.js';
|
|
3
|
+
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
4
4
|
import { getStorageManager } from '../src/storageManager.js';
|
|
5
|
+
import { BANNER, VIDEO } from '../src/mediaTypes.js';
|
|
5
6
|
|
|
6
7
|
const BIDDER_CODE = 'kargo';
|
|
7
8
|
const HOST = 'https://krk.kargo.com';
|
|
8
9
|
const SYNC = 'https://crb.kargo.com/api/v1/initsyncrnd/{UUID}?seed={SEED}&idx={INDEX}&gdpr={GDPR}&gdpr_consent={GDPR_CONSENT}&us_privacy={US_PRIVACY}';
|
|
9
10
|
const SYNC_COUNT = 5;
|
|
10
11
|
const GVLID = 972;
|
|
12
|
+
const SUPPORTED_MEDIA_TYPES = [BANNER, VIDEO]
|
|
11
13
|
const storage = getStorageManager(GVLID, BIDDER_CODE);
|
|
12
14
|
|
|
13
15
|
let sessionId,
|
|
@@ -21,34 +23,38 @@ export const spec = {
|
|
|
21
23
|
if (!bid || !bid.params) {
|
|
22
24
|
return false;
|
|
23
25
|
}
|
|
26
|
+
|
|
24
27
|
return !!bid.params.placementId;
|
|
25
28
|
},
|
|
26
29
|
buildRequests: function(validBidRequests, bidderRequest) {
|
|
27
30
|
const currencyObj = config.getConfig('currency');
|
|
28
31
|
const currency = (currencyObj && currencyObj.adServerCurrency) || 'USD';
|
|
29
|
-
const
|
|
32
|
+
const bidIDs = {};
|
|
30
33
|
const bidSizes = {};
|
|
34
|
+
|
|
31
35
|
_each(validBidRequests, bid => {
|
|
32
|
-
|
|
36
|
+
bidIDs[bid.bidId] = bid.params.placementId;
|
|
33
37
|
bidSizes[bid.bidId] = bid.sizes;
|
|
34
38
|
});
|
|
39
|
+
|
|
35
40
|
let tdid;
|
|
36
41
|
if (validBidRequests.length > 0 && validBidRequests[0].userId && validBidRequests[0].userId.tdid) {
|
|
37
42
|
tdid = validBidRequests[0].userId.tdid;
|
|
38
43
|
}
|
|
44
|
+
|
|
39
45
|
const transformedParams = Object.assign({}, {
|
|
40
46
|
sessionId: spec._getSessionId(),
|
|
41
47
|
requestCount: spec._getRequestCount(),
|
|
42
48
|
timeout: bidderRequest.timeout,
|
|
43
|
-
currency
|
|
49
|
+
currency,
|
|
44
50
|
cpmGranularity: 1,
|
|
45
51
|
timestamp: (new Date()).getTime(),
|
|
46
52
|
cpmRange: {
|
|
47
53
|
floor: 0,
|
|
48
54
|
ceil: 20
|
|
49
55
|
},
|
|
50
|
-
bidIDs
|
|
51
|
-
bidSizes
|
|
56
|
+
bidIDs,
|
|
57
|
+
bidSizes,
|
|
52
58
|
prebidRawBidRequests: validBidRequests
|
|
53
59
|
}, spec._getAllMetadata(tdid, bidderRequest.uspConsent, bidderRequest.gdprConsent));
|
|
54
60
|
const encodedParams = encodeURIComponent(JSON.stringify(transformedParams));
|
|
@@ -111,6 +117,7 @@ export const spec = {
|
|
|
111
117
|
}
|
|
112
118
|
return syncs;
|
|
113
119
|
},
|
|
120
|
+
supportedMediaTypes: SUPPORTED_MEDIA_TYPES,
|
|
114
121
|
|
|
115
122
|
// PRIVATE
|
|
116
123
|
_readCookie(name) {
|
|
@@ -19,5 +19,25 @@ Please use `kargo` as the bidder code. Also, you *must* test on a mobile device,
|
|
|
19
19
|
placementId: '_m1Xt2E5dez'
|
|
20
20
|
}
|
|
21
21
|
}]
|
|
22
|
+
},{
|
|
23
|
+
code: 'div-gpt-ad-video-1',
|
|
24
|
+
sizes: [[640,480]],
|
|
25
|
+
mediaTypes: {
|
|
26
|
+
video: {
|
|
27
|
+
playerSize: [640, 480],
|
|
28
|
+
context: 'instream'
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
bids: [{
|
|
32
|
+
bidder: 'kargo',
|
|
33
|
+
params: {
|
|
34
|
+
placementId: '_bLIt2QMYee',
|
|
35
|
+
video: {
|
|
36
|
+
skipppable: true,
|
|
37
|
+
playback_method: ['auto_play_sound_off'],
|
|
38
|
+
mimes: ['video/mp4']
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}]
|
|
22
42
|
}];
|
|
23
43
|
```
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { logMessage, groupBy, uniques } from '../src/utils.js';
|
|
1
|
+
import { logMessage, groupBy, uniques, flatten, deepAccess } from '../src/utils.js';
|
|
2
2
|
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
3
3
|
import { BANNER, VIDEO } from '../src/mediaTypes.js';
|
|
4
4
|
import {ajax} from '../src/ajax.js';
|
|
@@ -92,6 +92,26 @@ export const spec = {
|
|
|
92
92
|
}
|
|
93
93
|
return bidResponses;
|
|
94
94
|
},
|
|
95
|
+
|
|
96
|
+
getUserSyncs: (syncOptions, serverResponses, gdprConsent, uspConsent) => {
|
|
97
|
+
const syncs = serverResponses.map(response => response.body).reduce(flatten, [])
|
|
98
|
+
.map(response => deepAccess(response, 'ext.sync')).filter(Boolean);
|
|
99
|
+
const iframeSyncUrls = !syncOptions.iframeEnabled ? [] : syncs.map(sync => sync.iframe).filter(Boolean)
|
|
100
|
+
.filter(uniques).map(url => {
|
|
101
|
+
return {
|
|
102
|
+
type: 'iframe',
|
|
103
|
+
url: url
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
const pixelSyncUrls = !syncOptions.pixelEnabled ? [] : syncs.map(sync => sync.pixel).filter(Boolean)
|
|
107
|
+
.filter(uniques).map(url => {
|
|
108
|
+
return {
|
|
109
|
+
type: 'image',
|
|
110
|
+
url: url
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
return [iframeSyncUrls, pixelSyncUrls].reduce(flatten, []);
|
|
114
|
+
}
|
|
95
115
|
};
|
|
96
116
|
|
|
97
117
|
registerBidder(spec);
|
|
@@ -125,7 +145,7 @@ function buildPlacement(bidRequest) {
|
|
|
125
145
|
break;
|
|
126
146
|
}
|
|
127
147
|
}
|
|
128
|
-
sizes = (sizes || []).concat(bidRequest.sizes || [])
|
|
148
|
+
sizes = (sizes || []).concat(bidRequest.sizes || []);
|
|
129
149
|
return {
|
|
130
150
|
host: bidRequest.params.host,
|
|
131
151
|
adUnit: {
|
|
@@ -3,6 +3,7 @@ import {ajax} from '../src/ajax.js';
|
|
|
3
3
|
import adapter from '../src/AnalyticsAdapter.js';
|
|
4
4
|
import CONSTANTS from '../src/constants.json';
|
|
5
5
|
import adapterManager from '../src/adapterManager.js';
|
|
6
|
+
import { getGlobal } from '../src/prebidGlobal.js';
|
|
6
7
|
|
|
7
8
|
const ANALYTICSTYPE = 'endpoint';
|
|
8
9
|
const URL = 'https://lwadm.com/analytics/10';
|
|
@@ -11,8 +12,10 @@ const REQUESTSENT = 1;
|
|
|
11
12
|
const RESPONSESENT = 2;
|
|
12
13
|
const WINSENT = 4;
|
|
13
14
|
const TIMEOUTSENT = 8;
|
|
15
|
+
const ADRENDERFAILEDSENT = 16;
|
|
14
16
|
|
|
15
17
|
let initOptions;
|
|
18
|
+
let prebidGlobal = getGlobal();
|
|
16
19
|
export const BID_WON_TIMEOUT = 500;
|
|
17
20
|
|
|
18
21
|
const cache = {
|
|
@@ -78,9 +81,11 @@ let livewrappedAnalyticsAdapter = Object.assign(adapter({EMPTYURL, ANALYTICSTYPE
|
|
|
78
81
|
bidResponse.width = args.width;
|
|
79
82
|
bidResponse.height = args.height;
|
|
80
83
|
bidResponse.cpm = args.cpm;
|
|
84
|
+
bidResponse.originalCpm = prebidGlobal.convertCurrency(args.originalCpm, args.originalCurrency, args.currency);
|
|
81
85
|
bidResponse.ttr = args.timeToRespond;
|
|
82
86
|
bidResponse.readyToSend = 1;
|
|
83
87
|
bidResponse.mediaType = args.mediaType == 'native' ? 2 : (args.mediaType == 'video' ? 4 : 1);
|
|
88
|
+
bidResponse.floorData = args.floorData;
|
|
84
89
|
if (!bidResponse.ttr) {
|
|
85
90
|
bidResponse.ttr = time - bidResponse.start;
|
|
86
91
|
}
|
|
@@ -108,10 +113,21 @@ let livewrappedAnalyticsAdapter = Object.assign(adapter({EMPTYURL, ANALYTICSTYPE
|
|
|
108
113
|
logInfo('LIVEWRAPPED_BID_WON:', args);
|
|
109
114
|
let wonBid = cache.auctions[args.auctionId].bids[args.requestId];
|
|
110
115
|
wonBid.won = true;
|
|
116
|
+
wonBid.floorData = args.floorData;
|
|
111
117
|
if (wonBid.sendStatus != 0) {
|
|
112
118
|
livewrappedAnalyticsAdapter.sendEvents();
|
|
113
119
|
}
|
|
114
120
|
break;
|
|
121
|
+
case CONSTANTS.EVENTS.AD_RENDER_FAILED:
|
|
122
|
+
logInfo('LIVEWRAPPED_AD_RENDER_FAILED:', args);
|
|
123
|
+
let adRenderFailedBid = cache.auctions[args.bid.auctionId].bids[args.bid.requestId];
|
|
124
|
+
adRenderFailedBid.adRenderFailed = true;
|
|
125
|
+
adRenderFailedBid.reason = args.reason;
|
|
126
|
+
adRenderFailedBid.message = args.message;
|
|
127
|
+
if (adRenderFailedBid.sendStatus != 0) {
|
|
128
|
+
livewrappedAnalyticsAdapter.sendEvents();
|
|
129
|
+
}
|
|
130
|
+
break;
|
|
115
131
|
case CONSTANTS.EVENTS.BID_TIMEOUT:
|
|
116
132
|
logInfo('LIVEWRAPPED_BID_TIMEOUT:', args);
|
|
117
133
|
args.forEach(timeout => {
|
|
@@ -149,13 +165,15 @@ livewrappedAnalyticsAdapter.sendEvents = function() {
|
|
|
149
165
|
wins: getWins(sentRequests.gdpr, sentRequests.auctionIds),
|
|
150
166
|
timeouts: getTimeouts(sentRequests.auctionIds),
|
|
151
167
|
bidAdUnits: getbidAdUnits(),
|
|
168
|
+
rf: getAdRenderFailed(sentRequests.auctionIds),
|
|
152
169
|
rcv: getAdblockerRecovered()
|
|
153
170
|
};
|
|
154
171
|
|
|
155
172
|
if (events.requests.length == 0 &&
|
|
156
173
|
events.responses.length == 0 &&
|
|
157
174
|
events.wins.length == 0 &&
|
|
158
|
-
events.timeouts.length == 0
|
|
175
|
+
events.timeouts.length == 0 &&
|
|
176
|
+
events.rf.length == 0) {
|
|
159
177
|
return;
|
|
160
178
|
}
|
|
161
179
|
|
|
@@ -222,11 +240,12 @@ function getResponses(gdpr, auctionIds) {
|
|
|
222
240
|
width: bid.width,
|
|
223
241
|
height: bid.height,
|
|
224
242
|
cpm: bid.cpm,
|
|
243
|
+
orgCpm: bid.originalCpm,
|
|
225
244
|
ttr: bid.ttr,
|
|
226
245
|
IsBid: bid.isBid,
|
|
227
246
|
mediaType: bid.mediaType,
|
|
228
247
|
gdpr: gdprPos,
|
|
229
|
-
floor: bid.floorData ? bid.floorData.floorValue :
|
|
248
|
+
floor: bid.lwFloor ? bid.lwFloor : (bid.floorData ? bid.floorData.floorValue : undefined),
|
|
230
249
|
floorCur: bid.floorData ? bid.floorData.floorCurrency : undefined,
|
|
231
250
|
auctionId: auctionIdPos,
|
|
232
251
|
auc: bid.auc,
|
|
@@ -261,9 +280,10 @@ function getWins(gdpr, auctionIds) {
|
|
|
261
280
|
width: bid.width,
|
|
262
281
|
height: bid.height,
|
|
263
282
|
cpm: bid.cpm,
|
|
283
|
+
orgCpm: bid.originalCpm,
|
|
264
284
|
mediaType: bid.mediaType,
|
|
265
285
|
gdpr: gdprPos,
|
|
266
|
-
floor: bid.floorData ? bid.floorData.floorValue :
|
|
286
|
+
floor: bid.lwFloor ? bid.lwFloor : (bid.floorData ? bid.floorData.floorValue : undefined),
|
|
267
287
|
floorCur: bid.floorData ? bid.floorData.floorCurrency : undefined,
|
|
268
288
|
auctionId: auctionIdPos,
|
|
269
289
|
auc: bid.auc,
|
|
@@ -336,6 +356,36 @@ function getTimeouts(auctionIds) {
|
|
|
336
356
|
return timeouts;
|
|
337
357
|
}
|
|
338
358
|
|
|
359
|
+
function getAdRenderFailed(auctionIds) {
|
|
360
|
+
var adRenderFails = [];
|
|
361
|
+
|
|
362
|
+
Object.keys(cache.auctions).forEach(auctionId => {
|
|
363
|
+
let auctionIdPos = getAuctionIdPos(auctionIds, auctionId);
|
|
364
|
+
Object.keys(cache.auctions[auctionId].bids).forEach(bidId => {
|
|
365
|
+
let auction = cache.auctions[auctionId];
|
|
366
|
+
let bid = auction.bids[bidId];
|
|
367
|
+
if (!(bid.sendStatus & ADRENDERFAILEDSENT) && bid.adRenderFailed) {
|
|
368
|
+
bid.sendStatus |= ADRENDERFAILEDSENT;
|
|
369
|
+
|
|
370
|
+
adRenderFails.push({
|
|
371
|
+
bidder: bid.bidder,
|
|
372
|
+
adUnit: bid.adUnit,
|
|
373
|
+
adUnitId: bid.adUnitId,
|
|
374
|
+
timeStamp: auction.timeStamp,
|
|
375
|
+
auctionId: auctionIdPos,
|
|
376
|
+
auc: bid.auc,
|
|
377
|
+
buc: bid.buc,
|
|
378
|
+
lw: bid.lw,
|
|
379
|
+
rsn: bid.reason,
|
|
380
|
+
msg: bid.message
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
});
|
|
384
|
+
});
|
|
385
|
+
|
|
386
|
+
return adRenderFails;
|
|
387
|
+
}
|
|
388
|
+
|
|
339
389
|
function getbidAdUnits() {
|
|
340
390
|
var bidAdUnits = [];
|
|
341
391
|
|