prebid.js 5.17.0 → 6.0.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 (145) hide show
  1. package/.babelrc.js +3 -6
  2. package/README.md +3 -1
  3. package/browsers.json +1 -8
  4. package/integrationExamples/gpt/akamaidap_segments_example.html +132 -0
  5. package/modules/.submodules.json +1 -0
  6. package/modules/adfBidAdapter.js +21 -16
  7. package/modules/adgenerationBidAdapter.js +28 -4
  8. package/modules/adkernelBidAdapter.js +2 -1
  9. package/modules/admixerBidAdapter.js +11 -0
  10. package/modules/adtelligentBidAdapter.js +2 -1
  11. package/modules/airgridRtdProvider.js +1 -1
  12. package/modules/akamaiDapRtdProvider.js +474 -0
  13. package/modules/akamaiDapRtdProvider.md +47 -0
  14. package/modules/aolBidAdapter.js +2 -1
  15. package/modules/appnexusBidAdapter.js +5 -3
  16. package/modules/atsAnalyticsAdapter.js +67 -46
  17. package/modules/atsAnalyticsAdapter.md +1 -0
  18. package/modules/betweenBidAdapter.js +20 -3
  19. package/modules/bliinkBidAdapter.js +58 -32
  20. package/modules/bliinkBidAdapter.md +29 -6
  21. package/modules/browsiRtdProvider.js +106 -18
  22. package/modules/cleanioRtdProvider.js +192 -0
  23. package/modules/cleanioRtdProvider.md +59 -0
  24. package/modules/codefuelBidAdapter.js +183 -0
  25. package/modules/codefuelBidAdapter.md +111 -0
  26. package/modules/connectIdSystem.js +104 -0
  27. package/modules/connectIdSystem.md +33 -0
  28. package/modules/cwireBidAdapter.js +272 -0
  29. package/modules/cwireBidAdapter.md +43 -0
  30. package/modules/deepintentBidAdapter.js +106 -9
  31. package/modules/deepintentBidAdapter.md +36 -1
  32. package/modules/deltaprojectsBidAdapter.js +252 -0
  33. package/modules/deltaprojectsBidAdapter.md +32 -0
  34. package/modules/dgkeywordRtdProvider.js +0 -1
  35. package/modules/engageyaBidAdapter.js +157 -0
  36. package/modules/gridBidAdapter.js +1 -0
  37. package/modules/gumgumBidAdapter.js +8 -0
  38. package/modules/inskinBidAdapter.js +7 -3
  39. package/modules/ixBidAdapter.js +8 -1
  40. package/modules/jixieBidAdapter.js +8 -2
  41. package/modules/justpremiumBidAdapter.js +6 -1
  42. package/modules/limelightDigitalBidAdapter.js +22 -2
  43. package/modules/livewrappedAnalyticsAdapter.js +53 -3
  44. package/modules/mediakeysBidAdapter.js +2 -1
  45. package/modules/multibid/index.js +3 -3
  46. package/modules/nativoBidAdapter.js +6 -2
  47. package/modules/nextMillenniumBidAdapter.js +12 -3
  48. package/modules/oguryBidAdapter.js +36 -7
  49. package/modules/openxBidAdapter.js +34 -22
  50. package/modules/operaadsBidAdapter.js +21 -1
  51. package/modules/otmBidAdapter.js +146 -0
  52. package/modules/otmBidAdapter.md +27 -26
  53. package/modules/outbrainBidAdapter.js +5 -0
  54. package/modules/pixfutureBidAdapter.js +24 -4
  55. package/modules/pixfutureBidAdapter.md +127 -0
  56. package/modules/playwireBidAdapter.md +61 -0
  57. package/modules/prebidServerBidAdapter/index.js +1 -1
  58. package/modules/proxistoreBidAdapter.js +4 -6
  59. package/modules/publinkIdSystem.js +11 -6
  60. package/modules/pubmaticBidAdapter.js +9 -0
  61. package/modules/pubmaticBidAdapter.md +1 -1
  62. package/modules/rtdModule/index.js +2 -2
  63. package/modules/sonobiBidAdapter.js +7 -0
  64. package/modules/sortableBidAdapter.js +1 -0
  65. package/modules/talkadsBidAdapter.js +129 -0
  66. package/modules/talkadsBidAdapter.md +60 -0
  67. package/modules/teadsBidAdapter.js +3 -0
  68. package/modules/tripleliftBidAdapter.js +22 -5
  69. package/modules/trustxBidAdapter.js +8 -6
  70. package/modules/undertoneBidAdapter.js +9 -5
  71. package/modules/undertoneBidAdapter.md +5 -1
  72. package/modules/unicornBidAdapter.js +3 -3
  73. package/modules/userId/eids.js +18 -0
  74. package/modules/userId/eids.md +7 -0
  75. package/modules/userId/userId.md +12 -0
  76. package/modules/ventesBidAdapter.js +370 -0
  77. package/modules/ventesBidAdapter.md +94 -0
  78. package/modules/videobyteBidAdapter.js +13 -6
  79. package/modules/videobyteBidAdapter.md +49 -0
  80. package/modules/visxBidAdapter.js +15 -22
  81. package/modules/yahoosspBidAdapter.js +637 -0
  82. package/modules/yahoosspBidAdapter.md +795 -0
  83. package/modules/yieldlabBidAdapter.js +48 -3
  84. package/modules/yieldlabBidAdapter.md +16 -1
  85. package/modules/yieldmoSyntheticInventoryModule.js +46 -0
  86. package/modules/yieldmoSyntheticInventoryModule.md +68 -0
  87. package/package.json +1 -1
  88. package/src/adapterManager.js +5 -0
  89. package/src/adapters/bidderFactory.js +4 -3
  90. package/src/auction.js +11 -11
  91. package/src/constants.json +1 -0
  92. package/src/secureCreatives.js +6 -7
  93. package/src/targeting.js +11 -9
  94. package/test/spec/modules/adfBidAdapter_spec.js +83 -29
  95. package/test/spec/modules/adgenerationBidAdapter_spec.js +121 -50
  96. package/test/spec/modules/adtelligentBidAdapter_spec.js +1 -0
  97. package/test/spec/modules/akamaiDapRtdProvider_spec.js +246 -0
  98. package/test/spec/modules/appnexusBidAdapter_spec.js +2 -1
  99. package/test/spec/modules/atsAnalyticsAdapter_spec.js +42 -9
  100. package/test/spec/modules/betweenBidAdapter_spec.js +41 -0
  101. package/test/spec/modules/bliinkBidAdapter_spec.js +87 -36
  102. package/test/spec/modules/browsiRtdProvider_spec.js +62 -7
  103. package/test/spec/modules/cleanioRtdProvider_spec.js +188 -0
  104. package/test/spec/modules/codefuelBidAdapter_spec.js +316 -0
  105. package/test/spec/modules/connectIdSystem_spec.js +189 -0
  106. package/test/spec/modules/cwireBidAdapter_spec.js +246 -0
  107. package/test/spec/modules/deepintentBidAdapter_spec.js +153 -3
  108. package/test/spec/modules/deltaprojectsBidAdapter_spec.js +399 -0
  109. package/test/spec/modules/engageyaBidAdapter_spec.js +286 -0
  110. package/test/spec/modules/gumgumBidAdapter_spec.js +5 -1
  111. package/test/spec/modules/ixBidAdapter_spec.js +13 -3
  112. package/test/spec/modules/jixieBidAdapter_spec.js +13 -11
  113. package/test/spec/modules/justpremiumBidAdapter_spec.js +9 -2
  114. package/test/spec/modules/limelightDigitalBidAdapter_spec.js +155 -1
  115. package/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +67 -12
  116. package/test/spec/modules/multibid_spec.js +31 -31
  117. package/test/spec/modules/nextMillenniumBidAdapter_spec.js +13 -1
  118. package/test/spec/modules/oguryBidAdapter_spec.js +125 -37
  119. package/test/spec/modules/openxBidAdapter_spec.js +85 -13
  120. package/test/spec/modules/operaadsBidAdapter_spec.js +38 -6
  121. package/test/spec/modules/otmBidAdapter_spec.js +67 -0
  122. package/test/spec/modules/outbrainBidAdapter_spec.js +18 -0
  123. package/test/spec/modules/publinkIdSystem_spec.js +6 -6
  124. package/test/spec/modules/pubmaticBidAdapter_spec.js +39 -1
  125. package/test/spec/modules/sonobiBidAdapter_spec.js +34 -1
  126. package/test/spec/modules/sortableBidAdapter_spec.js +11 -0
  127. package/test/spec/modules/talkadsBidAdapter_spec.js +231 -0
  128. package/test/spec/modules/teadsBidAdapter_spec.js +132 -0
  129. package/test/spec/modules/tripleliftBidAdapter_spec.js +128 -0
  130. package/test/spec/modules/trustxBidAdapter_spec.js +3 -3
  131. package/test/spec/modules/undertoneBidAdapter_spec.js +52 -0
  132. package/test/spec/modules/unicornBidAdapter_spec.js +4 -4
  133. package/test/spec/modules/ventesBidAdapter_spec.js +845 -0
  134. package/test/spec/modules/videobyteBidAdapter_spec.js +2 -2
  135. package/test/spec/modules/visxBidAdapter_spec.js +48 -4
  136. package/test/spec/modules/yahoosspBidAdapter_spec.js +1332 -0
  137. package/test/spec/modules/yieldlabBidAdapter_spec.js +65 -1
  138. package/test/spec/modules/yieldmoSyntheticInventoryModule_spec.js +89 -0
  139. package/test/spec/unit/core/adapterManager_spec.js +32 -0
  140. package/test/spec/unit/core/bidderFactory_spec.js +61 -1
  141. package/test/spec/unit/pbjs_api_spec.js +37 -2
  142. package/test/spec/unit/secureCreatives_spec.js +54 -25
  143. package/wdio.conf.js +1 -1
  144. package/modules/turktelekomBidAdapter.md +0 -49
  145. package/yarn.lock +0 -13122
@@ -27,7 +27,7 @@ export const spec = {
27
27
  code: BIDDER_CODE,
28
28
  supportedMediaTypes: [VIDEO],
29
29
  VERSION: '1.0.0',
30
- ENDPOINT: 'https://x.videobyte.com/ortb/',
30
+ ENDPOINT: 'https://x.videobyte.com/ortbhb',
31
31
 
32
32
  /**
33
33
  * Determines whether or not the given bid request is valid.
@@ -53,13 +53,22 @@ export const spec = {
53
53
  return bidRequests.map(bidRequest => {
54
54
  const {params} = bidRequest;
55
55
  let pubId = params.pubId;
56
+ const placementId = params.placementId;
57
+ const nId = params.nid;
56
58
  if (bidRequest.params.video && bidRequest.params.video.e2etest) {
57
59
  logMessage('E2E test mode enabled');
58
60
  pubId = 'e2etest'
59
61
  }
62
+ let baseEndpoint = spec.ENDPOINT + '?pid=' + pubId;
63
+ if (placementId) {
64
+ baseEndpoint += '&placementId=' + placementId
65
+ }
66
+ if (nId) {
67
+ baseEndpoint += '&nid=' + nId
68
+ }
60
69
  return {
61
70
  method: 'POST',
62
- url: spec.ENDPOINT + pubId,
71
+ url: baseEndpoint,
63
72
  data: JSON.stringify(buildRequestData(bidRequest, bidderRequest)),
64
73
  }
65
74
  });
@@ -97,8 +106,6 @@ export const spec = {
97
106
  };
98
107
  bidResponses.push(bidResponse)
99
108
  }
100
- } else {
101
- logError('invalid server response received');
102
109
  }
103
110
  return bidResponses;
104
111
  },
@@ -228,7 +235,7 @@ function buildRequestData(bidRequest, bidderRequest) {
228
235
  // content
229
236
  if (videoParams.content && isPlainObject(videoParams.content)) {
230
237
  openrtbRequest.site.content = {};
231
- const contentStringKeys = ['id', 'title', 'series', 'season', 'genre', 'contentrating', 'language'];
238
+ const contentStringKeys = ['id', 'title', 'series', 'season', 'genre', 'contentrating', 'language', 'url'];
232
239
  const contentNumberkeys = ['episode', 'prodq', 'context', 'livestream', 'len'];
233
240
  const contentArrayKeys = ['cat'];
234
241
  const contentObjectKeys = ['ext'];
@@ -271,7 +278,7 @@ function validateVideo(bidRequest) {
271
278
  }
272
279
 
273
280
  if (!bidRequest.params.pubId) {
274
- logError('failed validation: publisher id not declared');
281
+ logError('failed validation: pubId not declared');
275
282
  return false;
276
283
  }
277
284
 
@@ -49,6 +49,55 @@ Module that connects to VideoByte's demand sources
49
49
  ]
50
50
  ```
51
51
 
52
+ ## Instream Video adUnit with placement, nid and content params
53
+ ```
54
+ var adUnits = [
55
+ {
56
+ code: 'video1',
57
+ mediaTypes: {
58
+ video: {
59
+ context: 'instream',
60
+ playerSize: [640, 480],
61
+ mimes: ['video/mp4', 'application/javascript'],
62
+ protocols: [2,5],
63
+ api: [2],
64
+ position: 1,
65
+ delivery: [2],
66
+ minduration: 10,
67
+ maxduration: 30,
68
+ placement: 1,
69
+ playbackmethod: [1,5],
70
+ protocols: [2,5],
71
+ api: [2],
72
+ }
73
+ },
74
+ bids: [
75
+ {
76
+ bidder: 'videobyte',
77
+ params: {
78
+ bidfloor: 0.5,
79
+ pubId: 'e2etest',
80
+ placementId: '1234567',
81
+ nid: '1234',
82
+ video: {
83
+ content:{
84
+ id: "uuid",
85
+ url: "https://videobyte.com/awesome-video.mp4",
86
+ title: "Awesome video",
87
+ genre: "Comedy",
88
+ language: "en",
89
+ season: "1",
90
+ series: "1",
91
+
92
+ }
93
+ }
94
+ }
95
+ }
96
+ ]
97
+ }
98
+ ]
99
+ ```
100
+
52
101
  # End To End testing mode
53
102
  By passing bid.params.video.e2etest = true you will be able to receive a test creative
54
103
 
@@ -168,16 +168,21 @@ export const spec = {
168
168
  return bidResponses;
169
169
  },
170
170
  getUserSyncs: function(syncOptions, serverResponses, gdprConsent) {
171
- if (syncOptions.pixelEnabled) {
172
- var query = [];
173
- if (gdprConsent) {
174
- if (gdprConsent.consentString) {
175
- query.push('gdpr_consent=' + encodeURIComponent(gdprConsent.consentString));
176
- }
177
- query.push('gdpr_applies=' + encodeURIComponent(
178
- (typeof gdprConsent.gdprApplies === 'boolean')
179
- ? Number(gdprConsent.gdprApplies) : 1));
171
+ var query = [];
172
+ if (gdprConsent) {
173
+ if (gdprConsent.consentString) {
174
+ query.push('gdpr_consent=' + encodeURIComponent(gdprConsent.consentString));
180
175
  }
176
+ query.push('gdpr_applies=' + encodeURIComponent(
177
+ (typeof gdprConsent.gdprApplies === 'boolean')
178
+ ? Number(gdprConsent.gdprApplies) : 1));
179
+ }
180
+ if (syncOptions.iframeEnabled) {
181
+ return [{
182
+ type: 'iframe',
183
+ url: buildUrl(ADAPTER_SYNC_PATH) + '?iframe=1' + (query.length ? '&' + query.join('&') : '')
184
+ }];
185
+ } else if (syncOptions.pixelEnabled) {
181
186
  return [{
182
187
  type: 'image',
183
188
  url: buildUrl(ADAPTER_SYNC_PATH) + (query.length ? '?' + query.join('&') : '')
@@ -230,7 +235,7 @@ function makeVideo(videoParams = {}) {
230
235
  return result;
231
236
  }, { w: deepAccess(videoParams, 'playerSize.0.0'), h: deepAccess(videoParams, 'playerSize.0.1') });
232
237
 
233
- if (video.w && video.h && video.mimes) {
238
+ if (video.w && video.h) {
234
239
  return video;
235
240
  }
236
241
  }
@@ -347,18 +352,6 @@ function _isValidVideoBid(bid, logErrors = false) {
347
352
  }
348
353
  result = false;
349
354
  }
350
- if (!videoMediaType.mimes) {
351
- if (logErrors) {
352
- logError(LOG_ERROR_MESS.videoMissing + 'mimes');
353
- }
354
- result = false;
355
- }
356
- if (!videoMediaType.protocols) {
357
- if (logErrors) {
358
- logError(LOG_ERROR_MESS.videoMissing + 'protocols');
359
- }
360
- result = false;
361
- }
362
355
  return result;
363
356
  }
364
357