prebid.js 7.10.0 → 7.13.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 (366) hide show
  1. package/.github/PULL_REQUEST_TEMPLATE.md +16 -10
  2. package/.github/codeql/codeql-config.yml +4 -0
  3. package/.github/workflows/codeql-analysis.yml +73 -0
  4. package/.github/workflows/issue_tracker.yml +1 -1
  5. package/README.md +0 -2
  6. package/babelConfig.js +10 -4
  7. package/dist/33acrossBidAdapter.js +1 -1
  8. package/dist/acuityAdsBidAdapter.js +1 -0
  9. package/dist/adagioBidAdapter.js +1 -1
  10. package/dist/adbookpspBidAdapter.js +1 -1
  11. package/dist/adgenerationBidAdapter.js +1 -1
  12. package/dist/adkernelBidAdapter.js +1 -1
  13. package/dist/adrelevantisBidAdapter.js +1 -1
  14. package/dist/adriverBidAdapter.js +1 -1
  15. package/dist/adriverIdSystem.js +1 -1
  16. package/dist/adtelligentBidAdapter.js +1 -1
  17. package/dist/adtrgtmeBidAdapter.js +1 -0
  18. package/dist/adxcgBidAdapter.js +1 -1
  19. package/dist/adyoulikeBidAdapter.js +1 -1
  20. package/dist/ajaBidAdapter.js +1 -1
  21. package/dist/alkimiBidAdapter.js +1 -1
  22. package/dist/amxBidAdapter.js +1 -1
  23. package/dist/amxIdSystem.js +1 -1
  24. package/dist/aniviewBidAdapter.js +1 -1
  25. package/dist/aolBidAdapter.js +1 -1
  26. package/dist/appierAnalyticsAdapter.js +1 -1
  27. package/dist/appnexusBidAdapter.js +1 -1
  28. package/dist/asoBidAdapter.js +1 -1
  29. package/dist/audiencerunBidAdapter.js +1 -1
  30. package/dist/axonixBidAdapter.js +1 -1
  31. package/dist/beopBidAdapter.js +1 -1
  32. package/dist/betweenBidAdapter.js +1 -1
  33. package/dist/bidglassBidAdapter.js +1 -1
  34. package/dist/bidwatchAnalyticsAdapter.js +1 -1
  35. package/dist/big-richmediaBidAdapter.js +1 -1
  36. package/dist/bluebillywigBidAdapter.js +1 -1
  37. package/dist/brandmetricsRtdProvider.js +1 -1
  38. package/dist/bridgewellBidAdapter.js +1 -1
  39. package/dist/brightMountainMediaBidAdapter.js +1 -1
  40. package/dist/browsiRtdProvider.js +1 -1
  41. package/dist/cleanioRtdProvider.js +1 -1
  42. package/dist/concertBidAdapter.js +1 -1
  43. package/dist/connectadBidAdapter.js +1 -1
  44. package/dist/consentManagement.js +1 -1
  45. package/dist/consentManagementUsp.js +1 -1
  46. package/dist/consumableBidAdapter.js +1 -1
  47. package/dist/conversantBidAdapter.js +1 -1
  48. package/dist/cpmstarBidAdapter.js +1 -1
  49. package/dist/craftBidAdapter.js +1 -1
  50. package/dist/criteoBidAdapter.js +1 -1
  51. package/dist/currency.js +1 -1
  52. package/dist/datawrkzBidAdapter.js +1 -0
  53. package/dist/debugging-standalone.js +1 -1
  54. package/dist/dfpAdServerVideo.js +1 -1
  55. package/dist/dgkeywordRtdProvider.js +1 -1
  56. package/dist/displayioBidAdapter.js +1 -3
  57. package/dist/dspxBidAdapter.js +1 -1
  58. package/dist/enrichmentFpdModule.js +1 -1
  59. package/dist/eplanningBidAdapter.js +1 -1
  60. package/dist/finativeBidAdapter.js +1 -1
  61. package/dist/glimpseBidAdapter.js +1 -1
  62. package/dist/gmosspBidAdapter.js +1 -1
  63. package/dist/goldbachBidAdapter.js +1 -1
  64. package/dist/gridBidAdapter.js +1 -1
  65. package/dist/gridNMBidAdapter.js +1 -1
  66. package/dist/gumgumBidAdapter.js +1 -1
  67. package/dist/h12mediaBidAdapter.js +1 -1
  68. package/dist/id5IdSystem.js +1 -1
  69. package/dist/imRtdProvider.js +1 -1
  70. package/dist/impactifyBidAdapter.js +1 -1
  71. package/dist/improvedigitalBidAdapter.js +1 -1
  72. package/dist/inmarBidAdapter.js +1 -1
  73. package/dist/insticatorBidAdapter.js +1 -1
  74. package/dist/ixBidAdapter.js +1 -1
  75. package/dist/jixieBidAdapter.js +1 -1
  76. package/dist/justpremiumBidAdapter.js +1 -1
  77. package/dist/kargoBidAdapter.js +1 -1
  78. package/dist/konduitAnalyticsAdapter.js +1 -1
  79. package/dist/kueezBidAdapter.js +1 -1
  80. package/dist/lassoBidAdapter.js +1 -1
  81. package/dist/lifestreetBidAdapter.js +1 -0
  82. package/dist/limelightDigitalBidAdapter.js +1 -1
  83. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  84. package/dist/logicadBidAdapter.js +1 -1
  85. package/dist/loglyliftBidAdapter.js +1 -1
  86. package/dist/mabidderBidAdapter.js +1 -0
  87. package/dist/malltvAnalyticsAdapter.js +1 -1
  88. package/dist/marsmediaBidAdapter.js +1 -1
  89. package/dist/mediafuseBidAdapter.js +1 -1
  90. package/dist/mediagoBidAdapter.js +1 -0
  91. package/dist/mediakeysBidAdapter.js +1 -1
  92. package/dist/mediasquareBidAdapter.js +1 -1
  93. package/dist/mgidBidAdapter.js +1 -1
  94. package/dist/minutemediaBidAdapter.js +1 -1
  95. package/dist/nextMillenniumBidAdapter.js +1 -1
  96. package/dist/not-for-prod/prebid.js +153 -147
  97. package/dist/oguryBidAdapter.js +1 -1
  98. package/dist/oneKeyIdSystem.js +1 -0
  99. package/dist/oneKeyRtdProvider.js +1 -0
  100. package/dist/onetagBidAdapter.js +1 -1
  101. package/dist/ooloAnalyticsAdapter.js +1 -1
  102. package/dist/openxAnalyticsAdapter.js +1 -1
  103. package/dist/outbrainBidAdapter.js +1 -1
  104. package/dist/parrableIdSystem.js +1 -1
  105. package/dist/permutiveRtdProvider.js +1 -1
  106. package/dist/pixfutureBidAdapter.js +1 -1
  107. package/dist/prebid-core.js +2 -2
  108. package/dist/publinkIdSystem.js +1 -1
  109. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  110. package/dist/pubmaticBidAdapter.js +1 -1
  111. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  112. package/dist/pxyzBidAdapter.js +1 -1
  113. package/dist/quantcastBidAdapter.js +1 -1
  114. package/dist/rasBidAdapter.js +1 -1
  115. package/dist/readpeakBidAdapter.js +1 -1
  116. package/dist/relaidoBidAdapter.js +1 -1
  117. package/dist/rhythmoneBidAdapter.js +1 -1
  118. package/dist/riseBidAdapter.js +1 -1
  119. package/dist/rtbhouseBidAdapter.js +1 -1
  120. package/dist/rubiconAnalyticsAdapter.js +1 -1
  121. package/dist/rubiconBidAdapter.js +1 -1
  122. package/dist/seedingAllianceBidAdapter.js +1 -1
  123. package/dist/seedtagBidAdapter.js +1 -1
  124. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  125. package/dist/sharethroughBidAdapter.js +1 -1
  126. package/dist/shinezBidAdapter.js +1 -1
  127. package/dist/smaatoBidAdapter.js +1 -1
  128. package/dist/smartadserverBidAdapter.js +1 -1
  129. package/dist/smartxBidAdapter.js +1 -1
  130. package/dist/smilewantedBidAdapter.js +1 -1
  131. package/dist/sonobiBidAdapter.js +1 -1
  132. package/dist/sovrnAnalyticsAdapter.js +1 -1
  133. package/dist/sovrnBidAdapter.js +1 -1
  134. package/dist/sspBCBidAdapter.js +1 -1
  135. package/dist/sublimeBidAdapter.js +1 -1
  136. package/dist/synacormediaBidAdapter.js +1 -1
  137. package/dist/tappxBidAdapter.js +1 -1
  138. package/dist/targetVideoBidAdapter.js +1 -1
  139. package/dist/teadsBidAdapter.js +1 -1
  140. package/dist/trionBidAdapter.js +1 -1
  141. package/dist/tripleliftBidAdapter.js +1 -1
  142. package/dist/trustpidSystem.js +1 -1
  143. package/dist/ttdBidAdapter.js +1 -1
  144. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  145. package/dist/underdogmediaBidAdapter.js +1 -1
  146. package/dist/undertoneBidAdapter.js +1 -1
  147. package/dist/userId.js +1 -1
  148. package/dist/vidazooBidAdapter.js +1 -1
  149. package/dist/videobyteBidAdapter.js +1 -1
  150. package/dist/viewability.js +1 -1
  151. package/dist/visxBidAdapter.js +1 -1
  152. package/dist/vuukleBidAdapter.js +1 -1
  153. package/dist/widespaceBidAdapter.js +1 -1
  154. package/dist/winrBidAdapter.js +1 -1
  155. package/dist/yahoosspBidAdapter.js +1 -1
  156. package/dist/yieldmoBidAdapter.js +1 -1
  157. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  158. package/dist/zeta_global_sspBidAdapter.js +1 -1
  159. package/integrationExamples/gpt/permutiveRtdProvider_example.html +1 -1
  160. package/karma.conf.maker.js +2 -13
  161. package/modules/.submodules.json +2 -0
  162. package/modules/acuityAdsBidAdapter.js +207 -0
  163. package/modules/acuityAdsBidAdapter.md +79 -0
  164. package/modules/adagioBidAdapter.js +2 -3
  165. package/modules/adgenerationBidAdapter.js +2 -2
  166. package/modules/adkernelBidAdapter.js +28 -12
  167. package/modules/admixerBidAdapter.js +1 -1
  168. package/modules/adnowBidAdapter.js +1 -1
  169. package/modules/adpod.js +1 -1
  170. package/modules/adrelevantisBidAdapter.js +2 -2
  171. package/modules/adriverBidAdapter.js +5 -12
  172. package/modules/adriverIdSystem.js +2 -1
  173. package/modules/adtargetBidAdapter.js +1 -1
  174. package/modules/adtelligentBidAdapter.js +6 -2
  175. package/modules/adtrgtmeBidAdapter.js +333 -0
  176. package/modules/adtrgtmeBidAdapter.md +69 -0
  177. package/modules/adtrueBidAdapter.js +1 -1
  178. package/modules/adxpremiumAnalyticsAdapter.js +1 -1
  179. package/modules/adyoulikeBidAdapter.js +1 -1
  180. package/modules/alkimiBidAdapter.js +2 -1
  181. package/modules/aniviewBidAdapter.js +1 -1
  182. package/modules/appnexusBidAdapter.js +13 -93
  183. package/modules/apstreamBidAdapter.js +2 -2
  184. package/modules/beopBidAdapter.js +4 -4
  185. package/modules/betweenBidAdapter.js +4 -4
  186. package/modules/bidwatchAnalyticsAdapter.js +112 -59
  187. package/modules/bizzclickBidAdapter.js +1 -1
  188. package/modules/brightMountainMediaBidAdapter.js +1 -1
  189. package/modules/browsiRtdProvider.js +24 -10
  190. package/modules/cleanmedianetBidAdapter.js +1 -1
  191. package/modules/consentManagement.js +1 -1
  192. package/modules/consentManagementUsp.js +1 -1
  193. package/modules/consumableBidAdapter.js +43 -3
  194. package/modules/cpmstarBidAdapter.js +23 -13
  195. package/modules/criteoBidAdapter.js +19 -13
  196. package/modules/currency.js +1 -0
  197. package/modules/cwireBidAdapter.js +1 -1
  198. package/modules/datablocksBidAdapter.js +1 -1
  199. package/modules/datawrkzBidAdapter.js +633 -0
  200. package/modules/datawrkzBidAdapter.md +160 -0
  201. package/modules/dfpAdServerVideo.js +2 -2
  202. package/modules/dgkeywordRtdProvider.js +10 -1
  203. package/modules/displayioBidAdapter.js +92 -97
  204. package/modules/dspxBidAdapter.js +1 -1
  205. package/modules/e_volutionBidAdapter.js +3 -3
  206. package/modules/ebdrBidAdapter.js +1 -1
  207. package/modules/emx_digitalBidAdapter.js +1 -1
  208. package/modules/enrichmentFpdModule.js +11 -0
  209. package/modules/fabrickIdSystem.js +2 -2
  210. package/modules/gamoshiBidAdapter.js +1 -1
  211. package/modules/getintentBidAdapter.js +1 -1
  212. package/modules/gjirafaBidAdapter.js +2 -2
  213. package/modules/goldbachBidAdapter.js +8 -8
  214. package/modules/gothamadsBidAdapter.js +2 -2
  215. package/modules/gumgumBidAdapter.js +3 -3
  216. package/modules/h12mediaBidAdapter.js +1 -1
  217. package/modules/id5AnalyticsAdapter.js +1 -1
  218. package/modules/id5IdSystem.js +160 -111
  219. package/modules/id5IdSystem.md +16 -14
  220. package/modules/imRtdProvider.js +20 -7
  221. package/modules/imRtdProvider.md +3 -1
  222. package/modules/impactifyBidAdapter.js +1 -1
  223. package/modules/improvedigitalBidAdapter.js +50 -28
  224. package/modules/inskinBidAdapter.js +1 -1
  225. package/modules/insticatorBidAdapter.js +1 -1
  226. package/modules/integr8BidAdapter.js +2 -2
  227. package/modules/intentIqIdSystem.js +2 -2
  228. package/modules/interactiveOffersBidAdapter.js +1 -1
  229. package/modules/iqmBidAdapter.js +1 -1
  230. package/modules/ixBidAdapter.js +21 -328
  231. package/modules/ixBidAdapter.md +1 -19
  232. package/modules/kargoBidAdapter.js +4 -5
  233. package/modules/krushmediaBidAdapter.js +2 -2
  234. package/modules/lassoBidAdapter.js +3 -3
  235. package/modules/lifestreetBidAdapter.js +143 -0
  236. package/modules/limelightDigitalBidAdapter.js +2 -1
  237. package/modules/livewrappedAnalyticsAdapter.js +3 -3
  238. package/modules/lkqdBidAdapter.js +3 -3
  239. package/modules/loganBidAdapter.js +2 -2
  240. package/modules/luponmediaBidAdapter.js +3 -3
  241. package/modules/mabidderBidAdapter.js +60 -0
  242. package/modules/mabidderBidAdapter.md +31 -0
  243. package/modules/malltvBidAdapter.js +2 -2
  244. package/modules/mediagoBidAdapter.js +462 -0
  245. package/modules/mediagoBidAdapter.md +34 -0
  246. package/modules/mediakeysBidAdapter.js +2 -2
  247. package/modules/mgidBidAdapter.js +2 -2
  248. package/modules/nextMillenniumBidAdapter.js +25 -6
  249. package/modules/nobidBidAdapter.js +2 -2
  250. package/modules/novatiqIdSystem.js +1 -1
  251. package/modules/oneKeyIdSystem.js +78 -0
  252. package/modules/oneKeyIdSystem.md +109 -0
  253. package/modules/oneKeyRtdProvider.js +98 -0
  254. package/modules/oneKeyRtdProvider.md +127 -0
  255. package/modules/open8BidAdapter.js +1 -1
  256. package/modules/openwebBidAdapter.js +1 -1
  257. package/modules/openxAnalyticsAdapter.js +5 -744
  258. package/modules/openxAnalyticsAdapter.md +4 -0
  259. package/modules/openxBidAdapter.js +3 -3
  260. package/modules/permutiveRtdProvider.js +55 -8
  261. package/modules/pixfutureBidAdapter.js +1 -1
  262. package/modules/prebidmanagerAnalyticsAdapter.js +1 -1
  263. package/modules/priceFloors.js +1 -1
  264. package/modules/pubmaticAnalyticsAdapter.js +1 -1
  265. package/modules/pubmaticBidAdapter.js +19 -1
  266. package/modules/pubwiseAnalyticsAdapter.js +1 -1
  267. package/modules/pubwiseBidAdapter.js +3 -3
  268. package/modules/pubxBidAdapter.js +1 -1
  269. package/modules/pubxaiAnalyticsAdapter.js +2 -2
  270. package/modules/quantcastIdSystem.js +1 -1
  271. package/modules/radsBidAdapter.js +1 -1
  272. package/modules/rasBidAdapter.js +8 -0
  273. package/modules/rasBidAdapter.md +14 -13
  274. package/modules/revcontentBidAdapter.js +1 -1
  275. package/modules/richaudienceBidAdapter.js +1 -1
  276. package/modules/rtbhouseBidAdapter.js +25 -1
  277. package/modules/schain.js +1 -1
  278. package/modules/seedtagBidAdapter.md +25 -56
  279. package/modules/showheroes-bsBidAdapter.js +1 -1
  280. package/modules/sizeMappingV2.js +1 -1
  281. package/modules/smaatoBidAdapter.js +2 -2
  282. package/modules/sonobiAnalyticsAdapter.js +1 -1
  283. package/modules/sonobiBidAdapter.js +4 -3
  284. package/modules/staqAnalyticsAdapter.js +1 -1
  285. package/modules/tappxBidAdapter.js +11 -2
  286. package/modules/targetVideoBidAdapter.js +1 -1
  287. package/modules/theAdxBidAdapter.js +2 -2
  288. package/modules/tpmnBidAdapter.js +1 -1
  289. package/modules/trionBidAdapter.js +2 -2
  290. package/modules/tripleliftBidAdapter.js +20 -1
  291. package/modules/trustpidSystem.js +6 -42
  292. package/modules/trustpidSystem.md +10 -10
  293. package/modules/underdogmediaBidAdapter.js +1 -1
  294. package/modules/userId/eids.js +26 -0
  295. package/modules/userId/userId.md +2 -2
  296. package/modules/vdoaiBidAdapter.js +1 -1
  297. package/modules/vidazooBidAdapter.js +7 -5
  298. package/modules/vidoomyBidAdapter.js +1 -1
  299. package/modules/viewability.js +14 -14
  300. package/modules/winrBidAdapter.js +1 -1
  301. package/modules/yahoosspBidAdapter.js +3 -3
  302. package/modules/yandexBidAdapter.js +1 -1
  303. package/modules/yieldmoBidAdapter.js +3 -3
  304. package/modules/yieldoneBidAdapter.js +2 -2
  305. package/modules/zeta_global_sspBidAdapter.js +24 -21
  306. package/package.json +3 -3
  307. package/src/Renderer.js +1 -1
  308. package/src/adloader.js +2 -1
  309. package/src/adserver.js +0 -56
  310. package/src/auction.js +60 -16
  311. package/src/bidfactory.js +1 -1
  312. package/src/native.js +75 -60
  313. package/src/refererDetection.js +12 -1
  314. package/src/sizeMapping.js +5 -7
  315. package/src/targeting.js +1 -1
  316. package/src/userSync.js +1 -1
  317. package/src/utils/promise.js +3 -1
  318. package/src/utils.js +27 -0
  319. package/src/video.js +5 -4
  320. package/src/videoCache.js +8 -2
  321. package/test/pages/instream.html +2 -2
  322. package/test/spec/modules/acuityAdsBidAdapter_spec.js +398 -0
  323. package/test/spec/modules/adagioBidAdapter_spec.js +2 -0
  324. package/test/spec/modules/adkernelBidAdapter_spec.js +11 -2
  325. package/test/spec/modules/adriverBidAdapter_spec.js +6 -13
  326. package/test/spec/modules/adriverIdSystem_spec.js +3 -8
  327. package/test/spec/modules/adtelligentBidAdapter_spec.js +2 -0
  328. package/test/spec/modules/adtrgtmeBidAdapter_spec.js +802 -0
  329. package/test/spec/modules/alkimiBidAdapter_spec.js +2 -1
  330. package/test/spec/modules/appnexusBidAdapter_spec.js +1 -0
  331. package/test/spec/modules/beopBidAdapter_spec.js +11 -0
  332. package/test/spec/modules/betweenBidAdapter_spec.js +17 -0
  333. package/test/spec/modules/bidwatchAnalyticsAdapter_spec.js +28 -12
  334. package/test/spec/modules/big-richmediaBidAdapter_spec.js +1 -0
  335. package/test/spec/modules/browsiRtdProvider_spec.js +40 -1
  336. package/test/spec/modules/consumableBidAdapter_spec.js +158 -0
  337. package/test/spec/modules/cpmstarBidAdapter_spec.js +1 -1
  338. package/test/spec/modules/criteoBidAdapter_spec.js +35 -26
  339. package/test/spec/modules/currency_spec.js +22 -0
  340. package/test/spec/modules/datawrkzBidAdapter_spec.js +656 -0
  341. package/test/spec/modules/dgkeywordRtdProvider_spec.js +1 -1
  342. package/test/spec/modules/displayioBidAdapter_spec.js +16 -52
  343. package/test/spec/modules/enrichmentFpdModule_spec.js +16 -1
  344. package/test/spec/modules/fpdModule_spec.js +2 -1
  345. package/test/spec/modules/id5IdSystem_spec.js +529 -172
  346. package/test/spec/modules/imRtdProvider_spec.js +10 -5
  347. package/test/spec/modules/improvedigitalBidAdapter_spec.js +9 -13
  348. package/test/spec/modules/ixBidAdapter_spec.js +216 -123
  349. package/test/spec/modules/kargoBidAdapter_spec.js +11 -2
  350. package/test/spec/modules/lifestreetBidAdapter_spec.js +232 -0
  351. package/test/spec/modules/limelightDigitalBidAdapter_spec.js +59 -7
  352. package/test/spec/modules/mabidderBidAdapter_spec.js +125 -0
  353. package/test/spec/modules/mediagoBidAdapter_spec.js +97 -0
  354. package/test/spec/modules/nextMillenniumBidAdapter_spec.js +2 -7
  355. package/test/spec/modules/oneKeyIdSystem_spec.js +107 -0
  356. package/test/spec/modules/oneKeyRtdProvider_spec.js +152 -0
  357. package/test/spec/modules/openxAnalyticsAdapter_spec.js +6 -638
  358. package/test/spec/modules/permutiveRtdProvider_spec.js +152 -2
  359. package/test/spec/modules/pubmaticBidAdapter_spec.js +69 -4
  360. package/test/spec/modules/rasBidAdapter_spec.js +2 -0
  361. package/test/spec/modules/tripleliftBidAdapter_spec.js +18 -0
  362. package/test/spec/modules/trustpidSystem_spec.js +27 -45
  363. package/test/spec/modules/vidazooBidAdapter_spec.js +36 -23
  364. package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +59 -0
  365. package/test/spec/native_spec.js +257 -2
  366. package/test/spec/videoCache_spec.js +37 -7
@@ -0,0 +1,109 @@
1
+ # OneKey
2
+
3
+ The OneKey real-time data module in Prebid has been built so that publishers
4
+ can quickly and easily setup the OneKey Addressability Framework.
5
+ This module is used along with the oneKeyRtdProvider to pass OneKey data to your partners.
6
+ Both modules are required. This module will pass oneKeyData to your partners
7
+ while the oneKeyRtdProvider will pass the transmission requests.
8
+
9
+ Background information:
10
+ - [OneKey-Network/addressability-framework](https://github.com/OneKey-Network/addressability-framework)
11
+ - [OneKey-Network/OneKey-implementation](https://github.com/OneKey-Network/OneKey-implementation)
12
+
13
+ It can be added to you Prebid.js package with:
14
+
15
+ {: .alert.alert-info :}
16
+ gulp build –modules=userId,oneKeyIdSystem
17
+
18
+ ⚠️ This module works in association with a RTD module. See [oneKeyRtdProvider](oneKeyRtdProvider.md).
19
+
20
+ #### OneKey Registration
21
+
22
+ OneKey is a community based Framework with a decentralized approach.
23
+ Go to [onekey.community](https://onekey.community/) for more details.
24
+
25
+ #### OneKey Configuration
26
+
27
+ {: .table .table-bordered .table-striped }
28
+ | Param under userSync.userIds[] | Scope | Type | Description | Example |
29
+ | --- | --- | --- | --- | --- |
30
+ | name | Required | String | The name of this module | `"oneKeyData"` |
31
+
32
+
33
+ #### OneKey Exemple
34
+
35
+ ```javascript
36
+ pbjs.setConfig({
37
+ userSync: {
38
+ userIds: [{
39
+ name: 'oneKeyData'
40
+ }]
41
+ }
42
+ });
43
+ ```
44
+
45
+ Bidders will receive the data in the following format:
46
+
47
+ ```json
48
+ {
49
+ "identifiers": [{
50
+ "version": "0.1",
51
+ "type": "paf_browser_id",
52
+ "value": "da135b3a-7d04-44bf-a0af-c4709f10420b",
53
+ "source": {
54
+ "domain": "crto-poc-1.onekey.network",
55
+ "timestamp": 1648836556881,
56
+ "signature": "+NF27bBvPM54z103YPExXuS834+ggAQe6JV0jPeGo764vRYiiBl5OmEXlnB7UZgxNe3KBU7rN2jk0SkI4uL0bg=="
57
+ }
58
+ }],
59
+ "preferences": {
60
+ "version": "0.1",
61
+ "data": {
62
+ "use_browsing_for_personalization": true
63
+ },
64
+ "source": {
65
+ "domain": "cmp.pafdemopublisher.com",
66
+ "timestamp": 1648836566468,
67
+ "signature": "ipbYhU8IbSFm2tCqAVYI2d5w4DnGF7Xa2AaiZScx2nmBPLfMmIT/FkBYGitR8Mi791DHtcy5MXr4+bs1aeZFqw=="
68
+ }
69
+ }
70
+ }
71
+ ```
72
+
73
+ If the bidder elects to use pbjs.getUserIdsAsEids() then the format will be:
74
+
75
+ ```json
76
+ "user": {
77
+ "ext": {
78
+ "eids": [{
79
+ "source": "paf",
80
+ "uids": [{
81
+ "id": "da135b3a-7d04-44bf-a0af-c4709f10420b",
82
+ "atype": 1,
83
+ "ext": {
84
+ "version": "0.1",
85
+ "type": "paf_browser_id",
86
+ "source": {
87
+ "domain": "crto-poc-1.onekey.network",
88
+ "timestamp": 1648836556881,
89
+ "signature": "+NF27bBvPM54z103YPExXuS834+ggAQe6JV0jPeGo764vRYiiBl5OmEXlnB7UZgxNe3KBU7rN2jk0SkI4uL0bg=="
90
+ }
91
+ }
92
+ }],
93
+ "ext": {
94
+ "preferences": {
95
+ "version": "0.1",
96
+ "data": {
97
+ "use_browsing_for_personalization": true
98
+ },
99
+ "source": {
100
+ "domain": "cmp.pafdemopublisher.com",
101
+ "timestamp": 1648836566468,
102
+ "signature": "ipbYhU8IbSFm2tCqAVYI2d5w4DnGF7Xa2AaiZScx2nmBPLfMmIT/FkBYGitR8Mi791DHtcy5MXr4+bs1aeZFqw=="
103
+ }
104
+ }
105
+ }
106
+ }]
107
+ }
108
+ }
109
+ ```
@@ -0,0 +1,98 @@
1
+
2
+ import { submodule } from '../src/hook.js';
3
+ import { mergeDeep, logError, logMessage, deepSetValue, generateUUID } from '../src/utils.js';
4
+ import { getGlobal } from '../src/prebidGlobal.js';
5
+
6
+ const SUBMODULE_NAME = 'oneKey';
7
+ const prefixLog = 'OneKey.RTD-module'
8
+
9
+ // Pre-init OneKey if it has not load yet.
10
+ window.OneKey = window.OneKey || {};
11
+ window.OneKey.queue = window.OneKey.queue || [];
12
+
13
+ /**
14
+ * Generate the OneKey transmission and include it in the Bid Request.
15
+ *
16
+ * Modify the AdUnit object for each auction.
17
+ * It’s called as part of the requestBids hook.
18
+ * https://docs.prebid.org/dev-docs/add-rtd-submodule.html#getbidrequestdata
19
+ *
20
+ * @param {Object} reqBidsConfigObj
21
+ * @param {function} callback
22
+ * @param {Object} rtdConfig
23
+ * @param {Object} userConsent
24
+ */
25
+ const getTransmissionInBidRequest = (reqBidsConfigObj, done, rtdConfig) => {
26
+ const adUnits = reqBidsConfigObj.adUnits || getGlobal().adUnits;
27
+ const transactionIds = adUnits.map(() => generateUUID());
28
+
29
+ logMessage(prefixLog, 'Queue seed generation.');
30
+ window.OneKey.queue.push(() => {
31
+ logMessage(prefixLog, 'Generate a seed.');
32
+ window.OneKey.generateSeed(transactionIds)
33
+ .then(onGetSeed(reqBidsConfigObj, rtdConfig, adUnits, transactionIds))
34
+ .catch((err) => { logError(SUBMODULE_NAME, err.message); })
35
+ .finally(done);
36
+ });
37
+ }
38
+
39
+ const onGetSeed = (reqBidsConfigObj, rtdConfig, adUnits, transactionIds) => {
40
+ return (seed) => {
41
+ if (!seed) {
42
+ logMessage(prefixLog, 'No seed generated.');
43
+ return;
44
+ }
45
+
46
+ logMessage(prefixLog, 'Has retrieved a seed:', seed);
47
+ addTransactionIdsToAdUnits(adUnits, transactionIds);
48
+ addTransmissionToOrtb2(reqBidsConfigObj, rtdConfig, seed);
49
+ };
50
+ };
51
+
52
+ const addTransactionIdsToAdUnits = (adUnits, transactionIds) => {
53
+ adUnits.forEach((unit, index) => {
54
+ deepSetValue(unit, `ortb2Imp.ext.data.paf.transaction_id`, transactionIds[index]);
55
+ });
56
+ };
57
+
58
+ const addTransmissionToOrtb2 = (reqBidsConfigObj, rtdConfig, seed) => {
59
+ const okOrtb2 = {
60
+ ortb2: {
61
+ user: {
62
+ ext: {
63
+ paf: {
64
+ transmission: {
65
+ seed
66
+ }
67
+ }
68
+ }
69
+ }
70
+ }
71
+ }
72
+
73
+ const shareSeedWithAllBidders = !rtdConfig.params || !rtdConfig.params.bidders;
74
+ if (shareSeedWithAllBidders) {
75
+ // Change global first party data with OneKey
76
+ logMessage(prefixLog, 'set ortb2:', okOrtb2);
77
+ mergeDeep(reqBidsConfigObj.ortb2Fragments.global, okOrtb2.ortb2);
78
+ } else {
79
+ // Change bidder-specific first party data with OneKey
80
+ logMessage(prefixLog, `set ortb2 for: ${rtdConfig.params.bidders.join(',')}`, okOrtb2);
81
+ rtdConfig.params.bidders.forEach(bidder => {
82
+ mergeDeep(reqBidsConfigObj.ortb2Fragments.bidder, { [bidder]: okOrtb2.ortb2 });
83
+ });
84
+ }
85
+ };
86
+
87
+ /** @type {RtdSubmodule} */
88
+ export const oneKeyDataSubmodule = {
89
+ /**
90
+ * used to link submodule with realTimeData
91
+ * @type {string}
92
+ */
93
+ name: SUBMODULE_NAME,
94
+ init: () => true,
95
+ getBidRequestData: getTransmissionInBidRequest,
96
+ };
97
+
98
+ submodule('realTimeData', oneKeyDataSubmodule);
@@ -0,0 +1,127 @@
1
+ ## OneKey Real-time Data Submodule
2
+
3
+ The OneKey real-time data module in Prebid has been built so that publishers
4
+ can quickly and easily setup the OneKey Addressability Framework.
5
+ This module is used along with the oneKeyIdSystem to pass OneKey data to your partners.
6
+ Both modules are required. This module will pass transmission requests to your partners
7
+ while the oneKeyIdSystem will pass the oneKeyData.
8
+
9
+ Background information:
10
+ - [OneKey-Network/addressability-framework](https://github.com/OneKey-Network/addressability-framework)
11
+ - [OneKey-Network/OneKey-implementation](https://github.com/OneKey-Network/OneKey-implementation)
12
+
13
+ ## Implementation for Publishers
14
+
15
+ ### Integration
16
+
17
+ 1) Compile the OneKey RTD Provider and the OneKey UserID sub-module into your Prebid build.
18
+
19
+ ```
20
+ gulp build --modules=rtdModule,oneKeyRtdProvider
21
+ ```
22
+
23
+ 2) Publishers must register OneKey RTD Provider as a Real Time Data provider by using `setConfig`
24
+ to load a Prebid Config containing a `realTimeData.dataProviders` array:
25
+
26
+ ```javascript
27
+ pbjs.setConfig({
28
+ ...,
29
+ realTimeData: {
30
+ auctionDelay: 100,
31
+ dataProviders: [
32
+ {
33
+ name: 'oneKey',
34
+ waitForIt: true
35
+ }
36
+ ]
37
+ }
38
+ });
39
+ ```
40
+
41
+ 3) Configure the OneKey RTD Provider with the bidders that are part of the OneKey community. If there is no bidders specified, the RTD provider
42
+ will share OneKey data with all adapters.
43
+
44
+ ⚠️ This module works in association with a RTD module. See [oneKeyIdSystem](oneKeyIdSystem.md).
45
+
46
+ ### Parameters
47
+
48
+ | Name |Type | Description | Notes |
49
+ | :------------ | :------------ | :------------ |:------------ |
50
+ | name | String | Real time data module name | Always 'oneKey' |
51
+ | waitForIt | Boolean | Required to ensure that the auction is delayed until prefetch is complete | Optional. Defaults to false |
52
+ | params | Object | | Optional |
53
+ | params.bidders | Array | List of bidders to restrict the data to. | Optional |
54
+
55
+ ## Implementation for Bidders
56
+
57
+ ### Bidder Requests
58
+
59
+ The data will provided to the bidders using the `ortb2` object.
60
+ The following is an example of the format of the data:
61
+
62
+ ```json
63
+ "user": {
64
+ "ext": {
65
+ "paf": {
66
+ "transmission": {
67
+ "seed": {
68
+ "version": "0.1",
69
+ "transaction_ids": ["06df6992-691c-4342-bbb0-66d2a005d5b1", "d2cd0aa7-8810-478c-bd15-fb5bfa8138b8"],
70
+ "publisher": "cmp.pafdemopublisher.com",
71
+ "source": {
72
+ "domain": "cmp.pafdemopublisher.com",
73
+ "timestamp": 1649712888,
74
+ "signature": "turzZlXh9IqD5Rjwh4vWR78pKLrVsmwQrGr6fgw8TPgQVJSC8K3HvkypTV7lm3UaCi+Zzjl+9sd7Hrv87gdI8w=="
75
+ }
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }
81
+ ```
82
+
83
+ ```json
84
+ "ortb2Imp": {
85
+ "ext": {
86
+ "data": {
87
+ "paf": {
88
+ "transaction_id": "52d23fed-4f50-4c17-b07a-c458143e9d09"
89
+ }
90
+ }
91
+ }
92
+ }
93
+ ```
94
+
95
+ ### Bidder Responses
96
+
97
+ Bidders who are part of the OneKey Addressability Framework and receive OneKey
98
+ transmissions are required to return transmission responses as outlined in
99
+ [OneKey-Network/addressability-framework]https://github.com/OneKey-Network/addressability-framework/blob/main/mvp-spec/ad-auction.md). Transmission responses should be appended to bids
100
+ along with the releveant content_id using the meta.paf field. The paf-lib will
101
+ be responsible for collecting all of the transmission responses.
102
+
103
+ Below is an example of setting a transmission response:
104
+
105
+ ```javascript
106
+ bid.meta.paf = {
107
+ content_id: "90141190-26fe-497c-acee-4d2b649c2112",
108
+ transmission: {
109
+ version: "0.1",
110
+ contents: [
111
+ {
112
+ transaction_id: "f55a401d-e8bb-4de1-a3d2-fa95619393e8",
113
+ content_id: "90141190-26fe-497c-acee-4d2b649c2112"
114
+ }
115
+ ],
116
+ status: "success",
117
+ details: "",
118
+ receiver: "dsp1.com",
119
+ source: {
120
+ domain: "dsp1.com",
121
+ timestamp: 1639589531,
122
+ signature: "d01c6e83f14b4f057c2a2a86d320e2454fc0c60df4645518d993b5f40019d24c"
123
+ },
124
+ children: []
125
+ }
126
+ }
127
+ ```
@@ -68,7 +68,7 @@ export const spec = {
68
68
  meta: {
69
69
  advertiserDomains: ad.adomain || []
70
70
  }
71
- }
71
+ };
72
72
 
73
73
  if (ad.adType === AD_TYPE.VIDEO) {
74
74
  const videoAd = bidderResponse.ad.video;
@@ -149,7 +149,7 @@ function bidToTag(bidRequests, adapterRequest) {
149
149
  tag.UserEids = deepAccess(bidRequests[0], 'userIdAsEids');
150
150
  }
151
151
  // end publisher env
152
- const bids = []
152
+ const bids = [];
153
153
 
154
154
  for (let i = 0, length = bidRequests.length; i < length; i++) {
155
155
  const bid = prepareBidRequests(bidRequests[i]);