prebid.js 9.2.0 → 9.4.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 (279) hide show
  1. package/creative/constants.js +2 -1
  2. package/creative/crossDomain.js +16 -4
  3. package/dist/33acrossAnalyticsAdapter.js +1 -1
  4. package/dist/33acrossBidAdapter.js +1 -1
  5. package/dist/33acrossIdSystem.js +1 -1
  6. package/dist/BTBidAdapter.js +1 -1
  7. package/dist/adagioAnalyticsAdapter.js +1 -1
  8. package/dist/adagioBidAdapter.js +1 -1
  9. package/dist/adagioRtdProvider.js +1 -1
  10. package/dist/adagioUtils.js +1 -1
  11. package/dist/addefendBidAdapter.js +1 -1
  12. package/dist/adfBidAdapter.js +1 -1
  13. package/dist/adgenerationBidAdapter.js +1 -1
  14. package/dist/adlooxRtdProvider.js +1 -1
  15. package/dist/adnuntiusBidAdapter.js +1 -1
  16. package/dist/adqueryBidAdapter.js +1 -1
  17. package/dist/adrelevantisBidAdapter.js +1 -1
  18. package/dist/adstirBidAdapter.js +1 -1
  19. package/dist/adtrgtmeBidAdapter.js +1 -1
  20. package/dist/adxcgAnalyticsAdapter.js +1 -1
  21. package/dist/adxcgBidAdapter.js +1 -1
  22. package/dist/adyoulikeBidAdapter.js +1 -1
  23. package/dist/agmaAnalyticsAdapter.js +1 -1
  24. package/dist/ajaBidAdapter.js +1 -1
  25. package/dist/amxBidAdapter.js +1 -1
  26. package/dist/amxIdSystem.js +1 -1
  27. package/dist/appierAnalyticsAdapter.js +1 -1
  28. package/dist/appnexusBidAdapter.js +1 -1
  29. package/dist/asoBidAdapter.js +1 -1
  30. package/dist/axonixBidAdapter.js +1 -1
  31. package/dist/bidglassBidAdapter.js +1 -1
  32. package/dist/big-richmediaBidAdapter.js +1 -1
  33. package/dist/bridBidAdapter.js +1 -1
  34. package/dist/bridgewellBidAdapter.js +1 -1
  35. package/dist/brightMountainMediaBidAdapter.js +1 -1
  36. package/dist/carodaBidAdapter.js +1 -1
  37. package/dist/chtnwBidAdapter.js +1 -1
  38. package/dist/chunk-core.js +1 -1
  39. package/dist/codefuelBidAdapter.js +1 -1
  40. package/dist/concertBidAdapter.js +1 -1
  41. package/dist/connectadBidAdapter.js +1 -1
  42. package/dist/consentManagement.js +1 -0
  43. package/dist/consentManagementGpp.js +1 -1
  44. package/dist/consentManagementTcf.js +1 -1
  45. package/dist/consumableBidAdapter.js +1 -1
  46. package/dist/conversantAnalyticsAdapter.js +1 -1
  47. package/dist/conversantBidAdapter.js +1 -1
  48. package/dist/copper6sspBidAdapter.js +1 -0
  49. package/dist/cpmstarBidAdapter.js +1 -1
  50. package/dist/craftBidAdapter.js +1 -1
  51. package/dist/criteoBidAdapter.js +1 -1
  52. package/dist/cwireBidAdapter.js +1 -1
  53. package/dist/dailymotionBidAdapter.js +1 -1
  54. package/dist/deltaprojectsBidAdapter.js +1 -1
  55. package/dist/dependencies.json +51 -13
  56. package/dist/dianomiBidAdapter.js +1 -1
  57. package/dist/dspxBidAdapter.js +1 -1
  58. package/dist/dxkultureBidAdapter.js +1 -1
  59. package/dist/eplanningBidAdapter.js +1 -1
  60. package/dist/euidIdSystem.js +1 -1
  61. package/dist/exadsBidAdapter.js +1 -1
  62. package/dist/feedadBidAdapter.js +1 -1
  63. package/dist/finativeBidAdapter.js +1 -1
  64. package/dist/freewheel-sspBidAdapter.js +1 -1
  65. package/dist/gmosspBidAdapter.js +1 -1
  66. package/dist/goldbachBidAdapter.js +1 -1
  67. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  68. package/dist/greenbidsRtdProvider.js +1 -1
  69. package/dist/gridBidAdapter.js +1 -1
  70. package/dist/gumgumBidAdapter.js +1 -1
  71. package/dist/h12mediaBidAdapter.js +1 -1
  72. package/dist/hypelabBidAdapter.js +1 -1
  73. package/dist/id5AnalyticsAdapter.js +1 -1
  74. package/dist/id5IdSystem.js +1 -1
  75. package/dist/illuminBidAdapter.js +1 -1
  76. package/dist/imdsBidAdapter.js +1 -1
  77. package/dist/improvedigitalBidAdapter.js +1 -1
  78. package/dist/insticatorBidAdapter.js +1 -1
  79. package/dist/intentIqIdSystem.js +1 -1
  80. package/dist/ixBidAdapter.js +1 -1
  81. package/dist/jixieBidAdapter.js +1 -1
  82. package/dist/justpremiumBidAdapter.js +1 -1
  83. package/dist/kargoBidAdapter.js +1 -1
  84. package/dist/kimberliteBidAdapter.js +1 -1
  85. package/dist/konduitAnalyticsAdapter.js +1 -1
  86. package/dist/kueezBidAdapter.js +1 -1
  87. package/dist/kueezRtbBidAdapter.js +1 -1
  88. package/dist/lassoBidAdapter.js +1 -1
  89. package/dist/lifestreetBidAdapter.js +1 -1
  90. package/dist/liveIntentIdSystem.js +1 -1
  91. package/dist/logicadBidAdapter.js +1 -1
  92. package/dist/loglyliftBidAdapter.js +1 -1
  93. package/dist/luceadBidAdapter.js +1 -1
  94. package/dist/luponmediaBidAdapter.js +1 -1
  95. package/dist/mabidderBidAdapter.js +1 -1
  96. package/dist/magniteAnalyticsAdapter.js +1 -1
  97. package/dist/malltvAnalyticsAdapter.js +1 -1
  98. package/dist/marsmediaBidAdapter.js +1 -1
  99. package/dist/mediafuseBidAdapter.js +1 -1
  100. package/dist/medianetAnalyticsAdapter.js +1 -1
  101. package/dist/medianetBidAdapter.js +1 -1
  102. package/dist/mediasquareBidAdapter.js +1 -1
  103. package/dist/mgidBidAdapter.js +1 -1
  104. package/dist/minutemediaBidAdapter.js +1 -1
  105. package/dist/missenaBidAdapter.js +1 -1
  106. package/dist/nexx360BidAdapter.js +1 -1
  107. package/dist/nobidAnalyticsAdapter.js +1 -1
  108. package/dist/nobidBidAdapter.js +1 -1
  109. package/dist/not-for-prod/prebid.js +184 -178
  110. package/dist/oguryBidAdapter.js +1 -1
  111. package/dist/onetagBidAdapter.js +1 -1
  112. package/dist/ooloAnalyticsAdapter.js +1 -1
  113. package/dist/openwebBidAdapter.js +1 -1
  114. package/dist/openxBidAdapter.js +1 -1
  115. package/dist/optidigitalBidAdapter.js +1 -1
  116. package/dist/orakiBidAdapter.js +1 -0
  117. package/dist/orbidderBidAdapter.js +1 -1
  118. package/dist/outbrainBidAdapter.js +1 -1
  119. package/dist/ozoneBidAdapter.js +1 -1
  120. package/dist/pairIdSystem.js +1 -1
  121. package/dist/pixfutureBidAdapter.js +1 -1
  122. package/dist/prebidServerBidAdapter.js +1 -1
  123. package/dist/processResponse.js +1 -0
  124. package/dist/publinkIdSystem.js +1 -1
  125. package/dist/publirBidAdapter.js +1 -1
  126. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  127. package/dist/pubmaticBidAdapter.js +1 -1
  128. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  129. package/dist/pxyzBidAdapter.js +1 -1
  130. package/dist/quantcastBidAdapter.js +1 -1
  131. package/dist/readpeakBidAdapter.js +1 -1
  132. package/dist/relaidoBidAdapter.js +1 -1
  133. package/dist/retailspotBidAdapter.js +1 -1
  134. package/dist/rhythmoneBidAdapter.js +1 -1
  135. package/dist/riseBidAdapter.js +1 -1
  136. package/dist/rubiconBidAdapter.js +1 -1
  137. package/dist/seedingAllianceBidAdapter.js +1 -1
  138. package/dist/seedtagBidAdapter.js +1 -1
  139. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  140. package/dist/sharethroughBidAdapter.js +1 -1
  141. package/dist/shinezBidAdapter.js +1 -1
  142. package/dist/shinezRtbBidAdapter.js +1 -1
  143. package/dist/smaatoBidAdapter.js +1 -1
  144. package/dist/smartadserverBidAdapter.js +1 -1
  145. package/dist/smartxBidAdapter.js +1 -1
  146. package/dist/smartyadsBidAdapter.js +1 -1
  147. package/dist/smartyadsUtils.js +1 -0
  148. package/dist/smilewantedBidAdapter.js +1 -1
  149. package/dist/snigelBidAdapter.js +1 -1
  150. package/dist/sonobiBidAdapter.js +1 -1
  151. package/dist/sovrnBidAdapter.js +1 -1
  152. package/dist/sspBCBidAdapter.js +1 -1
  153. package/dist/stnBidAdapter.js +1 -1
  154. package/dist/stvBidAdapter.js +1 -1
  155. package/dist/sublimeBidAdapter.js +1 -1
  156. package/dist/taboolaBidAdapter.js +1 -1
  157. package/dist/tagorasBidAdapter.js +1 -1
  158. package/dist/tappxBidAdapter.js +1 -1
  159. package/dist/targetVideoBidAdapter.js +1 -1
  160. package/dist/teadsBidAdapter.js +1 -1
  161. package/dist/terceptAnalyticsAdapter.js +1 -1
  162. package/dist/themoneytizerBidAdapter.js +1 -1
  163. package/dist/trionBidAdapter.js +1 -1
  164. package/dist/tripleliftBidAdapter.js +1 -1
  165. package/dist/ttdBidAdapter.js +1 -1
  166. package/dist/twistDigitalBidAdapter.js +1 -1
  167. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  168. package/dist/uid2IdSystem.js +1 -1
  169. package/dist/underdogmediaBidAdapter.js +1 -1
  170. package/dist/undertoneBidAdapter.js +1 -1
  171. package/dist/unrulyBidAdapter.js +1 -1
  172. package/dist/userId.js +1 -1
  173. package/dist/viantOrtbBidAdapter.js +1 -1
  174. package/dist/vidazooBidAdapter.js +1 -1
  175. package/dist/vidazooUtils.js +1 -0
  176. package/dist/videobyteBidAdapter.js +1 -1
  177. package/dist/visxBidAdapter.js +1 -1
  178. package/dist/vuukleBidAdapter.js +1 -1
  179. package/dist/widespaceBidAdapter.js +1 -1
  180. package/dist/winrBidAdapter.js +1 -1
  181. package/dist/yahooAdsBidAdapter.js +1 -1
  182. package/dist/yieldmoBidAdapter.js +1 -1
  183. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  184. package/dist/yuktamediaAnalyticsAdapter.js +1 -1
  185. package/dist/zeta_global_sspBidAdapter.js +1 -1
  186. package/integrationExamples/gpt/x-domain/creative.html +1 -1
  187. package/libraries/consentManagement/cmUtils.js +38 -0
  188. package/libraries/processResponse/index.js +12 -0
  189. package/libraries/smartyadsUtils/getAdUrlByRegion.js +32 -0
  190. package/libraries/vidazooUtils/bidderUtils.js +480 -0
  191. package/libraries/vidazooUtils/constants.js +7 -0
  192. package/modules/adagioRtdProvider.js +9 -7
  193. package/modules/addefendBidAdapter.js +1 -2
  194. package/modules/adfBidAdapter.js +1 -10
  195. package/modules/adlooxRtdProvider.js +1 -1
  196. package/modules/adnuntiusBidAdapter.js +1 -0
  197. package/modules/adxcgAnalyticsAdapter.js +1 -2
  198. package/modules/carodaBidAdapter.js +3 -8
  199. package/modules/codefuelBidAdapter.js +1 -10
  200. package/modules/consentManagementGpp.js +2 -38
  201. package/modules/consentManagementTcf.js +7 -38
  202. package/modules/conversantAnalyticsAdapter.js +1 -2
  203. package/modules/copper6sspBidAdapter.js +19 -0
  204. package/modules/copper6sspBidAdapter.md +79 -0
  205. package/modules/cpmstarBidAdapter.js +52 -36
  206. package/modules/cpmstarBidAdapter.md +1 -4
  207. package/modules/criteoBidAdapter.js +10 -3
  208. package/modules/dailymotionBidAdapter.js +1 -1
  209. package/modules/deltaprojectsBidAdapter.js +2 -11
  210. package/modules/dianomiBidAdapter.js +1 -9
  211. package/modules/finativeBidAdapter.js +1 -10
  212. package/modules/gridBidAdapter.js +2 -12
  213. package/modules/id5AnalyticsAdapter.js +1 -2
  214. package/modules/illuminBidAdapter.js +9 -304
  215. package/modules/intentIqIdSystem.js +408 -50
  216. package/modules/intentIqIdSystem.md +92 -0
  217. package/modules/kueezRtbBidAdapter.js +17 -312
  218. package/modules/liveIntentIdSystem.js +2 -2
  219. package/modules/luponmediaBidAdapter.js +4 -10
  220. package/modules/mabidderBidAdapter.js +1 -2
  221. package/modules/medianetAnalyticsAdapter.js +1 -2
  222. package/modules/medianetBidAdapter.js +1 -1
  223. package/modules/mgidBidAdapter.js +1 -10
  224. package/modules/orakiBidAdapter.js +19 -0
  225. package/modules/orakiBidAdapter.md +79 -0
  226. package/modules/orbidderBidAdapter.js +4 -2
  227. package/modules/outbrainBidAdapter.js +8 -43
  228. package/modules/ozoneBidAdapter.js +9 -7
  229. package/modules/pairIdSystem.js +27 -10
  230. package/modules/pixfutureBidAdapter.js +1 -2
  231. package/modules/prebidServerBidAdapter/index.js +1 -1
  232. package/modules/seedtagBidAdapter.js +4 -0
  233. package/modules/shinezRtbBidAdapter.js +12 -304
  234. package/modules/smartadserverBidAdapter.js +3 -0
  235. package/modules/smartyadsBidAdapter.js +6 -110
  236. package/modules/snigelBidAdapter.js +1 -2
  237. package/modules/tagorasBidAdapter.js +13 -316
  238. package/modules/tappxBidAdapter.js +1 -2
  239. package/modules/terceptAnalyticsAdapter.js +1 -2
  240. package/modules/twistDigitalBidAdapter.js +9 -433
  241. package/modules/userId/index.js +31 -21
  242. package/modules/viantOrtbBidAdapter.js +20 -0
  243. package/modules/vidazooBidAdapter.js +26 -468
  244. package/modules/visxBidAdapter.js +27 -29
  245. package/modules/yahooAdsBidAdapter.js +4 -1
  246. package/modules/yuktamediaAnalyticsAdapter.js +1 -2
  247. package/modules/zeta_global_sspBidAdapter.js +2 -2
  248. package/package.json +1 -1
  249. package/src/adRendering.js +25 -2
  250. package/src/constants.js +2 -0
  251. package/src/prebid.js +2 -1
  252. package/src/utils.js +19 -1
  253. package/test/spec/creative/crossDomainCreative_spec.js +38 -2
  254. package/test/spec/fpd/gdpr_spec.js +24 -2
  255. package/test/spec/libraries/processResponse_spec.js +60 -0
  256. package/test/spec/modules/adagioRtdProvider_spec.js +12 -0
  257. package/test/spec/modules/adnuntiusBidAdapter_spec.js +6 -3
  258. package/test/spec/modules/conversantAnalyticsAdapter_spec.js +1 -1
  259. package/test/spec/modules/copper6sspBidAdapter_spec.js +514 -0
  260. package/test/spec/modules/cpmstarBidAdapter_spec.js +1 -1
  261. package/test/spec/modules/dailymotionBidAdapter_spec.js +18 -14
  262. package/test/spec/modules/illuminBidAdapter_spec.js +26 -13
  263. package/test/spec/modules/intentIqIdSystem_spec.js +264 -36
  264. package/test/spec/modules/kueezRtbBidAdapter_spec.js +26 -15
  265. package/test/spec/modules/orakiBidAdapter_spec.js +510 -0
  266. package/test/spec/modules/outbrainBidAdapter_spec.js +32 -1
  267. package/test/spec/modules/seedtagBidAdapter_spec.js +27 -0
  268. package/test/spec/modules/shinezRtbBidAdapter_spec.js +26 -14
  269. package/test/spec/modules/smartadserverBidAdapter_spec.js +7 -0
  270. package/test/spec/modules/smartyadsBidAdapter_spec.js +6 -83
  271. package/test/spec/modules/tagorasBidAdapter_spec.js +26 -15
  272. package/test/spec/modules/twistDigitalBidAdapter_spec.js +19 -22
  273. package/test/spec/modules/userId_spec.js +86 -47
  274. package/test/spec/modules/viantOrtbBidAdapter_spec.js +87 -6
  275. package/test/spec/modules/vidazooBidAdapter_spec.js +21 -23
  276. package/test/spec/modules/visxBidAdapter_spec.js +180 -0
  277. package/test/spec/modules/yahooAdsBidAdapter_spec.js +1 -1
  278. package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +11 -0
  279. package/test/spec/unit/pbjs_api_spec.js +6 -1
@@ -1,333 +1,30 @@
1
- import {_each, deepAccess, parseSizesInput, parseUrl, uniques, isFn} from '../src/utils.js';
2
1
  import {registerBidder} from '../src/adapters/bidderFactory.js';
3
2
  import {BANNER, VIDEO} from '../src/mediaTypes.js';
4
3
  import {getStorageManager} from '../src/storageManager.js';
5
- import {config} from '../src/config.js';
4
+ import {
5
+ createBuildRequestsFn,
6
+ createInterpretResponseFn,
7
+ createUserSyncGetter,
8
+ isBidRequestValid
9
+ } from '../libraries/vidazooUtils/bidderUtils.js';
6
10
 
7
11
  const DEFAULT_SUB_DOMAIN = 'exchange';
8
12
  const BIDDER_CODE = 'tagoras';
9
13
  const BIDDER_VERSION = '1.0.0';
10
- const CURRENCY = 'USD';
11
- const TTL_SECONDS = 60 * 5;
12
- const UNIQUE_DEAL_ID_EXPIRY = 1000 * 60 * 15;
13
- const storage = getStorageManager({bidderCode: BIDDER_CODE});
14
-
15
- function getTopWindowQueryParams() {
16
- try {
17
- const parsedUrl = parseUrl(window.top.document.URL, {decodeSearchAsString: true});
18
- return parsedUrl.search;
19
- } catch (e) {
20
- return '';
21
- }
22
- }
14
+ export const storage = getStorageManager({bidderCode: BIDDER_CODE});
23
15
 
24
16
  export function createDomain(subDomain = DEFAULT_SUB_DOMAIN) {
25
17
  return `https://${subDomain}.tagoras.io`;
26
18
  }
27
19
 
28
- export function extractCID(params) {
29
- return params.cId || params.CID || params.cID || params.CId || params.cid || params.ciD || params.Cid || params.CiD;
30
- }
31
-
32
- export function extractPID(params) {
33
- return params.pId || params.PID || params.pID || params.PId || params.pid || params.piD || params.Pid || params.PiD;
34
- }
35
-
36
- export function extractSubDomain(params) {
37
- return params.subDomain || params.SubDomain || params.Subdomain || params.subdomain || params.SUBDOMAIN || params.subDOMAIN;
38
- }
39
-
40
- function isBidRequestValid(bid) {
41
- const params = bid.params || {};
42
- return !!(extractCID(params) && extractPID(params));
43
- }
44
-
45
- function buildRequest(bid, topWindowUrl, sizes, bidderRequest, bidderTimeout) {
46
- const {
47
- params,
48
- bidId,
49
- userId,
50
- adUnitCode,
51
- schain,
52
- mediaTypes,
53
- ortb2Imp,
54
- bidderRequestId,
55
- bidRequestsCount,
56
- bidderRequestsCount,
57
- bidderWinsCount
58
- } = bid;
59
- let {bidFloor, ext} = params;
60
- const hashUrl = hashCode(topWindowUrl);
61
- const uniqueDealId = getUniqueDealId(hashUrl);
62
- const cId = extractCID(params);
63
- const pId = extractPID(params);
64
- const subDomain = extractSubDomain(params);
65
-
66
- const gpid = deepAccess(bid, 'ortb2Imp.ext.gpid', deepAccess(bid, 'ortb2Imp.ext.data.pbadslot', ''));
67
-
68
- if (isFn(bid.getFloor)) {
69
- const floorInfo = bid.getFloor({
70
- currency: 'USD',
71
- mediaType: '*',
72
- size: '*'
73
- });
74
-
75
- if (floorInfo.currency === 'USD') {
76
- bidFloor = floorInfo.floor;
77
- }
78
- }
79
-
80
- let data = {
81
- url: encodeURIComponent(topWindowUrl),
82
- uqs: getTopWindowQueryParams(),
83
- cb: Date.now(),
84
- bidFloor: bidFloor,
85
- bidId: bidId,
86
- referrer: bidderRequest.refererInfo.ref,
87
- adUnitCode: adUnitCode,
88
- publisherId: pId,
89
- sizes: sizes,
90
- uniqueDealId: uniqueDealId,
91
- bidderVersion: BIDDER_VERSION,
92
- prebidVersion: '$prebid.version$',
93
- res: `${screen.width}x${screen.height}`,
94
- schain: schain,
95
- mediaTypes: mediaTypes,
96
- gpid: gpid,
97
- transactionId: ortb2Imp?.ext?.tid,
98
- bidderRequestId: bidderRequestId,
99
- bidRequestsCount: bidRequestsCount,
100
- bidderRequestsCount: bidderRequestsCount,
101
- bidderWinsCount: bidderWinsCount,
102
- bidderTimeout: bidderTimeout
103
- };
104
-
105
- appendUserIdsToRequestPayload(data, userId);
106
-
107
- const sua = deepAccess(bidderRequest, 'ortb2.device.sua');
108
-
109
- if (sua) {
110
- data.sua = sua;
111
- }
112
-
113
- if (bidderRequest.gdprConsent) {
114
- if (bidderRequest.gdprConsent.consentString) {
115
- data.gdprConsent = bidderRequest.gdprConsent.consentString;
116
- }
117
- if (bidderRequest.gdprConsent.gdprApplies !== undefined) {
118
- data.gdpr = bidderRequest.gdprConsent.gdprApplies ? 1 : 0;
119
- }
120
- }
121
- if (bidderRequest.uspConsent) {
122
- data.usPrivacy = bidderRequest.uspConsent;
123
- }
124
-
125
- if (bidderRequest.gppConsent) {
126
- data.gppString = bidderRequest.gppConsent.gppString;
127
- data.gppSid = bidderRequest.gppConsent.applicableSections;
128
- } else if (bidderRequest.ortb2?.regs?.gpp) {
129
- data.gppString = bidderRequest.ortb2.regs.gpp;
130
- data.gppSid = bidderRequest.ortb2.regs.gpp_sid;
131
- }
132
-
133
- const dto = {
134
- method: 'POST',
135
- url: `${createDomain(subDomain)}/prebid/multi/${cId}`,
136
- data: data
137
- };
138
-
139
- _each(ext, (value, key) => {
140
- dto.data['ext.' + key] = value;
141
- });
142
-
143
- return dto;
144
- }
145
-
146
- function appendUserIdsToRequestPayload(payloadRef, userIds) {
147
- let key;
148
- _each(userIds, (userId, idSystemProviderName) => {
149
- key = `uid.${idSystemProviderName}`;
20
+ const buildRequests = createBuildRequestsFn(createDomain, null, storage, BIDDER_CODE, BIDDER_VERSION, false);
150
21
 
151
- switch (idSystemProviderName) {
152
- case 'digitrustid':
153
- payloadRef[key] = deepAccess(userId, 'data.id');
154
- break;
155
- case 'lipb':
156
- payloadRef[key] = userId.lipbid;
157
- break;
158
- case 'parrableId':
159
- payloadRef[key] = userId.eid;
160
- break;
161
- case 'id5id':
162
- payloadRef[key] = userId.uid;
163
- break;
164
- default:
165
- payloadRef[key] = userId;
166
- }
167
- });
168
- }
22
+ const interpretResponse = createInterpretResponseFn(BIDDER_CODE, false);
169
23
 
170
- function buildRequests(validBidRequests, bidderRequest) {
171
- const topWindowUrl = bidderRequest.refererInfo.page || bidderRequest.refererInfo.topmostLocation;
172
- const bidderTimeout = config.getConfig('bidderTimeout');
173
- const requests = [];
174
- validBidRequests.forEach(validBidRequest => {
175
- const sizes = parseSizesInput(validBidRequest.sizes);
176
- const request = buildRequest(validBidRequest, topWindowUrl, sizes, bidderRequest, bidderTimeout);
177
- requests.push(request);
178
- });
179
- return requests;
180
- }
181
-
182
- function interpretResponse(serverResponse, request) {
183
- if (!serverResponse || !serverResponse.body) {
184
- return [];
185
- }
186
- const {bidId} = request.data;
187
- const {results} = serverResponse.body;
188
-
189
- let output = [];
190
-
191
- try {
192
- results.forEach(result => {
193
- const {
194
- creativeId,
195
- ad,
196
- price,
197
- exp,
198
- width,
199
- height,
200
- currency,
201
- metaData,
202
- advertiserDomains,
203
- mediaType = BANNER
204
- } = result;
205
- if (!ad || !price) {
206
- return;
207
- }
208
-
209
- const response = {
210
- requestId: bidId,
211
- cpm: price,
212
- width: width,
213
- height: height,
214
- creativeId: creativeId,
215
- currency: currency || CURRENCY,
216
- netRevenue: true,
217
- ttl: exp || TTL_SECONDS,
218
- };
219
-
220
- if (metaData) {
221
- Object.assign(response, {
222
- meta: metaData
223
- })
224
- } else {
225
- Object.assign(response, {
226
- meta: {
227
- advertiserDomains: advertiserDomains || []
228
- }
229
- })
230
- }
231
-
232
- if (mediaType === BANNER) {
233
- Object.assign(response, {
234
- ad: ad,
235
- });
236
- } else {
237
- Object.assign(response, {
238
- vastXml: ad,
239
- mediaType: VIDEO
240
- });
241
- }
242
- output.push(response);
243
- });
244
- return output;
245
- } catch (e) {
246
- return [];
247
- }
248
- }
249
-
250
- function getUserSyncs(syncOptions, responses, gdprConsent = {}, uspConsent = '', gppConsent = {}) {
251
- let syncs = [];
252
- const {iframeEnabled, pixelEnabled} = syncOptions;
253
- const {gdprApplies, consentString = ''} = gdprConsent;
254
- const {gppString, applicableSections} = gppConsent;
255
-
256
- const cidArr = responses.filter(resp => deepAccess(resp, 'body.cid')).map(resp => resp.body.cid).filter(uniques);
257
- let params = `?cid=${encodeURIComponent(cidArr.join(','))}&gdpr=${gdprApplies ? 1 : 0}&gdpr_consent=${encodeURIComponent(consentString || '')}&us_privacy=${encodeURIComponent(uspConsent || '')}`
258
-
259
- if (gppString && applicableSections?.length) {
260
- params += '&gpp=' + encodeURIComponent(gppString);
261
- params += '&gpp_sid=' + encodeURIComponent(applicableSections.join(','));
262
- }
263
-
264
- if (iframeEnabled) {
265
- syncs.push({
266
- type: 'iframe',
267
- url: `https://sync.tagoras.io/api/sync/iframe/${params}`
268
- });
269
- } else if (pixelEnabled) {
270
- syncs.push({
271
- type: 'image',
272
- url: `https://sync.tagoras.io/api/sync/image/${params}`
273
- });
274
- }
275
- return syncs;
276
- }
277
-
278
- export function hashCode(s, prefix = '_') {
279
- const l = s.length;
280
- let h = 0
281
- let i = 0;
282
- if (l > 0) {
283
- while (i < l) {
284
- h = (h << 5) - h + s.charCodeAt(i++) | 0;
285
- }
286
- }
287
- return prefix + h;
288
- }
289
-
290
- export function getUniqueDealId(key, expiry = UNIQUE_DEAL_ID_EXPIRY) {
291
- const storageKey = `u_${key}`;
292
- const now = Date.now();
293
- const data = getStorageItem(storageKey);
294
- let uniqueId;
295
-
296
- if (!data || !data.value || now - data.created > expiry) {
297
- uniqueId = `${key}_${now.toString()}`;
298
- setStorageItem(storageKey, uniqueId);
299
- } else {
300
- uniqueId = data.value;
301
- }
302
-
303
- return uniqueId;
304
- }
305
-
306
- export function getStorageItem(key) {
307
- try {
308
- return tryParseJSON(storage.getDataFromLocalStorage(key));
309
- } catch (e) {
310
- }
311
-
312
- return null;
313
- }
314
-
315
- export function setStorageItem(key, value, timestamp) {
316
- try {
317
- const created = timestamp || Date.now();
318
- const data = JSON.stringify({value, created});
319
- storage.setDataInLocalStorage(key, data);
320
- } catch (e) {
321
- }
322
- }
323
-
324
- export function tryParseJSON(value) {
325
- try {
326
- return JSON.parse(value);
327
- } catch (e) {
328
- return value;
329
- }
330
- }
24
+ const getUserSyncs = createUserSyncGetter({
25
+ iframeSyncUrl: 'https://sync.tagoras.io/api/sync/iframe',
26
+ imageSyncUrl: 'https://sync.tagoras.io/api/sync/image'
27
+ });
331
28
 
332
29
  export const spec = {
333
30
  code: BIDDER_CODE,
@@ -6,7 +6,6 @@ import { BANNER, VIDEO } from '../src/mediaTypes.js';
6
6
  import { config } from '../src/config.js';
7
7
  import { Renderer } from '../src/Renderer.js';
8
8
  import { parseDomain } from '../src/refererDetection.js';
9
- import { getGlobal } from '../src/prebidGlobal.js';
10
9
 
11
10
  /**
12
11
  * @typedef {import('../src/adapters/bidderFactory.js').BidRequest} BidRequest
@@ -494,7 +493,7 @@ function buildOneRequest(validBidRequests, bidderRequest) {
494
493
  payload.regs = regs;
495
494
  // < Payload
496
495
 
497
- let pbjsv = (getGlobal().version !== null) ? encodeURIComponent(getGlobal().version) : -1;
496
+ let pbjsv = 'v' + '$prebid.version$';
498
497
 
499
498
  return {
500
499
  method: 'POST',
@@ -3,7 +3,6 @@ import { ajax } from '../src/ajax.js';
3
3
  import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
4
4
  import adapterManager from '../src/adapterManager.js';
5
5
  import { EVENTS } from '../src/constants.js';
6
- import {getGlobal} from '../src/prebidGlobal.js';
7
6
 
8
7
  const emptyUrl = '';
9
8
  const analyticsType = 'endpoint';
@@ -124,7 +123,7 @@ function send(data, status) {
124
123
  search: {
125
124
  auctionTimestamp: auctionTimestamp,
126
125
  terceptAnalyticsVersion: terceptAnalyticsVersion,
127
- prebidVersion: getGlobal().version
126
+ prebidVersion: 'v' + '$prebid.version$'
128
127
  }
129
128
  });
130
129