• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

prebid / Prebid.js / 19122650799

06 Nov 2025 02:17AM UTC coverage: 96.228% (-0.008%) from 96.236%
19122650799

push

github

web-flow
Medianet Analytics Adapter: pass ext from Prebid Server Response and Prebid 10 Updates (#13825)

* Pass ext values from Prebid Server bid response to bidderRequest and use pbjs.getUserIds instead of bid.userid

* Test cases added to verify Prebid Server ext response for an Auction

* Store Prebid Server Ext Fields in pbsExt and test case updated

* fix(lint): resolve linting issues causing pipeline failure

52738 of 64615 branches covered (81.62%)

58 of 58 new or added lines in 3 files covered. (100.0%)

104 existing lines in 13 files now uncovered.

201791 of 209700 relevant lines covered (96.23%)

124.96 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

93.33
/modules/intentIqAnalyticsAdapter.js
1
import { isPlainObject, logError, logInfo } from '../src/utils.js';
1✔
2
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
3
import adapterManager from '../src/adapterManager.js';
4
import { ajax } from '../src/ajax.js';
5
import { getStorageManager } from '../src/storageManager.js';
6
import { config } from '../src/config.js';
7
import { EVENTS } from '../src/constants.js';
8
import { MODULE_TYPE_ANALYTICS } from '../src/activities/modules.js';
9
import { detectBrowser } from '../libraries/intentIqUtils/detectBrowserUtils.js';
10
import { appendSPData } from '../libraries/intentIqUtils/urlUtils.js';
11
import { appendVrrefAndFui, getReferrer } from '../libraries/intentIqUtils/getRefferer.js';
12
import { getCmpData } from '../libraries/intentIqUtils/getCmpData.js';
13
import {
14
  CLIENT_HINTS_KEY,
15
  FIRST_PARTY_KEY,
16
  VERSION,
17
  PREBID
18
} from '../libraries/intentIqConstants/intentIqConstants.js';
19
import { readData, defineStorageType } from '../libraries/intentIqUtils/storageUtils.js';
20
import { reportingServerAddress } from '../libraries/intentIqUtils/intentIqConfig.js';
21
import { handleAdditionalParams } from '../libraries/intentIqUtils/handleAdditionalParams.js';
22
import { gamPredictionReport } from '../libraries/intentIqUtils/gamPredictionReport.js';
23

24
const MODULE_NAME = 'iiqAnalytics';
1✔
25
const analyticsType = 'endpoint';
1✔
26
const storage = getStorageManager({
1✔
27
  moduleType: MODULE_TYPE_ANALYTICS,
28
  moduleName: MODULE_NAME
29
});
30
const prebidVersion = '$prebid.version$';
1✔
31
export const REPORTER_ID = Date.now() + '_' + getRandom(0, 1000);
1✔
32
const allowedStorage = defineStorageType(config.enabledStorageTypes);
1✔
33
let globalName;
34
let alreadySubscribedOnGAM = false;
1✔
35
let reportList = {};
1✔
36
let cleanReportsID;
37

38
const PARAMS_NAMES = {
1✔
39
  abTestGroup: 'abGroup',
40
  pbPauseUntil: 'pbPauseUntil',
41
  pbMonitoringEnabled: 'pbMonitoringEnabled',
42
  isInTestGroup: 'isInTestGroup',
43
  enhanceRequests: 'enhanceRequests',
44
  wasSubscribedForPrebid: 'wasSubscribedForPrebid',
45
  hadEids: 'hadEids',
46
  ABTestingConfigurationSource: 'ABTestingConfigurationSource',
47
  lateConfiguration: 'lateConfiguration',
48
  jsversion: 'jsversion',
49
  eidsNames: 'eidsNames',
50
  requestRtt: 'rtt',
51
  clientType: 'clientType',
52
  adserverDeviceType: 'AdserverDeviceType',
53
  terminationCause: 'terminationCause',
54
  callCount: 'callCount',
55
  manualCallCount: 'mcc',
56
  pubprovidedidsFailedToregister: 'ppcc',
57
  noDataCount: 'noDataCount',
58
  profile: 'profile',
59
  isProfileDeterministic: 'pidDeterministic',
60
  siteId: 'sid',
61
  hadEidsInLocalStorage: 'idls',
62
  auctionStartTime: 'ast',
63
  eidsReadTime: 'eidt',
64
  agentId: 'aid',
65
  auctionEidsLength: 'aeidln',
66
  wasServerCalled: 'wsrvcll',
67
  referrer: 'vrref',
68
  isInBrowserBlacklist: 'inbbl',
69
  prebidVersion: 'pbjsver',
70
  partnerId: 'partnerId',
71
  firstPartyId: 'pcid',
72
  placementId: 'placementId',
73
  adType: 'adType'
74
};
75

76
function getIntentIqConfig() {
77
  return config.getConfig('userSync.userIds')?.find((m) => m.name === 'intentIqId');
50!
78
}
79

80
const DEFAULT_URL = 'https://reports.intentiq.com/report';
1✔
81

82
const getDataForDefineURL = () => {
1✔
83
  const cmpData = getCmpData();
29✔
84
  const gdprDetected = cmpData.gdprString;
29✔
85

86
  return [iiqAnalyticsAnalyticsAdapter.initOptions.reportingServerAddress, gdprDetected];
29✔
87
};
88

89
const iiqAnalyticsAnalyticsAdapter = Object.assign(adapter({ url: DEFAULT_URL, analyticsType }), {
1✔
90
  initOptions: {
91
    lsValueInitialized: false,
92
    partner: null,
93
    fpid: null,
94
    currentGroup: null,
95
    dataInLs: null,
96
    eidl: null,
97
    lsIdsInitialized: false,
98
    manualWinReportEnabled: false,
99
    domainName: null,
100
    siloEnabled: false,
101
    reportMethod: null,
102
    additionalParams: null,
103
    reportingServerAddress: ''
104
  },
105
  track({ eventType, args }) {
88✔
106
    switch (eventType) {
88✔
107
      case BID_WON:
108
        bidWon(args);
28✔
109
        break;
28✔
110
      case BID_REQUESTED:
111
        checkAndInitConfig();
4✔
112
        defineGlobalVariableName();
4✔
113
        if (!alreadySubscribedOnGAM && shouldSubscribeOnGAM()) {
4✔
114
          alreadySubscribedOnGAM = true;
1✔
115
          const iiqConfig = getIntentIqConfig();
1✔
116
          gamPredictionReport(iiqConfig?.params?.gamObjectReference, bidWon);
1!
117
        }
118
        break;
4✔
119
      default:
120
        break;
56✔
121
    }
122
  }
123
});
124

125
// Events needed
126
const { BID_WON, BID_REQUESTED } = EVENTS;
1✔
127

128
function initAdapterConfig(config) {
129
  if (iiqAnalyticsAnalyticsAdapter.initOptions.lsValueInitialized) return;
72✔
130
  const iiqIdSystemConfig = getIntentIqConfig();
41✔
131

132
  if (iiqIdSystemConfig) {
41!
133
    const { manualWinReportEnabled, gamPredictReporting, reportMethod, reportingServerAddress: reportEndpoint, adUnitConfig } = config?.options || {}
41✔
134
    iiqAnalyticsAnalyticsAdapter.initOptions.lsValueInitialized = true;
41✔
135
    iiqAnalyticsAnalyticsAdapter.initOptions.partner =
41✔
136
            iiqIdSystemConfig.params?.partner && !isNaN(iiqIdSystemConfig.params.partner) ? iiqIdSystemConfig.params.partner : -1;
205!
137

138
    iiqAnalyticsAnalyticsAdapter.initOptions.browserBlackList =
41✔
139
            typeof iiqIdSystemConfig.params?.browserBlackList === 'string'
164!
140
              ? iiqIdSystemConfig.params.browserBlackList.toLowerCase()
141
              : '';
142
    iiqAnalyticsAnalyticsAdapter.initOptions.manualWinReportEnabled =
41✔
143
            manualWinReportEnabled || false;
81✔
144
    iiqAnalyticsAnalyticsAdapter.initOptions.domainName = iiqIdSystemConfig.params?.domainName || '';
41!
145
    iiqAnalyticsAnalyticsAdapter.initOptions.siloEnabled =
41✔
146
            typeof iiqIdSystemConfig.params?.siloEnabled === 'boolean' ? iiqIdSystemConfig.params.siloEnabled : false;
164!
147
    iiqAnalyticsAnalyticsAdapter.initOptions.reportMethod = parseReportingMethod(reportMethod);
41✔
148
    iiqAnalyticsAnalyticsAdapter.initOptions.additionalParams = iiqIdSystemConfig.params?.additionalParams || null;
41!
149
    iiqAnalyticsAnalyticsAdapter.initOptions.gamPredictReporting = typeof gamPredictReporting === 'boolean' ? gamPredictReporting : false;
41!
150
    iiqAnalyticsAnalyticsAdapter.initOptions.reportingServerAddress = typeof reportEndpoint === 'string' ? reportEndpoint : '';
41✔
151
    iiqAnalyticsAnalyticsAdapter.initOptions.adUnitConfig = typeof adUnitConfig === 'number' ? adUnitConfig : 1;
41✔
152
  } else {
UNCOV
153
    logError('IIQ ANALYTICS -> there is no initialized intentIqIdSystem module')
×
UNCOV
154
    iiqAnalyticsAnalyticsAdapter.initOptions.lsValueInitialized = false;
×
UNCOV
155
    iiqAnalyticsAnalyticsAdapter.initOptions.partner = -1;
×
UNCOV
156
    iiqAnalyticsAnalyticsAdapter.initOptions.reportMethod = 'GET';
×
157
  }
158
}
159

160
function initReadLsIds() {
161
  try {
30✔
162
    iiqAnalyticsAnalyticsAdapter.initOptions.dataInLs = null;
30✔
163
    iiqAnalyticsAnalyticsAdapter.initOptions.fpid = JSON.parse(
30✔
164
      readData(
165
                `${FIRST_PARTY_KEY}${
166
                    iiqAnalyticsAnalyticsAdapter.initOptions.siloEnabled
30✔
167
                        ? '_p_' + iiqAnalyticsAnalyticsAdapter.initOptions.partner
168
                        : ''
169
                }`,
170
                allowedStorage,
171
                storage
172
      )
173
    );
174
    if (iiqAnalyticsAnalyticsAdapter.initOptions.fpid) {
30✔
175
      iiqAnalyticsAnalyticsAdapter.initOptions.currentGroup = iiqAnalyticsAnalyticsAdapter.initOptions.fpid.group;
17✔
176
    }
177
    const partnerData = readData(
30✔
178
      FIRST_PARTY_KEY + '_' + iiqAnalyticsAnalyticsAdapter.initOptions.partner,
179
      allowedStorage,
180
      storage
181
    );
182
    const clientsHints = readData(CLIENT_HINTS_KEY, allowedStorage, storage) || '';
30✔
183

184
    if (partnerData) {
30✔
185
      iiqAnalyticsAnalyticsAdapter.initOptions.lsIdsInitialized = true;
4✔
186
      const pData = JSON.parse(partnerData);
4✔
187
      iiqAnalyticsAnalyticsAdapter.initOptions.terminationCause = pData.terminationCause;
4✔
188
      iiqAnalyticsAnalyticsAdapter.initOptions.dataInLs = pData.data;
4✔
189
      iiqAnalyticsAnalyticsAdapter.initOptions.eidl = pData.eidl || -1;
4✔
190
      iiqAnalyticsAnalyticsAdapter.initOptions.clientType = pData.clientType || null;
4✔
191
      iiqAnalyticsAnalyticsAdapter.initOptions.siteId = pData.siteId || null;
4✔
192
      iiqAnalyticsAnalyticsAdapter.initOptions.wsrvcll = pData.wsrvcll || false;
4✔
193
      iiqAnalyticsAnalyticsAdapter.initOptions.rrtt = pData.rrtt || null;
4✔
194
    }
195

196
    iiqAnalyticsAnalyticsAdapter.initOptions.clientsHints = clientsHints;
30✔
197
  } catch (e) {
UNCOV
198
    logError(e);
×
199
  }
200
}
201

202
function shouldSubscribeOnGAM() {
203
  const iiqConfig = getIntentIqConfig();
4✔
204
  if (!iiqConfig?.params?.gamObjectReference || !isPlainObject(iiqConfig.params.gamObjectReference)) return false;
4✔
205
  const partnerDataFromLS = readData(
1✔
206
    FIRST_PARTY_KEY + '_' + iiqAnalyticsAnalyticsAdapter.initOptions.partner,
207
    allowedStorage,
208
    storage
209
  );
210

211
  if (partnerDataFromLS) {
1✔
212
    const partnerData = JSON.parse(partnerDataFromLS);
1✔
213
    return partnerData.gpr || (!('gpr' in partnerData) && iiqAnalyticsAnalyticsAdapter.initOptions.gamPredictReporting);
1!
214
  }
UNCOV
215
  return false;
×
216
}
217

218
function shouldSendReport(isReportExternal) {
219
  return (
30✔
220
    (isReportExternal &&
90✔
221
            iiqAnalyticsAnalyticsAdapter.initOptions.manualWinReportEnabled &&
222
            !shouldSubscribeOnGAM()) ||
223
        (!isReportExternal && !iiqAnalyticsAnalyticsAdapter.initOptions.manualWinReportEnabled)
224
  );
225
}
226

227
export function restoreReportList() {
228
  reportList = {};
34✔
229
}
230

231
function checkAndInitConfig() {
232
  if (!iiqAnalyticsAnalyticsAdapter.initOptions.lsValueInitialized) {
35✔
233
    initAdapterConfig();
21✔
234
  }
235
}
236

237
function bidWon(args, isReportExternal) {
238
  checkAndInitConfig();
31✔
239

240
  if (
31!
241
    isNaN(iiqAnalyticsAnalyticsAdapter.initOptions.partner) ||
62✔
242
            iiqAnalyticsAnalyticsAdapter.initOptions.partner === -1
243
  ) {
UNCOV
244
    return;
×
245
  }
246
  const currentBrowserLowerCase = detectBrowser();
31✔
247
  if (iiqAnalyticsAnalyticsAdapter.initOptions.browserBlackList?.includes(currentBrowserLowerCase)) {
31✔
248
    logError('IIQ ANALYTICS -> Browser is in blacklist!');
1✔
249
    return;
1✔
250
  }
251

252
  if (
30✔
253
    iiqAnalyticsAnalyticsAdapter.initOptions.lsValueInitialized &&
60✔
254
            !iiqAnalyticsAnalyticsAdapter.initOptions.lsIdsInitialized
255
  ) {
256
    initReadLsIds();
30✔
257
  }
258
  if (shouldSendReport(isReportExternal)) {
30✔
259
    const preparedPayload = preparePayload(args, true);
29✔
260
    if (!preparedPayload) return false;
29!
261
    const { url, method, payload } = constructFullUrl(preparedPayload);
29✔
262
    if (method === 'POST') {
29✔
263
      ajax(url, undefined, payload, {
1✔
264
        method,
265
        contentType: 'application/x-www-form-urlencoded'
266
      });
267
    } else {
268
      ajax(url, undefined, null, { method });
28✔
269
    }
270
    logInfo('IIQ ANALYTICS -> BID WON');
29✔
271
    return true;
29✔
272
  }
273
  return false;
1✔
274
}
275

276
function parseReportingMethod(reportMethod) {
277
  if (typeof reportMethod === 'string') {
41✔
278
    switch (reportMethod.toUpperCase()) {
1!
279
      case 'GET':
UNCOV
280
        return 'GET';
×
281
      case 'POST':
282
        return 'POST';
1✔
283
      default:
UNCOV
284
        return 'GET';
×
285
    }
286
  }
287
  return 'GET';
40✔
288
}
289

290
function defineGlobalVariableName() {
291
  function reportExternalWin(args) {
292
    return bidWon(args, true);
2✔
293
  }
294

295
  const iiqConfig = getIntentIqConfig();
4✔
296
  const partnerId = iiqConfig?.params?.partner || 0;
4!
297
  globalName = `intentIqAnalyticsAdapter_${partnerId}`;
4✔
298

299
  window[globalName] = { reportExternalWin };
4✔
300
}
301

302
function getRandom(start, end) {
303
  return Math.floor(Math.random() * (end - start + 1) + start);
1✔
304
}
305

306
export function preparePayload(data) {
307
  const result = getDefaultDataObject();
32✔
308

309
  result[PARAMS_NAMES.partnerId] = iiqAnalyticsAnalyticsAdapter.initOptions.partner;
32✔
310
  result[PARAMS_NAMES.prebidVersion] = prebidVersion;
32✔
311
  result[PARAMS_NAMES.referrer] = getReferrer();
32✔
312
  result[PARAMS_NAMES.terminationCause] = iiqAnalyticsAnalyticsAdapter.initOptions.terminationCause;
32✔
313
  result[PARAMS_NAMES.abTestGroup] = iiqAnalyticsAnalyticsAdapter.initOptions.currentGroup;
32✔
314
  result[PARAMS_NAMES.clientType] = iiqAnalyticsAnalyticsAdapter.initOptions.clientType;
32✔
315
  result[PARAMS_NAMES.siteId] = iiqAnalyticsAnalyticsAdapter.initOptions.siteId;
32✔
316
  result[PARAMS_NAMES.wasServerCalled] = iiqAnalyticsAnalyticsAdapter.initOptions.wsrvcll;
32✔
317
  result[PARAMS_NAMES.requestRtt] = iiqAnalyticsAnalyticsAdapter.initOptions.rrtt;
32✔
318

319
  result[PARAMS_NAMES.isInTestGroup] = iiqAnalyticsAnalyticsAdapter.initOptions.currentGroup === 'A';
32✔
320

321
  result[PARAMS_NAMES.agentId] = REPORTER_ID;
32✔
322
  if (iiqAnalyticsAnalyticsAdapter.initOptions.fpid?.pcid) {
32✔
323
    result[PARAMS_NAMES.firstPartyId] = encodeURIComponent(iiqAnalyticsAnalyticsAdapter.initOptions.fpid.pcid);
15✔
324
  }
325
  if (iiqAnalyticsAnalyticsAdapter.initOptions.fpid?.pid) {
32!
UNCOV
326
    result[PARAMS_NAMES.profile] = encodeURIComponent(iiqAnalyticsAnalyticsAdapter.initOptions.fpid.pid);
×
327
  }
328
  prepareData(data, result);
32✔
329

330
  if (!reportList[result.placementId] || !reportList[result.placementId][result.prebidAuctionId]) {
32!
331
    reportList[result.placementId] = reportList[result.placementId]
32✔
332
      ? { ...reportList[result.placementId], [result.prebidAuctionId]: 1 }
333
      : { [result.prebidAuctionId]: 1 };
334
    cleanReportsID = setTimeout(() => {
32✔
335
      if (cleanReportsID) clearTimeout(cleanReportsID);
31✔
336
      restoreReportList();
31✔
337
    }, 1500); // clear object in 1.5 second after defining reporting list
338
  } else {
UNCOV
339
    logError('Duplication detected, report will be not sent');
×
UNCOV
340
    return;
×
341
  }
342

343
  fillEidsData(result);
32✔
344

345
  return result;
32✔
346
}
347

348
function fillEidsData(result) {
349
  if (iiqAnalyticsAnalyticsAdapter.initOptions.lsIdsInitialized) {
32✔
350
    result[PARAMS_NAMES.hadEidsInLocalStorage] =
3✔
351
            iiqAnalyticsAnalyticsAdapter.initOptions.eidl && iiqAnalyticsAnalyticsAdapter.initOptions.eidl > 0;
6✔
352
    result[PARAMS_NAMES.auctionEidsLength] = iiqAnalyticsAnalyticsAdapter.initOptions.eidl || -1;
3!
353
  }
354
}
355

356
function prepareData(data, result) {
357
  const adTypeValue = data.adType || data.mediaType;
32✔
358

359
  if (data.bidderCode) {
32✔
360
    result.bidderCode = data.bidderCode;
31✔
361
  }
362
  if (data.cpm) {
32✔
363
    result.cpm = data.cpm;
32✔
364
  }
365
  if (data.currency) {
32✔
366
    result.currency = data.currency;
32✔
367
  }
368
  if (data.originalCpm) {
32✔
369
    result.originalCpm = data.originalCpm;
31✔
370
  }
371
  if (data.originalCurrency) {
32✔
372
    result.originalCurrency = data.originalCurrency;
31✔
373
  }
374
  if (data.status) {
32✔
375
    result.status = data.status;
31✔
376
  }
377

378
  result.prebidAuctionId = data.auctionId || data.prebidAuctionId;
32✔
379

380
  if (adTypeValue) {
32✔
381
    result[PARAMS_NAMES.adType] = adTypeValue;
31✔
382
  }
383

384
  switch (iiqAnalyticsAnalyticsAdapter.initOptions.adUnitConfig) {
32!
385
    case 1:
386
      // adUnitCode or placementId
387
      result.placementId = data.adUnitCode || extractPlacementId(data) || '';
28✔
388
      break;
28✔
389
    case 2:
390
      // placementId or adUnitCode
391
      result.placementId = extractPlacementId(data) || data.adUnitCode || '';
2!
392
      break;
2✔
393
    case 3:
394
      // Only adUnitCode
395
      result.placementId = data.adUnitCode || '';
1!
396
      break;
1✔
397
    case 4:
398
      // Only placementId
399
      result.placementId = extractPlacementId(data) || '';
1!
400
      break;
1✔
401
    default:
402
      // Default (like in case #1)
UNCOV
403
      result.placementId = data.adUnitCode || extractPlacementId(data) || '';
×
404
  }
405

406
  result.biddingPlatformId = data.biddingPlatformId || 1;
32✔
407
  result.partnerAuctionId = 'BW';
32✔
408
}
409

410
function extractPlacementId(data) {
411
  if (data.placementId) {
30✔
412
    return data.placementId;
4✔
413
  }
414
  if (data.params && Array.isArray(data.params)) {
26✔
415
    for (let i = 0; i < data.params.length; i++) {
1✔
416
      if (data.params[i].placementId) {
2✔
417
        return data.params[i].placementId;
1✔
418
      }
419
    }
420
  }
421
  return null;
25✔
422
}
423

424
function getDefaultDataObject() {
425
  return {
32✔
426
    inbbl: false,
427
    pbjsver: prebidVersion,
428
    partnerAuctionId: 'BW',
429
    reportSource: 'pbjs',
430
    abGroup: 'U',
431
    jsversion: VERSION,
432
    partnerId: -1,
433
    biddingPlatformId: 1,
434
    idls: false,
435
    ast: -1,
436
    aeidln: -1
437
  };
438
}
439

440
function constructFullUrl(data) {
441
  const report = [];
29✔
442
  const reportMethod = iiqAnalyticsAnalyticsAdapter.initOptions.reportMethod;
29✔
443
  const currentBrowserLowerCase = detectBrowser();
29✔
444
  data = btoa(JSON.stringify(data));
29✔
445
  report.push(data);
29✔
446

447
  const cmpData = getCmpData();
29✔
448
  const baseUrl = reportingServerAddress(...getDataForDefineURL());
29✔
449

450
  let url =
451
        baseUrl +
29✔
452
        '?pid=' +
453
        iiqAnalyticsAnalyticsAdapter.initOptions.partner +
454
        '&mct=1' +
455
        (iiqAnalyticsAnalyticsAdapter.initOptions?.fpid
116✔
456
          ? '&iiqid=' + encodeURIComponent(iiqAnalyticsAnalyticsAdapter.initOptions.fpid.pcid)
457
          : '') +
458
        '&agid=' +
459
        REPORTER_ID +
460
        '&jsver=' +
461
        VERSION +
462
        '&source=' +
463
        PREBID +
464
        '&uh=' +
465
        encodeURIComponent(iiqAnalyticsAnalyticsAdapter.initOptions.clientsHints) +
466
        (cmpData.uspString ? '&us_privacy=' + encodeURIComponent(cmpData.uspString) : '') +
29✔
467
        (cmpData.gppString ? '&gpp=' + encodeURIComponent(cmpData.gppString) : '') +
29✔
468
        (cmpData.gdprString ? '&gdpr_consent=' + encodeURIComponent(cmpData.gdprString) + '&gdpr=1' : '&gdpr=0');
29✔
469
  url = appendSPData(url, iiqAnalyticsAnalyticsAdapter.initOptions.fpid);
29✔
470
  url = appendVrrefAndFui(url, iiqAnalyticsAnalyticsAdapter.initOptions.domainName);
29✔
471

472
  if (reportMethod === 'POST') {
29✔
473
    return { url, method: 'POST', payload: JSON.stringify(report) };
1✔
474
  }
475
  url += '&payload=' + encodeURIComponent(JSON.stringify(report));
28✔
476
  url = handleAdditionalParams(
28✔
477
    currentBrowserLowerCase,
478
    url,
479
    2,
480
    iiqAnalyticsAnalyticsAdapter.initOptions.additionalParams
481
  );
482
  return { url, method: 'GET' };
28✔
483
}
484

485
iiqAnalyticsAnalyticsAdapter.originEnableAnalytics = iiqAnalyticsAnalyticsAdapter.enableAnalytics;
1✔
486

487
iiqAnalyticsAnalyticsAdapter.enableAnalytics = function (myConfig) {
1✔
488
  iiqAnalyticsAnalyticsAdapter.originEnableAnalytics(myConfig); // call the base class function
51✔
489
  initAdapterConfig(myConfig)
51✔
490
};
491
adapterManager.registerAnalyticsAdapter({
1✔
492
  adapter: iiqAnalyticsAnalyticsAdapter,
493
  code: MODULE_NAME
494
});
495

496
export default iiqAnalyticsAnalyticsAdapter;
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc