prebid.js 6.26.0 → 6.27.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 (188) hide show
  1. package/dist/33acrossBidAdapter.js +1 -1
  2. package/dist/adWMGAnalyticsAdapter.js +1 -1
  3. package/dist/adagioAnalyticsAdapter.js +1 -1
  4. package/dist/adagioBidAdapter.js +1 -1
  5. package/dist/adbookpspBidAdapter.js +1 -1
  6. package/dist/adgenerationBidAdapter.js +1 -1
  7. package/dist/adkernelAdnAnalyticsAdapter.js +1 -1
  8. package/dist/adlooxAdServerVideo.js +1 -1
  9. package/dist/adlooxAnalyticsAdapter.js +1 -1
  10. package/dist/adlooxRtdProvider.js +1 -1
  11. package/dist/adomikAnalyticsAdapter.js +1 -1
  12. package/dist/adrelevantisBidAdapter.js +1 -1
  13. package/dist/adxcgAnalyticsAdapter.js +1 -1
  14. package/dist/adxcgBidAdapter.js +1 -1
  15. package/dist/adxpremiumAnalyticsAdapter.js +1 -1
  16. package/dist/ajaBidAdapter.js +1 -1
  17. package/dist/akamaiDapRtdProvider.js +1 -1
  18. package/dist/amxBidAdapter.js +1 -1
  19. package/dist/amxIdSystem.js +1 -1
  20. package/dist/appierAnalyticsAdapter.js +1 -1
  21. package/dist/appnexusAnalyticsAdapter.js +1 -1
  22. package/dist/appnexusBidAdapter.js +1 -1
  23. package/dist/asoBidAdapter.js +1 -1
  24. package/dist/atsAnalyticsAdapter.js +1 -1
  25. package/dist/axonixBidAdapter.js +1 -1
  26. package/dist/bidglassBidAdapter.js +1 -1
  27. package/dist/bidwatchAnalyticsAdapter.js +1 -1
  28. package/dist/big-richmediaBidAdapter.js +1 -1
  29. package/dist/bridgewellBidAdapter.js +1 -1
  30. package/dist/brightMountainMediaBidAdapter.js +1 -1
  31. package/dist/byDataAnalyticsAdapter.js +1 -1
  32. package/dist/colossussspBidAdapter.js +1 -1
  33. package/dist/concertAnalyticsAdapter.js +1 -1
  34. package/dist/concertBidAdapter.js +1 -1
  35. package/dist/connectadBidAdapter.js +1 -1
  36. package/dist/consumableBidAdapter.js +1 -1
  37. package/dist/conversantBidAdapter.js +1 -1
  38. package/dist/craftBidAdapter.js +1 -1
  39. package/dist/criteoBidAdapter.js +1 -1
  40. package/dist/datablocksAnalyticsAdapter.js +1 -1
  41. package/dist/dspxBidAdapter.js +1 -1
  42. package/dist/eplanningAnalyticsAdapter.js +1 -1
  43. package/dist/eplanningBidAdapter.js +1 -1
  44. package/dist/fintezaAnalyticsAdapter.js +1 -1
  45. package/dist/ftrackIdSystem.js +1 -1
  46. package/dist/glimpseBidAdapter.js +1 -1
  47. package/dist/gmosspBidAdapter.js +1 -1
  48. package/dist/goldbachBidAdapter.js +1 -1
  49. package/dist/gridBidAdapter.js +1 -1
  50. package/dist/gridNMBidAdapter.js +1 -1
  51. package/dist/gumgumBidAdapter.js +1 -1
  52. package/dist/h12mediaBidAdapter.js +1 -1
  53. package/dist/hadronAnalyticsAdapter.js +1 -1
  54. package/dist/id5AnalyticsAdapter.js +1 -1
  55. package/dist/id5IdSystem.js +1 -1
  56. package/dist/improvedigitalBidAdapter.js +1 -1
  57. package/dist/inmarBidAdapter.js +1 -1
  58. package/dist/insticatorBidAdapter.js +1 -1
  59. package/dist/invisiblyAnalyticsAdapter.js +1 -1
  60. package/dist/ixBidAdapter.js +1 -1
  61. package/dist/justpremiumBidAdapter.js +1 -1
  62. package/dist/kargoAnalyticsAdapter.js +1 -1
  63. package/dist/koblerBidAdapter.js +1 -1
  64. package/dist/konduitAnalyticsAdapter.js +1 -1
  65. package/dist/livewrappedAnalyticsAdapter.js +1 -1
  66. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  67. package/dist/logicadBidAdapter.js +1 -1
  68. package/dist/loglyliftBidAdapter.js +1 -1
  69. package/dist/malltvAnalyticsAdapter.js +1 -1
  70. package/dist/marsmediaAnalyticsAdapter.js +1 -1
  71. package/dist/marsmediaBidAdapter.js +1 -1
  72. package/dist/mediafuseBidAdapter.js +1 -1
  73. package/dist/medianetAnalyticsAdapter.js +1 -1
  74. package/dist/mediasquareBidAdapter.js +1 -1
  75. package/dist/mgidBidAdapter.js +1 -1
  76. package/dist/minutemediaBidAdapter.js +1 -1
  77. package/dist/naveggIdSystem.js +1 -1
  78. package/dist/not-for-prod/prebid.js +153 -152
  79. package/dist/novatiqIdSystem.js +1 -1
  80. package/dist/oguryBidAdapter.js +1 -1
  81. package/dist/oneVideoBidAdapter.js +1 -1
  82. package/dist/onetagBidAdapter.js +1 -1
  83. package/dist/ooloAnalyticsAdapter.js +1 -1
  84. package/dist/openxAnalyticsAdapter.js +1 -1
  85. package/dist/optimonAnalyticsAdapter.js +1 -1
  86. package/dist/outbrainBidAdapter.js +1 -1
  87. package/dist/parrableIdSystem.js +1 -1
  88. package/dist/pixfutureBidAdapter.js +1 -1
  89. package/dist/prebid-core.js +3 -3
  90. package/dist/prebidmanagerAnalyticsAdapter.js +1 -1
  91. package/dist/publinkIdSystem.js +1 -1
  92. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  93. package/dist/pubmaticBidAdapter.js +1 -1
  94. package/dist/pubperfAnalyticsAdapter.js +1 -1
  95. package/dist/pubstackAnalyticsAdapter.js +1 -1
  96. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  97. package/dist/pubxaiAnalyticsAdapter.js +1 -1
  98. package/dist/pulsepointAnalyticsAdapter.js +1 -1
  99. package/dist/pxyzBidAdapter.js +1 -1
  100. package/dist/quantcastBidAdapter.js +1 -1
  101. package/dist/readpeakBidAdapter.js +1 -1
  102. package/dist/realvuAnalyticsAdapter.js +1 -1
  103. package/dist/relaidoBidAdapter.js +1 -1
  104. package/dist/relevantAnalyticsAdapter.js +1 -1
  105. package/dist/rhythmoneBidAdapter.js +1 -1
  106. package/dist/riseBidAdapter.js +1 -1
  107. package/dist/rivrAnalyticsAdapter.js +1 -1
  108. package/dist/roxotAnalyticsAdapter.js +1 -1
  109. package/dist/rubiconAnalyticsAdapter.js +1 -1
  110. package/dist/rubiconBidAdapter.js +1 -1
  111. package/dist/scaleableAnalyticsAdapter.js +1 -1
  112. package/dist/seedingAllianceBidAdapter.js +1 -1
  113. package/dist/seedtagBidAdapter.js +1 -1
  114. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  115. package/dist/sharethroughBidAdapter.js +1 -1
  116. package/dist/sigmoidAnalyticsAdapter.js +1 -1
  117. package/dist/smaatoBidAdapter.js +1 -1
  118. package/dist/smartadserverBidAdapter.js +1 -1
  119. package/dist/smartxBidAdapter.js +1 -1
  120. package/dist/smilewantedBidAdapter.js +1 -1
  121. package/dist/sonobiAnalyticsAdapter.js +1 -1
  122. package/dist/sonobiBidAdapter.js +1 -1
  123. package/dist/sortableAnalyticsAdapter.js +1 -1
  124. package/dist/sortableBidAdapter.js +1 -1
  125. package/dist/sovrnAnalyticsAdapter.js +1 -1
  126. package/dist/sovrnBidAdapter.js +1 -1
  127. package/dist/sspBCBidAdapter.js +1 -1
  128. package/dist/staqAnalyticsAdapter.js +1 -1
  129. package/dist/sublimeBidAdapter.js +1 -1
  130. package/dist/synacormediaBidAdapter.js +1 -1
  131. package/dist/taboolaBidAdapter.js +1 -0
  132. package/dist/targetVideoBidAdapter.js +1 -1
  133. package/dist/teadsBidAdapter.js +1 -1
  134. package/dist/terceptAnalyticsAdapter.js +1 -1
  135. package/dist/trionBidAdapter.js +1 -1
  136. package/dist/tripleliftBidAdapter.js +1 -1
  137. package/dist/trustxBidAdapter.js +1 -1
  138. package/dist/ttdBidAdapter.js +1 -1
  139. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  140. package/dist/underdogmediaBidAdapter.js +1 -1
  141. package/dist/undertoneBidAdapter.js +1 -1
  142. package/dist/vidazooBidAdapter.js +1 -1
  143. package/dist/videobyteBidAdapter.js +1 -1
  144. package/dist/visxBidAdapter.js +1 -1
  145. package/dist/vuukleBidAdapter.js +1 -1
  146. package/dist/widespaceBidAdapter.js +1 -1
  147. package/dist/winrBidAdapter.js +1 -1
  148. package/dist/yahoosspBidAdapter.js +1 -1
  149. package/dist/yieldmoBidAdapter.js +1 -1
  150. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  151. package/dist/yuktamediaAnalyticsAdapter.js +1 -1
  152. package/dist/zeta_global_sspAnalyticsAdapter.js +1 -1
  153. package/integrationExamples/gpt/akamaidap_segments_example.html +5 -3
  154. package/modules/.submodules.json +1 -0
  155. package/modules/adlooxAnalyticsAdapter.js +9 -5
  156. package/modules/adlooxAnalyticsAdapter.md +3 -3
  157. package/modules/adlooxRtdProvider.js +3 -5
  158. package/modules/adlooxRtdProvider.md +2 -2
  159. package/modules/akamaiDapRtdProvider.js +460 -130
  160. package/modules/akamaiDapRtdProvider.md +5 -3
  161. package/modules/colossussspBidAdapter.js +17 -17
  162. package/modules/conversantBidAdapter.js +2 -2
  163. package/modules/ftrackIdSystem.js +3 -4
  164. package/modules/hadronAnalyticsAdapter.js +5 -1
  165. package/modules/koblerBidAdapter.js +54 -45
  166. package/modules/koblerBidAdapter.md +12 -17
  167. package/modules/naveggIdSystem.js +3 -2
  168. package/modules/novatiqIdSystem.js +6 -1
  169. package/modules/relaidoBidAdapter.js +0 -3
  170. package/modules/taboolaBidAdapter.js +265 -0
  171. package/modules/taboolaBidAdapter.md +49 -0
  172. package/package.json +1 -1
  173. package/src/AnalyticsAdapter.js +5 -1
  174. package/src/adloader.js +2 -1
  175. package/test/mocks/analyticsStub.js +13 -0
  176. package/test/mocks/xhr.js +22 -0
  177. package/test/spec/AnalyticsAdapter_spec.js +4 -0
  178. package/test/spec/modules/akamaiDapRtdProvider_spec.js +402 -108
  179. package/test/spec/modules/conversantBidAdapter_spec.js +36 -5
  180. package/test/spec/modules/datablocksBidAdapter_spec.js +9 -8
  181. package/test/spec/modules/fintezaAnalyticsAdapter_spec.js +4 -4
  182. package/test/spec/modules/ftrackIdSystem_spec.js +1 -9
  183. package/test/spec/modules/koblerBidAdapter_spec.js +160 -124
  184. package/test/spec/modules/naveggIdSystem_spec.js +25 -1
  185. package/test/spec/modules/proxistoreBidAdapter_spec.js +0 -2
  186. package/test/spec/modules/sovrnBidAdapter_spec.js +253 -264
  187. package/test/spec/modules/taboolaBidAdapter_spec.js +455 -0
  188. package/test/test_deps.js +1 -0
@@ -63,15 +63,15 @@ MACRO['pageurl'] = function(b, c) {
63
63
  const refererInfo = getRefererInfo();
64
64
  return (refererInfo.canonicalUrl || refererInfo.referer || '').substr(0, 300).split(/[?#]/)[0];
65
65
  };
66
- MACRO['pbadslot'] = function(b, c) {
66
+ MACRO['gpid'] = function(b, c) {
67
67
  const adUnit = find(auctionManager.getAdUnits(), a => b.adUnitCode === a.code);
68
- return deepAccess(adUnit, 'ortb2Imp.ext.data.pbadslot') || getGptSlotInfoForAdUnitCode(b.adUnitCode).gptSlot || b.adUnitCode;
68
+ return deepAccess(adUnit, 'ortb2Imp.ext.gpid') || deepAccess(adUnit, 'ortb2Imp.ext.data.pbadslot') || getGptSlotInfoForAdUnitCode(b.adUnitCode).gptSlot || b.adUnitCode;
69
69
  };
70
- MACRO['pbAdSlot'] = MACRO['pbadslot']; // legacy
70
+ MACRO['pbAdSlot'] = MACRO['pbadslot'] = MACRO['gpid']; // legacy
71
71
 
72
72
  const PARAMS_DEFAULT = {
73
73
  'id1': function(b) { return b.adUnitCode },
74
- 'id2': '%%pbadslot%%',
74
+ 'id2': '%%gpid%%',
75
75
  'id3': function(b) { return b.bidder },
76
76
  'id4': function(b) { return b.adId },
77
77
  'id5': function(b) { return b.dealId },
@@ -138,7 +138,11 @@ analyticsAdapter.enableAnalytics = function(config) {
138
138
  toselector: config.options.toselector || function(bid) {
139
139
  let code = getGptSlotInfoForAdUnitCode(bid.adUnitCode).divId || bid.adUnitCode;
140
140
  // https://mathiasbynens.be/notes/css-escapes
141
- code = code.replace(/^\d/, '\\3$& ');
141
+ try {
142
+ code = CSS.escape(code);
143
+ } catch (_) {
144
+ code = code.replace(/^\d/, '\\3$& ');
145
+ }
142
146
  return `#${code}`
143
147
  },
144
148
  client: config.options.client,
@@ -106,7 +106,7 @@ For example, you have a number of reporting breakdown slots available in the for
106
106
  tagid: 0,
107
107
  params: {
108
108
  id1: function(b) { return b.adUnitCode }, // do not change when using the Adloox RTD Provider
109
- id2: '%%pbadslot%%', // do not change when using the Adloox RTD Provider
109
+ id2: '%%gpid%%', // do not change when using the Adloox RTD Provider
110
110
  id3: function(b) { return b.bidder },
111
111
  id4: function(b) { return b.adId },
112
112
  id5: function(b) { return b.dealId },
@@ -125,9 +125,9 @@ For example, you have a number of reporting breakdown slots available in the for
125
125
 
126
126
  The following macros are available
127
127
 
128
- * `%%pbadslot%%`: [Prebid Ad Slot](https://docs.prebid.org/features/pbAdSlot.html) returns [`AdUnit.code`](https://docs.prebid.org/features/pbAdSlot.html) if set otherwise returns [`AdUnit.code`](https://docs.prebid.org/dev-docs/adunit-reference.html#adunit)
128
+ * **`%%gpid%%` (alias `%%pbadslot%%`**): [Prebid Ad Slot](https://docs.prebid.org/features/pbAdSlot.html) returns [`AdUnit.code`](https://docs.prebid.org/features/pbAdSlot.html) if set otherwise returns [`AdUnit.code`](https://docs.prebid.org/dev-docs/adunit-reference.html#adunit)
129
129
  * it is recommended you read the [Prebid Ad Slot section in the Adloox RTD Provider documentation](./adlooxRtdProvider.md#prebid-ad-slot)
130
- * `%%pageurl%%`: [`canonicalUrl`](https://docs.prebid.org/dev-docs/publisher-api-reference/setConfig.html#setConfig-Page-URL) from the [`refererInfo` object](https://docs.prebid.org/dev-docs/bidder-adaptor.html#referrers) otherwise uses `referer`
130
+ * **`%%pageurl%%`**: [`canonicalUrl`](https://docs.prebid.org/dev-docs/publisher-api-reference/setConfig.html#setConfig-Page-URL) from the [`refererInfo` object](https://docs.prebid.org/dev-docs/bidder-adaptor.html#referrers) otherwise uses `referer`
131
131
 
132
132
  ### Functions
133
133
 
@@ -216,13 +216,11 @@ function init(config, userConsent) {
216
216
  function getBidRequestData(reqBidsConfigObj, callback, config, userConsent) {
217
217
  // gptPreAuction runs *after* RTD so pbadslot may not be populated... (╯°□°)╯ ┻━┻
218
218
  const adUnits = (reqBidsConfigObj.adUnits || getGlobal().adUnits).map(adUnit => {
219
- let path = deepAccess(adUnit, 'ortb2Imp.ext.data.pbadslot');
220
- if (!path) path = getGptSlotInfoForAdUnitCode(adUnit.code).gptSlot;
221
219
  return {
222
- path: path,
220
+ gpid: deepAccess(adUnit, 'ortb2Imp.ext.gpid') || deepAccess(adUnit, 'ortb2Imp.ext.data.pbadslot') || getGptSlotInfoForAdUnitCode(adUnit.code).gptSlot || adUnit.code,
223
221
  unit: adUnit
224
222
  };
225
- }).filter(adUnit => !!adUnit.path);
223
+ }).filter(adUnit => !!adUnit.gpid);
226
224
 
227
225
  let response = {};
228
226
  function setSegments() {
@@ -315,7 +313,7 @@ function getBidRequestData(reqBidsConfigObj, callback, config, userConsent) {
315
313
  }
316
314
  const atfQueue = [];
317
315
  adUnits.map((adUnit, i) => {
318
- const ref = [ adUnit.path ];
316
+ const ref = [ adUnit.gpid ];
319
317
  if (!config.params.slotinpath) ref.push(adUnit.unit.code);
320
318
  args.push(['s', ref.join('\t')]);
321
319
 
@@ -81,7 +81,7 @@ To use this, you *must* also integrate the [Adloox Analytics Adapter](./adlooxAn
81
81
 
82
82
  You may optionally pass a subsection `params` in the `params` block to the Adloox RTD Provider, these will be passed through to the segment handler as is and as described by the integration guidelines.
83
83
 
84
- **N.B.** If you pass `params` to the Adloox Analytics Adapter, `id1` (`AdUnit.code`) and `id2` (`%%pbadslot%%`) *must* describe a stable identifier otherwise no usable segments will be served and so they *must not* be changed; if `id1` for your inventory could contain a non-stable random number please consult with us before continuing
84
+ **N.B.** If you pass `params` to the Adloox Analytics Adapter, `id1` (`AdUnit.code`) and `id2` (`%%gpid%%`) *must* describe a stable identifier otherwise no usable segments will be served and so they *must not* be changed; if `id1` for your inventory could contain a non-stable random number please consult with us before continuing
85
85
 
86
86
  Though our segment technology is fast (less than 10ms) the time it takes for the users device to connect to our service and fetch the segments may not be. For this reason we recommend setting `auctionDelay` no lower than 100ms and if possible you should explore using user-agent sourced information such as [NetworkInformation.{rtt,downlink,...}](https://developer.mozilla.org/en-US/docs/Web/API/NetworkInformation) to dynamically tune this for each user.
87
87
 
@@ -94,7 +94,7 @@ You may use one of two ways to do achieve this:
94
94
  * for display inventory [using GPT](https://developers.google.com/publisher-tag/guides/get-started) you may configure Prebid.js to automatically use the [full ad unit path](https://developers.google.com/publisher-tag/reference#googletag.Slot_getAdUnitPath)
95
95
  1. include the [`gptPreAuction` module](https://docs.prebid.org/dev-docs/modules/gpt-pre-auction.html)
96
96
  1. wrap both `pbjs.setConfig({...})` and `pbjs.enableAnalytics({...})` with `googletag.cmd.push(function() { ... })`
97
- * set `pbadslot` in the [first party data](https://docs.prebid.org/dev-docs/adunit-reference.html#first-party-data) variable `AdUnit.ortb2Imp.ext.data.pbadslot` for all your ad units
97
+ * set `gpid` (or `pbadslot`) in the [first party data](https://docs.prebid.org/dev-docs/adunit-reference.html#first-party-data) variable `AdUnit.ortb2Imp.ext.gpid` (or `AdUnit.ortb2Imp.ext.data.pbadslot`) for all your ad units
98
98
 
99
99
  ## Timeouts
100
100