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.
Files changed (228) hide show
  1. package/dist/33acrossAnalyticsAdapter.js +1 -1
  2. package/dist/33acrossBidAdapter.js +1 -1
  3. package/dist/33acrossIdSystem.js +1 -1
  4. package/dist/adagioAnalyticsAdapter.js +1 -1
  5. package/dist/adagioBidAdapter.js +1 -1
  6. package/dist/adbookpspBidAdapter.js +1 -1
  7. package/dist/adgenerationBidAdapter.js +1 -1
  8. package/dist/adnuntiusBidAdapter.js +1 -1
  9. package/dist/adqueryBidAdapter.js +1 -1
  10. package/dist/adrelevantisBidAdapter.js +1 -1
  11. package/dist/adstirBidAdapter.js +1 -1
  12. package/dist/adtrgtmeBidAdapter.js +1 -1
  13. package/dist/adxcgBidAdapter.js +1 -1
  14. package/dist/adyoulikeBidAdapter.js +1 -1
  15. package/dist/agmaAnalyticsAdapter.js +1 -1
  16. package/dist/ajaBidAdapter.js +1 -1
  17. package/dist/amxBidAdapter.js +1 -1
  18. package/dist/amxIdSystem.js +1 -1
  19. package/dist/appierAnalyticsAdapter.js +1 -1
  20. package/dist/appnexusBidAdapter.js +1 -1
  21. package/dist/asoBidAdapter.js +1 -1
  22. package/dist/axonixBidAdapter.js +1 -1
  23. package/dist/bidglassBidAdapter.js +1 -1
  24. package/dist/big-richmediaBidAdapter.js +1 -1
  25. package/dist/bizzclickBidAdapter.js +1 -1
  26. package/dist/bridBidAdapter.js +1 -1
  27. package/dist/bridgewellBidAdapter.js +1 -1
  28. package/dist/brightMountainMediaBidAdapter.js +1 -1
  29. package/dist/browsiRtdProvider.js +1 -1
  30. package/dist/carodaBidAdapter.js +1 -1
  31. package/dist/chtnwBidAdapter.js +1 -1
  32. package/dist/concertBidAdapter.js +1 -1
  33. package/dist/connectadBidAdapter.js +1 -1
  34. package/dist/consumableBidAdapter.js +1 -1
  35. package/dist/conversantAnalyticsAdapter.js +1 -1
  36. package/dist/conversantBidAdapter.js +1 -1
  37. package/dist/craftBidAdapter.js +1 -1
  38. package/dist/criteoBidAdapter.js +1 -1
  39. package/dist/cwireBidAdapter.js +1 -1
  40. package/dist/deepintentBidAdapter.js +1 -1
  41. package/dist/dependencies.json +3 -0
  42. package/dist/dspxBidAdapter.js +1 -1
  43. package/dist/dxkultureBidAdapter.js +1 -1
  44. package/dist/eplanningBidAdapter.js +1 -1
  45. package/dist/euidIdSystem.js +1 -1
  46. package/dist/feedadBidAdapter.js +1 -1
  47. package/dist/finativeBidAdapter.js +1 -1
  48. package/dist/flippBidAdapter.js +1 -1
  49. package/dist/freewheel-sspBidAdapter.js +1 -1
  50. package/dist/geoedgeRtdProvider.js +1 -1
  51. package/dist/gmosspBidAdapter.js +1 -1
  52. package/dist/goldbachBidAdapter.js +1 -1
  53. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  54. package/dist/greenbidsRtdProvider.js +1 -1
  55. package/dist/gridBidAdapter.js +1 -1
  56. package/dist/growthCodeRtdProvider.js +1 -1
  57. package/dist/gumgumBidAdapter.js +1 -1
  58. package/dist/h12mediaBidAdapter.js +1 -1
  59. package/dist/hypelabBidAdapter.js +1 -1
  60. package/dist/id5IdSystem.js +1 -1
  61. package/dist/identityLinkIdSystem.js +1 -1
  62. package/dist/illuminBidAdapter.js +1 -1
  63. package/dist/imdsBidAdapter.js +1 -1
  64. package/dist/improvedigitalBidAdapter.js +1 -1
  65. package/dist/insticatorBidAdapter.js +1 -1
  66. package/dist/invibesBidAdapter.js +1 -1
  67. package/dist/ixBidAdapter.js +1 -1
  68. package/dist/jixieBidAdapter.js +1 -1
  69. package/dist/justpremiumBidAdapter.js +1 -1
  70. package/dist/kargoBidAdapter.js +1 -1
  71. package/dist/konduitAnalyticsAdapter.js +1 -1
  72. package/dist/kueezBidAdapter.js +1 -1
  73. package/dist/kueezRtbBidAdapter.js +1 -1
  74. package/dist/lassoBidAdapter.js +1 -1
  75. package/dist/lifestreetBidAdapter.js +1 -1
  76. package/dist/liveIntentIdSystem.js +1 -1
  77. package/dist/logicadBidAdapter.js +1 -1
  78. package/dist/loglyliftBidAdapter.js +1 -1
  79. package/dist/magniteAnalyticsAdapter.js +1 -1
  80. package/dist/malltvAnalyticsAdapter.js +1 -1
  81. package/dist/marsmediaBidAdapter.js +1 -1
  82. package/dist/mediafuseBidAdapter.js +1 -1
  83. package/dist/mediagoBidAdapter.js +1 -1
  84. package/dist/mediasquareBidAdapter.js +1 -1
  85. package/dist/mgidBidAdapter.js +1 -1
  86. package/dist/mgidXBidAdapter.js +1 -1
  87. package/dist/minutemediaBidAdapter.js +1 -1
  88. package/dist/minutemediaplusBidAdapter.js +1 -1
  89. package/dist/nextMillenniumBidAdapter.js +1 -1
  90. package/dist/nexx360BidAdapter.js +1 -1
  91. package/dist/not-for-prod/prebid.js +156 -156
  92. package/dist/oguryBidAdapter.js +1 -1
  93. package/dist/onetagBidAdapter.js +1 -1
  94. package/dist/ooloAnalyticsAdapter.js +1 -1
  95. package/dist/openxBidAdapter.js +1 -1
  96. package/dist/optidigitalBidAdapter.js +1 -1
  97. package/dist/outbrainBidAdapter.js +1 -1
  98. package/dist/parrableIdSystem.js +1 -1
  99. package/dist/pgamsspBidAdapter.js +1 -1
  100. package/dist/pixfutureBidAdapter.js +1 -1
  101. package/dist/prebid-core.js +2 -2
  102. package/dist/publinkIdSystem.js +1 -1
  103. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  104. package/dist/pubmaticBidAdapter.js +1 -1
  105. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  106. package/dist/pxyzBidAdapter.js +1 -1
  107. package/dist/quantcastBidAdapter.js +1 -1
  108. package/dist/readpeakBidAdapter.js +1 -1
  109. package/dist/relaidoBidAdapter.js +1 -1
  110. package/dist/retailspotBidAdapter.js +1 -1
  111. package/dist/rhythmoneBidAdapter.js +1 -1
  112. package/dist/riseBidAdapter.js +1 -1
  113. package/dist/rtdModule.js +1 -1
  114. package/dist/rubiconBidAdapter.js +1 -1
  115. package/dist/seedingAllianceBidAdapter.js +1 -1
  116. package/dist/seedtagBidAdapter.js +1 -1
  117. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  118. package/dist/sharethroughBidAdapter.js +1 -1
  119. package/dist/shinezBidAdapter.js +1 -1
  120. package/dist/shinezRtbBidAdapter.js +1 -1
  121. package/dist/smaatoBidAdapter.js +1 -1
  122. package/dist/smartadserverBidAdapter.js +1 -1
  123. package/dist/smartxBidAdapter.js +1 -1
  124. package/dist/smilewantedBidAdapter.js +1 -1
  125. package/dist/sonobiBidAdapter.js +1 -1
  126. package/dist/sovrnAnalyticsAdapter.js +1 -1
  127. package/dist/sovrnBidAdapter.js +1 -1
  128. package/dist/sparteoBidAdapter.js +1 -1
  129. package/dist/sspBCBidAdapter.js +1 -1
  130. package/dist/stvBidAdapter.js +1 -1
  131. package/dist/sublimeBidAdapter.js +1 -1
  132. package/dist/taboolaBidAdapter.js +1 -1
  133. package/dist/targetVideoBidAdapter.js +1 -1
  134. package/dist/teadsBidAdapter.js +1 -1
  135. package/dist/theAdxBidAdapter.js +1 -1
  136. package/dist/trionBidAdapter.js +1 -1
  137. package/dist/tripleliftBidAdapter.js +1 -1
  138. package/dist/ttdBidAdapter.js +1 -1
  139. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  140. package/dist/uid2IdSystem.js +1 -1
  141. package/dist/underdogmediaBidAdapter.js +1 -1
  142. package/dist/undertoneBidAdapter.js +1 -1
  143. package/dist/unrulyBidAdapter.js +1 -1
  144. package/dist/userId.js +1 -1
  145. package/dist/viantOrtbBidAdapter.js +1 -1
  146. package/dist/vidazooBidAdapter.js +1 -1
  147. package/dist/videobyteBidAdapter.js +1 -1
  148. package/dist/visxBidAdapter.js +1 -1
  149. package/dist/voxBidAdapter.js +1 -1
  150. package/dist/vuukleBidAdapter.js +1 -1
  151. package/dist/widespaceBidAdapter.js +1 -1
  152. package/dist/winrBidAdapter.js +1 -1
  153. package/dist/yahoosspBidAdapter.js +1 -1
  154. package/dist/yieldmoBidAdapter.js +1 -1
  155. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  156. package/modules/adagioAnalyticsAdapter.js +52 -6
  157. package/modules/adagioBidAdapter.js +25 -16
  158. package/modules/adnuntiusBidAdapter.js +25 -21
  159. package/modules/bizzclickBidAdapter.js +55 -300
  160. package/modules/bizzclickBidAdapter.md +94 -89
  161. package/modules/browsiRtdProvider.js +2 -2
  162. package/modules/criteoBidAdapter.js +1 -0
  163. package/modules/deepintentBidAdapter.js +2 -0
  164. package/modules/flippBidAdapter.js +1 -1
  165. package/modules/geoedgeRtdProvider.js +4 -2
  166. package/modules/growthCodeRtdProvider.js +2 -2
  167. package/modules/gumgumBidAdapter.js +3 -3
  168. package/modules/identityLinkIdSystem.js +1 -2
  169. package/modules/invibesBidAdapter.js +50 -6
  170. package/modules/liveIntentIdSystem.js +17 -1
  171. package/modules/mediagoBidAdapter.js +106 -34
  172. package/modules/mgidXBidAdapter.js +6 -1
  173. package/modules/minutemediaBidAdapter.js +9 -7
  174. package/modules/minutemediaBidAdapter.md +1 -0
  175. package/modules/nextMillenniumBidAdapter.js +170 -113
  176. package/modules/pgamsspBidAdapter.js +18 -1
  177. package/modules/pubmaticAnalyticsAdapter.js +30 -9
  178. package/modules/pubmaticBidAdapter.js +3 -1
  179. package/modules/riseBidAdapter.js +11 -8
  180. package/modules/riseBidAdapter.md +1 -0
  181. package/modules/rtdModule/index.js +2 -1
  182. package/modules/sovrnBidAdapter.js +5 -0
  183. package/modules/sparteoBidAdapter.js +10 -5
  184. package/modules/taboolaBidAdapter.js +8 -0
  185. package/modules/teadsBidAdapter.js +7 -0
  186. package/modules/theAdxBidAdapter.js +10 -2
  187. package/modules/theAdxBidAdapter.md +10 -9
  188. package/modules/unrulyBidAdapter.js +8 -1
  189. package/modules/userId/eids.js +2 -2
  190. package/modules/viantOrtbBidAdapter.js +1 -1
  191. package/modules/visxBidAdapter.js +23 -0
  192. package/modules/voxBidAdapter.js +2 -0
  193. package/package.json +1 -1
  194. package/src/auction.js +1 -1
  195. package/src/constants.json +5 -2
  196. package/src/events.js +1 -1
  197. package/test/spec/modules/adagioAnalyticsAdapter_spec.js +83 -26
  198. package/test/spec/modules/adagioBidAdapter_spec.js +0 -11
  199. package/test/spec/modules/adnuntiusBidAdapter_spec.js +1 -1
  200. package/test/spec/modules/bizzclickBidAdapter_spec.js +229 -340
  201. package/test/spec/modules/browsiRtdProvider_spec.js +0 -6
  202. package/test/spec/modules/criteoBidAdapter_spec.js +24 -0
  203. package/test/spec/modules/eids_spec.js +35 -2
  204. package/test/spec/modules/geoedgeRtdProvider_spec.js +10 -0
  205. package/test/spec/modules/gumgumBidAdapter_spec.js +8 -0
  206. package/test/spec/modules/identityLinkIdSystem_spec.js +0 -18
  207. package/test/spec/modules/invibesBidAdapter_spec.js +99 -0
  208. package/test/spec/modules/liveIntentIdMinimalSystem_spec.js +5 -0
  209. package/test/spec/modules/liveIntentIdSystem_spec.js +5 -0
  210. package/test/spec/modules/mediagoBidAdapter_spec.js +107 -23
  211. package/test/spec/modules/mgidXBidAdapter_spec.js +9 -4
  212. package/test/spec/modules/minutemediaBidAdapter_spec.js +10 -0
  213. package/test/spec/modules/nextMillenniumBidAdapter_spec.js +503 -80
  214. package/test/spec/modules/pgamsspBidAdapter_spec.js +1 -0
  215. package/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +51 -0
  216. package/test/spec/modules/pubmaticBidAdapter_spec.js +8 -0
  217. package/test/spec/modules/riseBidAdapter_spec.js +11 -1
  218. package/test/spec/modules/sovrnBidAdapter_spec.js +35 -0
  219. package/test/spec/modules/sparteoBidAdapter_spec.js +8 -2
  220. package/test/spec/modules/taboolaBidAdapter_spec.js +45 -1
  221. package/test/spec/modules/teadsBidAdapter_spec.js +58 -0
  222. package/test/spec/modules/theAdxBidAdapter_spec.js +72 -0
  223. package/test/spec/modules/unrulyBidAdapter_spec.js +7 -4
  224. package/test/spec/modules/userId_spec.js +19 -1
  225. package/test/spec/modules/viantOrtbBidAdapter_spec.js +1 -1
  226. package/test/spec/modules/visxBidAdapter_spec.js +39 -1
  227. package/test/spec/unit/core/events_spec.js +17 -2
  228. 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
- bids: [ {
63
- bidder: 'bizzclick',
64
- params: {
65
- placementId: 'hash',
66
- accountId: 'accountId'
67
- }
68
- }]
69
- },
70
- {
71
- code: 'video1',
72
- sizes: [640,480],
73
- mediaTypes: { video: {
74
- minduration:0,
75
- maxduration:999,
76
- boxingallowed:1,
77
- skip:0,
78
- mimes:[
79
- 'application/javascript',
80
- 'video/mp4'
81
- ],
82
- w:1920,
83
- h:1080,
84
- protocols:[
85
- 2
86
- ],
87
- linearity:1,
88
- api:[
89
- 1,
90
- 2
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
- bidder: 'bizzclick',
96
- params: {
97
- placementId: 'hash',
98
- accountId: 'accountId'
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 && data.p && data.kn) {
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 = 11090;
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.consentData.getTCData.tcString)) {
85
- url = tryAppendQueryString(url, 'tcf', userConsent.gdpr.consentData.getTCData.tcString)
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 ? (tcfPolicyV2 ? '&ct=4&cv=' : '&ct=1&cv=') + gdprConsentString : ''}${hasGpp ? '&gpp=' + gppString + '&gpp_sid=' + gppSectionId : ''}`;
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: 10,
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 = bidderRequest.auctionStart || Date.now();
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 (Math.round(Math.random() * 1e12)).toString(36).substring(0, 10);
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, 10);
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.com',
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
  };