prebid.js 8.26.0 → 8.28.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/dist/33acrossAnalyticsAdapter.js +1 -1
- package/dist/33acrossBidAdapter.js +1 -1
- package/dist/33acrossIdSystem.js +1 -1
- package/dist/adagioAnalyticsAdapter.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/adnuntiusBidAdapter.js +1 -1
- package/dist/adqueryBidAdapter.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adstirBidAdapter.js +1 -1
- package/dist/adtrgtmeBidAdapter.js +1 -1
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/adyoulikeBidAdapter.js +1 -1
- package/dist/agmaAnalyticsAdapter.js +1 -1
- package/dist/ajaBidAdapter.js +1 -1
- package/dist/amxBidAdapter.js +1 -1
- package/dist/amxIdSystem.js +1 -1
- package/dist/appierAnalyticsAdapter.js +1 -1
- package/dist/appnexusBidAdapter.js +1 -1
- package/dist/asoBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bizzclickBidAdapter.js +1 -1
- package/dist/bridBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/browsiRtdProvider.js +1 -1
- package/dist/carodaBidAdapter.js +1 -1
- package/dist/chtnwBidAdapter.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/conversantAnalyticsAdapter.js +1 -1
- package/dist/conversantBidAdapter.js +1 -1
- package/dist/craftBidAdapter.js +1 -1
- package/dist/criteoBidAdapter.js +1 -1
- package/dist/cwireBidAdapter.js +1 -1
- package/dist/deepintentBidAdapter.js +1 -1
- package/dist/dependencies.json +3 -0
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/dxkultureBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/euidIdSystem.js +1 -1
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/flippBidAdapter.js +1 -1
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/geoedgeRtdProvider.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/greenbidsRtdProvider.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/growthCodeRtdProvider.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/hypelabBidAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/identityLinkIdSystem.js +1 -1
- package/dist/illuminBidAdapter.js +1 -1
- package/dist/imdsBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/invibesBidAdapter.js +1 -1
- package/dist/ixBidAdapter.js +1 -1
- package/dist/jixieBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/kargoBidAdapter.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/kueezRtbBidAdapter.js +1 -1
- package/dist/lassoBidAdapter.js +1 -1
- package/dist/lifestreetBidAdapter.js +1 -1
- package/dist/liveIntentIdSystem.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.js +1 -1
- package/dist/magniteAnalyticsAdapter.js +1 -1
- package/dist/malltvAnalyticsAdapter.js +1 -1
- package/dist/marsmediaBidAdapter.js +1 -1
- package/dist/mediafuseBidAdapter.js +1 -1
- package/dist/mediagoBidAdapter.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/mgidXBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/minutemediaplusBidAdapter.js +1 -1
- package/dist/nextMillenniumBidAdapter.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +156 -156
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/openxBidAdapter.js +1 -1
- package/dist/optidigitalBidAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/parrableIdSystem.js +1 -1
- package/dist/pgamsspBidAdapter.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/prebid-core.js +2 -2
- package/dist/publinkIdSystem.js +1 -1
- package/dist/pubmaticAnalyticsAdapter.js +1 -1
- package/dist/pubmaticBidAdapter.js +1 -1
- package/dist/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/pxyzBidAdapter.js +1 -1
- package/dist/quantcastBidAdapter.js +1 -1
- package/dist/readpeakBidAdapter.js +1 -1
- package/dist/relaidoBidAdapter.js +1 -1
- package/dist/retailspotBidAdapter.js +1 -1
- package/dist/rhythmoneBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/rtdModule.js +1 -1
- package/dist/rubiconBidAdapter.js +1 -1
- package/dist/seedingAllianceBidAdapter.js +1 -1
- package/dist/seedtagBidAdapter.js +1 -1
- package/dist/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/sharethroughBidAdapter.js +1 -1
- package/dist/shinezBidAdapter.js +1 -1
- package/dist/shinezRtbBidAdapter.js +1 -1
- package/dist/smaatoBidAdapter.js +1 -1
- package/dist/smartadserverBidAdapter.js +1 -1
- package/dist/smartxBidAdapter.js +1 -1
- package/dist/smilewantedBidAdapter.js +1 -1
- package/dist/sonobiBidAdapter.js +1 -1
- package/dist/sovrnAnalyticsAdapter.js +1 -1
- package/dist/sovrnBidAdapter.js +1 -1
- package/dist/sparteoBidAdapter.js +1 -1
- package/dist/sspBCBidAdapter.js +1 -1
- package/dist/stvBidAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/taboolaBidAdapter.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/teadsBidAdapter.js +1 -1
- package/dist/theAdxBidAdapter.js +1 -1
- package/dist/trionBidAdapter.js +1 -1
- package/dist/tripleliftBidAdapter.js +1 -1
- package/dist/ttdBidAdapter.js +1 -1
- package/dist/ucfunnelAnalyticsAdapter.js +1 -1
- package/dist/uid2IdSystem.js +1 -1
- package/dist/underdogmediaBidAdapter.js +1 -1
- package/dist/undertoneBidAdapter.js +1 -1
- package/dist/unrulyBidAdapter.js +1 -1
- package/dist/userId.js +1 -1
- package/dist/viantOrtbBidAdapter.js +1 -1
- package/dist/vidazooBidAdapter.js +1 -1
- package/dist/videobyteBidAdapter.js +1 -1
- package/dist/visxBidAdapter.js +1 -1
- package/dist/voxBidAdapter.js +1 -1
- package/dist/vuukleBidAdapter.js +1 -1
- package/dist/widespaceBidAdapter.js +1 -1
- package/dist/winrBidAdapter.js +1 -1
- package/dist/yahoosspBidAdapter.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/modules/adagioAnalyticsAdapter.js +52 -6
- package/modules/adagioBidAdapter.js +25 -16
- package/modules/adnuntiusBidAdapter.js +25 -21
- package/modules/bizzclickBidAdapter.js +55 -300
- package/modules/bizzclickBidAdapter.md +94 -89
- package/modules/browsiRtdProvider.js +2 -2
- package/modules/criteoBidAdapter.js +1 -0
- package/modules/deepintentBidAdapter.js +2 -0
- package/modules/flippBidAdapter.js +1 -1
- package/modules/geoedgeRtdProvider.js +4 -2
- package/modules/growthCodeRtdProvider.js +2 -2
- package/modules/gumgumBidAdapter.js +3 -3
- package/modules/identityLinkIdSystem.js +1 -2
- package/modules/invibesBidAdapter.js +50 -6
- package/modules/liveIntentIdSystem.js +17 -1
- package/modules/mediagoBidAdapter.js +106 -34
- package/modules/mgidXBidAdapter.js +6 -1
- package/modules/minutemediaBidAdapter.js +9 -7
- package/modules/minutemediaBidAdapter.md +1 -0
- package/modules/nextMillenniumBidAdapter.js +170 -113
- package/modules/pgamsspBidAdapter.js +18 -1
- package/modules/pubmaticAnalyticsAdapter.js +30 -9
- package/modules/pubmaticBidAdapter.js +3 -1
- package/modules/riseBidAdapter.js +11 -8
- package/modules/riseBidAdapter.md +1 -0
- package/modules/rtdModule/index.js +2 -1
- package/modules/sovrnBidAdapter.js +5 -0
- package/modules/sparteoBidAdapter.js +10 -5
- package/modules/taboolaBidAdapter.js +8 -0
- package/modules/teadsBidAdapter.js +7 -0
- package/modules/theAdxBidAdapter.js +10 -2
- package/modules/theAdxBidAdapter.md +10 -9
- package/modules/unrulyBidAdapter.js +8 -1
- package/modules/userId/eids.js +2 -2
- package/modules/viantOrtbBidAdapter.js +1 -1
- package/modules/visxBidAdapter.js +23 -0
- package/modules/voxBidAdapter.js +2 -0
- package/package.json +1 -1
- package/src/auction.js +1 -1
- package/src/constants.json +5 -2
- package/src/events.js +1 -1
- package/test/spec/modules/adagioAnalyticsAdapter_spec.js +83 -26
- package/test/spec/modules/adagioBidAdapter_spec.js +0 -11
- package/test/spec/modules/adnuntiusBidAdapter_spec.js +1 -1
- package/test/spec/modules/bizzclickBidAdapter_spec.js +229 -340
- package/test/spec/modules/browsiRtdProvider_spec.js +0 -6
- package/test/spec/modules/criteoBidAdapter_spec.js +24 -0
- package/test/spec/modules/eids_spec.js +35 -2
- package/test/spec/modules/geoedgeRtdProvider_spec.js +10 -0
- package/test/spec/modules/gumgumBidAdapter_spec.js +8 -0
- package/test/spec/modules/identityLinkIdSystem_spec.js +0 -18
- package/test/spec/modules/invibesBidAdapter_spec.js +99 -0
- package/test/spec/modules/liveIntentIdMinimalSystem_spec.js +5 -0
- package/test/spec/modules/liveIntentIdSystem_spec.js +5 -0
- package/test/spec/modules/mediagoBidAdapter_spec.js +107 -23
- package/test/spec/modules/mgidXBidAdapter_spec.js +9 -4
- package/test/spec/modules/minutemediaBidAdapter_spec.js +10 -0
- package/test/spec/modules/nextMillenniumBidAdapter_spec.js +503 -80
- package/test/spec/modules/pgamsspBidAdapter_spec.js +1 -0
- package/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +51 -0
- package/test/spec/modules/pubmaticBidAdapter_spec.js +8 -0
- package/test/spec/modules/riseBidAdapter_spec.js +11 -1
- package/test/spec/modules/sovrnBidAdapter_spec.js +35 -0
- package/test/spec/modules/sparteoBidAdapter_spec.js +8 -2
- package/test/spec/modules/taboolaBidAdapter_spec.js +45 -1
- package/test/spec/modules/teadsBidAdapter_spec.js +58 -0
- package/test/spec/modules/theAdxBidAdapter_spec.js +72 -0
- package/test/spec/modules/unrulyBidAdapter_spec.js +7 -4
- package/test/spec/modules/userId_spec.js +19 -1
- package/test/spec/modules/viantOrtbBidAdapter_spec.js +1 -1
- package/test/spec/modules/visxBidAdapter_spec.js +39 -1
- package/test/spec/unit/core/events_spec.js +17 -2
- package/test/spec/unit/pbjs_api_spec.js +7 -0
|
@@ -11,94 +11,99 @@ Maintainer: support@bizzclick.com
|
|
|
11
11
|
Module that connects to BizzClick SSP demand sources
|
|
12
12
|
|
|
13
13
|
# Test Parameters
|
|
14
|
-
```
|
|
15
|
-
var adUnits = [{
|
|
16
|
-
code: 'placementId',
|
|
17
|
-
mediaTypes: {
|
|
18
|
-
banner: {
|
|
19
|
-
sizes: [[300, 250], [300,600]]
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
bids: [{
|
|
23
|
-
bidder: 'bizzclick',
|
|
24
|
-
params: {
|
|
25
|
-
placementId: 'hash',
|
|
26
|
-
accountId: 'accountId'
|
|
27
|
-
}
|
|
28
|
-
}]
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
code: 'native_example',
|
|
32
|
-
// sizes: [[1, 1]],
|
|
33
|
-
mediaTypes: {
|
|
34
|
-
native: {
|
|
35
|
-
title: {
|
|
36
|
-
required: true,
|
|
37
|
-
len: 800
|
|
38
|
-
},
|
|
39
|
-
image: {
|
|
40
|
-
required: true,
|
|
41
|
-
len: 80
|
|
42
|
-
},
|
|
43
|
-
sponsoredBy: {
|
|
44
|
-
required: true
|
|
45
|
-
},
|
|
46
|
-
clickUrl: {
|
|
47
|
-
required: true
|
|
48
|
-
},
|
|
49
|
-
privacyLink: {
|
|
50
|
-
required: false
|
|
51
|
-
},
|
|
52
|
-
body: {
|
|
53
|
-
required: true
|
|
54
|
-
},
|
|
55
|
-
icon: {
|
|
56
|
-
required: true,
|
|
57
|
-
sizes: [50, 50]
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
14
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
15
|
+
```js
|
|
16
|
+
const adUnits = [
|
|
17
|
+
{
|
|
18
|
+
code: "placementId",
|
|
19
|
+
mediaTypes: {
|
|
20
|
+
banner: {
|
|
21
|
+
sizes: [
|
|
22
|
+
[300, 250],
|
|
23
|
+
[300, 600],
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
bids: [
|
|
28
|
+
{
|
|
29
|
+
bidder: "bizzclick",
|
|
30
|
+
params: {
|
|
31
|
+
placementId: "hash",
|
|
32
|
+
accountId: "accountId",
|
|
33
|
+
host: "host",
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
code: "native_example",
|
|
40
|
+
// sizes: [[1, 1]],
|
|
41
|
+
mediaTypes: {
|
|
42
|
+
native: {
|
|
43
|
+
title: {
|
|
44
|
+
required: true,
|
|
45
|
+
len: 800,
|
|
46
|
+
},
|
|
47
|
+
image: {
|
|
48
|
+
required: true,
|
|
49
|
+
len: 80,
|
|
50
|
+
},
|
|
51
|
+
sponsoredBy: {
|
|
52
|
+
required: true,
|
|
53
|
+
},
|
|
54
|
+
clickUrl: {
|
|
55
|
+
required: true,
|
|
56
|
+
},
|
|
57
|
+
privacyLink: {
|
|
58
|
+
required: false,
|
|
59
|
+
},
|
|
60
|
+
body: {
|
|
61
|
+
required: true,
|
|
62
|
+
},
|
|
63
|
+
icon: {
|
|
64
|
+
required: true,
|
|
65
|
+
sizes: [50, 50],
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
},
|
|
93
69
|
bids: [
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
70
|
+
{
|
|
71
|
+
bidder: "bizzclick",
|
|
72
|
+
params: {
|
|
73
|
+
placementId: "hash",
|
|
74
|
+
accountId: "accountId",
|
|
75
|
+
host: "host",
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
code: "video1",
|
|
82
|
+
sizes: [640, 480],
|
|
83
|
+
mediaTypes: {
|
|
84
|
+
video: {
|
|
85
|
+
minduration: 0,
|
|
86
|
+
maxduration: 999,
|
|
87
|
+
boxingallowed: 1,
|
|
88
|
+
skip: 0,
|
|
89
|
+
mimes: ["application/javascript", "video/mp4"],
|
|
90
|
+
w: 1920,
|
|
91
|
+
h: 1080,
|
|
92
|
+
protocols: [2],
|
|
93
|
+
linearity: 1,
|
|
94
|
+
api: [1, 2],
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
bids: [
|
|
98
|
+
{
|
|
99
|
+
bidder: "bizzclick",
|
|
100
|
+
params: {
|
|
101
|
+
placementId: "hash",
|
|
102
|
+
accountId: "accountId",
|
|
103
|
+
host: "host",
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
];
|
|
109
|
+
```
|
|
@@ -88,6 +88,7 @@ export function collectData() {
|
|
|
88
88
|
let predictorData = {
|
|
89
89
|
...{
|
|
90
90
|
sk: _moduleParams.siteKey,
|
|
91
|
+
pk: _moduleParams.pubKey,
|
|
91
92
|
sw: (win.screen && win.screen.width) || -1,
|
|
92
93
|
sh: (win.screen && win.screen.height) || -1,
|
|
93
94
|
url: `${doc.location.protocol}//${doc.location.host}${doc.location.pathname}`,
|
|
@@ -134,7 +135,6 @@ function getRTD(auc) {
|
|
|
134
135
|
const adSlot = getSlotByCode(uc);
|
|
135
136
|
const identifier = adSlot ? getMacroId(_browsiData['pmd'], adSlot) : uc;
|
|
136
137
|
const _pd = _bp[identifier];
|
|
137
|
-
rp[uc] = getKVObject(-1);
|
|
138
138
|
if (!_pd) {
|
|
139
139
|
return rp
|
|
140
140
|
}
|
|
@@ -275,7 +275,7 @@ function getPredictionsFromServer(url) {
|
|
|
275
275
|
if (req.status === 200) {
|
|
276
276
|
try {
|
|
277
277
|
const data = JSON.parse(response);
|
|
278
|
-
if (data
|
|
278
|
+
if (data) {
|
|
279
279
|
setData({p: data.p, kn: data.kn, pmd: data.pmd, bet: data.bet});
|
|
280
280
|
} else {
|
|
281
281
|
setData({});
|
|
@@ -607,6 +607,7 @@ function buildCdbRequest(context, bidRequests, bidderRequest) {
|
|
|
607
607
|
};
|
|
608
608
|
request.user = bidderRequest.ortb2?.user || {};
|
|
609
609
|
request.site = bidderRequest.ortb2?.site || {};
|
|
610
|
+
request.app = bidderRequest.ortb2?.app || {};
|
|
610
611
|
if (bidderRequest && bidderRequest.ceh) {
|
|
611
612
|
request.user.ceh = bidderRequest.ceh;
|
|
612
613
|
}
|
|
@@ -2,6 +2,7 @@ import { generateUUID, deepSetValue, deepAccess, isArray, isInteger, logError, l
|
|
|
2
2
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
3
3
|
import {BANNER, VIDEO} from '../src/mediaTypes.js';
|
|
4
4
|
const BIDDER_CODE = 'deepintent';
|
|
5
|
+
const GVL_ID = 541;
|
|
5
6
|
const BIDDER_ENDPOINT = 'https://prebid.deepintent.com/prebid';
|
|
6
7
|
const USER_SYNC_URL = 'https://cdn.deepintent.com/syncpixel.html';
|
|
7
8
|
const DI_M_V = '1.0.0';
|
|
@@ -32,6 +33,7 @@ export const ORTB_VIDEO_PARAMS = {
|
|
|
32
33
|
};
|
|
33
34
|
export const spec = {
|
|
34
35
|
code: BIDDER_CODE,
|
|
36
|
+
gvlid: GVL_ID,
|
|
35
37
|
supportedMediaTypes: [BANNER, VIDEO],
|
|
36
38
|
aliases: [],
|
|
37
39
|
|
|
@@ -3,7 +3,7 @@ import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
|
3
3
|
import { BANNER } from '../src/mediaTypes.js';
|
|
4
4
|
import {getStorageManager} from '../src/storageManager.js';
|
|
5
5
|
|
|
6
|
-
const NETWORK_ID =
|
|
6
|
+
const NETWORK_ID = 10922;
|
|
7
7
|
const AD_TYPES = [4309, 641];
|
|
8
8
|
const DTX_TYPES = [5061];
|
|
9
9
|
const TARGET_NAME = 'inline';
|
|
@@ -103,7 +103,7 @@ export function wrapHtml(wrapper, html) {
|
|
|
103
103
|
* @param {string} key
|
|
104
104
|
* @return {Object}
|
|
105
105
|
*/
|
|
106
|
-
function getMacros(bid, key) {
|
|
106
|
+
export function getMacros(bid, key) {
|
|
107
107
|
return {
|
|
108
108
|
'${key}': key,
|
|
109
109
|
'%%ADUNIT%%': bid.adUnitCode,
|
|
@@ -116,7 +116,9 @@ function getMacros(bid, key) {
|
|
|
116
116
|
'%_hbadomains': bid.meta && bid.meta.advertiserDomains,
|
|
117
117
|
'%%PATTERN:hb_pb%%': bid.pbHg,
|
|
118
118
|
'%%SITE%%': location.hostname,
|
|
119
|
-
'%_pimp%': PV_ID
|
|
119
|
+
'%_pimp%': PV_ID,
|
|
120
|
+
'%_hbCpm!': bid.cpm,
|
|
121
|
+
'%_hbCurrency!': bid.currency
|
|
120
122
|
};
|
|
121
123
|
}
|
|
122
124
|
|
|
@@ -81,8 +81,8 @@ function callServer(configParams, items, expiresAt, userConsent) {
|
|
|
81
81
|
url = tryAppendQueryString(url, 'pid', configParams.pid);
|
|
82
82
|
url = tryAppendQueryString(url, 'u', window.location.href);
|
|
83
83
|
url = tryAppendQueryString(url, 'gcid', gcid);
|
|
84
|
-
if ((userConsent !== null) && (userConsent.gdpr !== null) && (userConsent.gdpr.
|
|
85
|
-
url = tryAppendQueryString(url, 'tcf', userConsent.gdpr.
|
|
84
|
+
if ((userConsent !== null) && (userConsent.gdpr !== null) && (userConsent.gdpr.consentString)) {
|
|
85
|
+
url = tryAppendQueryString(url, 'tcf', userConsent.gdpr.consentString)
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
ajax.ajaxBuilder()(url, {
|
|
@@ -345,9 +345,6 @@ function buildRequests(validBidRequests, bidderRequest) {
|
|
|
345
345
|
// ADTS-134 Retrieve ID envelopes
|
|
346
346
|
for (const eid in eids) data[eid] = eids[eid];
|
|
347
347
|
|
|
348
|
-
// ADJS-1024 & ADSS-1297 & ADTS-175
|
|
349
|
-
gpid && (data.gpid = gpid);
|
|
350
|
-
|
|
351
348
|
if (mediaTypes.banner) {
|
|
352
349
|
sizes = mediaTypes.banner.sizes;
|
|
353
350
|
} else if (mediaTypes.video) {
|
|
@@ -355,6 +352,9 @@ function buildRequests(validBidRequests, bidderRequest) {
|
|
|
355
352
|
data = _getVidParams(mediaTypes.video);
|
|
356
353
|
}
|
|
357
354
|
|
|
355
|
+
// ADJS-1024 & ADSS-1297 & ADTS-175
|
|
356
|
+
gpid && (data.gpid = gpid);
|
|
357
|
+
|
|
358
358
|
if (pageViewId) {
|
|
359
359
|
data.pv = pageViewId;
|
|
360
360
|
}
|
|
@@ -54,7 +54,6 @@ export const identityLinkSubmodule = {
|
|
|
54
54
|
}
|
|
55
55
|
const hasGdpr = (consentData && typeof consentData.gdprApplies === 'boolean' && consentData.gdprApplies) ? 1 : 0;
|
|
56
56
|
const gdprConsentString = hasGdpr ? consentData.consentString : '';
|
|
57
|
-
const tcfPolicyV2 = utils.deepAccess(consentData, 'vendorData.tcfPolicyVersion') === 2;
|
|
58
57
|
// use protocol relative urls for http or https
|
|
59
58
|
if (hasGdpr && (!gdprConsentString || gdprConsentString === '')) {
|
|
60
59
|
utils.logInfo('identityLink: Consent string is required to call envelope API.');
|
|
@@ -64,7 +63,7 @@ export const identityLinkSubmodule = {
|
|
|
64
63
|
const gppString = gppData && gppData.gppString ? gppData.gppString : false;
|
|
65
64
|
const gppSectionId = gppData && gppData.gppString && gppData.applicableSections.length > 0 && gppData.applicableSections[0] !== -1 ? gppData.applicableSections[0] : false;
|
|
66
65
|
const hasGpp = gppString && gppSectionId;
|
|
67
|
-
const url = `https://api.rlcdn.com/api/identity/envelope?pid=${configParams.pid}${hasGdpr ?
|
|
66
|
+
const url = `https://api.rlcdn.com/api/identity/envelope?pid=${configParams.pid}${hasGdpr ? '&ct=4&cv=' + gdprConsentString : ''}${hasGpp ? '&gpp=' + gppString + '&gpp_sid=' + gppSectionId : ''}`;
|
|
68
67
|
let resp;
|
|
69
68
|
resp = function (callback) {
|
|
70
69
|
// Check ats during callback so it has a chance to initialise.
|
|
@@ -9,7 +9,7 @@ const CONSTANTS = {
|
|
|
9
9
|
SYNC_ENDPOINT: 'https://k.r66net.com/GetUserSync',
|
|
10
10
|
TIME_TO_LIVE: 300,
|
|
11
11
|
DEFAULT_CURRENCY: 'EUR',
|
|
12
|
-
PREBID_VERSION:
|
|
12
|
+
PREBID_VERSION: 11,
|
|
13
13
|
METHOD: 'GET',
|
|
14
14
|
INVIBES_VENDOR_ID: 436,
|
|
15
15
|
USERID_PROVIDERS: ['pubcid', 'pubProvidedId', 'uid2', 'zeotapIdPlus', 'id5id'],
|
|
@@ -49,14 +49,36 @@ registerBidder(spec);
|
|
|
49
49
|
// some state info is required: cookie info, unique user visit id
|
|
50
50
|
const topWin = getTopMostWindow();
|
|
51
51
|
let invibes = topWin.invibes = topWin.invibes || {};
|
|
52
|
-
invibes.purposes = invibes.purposes || [false, false, false, false, false, false, false, false, false, false];
|
|
53
|
-
invibes.legitimateInterests = invibes.legitimateInterests || [false, false, false, false, false, false, false, false, false, false];
|
|
52
|
+
invibes.purposes = invibes.purposes || [false, false, false, false, false, false, false, false, false, false, false];
|
|
53
|
+
invibes.legitimateInterests = invibes.legitimateInterests || [false, false, false, false, false, false, false, false, false, false, false];
|
|
54
54
|
invibes.placementBids = invibes.placementBids || [];
|
|
55
55
|
invibes.pushedCids = invibes.pushedCids || {};
|
|
56
56
|
let preventPageViewEvent = false;
|
|
57
|
+
let isInfiniteScrollPage = false;
|
|
58
|
+
let isPlacementRefresh = false;
|
|
57
59
|
let _customUserSync;
|
|
58
60
|
let _disableUserSyncs;
|
|
59
61
|
|
|
62
|
+
function updateInfiniteScrollFlag() {
|
|
63
|
+
const { scrollHeight } = document.documentElement;
|
|
64
|
+
|
|
65
|
+
if (invibes.originalURL === undefined) {
|
|
66
|
+
invibes.originalURL = window.location.href;
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (invibes.originalScrollHeight === undefined) {
|
|
71
|
+
invibes.originalScrollHeight = scrollHeight;
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const currentURL = window.location.href;
|
|
76
|
+
|
|
77
|
+
if (scrollHeight > invibes.originalScrollHeight && invibes.originalURL !== currentURL) {
|
|
78
|
+
isInfiniteScrollPage = true;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
60
82
|
function isBidRequestValid(bid) {
|
|
61
83
|
if (typeof bid.params !== 'object') {
|
|
62
84
|
return false;
|
|
@@ -87,10 +109,24 @@ function buildRequest(bidRequests, bidderRequest) {
|
|
|
87
109
|
const _placementIds = [];
|
|
88
110
|
const _adUnitCodes = [];
|
|
89
111
|
let _customEndpoint, _userId, _domainId;
|
|
90
|
-
let _ivAuctionStart =
|
|
112
|
+
let _ivAuctionStart = Date.now();
|
|
113
|
+
window.invibes = window.invibes || {};
|
|
114
|
+
window.invibes.placementIds = window.invibes.placementIds || [];
|
|
115
|
+
|
|
116
|
+
if (isInfiniteScrollPage == false) {
|
|
117
|
+
updateInfiniteScrollFlag();
|
|
118
|
+
}
|
|
91
119
|
|
|
92
120
|
bidRequests.forEach(function (bidRequest) {
|
|
93
121
|
bidRequest.startTime = new Date().getTime();
|
|
122
|
+
|
|
123
|
+
if (window.invibes.placementIds.includes(bidRequest.params.placementId)) {
|
|
124
|
+
isPlacementRefresh = true;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
window.invibes.placementIds.push(bidRequest.params.placementId);
|
|
128
|
+
|
|
129
|
+
_placementIds.push(bidRequest.params.placementId);
|
|
94
130
|
_placementIds.push(bidRequest.params.placementId);
|
|
95
131
|
_adUnitCodes.push(bidRequest.adUnitCode);
|
|
96
132
|
_domainId = _domainId || bidRequest.params.domainId;
|
|
@@ -138,6 +174,8 @@ function buildRequest(bidRequests, bidderRequest) {
|
|
|
138
174
|
tc: invibes.gdpr_consent,
|
|
139
175
|
isLocalStorageEnabled: storage.hasLocalStorage(),
|
|
140
176
|
preventPageViewEvent: preventPageViewEvent,
|
|
177
|
+
isPlacementRefresh: isPlacementRefresh,
|
|
178
|
+
isInfiniteScrollPage: isInfiniteScrollPage,
|
|
141
179
|
};
|
|
142
180
|
|
|
143
181
|
let lid = readFromLocalStorage('ivbsdid');
|
|
@@ -368,7 +406,9 @@ function addMeta(bidModelMeta) {
|
|
|
368
406
|
}
|
|
369
407
|
|
|
370
408
|
function generateRandomId() {
|
|
371
|
-
return
|
|
409
|
+
return '10000000100040008000100000000000'.replace(/[018]/g, c =>
|
|
410
|
+
(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
|
|
411
|
+
);
|
|
372
412
|
}
|
|
373
413
|
|
|
374
414
|
function getDocumentLocation(bidderRequest) {
|
|
@@ -568,7 +608,7 @@ function readGdprConsent(gdprConsent) {
|
|
|
568
608
|
}
|
|
569
609
|
|
|
570
610
|
let legitimateInterests = getLegitimateInterests(gdprConsent.vendorData);
|
|
571
|
-
tryCopyValueToArray(legitimateInterests, invibes.legitimateInterests,
|
|
611
|
+
tryCopyValueToArray(legitimateInterests, invibes.legitimateInterests, purposesLength);
|
|
572
612
|
|
|
573
613
|
let invibesVendorId = CONSTANTS.INVIBES_VENDOR_ID.toString(10);
|
|
574
614
|
let vendorConsents = getVendorConsents(gdprConsent.vendorData);
|
|
@@ -621,6 +661,10 @@ function tryCopyValueToArray(value, target, length) {
|
|
|
621
661
|
|
|
622
662
|
function getPurposeConsentsCounter(vendorData) {
|
|
623
663
|
if (vendorData.purpose && vendorData.purpose.consents) {
|
|
664
|
+
if (vendorData.tcfPolicyVersion >= 4) {
|
|
665
|
+
return 11;
|
|
666
|
+
}
|
|
667
|
+
|
|
624
668
|
return 10;
|
|
625
669
|
}
|
|
626
670
|
|
|
@@ -223,6 +223,10 @@ export const liveIntentIdSubmodule = {
|
|
|
223
223
|
result.pubmatic = { 'id': value.pubmatic, ext: { provider: LI_PROVIDER_DOMAIN } }
|
|
224
224
|
}
|
|
225
225
|
|
|
226
|
+
if (value.sovrn) {
|
|
227
|
+
result.sovrn = { 'id': value.sovrn, ext: { provider: LI_PROVIDER_DOMAIN } }
|
|
228
|
+
}
|
|
229
|
+
|
|
226
230
|
return result
|
|
227
231
|
}
|
|
228
232
|
|
|
@@ -326,7 +330,7 @@ export const liveIntentIdSubmodule = {
|
|
|
326
330
|
}
|
|
327
331
|
},
|
|
328
332
|
'openx': {
|
|
329
|
-
source: 'openx.
|
|
333
|
+
source: 'openx.net',
|
|
330
334
|
atype: 3,
|
|
331
335
|
getValue: function(data) {
|
|
332
336
|
return data.id;
|
|
@@ -348,6 +352,18 @@ export const liveIntentIdSubmodule = {
|
|
|
348
352
|
return data.ext;
|
|
349
353
|
}
|
|
350
354
|
}
|
|
355
|
+
},
|
|
356
|
+
'sovrn': {
|
|
357
|
+
source: 'liveintent.sovrn.com',
|
|
358
|
+
atype: 3,
|
|
359
|
+
getValue: function(data) {
|
|
360
|
+
return data.id;
|
|
361
|
+
},
|
|
362
|
+
getUidExt: function(data) {
|
|
363
|
+
if (data.ext) {
|
|
364
|
+
return data.ext;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
351
367
|
}
|
|
352
368
|
}
|
|
353
369
|
};
|