prebid.js 7.24.0 → 7.26.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 (191) hide show
  1. package/dist/33acrossBidAdapter.js +1 -1
  2. package/dist/adagioBidAdapter.js +1 -1
  3. package/dist/adbookpspBidAdapter.js +1 -1
  4. package/dist/adgenerationBidAdapter.js +1 -1
  5. package/dist/admaticBidAdapter.js +1 -1
  6. package/dist/adrelevantisBidAdapter.js +1 -1
  7. package/dist/adtrgtmeBidAdapter.js +1 -1
  8. package/dist/adxcgBidAdapter.js +1 -1
  9. package/dist/ajaBidAdapter.js +1 -1
  10. package/dist/amxBidAdapter.js +1 -1
  11. package/dist/amxIdSystem.js +1 -1
  12. package/dist/appierAnalyticsAdapter.js +1 -1
  13. package/dist/appnexusBidAdapter.js +1 -1
  14. package/dist/asoBidAdapter.js +1 -1
  15. package/dist/axonixBidAdapter.js +1 -1
  16. package/dist/beopBidAdapter.js +1 -1
  17. package/dist/bidglassBidAdapter.js +1 -1
  18. package/dist/big-richmediaBidAdapter.js +1 -1
  19. package/dist/bridgewellBidAdapter.js +1 -1
  20. package/dist/brightMountainMediaBidAdapter.js +1 -1
  21. package/dist/captifyRtdProvider.js +1 -0
  22. package/dist/carodaBidAdapter.js +1 -1
  23. package/dist/chtnwBidAdapter.js +1 -1
  24. package/dist/concertBidAdapter.js +1 -1
  25. package/dist/connectadBidAdapter.js +1 -1
  26. package/dist/consumableBidAdapter.js +1 -1
  27. package/dist/conversantBidAdapter.js +1 -1
  28. package/dist/craftBidAdapter.js +1 -1
  29. package/dist/criteoBidAdapter.js +1 -1
  30. package/dist/discoveryBidAdapter.js +1 -1
  31. package/dist/dspxBidAdapter.js +1 -1
  32. package/dist/eplanningBidAdapter.js +1 -1
  33. package/dist/finativeBidAdapter.js +1 -1
  34. package/dist/glimpseBidAdapter.js +1 -1
  35. package/dist/gmosspBidAdapter.js +1 -1
  36. package/dist/goldbachBidAdapter.js +1 -1
  37. package/dist/gridBidAdapter.js +1 -1
  38. package/dist/gridNMBidAdapter.js +1 -1
  39. package/dist/gumgumBidAdapter.js +1 -1
  40. package/dist/h12mediaBidAdapter.js +1 -1
  41. package/dist/id5IdSystem.js +1 -1
  42. package/dist/improvedigitalBidAdapter.js +1 -1
  43. package/dist/inmarBidAdapter.js +1 -1
  44. package/dist/insticatorBidAdapter.js +1 -1
  45. package/dist/ixBidAdapter.js +1 -1
  46. package/dist/justpremiumBidAdapter.js +1 -1
  47. package/dist/kargoBidAdapter.js +1 -1
  48. package/dist/konduitAnalyticsAdapter.js +1 -1
  49. package/dist/kueezBidAdapter.js +1 -1
  50. package/dist/kueezRtbBidAdapter.js +1 -1
  51. package/dist/lassoBidAdapter.js +1 -1
  52. package/dist/lifestreetBidAdapter.js +1 -1
  53. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  54. package/dist/logicadBidAdapter.js +1 -1
  55. package/dist/loglyliftBidAdapter.js +1 -1
  56. package/dist/magniteAnalyticsAdapter.js +1 -1
  57. package/dist/malltvAnalyticsAdapter.js +1 -1
  58. package/dist/marsmediaBidAdapter.js +1 -1
  59. package/dist/mediafuseBidAdapter.js +1 -1
  60. package/dist/mediasquareBidAdapter.js +1 -1
  61. package/dist/mgidBidAdapter.js +1 -1
  62. package/dist/microadBidAdapter.js +1 -1
  63. package/dist/minutemediaBidAdapter.js +1 -1
  64. package/dist/nextMillenniumBidAdapter.js +1 -1
  65. package/dist/not-for-prod/prebid.js +154 -120
  66. package/dist/oguryBidAdapter.js +1 -1
  67. package/dist/onetagBidAdapter.js +1 -1
  68. package/dist/ooloAnalyticsAdapter.js +1 -1
  69. package/dist/outbrainBidAdapter.js +1 -1
  70. package/dist/parrableIdSystem.js +1 -1
  71. package/dist/pixfutureBidAdapter.js +1 -1
  72. package/dist/prebid-core.js +1 -1
  73. package/dist/publinkIdSystem.js +1 -1
  74. package/dist/pubmaticBidAdapter.js +1 -1
  75. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  76. package/dist/pxyzBidAdapter.js +1 -1
  77. package/dist/quantcastBidAdapter.js +1 -1
  78. package/dist/readpeakBidAdapter.js +1 -1
  79. package/dist/relaidoBidAdapter.js +1 -1
  80. package/dist/rhythmoneBidAdapter.js +1 -1
  81. package/dist/riseBidAdapter.js +1 -1
  82. package/dist/rubiconAnalyticsAdapter.js +1 -1
  83. package/dist/rubiconBidAdapter.js +1 -1
  84. package/dist/seedingAllianceBidAdapter.js +1 -1
  85. package/dist/seedtagBidAdapter.js +1 -1
  86. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  87. package/dist/sharethroughBidAdapter.js +1 -1
  88. package/dist/shinezBidAdapter.js +1 -1
  89. package/dist/smaatoBidAdapter.js +1 -1
  90. package/dist/smartadserverBidAdapter.js +1 -1
  91. package/dist/smartxBidAdapter.js +1 -1
  92. package/dist/smartytechBidAdapter.js +1 -0
  93. package/dist/smilewantedBidAdapter.js +1 -1
  94. package/dist/sonobiBidAdapter.js +1 -1
  95. package/dist/sovrnAnalyticsAdapter.js +1 -1
  96. package/dist/sovrnBidAdapter.js +1 -1
  97. package/dist/sspBCBidAdapter.js +1 -1
  98. package/dist/sublimeBidAdapter.js +1 -1
  99. package/dist/synacormediaBidAdapter.js +1 -1
  100. package/dist/taboolaBidAdapter.js +1 -1
  101. package/dist/tappxBidAdapter.js +1 -1
  102. package/dist/targetVideoBidAdapter.js +1 -1
  103. package/dist/teadsBidAdapter.js +1 -1
  104. package/dist/trionBidAdapter.js +1 -1
  105. package/dist/tripleliftBidAdapter.js +1 -1
  106. package/dist/ttdBidAdapter.js +1 -1
  107. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  108. package/dist/underdogmediaBidAdapter.js +1 -1
  109. package/dist/undertoneBidAdapter.js +1 -1
  110. package/dist/userId.js +1 -1
  111. package/dist/vidazooBidAdapter.js +1 -1
  112. package/dist/videobyteBidAdapter.js +1 -1
  113. package/dist/viqeoBidAdapter.js +1 -0
  114. package/dist/visxBidAdapter.js +1 -1
  115. package/dist/vuukleBidAdapter.js +1 -1
  116. package/dist/widespaceBidAdapter.js +1 -1
  117. package/dist/winrBidAdapter.js +1 -1
  118. package/dist/yahoosspBidAdapter.js +1 -1
  119. package/dist/yieldlabBidAdapter.js +1 -1
  120. package/dist/yieldmoBidAdapter.js +1 -1
  121. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  122. package/dist/zeta_global_sspBidAdapter.js +1 -1
  123. package/dist/zeusPrimeRtdProvider.js +31 -0
  124. package/integrationExamples/gpt/captifyRtdProvider_example.html +167 -0
  125. package/modules/.submodules.json +3 -1
  126. package/modules/adagioBidAdapter.js +1 -1
  127. package/modules/admaticBidAdapter.js +108 -59
  128. package/modules/admaticBidAdapter.md +2 -2
  129. package/modules/beopBidAdapter.js +17 -2
  130. package/modules/captifyRtdProvider.js +146 -0
  131. package/modules/captifyRtdProvider.md +68 -0
  132. package/modules/concertBidAdapter.js +17 -3
  133. package/modules/conversantAnalyticsAdapter.md +12 -13
  134. package/modules/conversantBidAdapter.md +3 -3
  135. package/modules/discoveryBidAdapter.js +38 -17
  136. package/modules/discoveryBidAdapter.md +7 -6
  137. package/modules/gridBidAdapter.js +440 -22
  138. package/modules/kargoBidAdapter.js +14 -8
  139. package/modules/magniteAnalyticsAdapter.js +1 -1
  140. package/modules/microadBidAdapter.js +22 -11
  141. package/modules/nextMillenniumBidAdapter.js +20 -24
  142. package/modules/oguryBidAdapter.js +5 -2
  143. package/modules/pubmaticBidAdapter.js +1 -1
  144. package/modules/seedtagBidAdapter.js +9 -4
  145. package/modules/smartadserverBidAdapter.js +6 -2
  146. package/modules/smartxBidAdapter.js +10 -7
  147. package/modules/smartytechBidAdapter.js +78 -0
  148. package/modules/smartytechBidAdapter.md +44 -0
  149. package/modules/taboolaBidAdapter.js +3 -3
  150. package/modules/taboolaBidAdapter.md +0 -2
  151. package/modules/tappxBidAdapter.js +21 -6
  152. package/modules/ttdBidAdapter.js +4 -3
  153. package/modules/userId/index.js +1 -1
  154. package/modules/vidazooBidAdapter.js +29 -3
  155. package/modules/viqeoBidAdapter.js +180 -0
  156. package/modules/viqeoBidAdapter.md +56 -0
  157. package/modules/yieldlabBidAdapter.js +19 -8
  158. package/modules/yieldmoBidAdapter.js +22 -8
  159. package/modules/yieldoneBidAdapter.js +60 -8
  160. package/modules/yieldoneBidAdapter.md +109 -9
  161. package/modules/zeta_global_sspBidAdapter.js +4 -0
  162. package/modules/zeusPrimeRtdProvider.js +357 -0
  163. package/modules/zeusPrimeRtdProvider.md +60 -0
  164. package/package.json +1 -1
  165. package/src/adloader.js +0 -1
  166. package/test/spec/modules/adagioBidAdapter_spec.js +2 -2
  167. package/test/spec/modules/admaticBidAdapter_spec.js +262 -3
  168. package/test/spec/modules/beopBidAdapter_spec.js +52 -0
  169. package/test/spec/modules/captifyRtdProvider_spec.js +253 -0
  170. package/test/spec/modules/concertBidAdapter_spec.js +26 -15
  171. package/test/spec/modules/discoveryBidAdapter_spec.js +9 -8
  172. package/test/spec/modules/gridBidAdapter_spec.js +289 -1
  173. package/test/spec/modules/kargoBidAdapter_spec.js +76 -4
  174. package/test/spec/modules/magniteAnalyticsAdapter_spec.js +20 -0
  175. package/test/spec/modules/microadBidAdapter_spec.js +48 -0
  176. package/test/spec/modules/nextMillenniumBidAdapter_spec.js +4 -3
  177. package/test/spec/modules/oguryBidAdapter_spec.js +27 -5
  178. package/test/spec/modules/pubmaticBidAdapter_spec.js +2 -2
  179. package/test/spec/modules/seedtagBidAdapter_spec.js +34 -10
  180. package/test/spec/modules/smartadserverBidAdapter_spec.js +80 -0
  181. package/test/spec/modules/smartxBidAdapter_spec.js +32 -0
  182. package/test/spec/modules/smartytechBidAdapter_spec.js +162 -0
  183. package/test/spec/modules/taboolaBidAdapter_spec.js +0 -77
  184. package/test/spec/modules/ttdBidAdapter_spec.js +13 -0
  185. package/test/spec/modules/vidazooBidAdapter_spec.js +1 -0
  186. package/test/spec/modules/viqeoBidAdapter_spec.js +124 -0
  187. package/test/spec/modules/yieldlabBidAdapter_spec.js +125 -0
  188. package/test/spec/modules/yieldmoBidAdapter_spec.js +3 -4
  189. package/test/spec/modules/yieldoneBidAdapter_spec.js +30 -6
  190. package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +16 -1
  191. package/test/spec/modules/zeusPrimeRtdProvider_spec.js +410 -0
@@ -0,0 +1,357 @@
1
+ /**
2
+ * This module adds Zeus Insights For Publishers (ZIP) provider to the real time data module
3
+ * The {@link module:modules/realTimeData} module is required
4
+ *
5
+ * This module will request the article topics for the current page and add them as page keyvalues
6
+ * for the ad requests.
7
+ *
8
+ * @module modules/zeusInsightsForPublishersRtdProvider
9
+ * @requires module:modules/realTimeData
10
+ */
11
+
12
+ import { logInfo, logError, logWarn, logMessage } from '../src/utils.js'
13
+ import { submodule } from '../src/hook.js'
14
+ import { ajaxBuilder } from '../src/ajax.js'
15
+
16
+ class Logger {
17
+ get showDebug() {
18
+ if (this._showDebug === true || this._showDebug === false) {
19
+ return this._showDebug
20
+ }
21
+
22
+ return window.zeusPrime?.debug || false
23
+ }
24
+ set showDebug(shouldShow) {
25
+ this._showDebug = shouldShow
26
+ }
27
+
28
+ get error() {
29
+ return logError.bind(this, 'zeusPrimeRtdProvider: ')
30
+ }
31
+ get warn() {
32
+ return logWarn.bind(this, 'zeusPrimeRtdProvider: ')
33
+ }
34
+ get info() {
35
+ return logInfo.bind(this, 'zeusPrimeRtdProvider: ')
36
+ }
37
+ get debug() {
38
+ if (this.showDebug) {
39
+ return logMessage.bind(this, 'zeusPrimeRtdProvider: ')
40
+ }
41
+
42
+ return () => {}
43
+ }
44
+ }
45
+
46
+ var logger = new Logger()
47
+
48
+ function loadCommandQueue() {
49
+ window.zeusPrime = window.zeusPrime || { cmd: [] }
50
+ const queue = [...window.zeusPrime.cmd]
51
+
52
+ window.zeusPrime.cmd = []
53
+ window.zeusPrime.cmd.push = (callback) => {
54
+ callback(window.zeusPrime)
55
+ }
56
+
57
+ queue.forEach((callback) => callback(window.zeusPrime))
58
+ }
59
+
60
+ function markStatusComplete(key) {
61
+ const status = window?.zeusPrime?.status
62
+ if (status) {
63
+ status[key] = true
64
+ }
65
+ }
66
+
67
+ function createStatus() {
68
+ if (window.zeusPrime && !window.zeusPrime.status) {
69
+ Object.defineProperty(window.zeusPrime, 'status', {
70
+ enumerable: false,
71
+ value: {
72
+ initComplete: false,
73
+ primeKeyValueSet: false,
74
+ insightsReqSent: false,
75
+ insightsReqReceived: false,
76
+ insightsKeyValueSet: false,
77
+ scriptComplete: false,
78
+ },
79
+ })
80
+ }
81
+ }
82
+
83
+ function loadPrimeQueryParams() {
84
+ try {
85
+ const params = new URLSearchParams(window.location.search)
86
+ params.forEach((paramValue, paramKey) => {
87
+ if (!paramKey.startsWith('zeus_prime_')) {
88
+ return
89
+ }
90
+
91
+ let key = paramKey.replace('zeus_prime_', '')
92
+ let value = paramValue.toLowerCase()
93
+
94
+ if (value === 'true' || value === '1') {
95
+ value = true
96
+ } else if (value === 'false' || value === '0') {
97
+ value = false
98
+ }
99
+
100
+ window.zeusPrime[key] = value
101
+ })
102
+ } catch (_) {}
103
+ }
104
+
105
+ const DEFAULT_API = 'https://insights.zeustechnology.com'
106
+
107
+ function init(gamId = null, options = {}) {
108
+ window.zeusPrime = window.zeusPrime || { cmd: [] }
109
+
110
+ window.zeusPrime.gamId = gamId || options.gamId || window.zeusPrime.gamId || undefined
111
+ window.zeusPrime.api = DEFAULT_API
112
+ window.zeusPrime.hostname = options.hostname || window.location?.hostname || ''
113
+ window.zeusPrime.pathname = options.pathname || window.location?.pathname || ''
114
+ window.zeusPrime.pageUrl = `${window.zeusPrime.hostname}${window.zeusPrime.pathname}`
115
+ window.zeusPrime.pageHash = options.pageHash || null
116
+ window.zeusPrime.debug = window.zeusPrime.debug || options.debug === true || false
117
+ window.zeusPrime.disabled = window.zeusPrime.disabled || options.disabled === true || false
118
+
119
+ loadPrimeQueryParams()
120
+
121
+ logger.showDebug = window.zeusPrime.debug
122
+
123
+ createStatus()
124
+ markStatusComplete('initComplete')
125
+ }
126
+
127
+ function setTargeting() {
128
+ const { gamId, hostname } = window.zeusPrime
129
+
130
+ if (typeof gamId !== 'string') {
131
+ throw new Error(`window.zeusPrime.gamId must be a string. Received: ${String(gamId)}`)
132
+ }
133
+
134
+ addKeyValueToGoogletag(`zeus_${gamId}`, hostname)
135
+ logger.debug(`Setting zeus_${gamId}=${hostname}`)
136
+ markStatusComplete('primeKeyValueSet')
137
+ }
138
+
139
+ function setPrimeAsDisabled() {
140
+ addKeyValueToGoogletag('zeus_prime', 'false')
141
+ logger.debug('Disabling prime; Setting key-value zeus_prime to false')
142
+ }
143
+
144
+ function addKeyValueToGoogletag(key, value) {
145
+ window.googletag = window.googletag || { cmd: [] }
146
+ window.googletag.cmd.push(function () {
147
+ window.googletag.pubads().setTargeting(key, value)
148
+ })
149
+ }
150
+
151
+ function isInsightsPage(pathname = '') {
152
+ const NOT_SECTIONS = [
153
+ {
154
+ test: /\/search/,
155
+ type: 'search',
156
+ },
157
+ {
158
+ test: /\/author/,
159
+ type: 'author',
160
+ },
161
+ {
162
+ test: /\/event/,
163
+ type: 'event',
164
+ },
165
+ {
166
+ test: /\/homepage/,
167
+ type: 'front',
168
+ },
169
+ {
170
+ test: /^\/?$/,
171
+ type: 'front',
172
+ },
173
+ ]
174
+
175
+ const typeObj = NOT_SECTIONS.find((pg) => pathname.match(pg.test))
176
+ return typeObj === undefined
177
+ }
178
+
179
+ async function getUrlHash(canonical) {
180
+ try {
181
+ const buf = await window.crypto.subtle.digest(
182
+ 'SHA-1',
183
+ new TextEncoder('utf-8').encode(canonical)
184
+ )
185
+ const hashed = Array.prototype.map
186
+ .call(new Uint8Array(buf), (x) => `00${x.toString(16)}`.slice(-2))
187
+ .join('')
188
+
189
+ return hashed
190
+ } catch (e) {
191
+ logger.error('Failed to load hash', e.message)
192
+ logger.debug('Exception', e)
193
+ return ''
194
+ }
195
+ }
196
+
197
+ async function sendPrebidRequest(url) {
198
+ return new Promise((resolve, reject) => {
199
+ const ajax = ajaxBuilder()
200
+ ajax(url, {
201
+ success: (responseText, response) => {
202
+ resolve({
203
+ ...response,
204
+ status: response.status,
205
+ json: () => JSON.parse(responseText),
206
+ })
207
+ },
208
+
209
+ error: (responseText, response) => {
210
+ if (!response.status) {
211
+ reject(response)
212
+ }
213
+
214
+ let json = responseText
215
+ if (responseText) {
216
+ try {
217
+ json = JSON.parse(responseText)
218
+ } catch (_) {
219
+ json = null
220
+ }
221
+ }
222
+
223
+ resolve({
224
+ status: response.status,
225
+ json: () => json || null,
226
+ responseValue: json,
227
+ })
228
+ },
229
+ })
230
+ })
231
+ }
232
+
233
+ async function requestTopics() {
234
+ const { api, hostname, pageUrl } = window.zeusPrime
235
+
236
+ if (!window.zeusPrime.pageHash) {
237
+ window.zeusPrime.pageHash = await getUrlHash(pageUrl)
238
+ }
239
+
240
+ const pageHash = window.zeusPrime.pageHash
241
+ const zeusInsightsUrl = `${api}/${hostname}/${pageHash}?article_location=${pageUrl}`
242
+
243
+ logger.debug('Requesting topics', zeusInsightsUrl)
244
+ try {
245
+ markStatusComplete('insightsReqSent')
246
+ const response = await sendPrebidRequest(zeusInsightsUrl)
247
+ if (response.status === 200) {
248
+ logger.debug('topics found')
249
+ markStatusComplete('insightsReqReceived')
250
+ return await response.json()
251
+ } else if (
252
+ response.status === 204 ||
253
+ response.status < 200 ||
254
+ (response.status >= 300 && response.status <= 399)
255
+ ) {
256
+ logger.debug('no topics found')
257
+ markStatusComplete('insightsReqReceived')
258
+ return null
259
+ } else {
260
+ logger.error(`Topics request returned error: ${response.status}`)
261
+ markStatusComplete('insightsReqReceived')
262
+ return null
263
+ }
264
+ } catch (e) {
265
+ logger.error('failed to request topics', e)
266
+ return null
267
+ }
268
+ }
269
+
270
+ function setTopicsTargeting(topics = []) {
271
+ if (topics.length === 0) {
272
+ return
273
+ }
274
+
275
+ window.googletag = window.googletag || { cmd: [] }
276
+ window.googletag.cmd.push(function () {
277
+ window.googletag.pubads().setTargeting('zeus_insights', topics)
278
+ })
279
+
280
+ markStatusComplete('insightsKeyValueSet')
281
+ }
282
+
283
+ async function startTopicsRequest() {
284
+ if (isInsightsPage(window.zeusPrime.pathname)) {
285
+ const response = await requestTopics()
286
+ if (response) {
287
+ setTopicsTargeting(response?.topics)
288
+ }
289
+ } else {
290
+ logger.debug('This page is not eligible for topics, request will be skipped')
291
+ }
292
+ }
293
+
294
+ async function run(gamId, options = {}) {
295
+ logger.showDebug = options.debug || false
296
+
297
+ try {
298
+ init(gamId, options)
299
+ loadCommandQueue()
300
+
301
+ if (window.zeusPrime.disabled) {
302
+ setPrimeAsDisabled()
303
+ } else {
304
+ setTargeting()
305
+ await startTopicsRequest()
306
+ }
307
+ } catch (e) {
308
+ logger.error('Failed to run.', e.message || e)
309
+ } finally {
310
+ markStatusComplete('scriptComplete')
311
+ }
312
+ }
313
+
314
+ /**
315
+ * @preserve
316
+ * Initializes the ZeusPrime RTD Submodule. The config provides the GamID for this
317
+ * site that is used to configure Prime.
318
+ * @param {object} config The Prebid configuration for this module.
319
+ * @param {object} config.params The parameters for this module.
320
+ * @param {string} config.params.gamId The Gam ID (or Network Code) in GAM for this site.
321
+ */
322
+ function initModule(config) {
323
+ const { params } = config || {}
324
+ const { gamId, ...rest } = params || {}
325
+ run(gamId, rest)
326
+ }
327
+
328
+ /**
329
+ * @preserve
330
+ * @type {RtdSubmodule}
331
+ */
332
+ const zeusPrimeSubmodule = {
333
+ /**
334
+ * @preserve
335
+ * The name of the plugin.
336
+ * @type {string}
337
+ */
338
+ name: 'zeusPrime',
339
+
340
+ /**
341
+ * @preserve
342
+ * ZeusPrime use
343
+ */
344
+ init: initModule,
345
+ }
346
+
347
+ /**
348
+ * @preserve
349
+ * Register the Sub Module.
350
+ */
351
+ function registerSubModule() {
352
+ submodule('realTimeData', zeusPrimeSubmodule)
353
+ }
354
+
355
+ registerSubModule()
356
+
357
+ export { zeusPrimeSubmodule }
@@ -0,0 +1,60 @@
1
+ # Overview
2
+
3
+ Module Name: Zeus Prime RTD Provider
4
+ Module Type: Rtd Provider
5
+ Maintainer: support@zeustechnology.com
6
+
7
+ ## Description
8
+
9
+ The Zeus Prime RTD Provider provides integration of Zeus Prime onto sites with Prebid. This module will request information from Zeus Prime servers to add the page level targeting required for Prime into the customer's ad setup.
10
+
11
+ Zeus Prime runs as soon as the code is initialized, so it can retrieve the information required from the Zeus Prime server to create the targeting key-values. Zeus Prime will provide two page level key-values: `zeus_<yourGamId>` and `zeus_insights`. Zeus Prime provides contextual information about a pages content, and does not provide user information that could present privacy implications.
12
+
13
+ For more information and help with setting up Zeus Prime, see the [onboarding documentation site](https://onboarding.zeustechnology.com).
14
+
15
+ ## Usage
16
+
17
+ To use Zeus Prime, add `zeusPrimeRtdProvider` into your Prebid build:
18
+
19
+ ```
20
+ gulp build --modules=rtdModule,zeusPrimeRtdProvider
21
+ ```
22
+
23
+ > Note that the global RTD module, `rtdModule`, is required for the Zeus Prime RTD module.
24
+
25
+ Once the code is included, configure Zeus Prime in your Prebid configuration:
26
+
27
+ ```javascript
28
+ pbjs.setConfig({
29
+ ...,
30
+ realTimeData: {
31
+ dataProviders: [{
32
+ name: 'zeusPrime',
33
+ waitForIt: false,
34
+ params: {
35
+ gamId: '<yourGamId>'
36
+ }
37
+ }]
38
+ },
39
+ ...
40
+ })
41
+ ```
42
+
43
+ ## Parameters
44
+
45
+ The parameters below describe the configuration object used to configure Zeus Prime.
46
+
47
+ | Name | Type | Description | Default |
48
+ |------------------------|----------|-----------------------------------------------------------------------------------------------|---------|
49
+ | name | String | This will always be `zeusPrime` | - |
50
+ | waitForIt | Boolean | Should be false since Zeus Prime runs on initial load and not during the bidding cycle. | `false` |
51
+ | params | Object | | - |
52
+ | params.gamId | String | The gamId or Google Ad Manager Network Code to access your Google Ad Manager instance. | - |
53
+
54
+ ### `gamId` Parameter
55
+
56
+ Zeus Prime requires the gamId parameter, or the Google Ad Manager Network Code, to reference your account. See the [Google documentation](https://support.google.com/admanager/answer/7674889?hl=en) to find out where you can retrieve the Network Code.
57
+
58
+ ## Troubleshooting
59
+
60
+ For troubleshooting steps and guides to assist with verifying your Zeus Prime installation, see our [installation documentation](https://onboarding.zeustechnology.com/docs/installation).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prebid.js",
3
- "version": "7.24.0",
3
+ "version": "7.26.0",
4
4
  "description": "Header Bidding Management Library",
5
5
  "main": "src/prebid.js",
6
6
  "scripts": {
package/src/adloader.js CHANGED
@@ -6,7 +6,6 @@ const _requestCache = new WeakMap();
6
6
  const _approvedLoadExternalJSList = [
7
7
  'debugging',
8
8
  'adloox',
9
- 'admatic',
10
9
  'criteo',
11
10
  'outstream',
12
11
  'adagio',
@@ -400,7 +400,7 @@ describe('Adagio bid adapter', () => {
400
400
  skipafter: 4,
401
401
  minduration: 10,
402
402
  maxduration: 30,
403
- placement: [3],
403
+ placement: 3,
404
404
  protocols: [8]
405
405
  }
406
406
  }).build();
@@ -415,7 +415,7 @@ describe('Adagio bid adapter', () => {
415
415
  skipafter: 4,
416
416
  minduration: 10,
417
417
  maxduration: 30,
418
- placement: [3],
418
+ placement: 3,
419
419
  protocols: [8],
420
420
  w: 300,
421
421
  h: 250