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

prebid / Prebid.js / 20273590687

16 Dec 2025 03:36PM UTC coverage: 96.204% (-0.004%) from 96.208%
20273590687

push

github

web-flow
Allegro Bid Adapter: initial release (#14111)

* Allegro Bid Adapter implementation

* copilot review fixes

* Update test/spec/modules/allegroBidAdapter_spec.js

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* tmp

* Revert "tmp"

This reverts commit a200026cb.

* retry tests

* trigger tests

* send requests with `text/plain` header

* update docs

* update docs

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Patrick McCann <patmmccann@gmail.com>
Co-authored-by: tkogut-allegro <tomasz.kogut@allegro.com>

41437 of 50987 branches covered (81.27%)

185 of 200 new or added lines in 2 files covered. (92.5%)

4 existing lines in 3 files now uncovered.

207284 of 215462 relevant lines covered (96.2%)

71.29 hits per line

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

93.75
/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 { EVENTS } from '../src/constants.js';
6
import { detectBrowser } from '../libraries/intentIqUtils/detectBrowserUtils.js';
7
import { appendSPData } from '../libraries/intentIqUtils/urlUtils.js';
8
import { appendVrrefAndFui, getReferrer } from '../libraries/intentIqUtils/getRefferer.js';
9
import { getCmpData } from '../libraries/intentIqUtils/getCmpData.js';
10
import {
11
  VERSION,
12
  PREBID,
13
  WITH_IIQ
14
} from '../libraries/intentIqConstants/intentIqConstants.js';
15
import { reportingServerAddress } from '../libraries/intentIqUtils/intentIqConfig.js';
16
import { handleAdditionalParams } from '../libraries/intentIqUtils/handleAdditionalParams.js';
17
import { gamPredictionReport } from '../libraries/intentIqUtils/gamPredictionReport.js';
18
import { defineABTestingGroup } from '../libraries/intentIqUtils/defineABTestingGroupUtils.js';
19

20
const MODULE_NAME = 'iiqAnalytics';
1✔
21
const analyticsType = 'endpoint';
1✔
22
const prebidVersion = '$prebid.version$';
1✔
23
export const REPORTER_ID = Date.now() + '_' + getRandom(0, 1000);
1✔
24
let globalName;
25
let identityGlobalName;
26
let alreadySubscribedOnGAM = false;
1✔
27
let reportList = {};
1✔
28
let cleanReportsID;
29
let iiqConfig;
30

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

70
const DEFAULT_URL = 'https://reports.intentiq.com/report';
1✔
71

72
const getDataForDefineURL = () => {
1✔
73
  const cmpData = getCmpData();
29✔
74
  const gdprDetected = cmpData.gdprString;
29✔
75

76
  return [iiqAnalyticsAnalyticsAdapter.initOptions.reportingServerAddress, gdprDetected];
29✔
77
};
78

79
const getDefaultInitOptions = () => {
1✔
80
  return {
61✔
81
    adapterConfigInitialized: false,
82
    partner: null,
83
    fpid: null,
84
    currentGroup: null,
85
    dataInLs: null,
86
    eidl: null,
87
    dataIdsInitialized: false,
88
    manualWinReportEnabled: false,
89
    domainName: null,
90
    siloEnabled: false,
91
    reportMethod: null,
92
    abPercentage: null,
93
    abTestUuid: null,
94
    additionalParams: null,
95
    reportingServerAddress: ''
96
  }
97
}
98

99
const iiqAnalyticsAnalyticsAdapter = Object.assign(adapter({ url: DEFAULT_URL, analyticsType }), {
1✔
100
  initOptions: getDefaultInitOptions(),
101
  track({ eventType, args }) {
62✔
102
    switch (eventType) {
62✔
103
      case BID_WON:
104
        bidWon(args);
29✔
105
        break;
29✔
106
      case BID_REQUESTED:
107
        if (!alreadySubscribedOnGAM && shouldSubscribeOnGAM()) {
4✔
108
          alreadySubscribedOnGAM = true;
1✔
109
          gamPredictionReport(iiqConfig?.gamObjectReference, bidWon);
1✔
110
        }
111
        break;
4✔
112
      default:
113
        break;
29✔
114
    }
115
  }
116
});
117

118
// Events needed
119
const { BID_WON, BID_REQUESTED } = EVENTS;
1✔
120

121
function initAdapterConfig(config) {
122
  if (iiqAnalyticsAnalyticsAdapter.initOptions.adapterConfigInitialized) return;
60!
123

124
  const options = config?.options || {}
60!
125
  iiqConfig = options
60✔
126
  const { manualWinReportEnabled, gamPredictReporting, reportMethod, reportingServerAddress, adUnitConfig, partner, ABTestingConfigurationSource, browserBlackList, domainName, additionalParams } = options
60✔
127
  iiqAnalyticsAnalyticsAdapter.initOptions.manualWinReportEnabled =
60✔
128
            manualWinReportEnabled || false;
119✔
129
  iiqAnalyticsAnalyticsAdapter.initOptions.reportMethod = parseReportingMethod(reportMethod);
60✔
130
  iiqAnalyticsAnalyticsAdapter.initOptions.gamPredictReporting = typeof gamPredictReporting === 'boolean' ? gamPredictReporting : false;
60!
131
  iiqAnalyticsAnalyticsAdapter.initOptions.reportingServerAddress = typeof reportingServerAddress === 'string' ? reportingServerAddress : '';
60✔
132
  iiqAnalyticsAnalyticsAdapter.initOptions.adUnitConfig = typeof adUnitConfig === 'number' ? adUnitConfig : 1;
60✔
133
  iiqAnalyticsAnalyticsAdapter.initOptions.configSource = ABTestingConfigurationSource;
60✔
134
  iiqAnalyticsAnalyticsAdapter.initOptions.currentGroup = defineABTestingGroup(options);
60✔
135
  iiqAnalyticsAnalyticsAdapter.initOptions.idModuleConfigInitialized = true;
60✔
136
  iiqAnalyticsAnalyticsAdapter.initOptions.browserBlackList =
60✔
137
        typeof browserBlackList === 'string'
60✔
138
          ? browserBlackList.toLowerCase()
139
          : '';
140
  iiqAnalyticsAnalyticsAdapter.initOptions.domainName = domainName || '';
60✔
141
  iiqAnalyticsAnalyticsAdapter.initOptions.additionalParams = additionalParams || null;
60✔
142
  if (!partner) {
60!
143
    logError('IIQ ANALYTICS -> partner ID is missing');
×
144
    iiqAnalyticsAnalyticsAdapter.initOptions.partner = -1
×
145
  } else iiqAnalyticsAnalyticsAdapter.initOptions.partner = partner
60✔
146
  defineGlobalVariableName();
60✔
147
  iiqAnalyticsAnalyticsAdapter.initOptions.adapterConfigInitialized = true
60✔
148
}
149

150
function receivePartnerData() {
151
  try {
29✔
152
    iiqAnalyticsAnalyticsAdapter.initOptions.dataInLs = null;
29✔
153
    const FPD = window[identityGlobalName]?.firstPartyData
29✔
154
    if (!window[identityGlobalName] || !FPD) {
29!
155
      return false
×
156
    }
157
    iiqAnalyticsAnalyticsAdapter.initOptions.fpid = FPD
29✔
158
    const { partnerData, clientsHints = '', actualABGroup } = window[identityGlobalName]
29✔
159

160
    if (partnerData) {
29✔
161
      iiqAnalyticsAnalyticsAdapter.initOptions.dataIdsInitialized = true;
29✔
162
      iiqAnalyticsAnalyticsAdapter.initOptions.terminationCause = partnerData.terminationCause;
29✔
163
      iiqAnalyticsAnalyticsAdapter.initOptions.abTestUuid = partnerData.abTestUuid;
29✔
164
      iiqAnalyticsAnalyticsAdapter.initOptions.dataInLs = partnerData.data;
29✔
165
      iiqAnalyticsAnalyticsAdapter.initOptions.eidl = partnerData.eidl || -1;
29✔
166
      iiqAnalyticsAnalyticsAdapter.initOptions.clientType = partnerData.clientType || null;
29!
167
      iiqAnalyticsAnalyticsAdapter.initOptions.siteId = partnerData.siteId || null;
29✔
168
      iiqAnalyticsAnalyticsAdapter.initOptions.wsrvcll = partnerData.wsrvcll || false;
29!
169
      iiqAnalyticsAnalyticsAdapter.initOptions.rrtt = partnerData.rrtt || null;
29✔
170
    }
171

172
    if (actualABGroup) {
29✔
173
      iiqAnalyticsAnalyticsAdapter.initOptions.currentGroup = actualABGroup;
18✔
174
    }
175
    iiqAnalyticsAnalyticsAdapter.initOptions.clientsHints = clientsHints;
29✔
176
  } catch (e) {
177
    logError(e);
×
178
    return false;
×
179
  }
180
}
181

182
function shouldSubscribeOnGAM() {
183
  if (!iiqConfig?.gamObjectReference || !isPlainObject(iiqConfig.gamObjectReference)) return false;
37✔
184
  const partnerData = window[identityGlobalName]?.partnerData
2✔
185

186
  if (partnerData) {
2✔
187
    return partnerData.gpr || (!('gpr' in partnerData) && iiqAnalyticsAnalyticsAdapter.initOptions.gamPredictReporting);
2!
188
  }
189
  return false;
×
190
}
191

192
function shouldSendReport(isReportExternal) {
193
  return (
31✔
194
    (isReportExternal &&
93✔
195
            iiqAnalyticsAnalyticsAdapter.initOptions.manualWinReportEnabled &&
196
            !shouldSubscribeOnGAM()) ||
197
        (!isReportExternal && !iiqAnalyticsAnalyticsAdapter.initOptions.manualWinReportEnabled)
198
  );
199
}
200

201
export function restoreReportList() {
202
  reportList = {};
4✔
203
}
204

205
function bidWon(args, isReportExternal) {
206
  if (
32!
207
    isNaN(iiqAnalyticsAnalyticsAdapter.initOptions.partner)
208
  ) {
209
    iiqAnalyticsAnalyticsAdapter.initOptions.partner = -1;
×
210
  }
211
  const currentBrowserLowerCase = detectBrowser();
32✔
212
  if (iiqAnalyticsAnalyticsAdapter.initOptions.browserBlackList?.includes(currentBrowserLowerCase)) {
32✔
213
    logError('IIQ ANALYTICS -> Browser is in blacklist!');
1✔
214
    return;
1✔
215
  }
216

217
  if (shouldSendReport(isReportExternal)) {
31✔
218
    const success = receivePartnerData();
29✔
219
    const preparedPayload = preparePayload(args);
29✔
220
    if (!preparedPayload) return false;
29!
221
    if (success === false) {
29!
222
      preparedPayload[PARAMS_NAMES.terminationCause] = -1
×
223
    }
224
    const { url, method, payload } = constructFullUrl(preparedPayload);
29✔
225
    if (method === 'POST') {
29✔
226
      ajax(url, undefined, payload, {
1✔
227
        method,
228
        contentType: 'application/x-www-form-urlencoded'
229
      });
230
    } else {
231
      ajax(url, undefined, null, { method });
28✔
232
    }
233
    logInfo('IIQ ANALYTICS -> BID WON');
29✔
234
    return true;
29✔
235
  }
236
  return false;
2✔
237
}
238

239
function parseReportingMethod(reportMethod) {
240
  if (typeof reportMethod === 'string') {
60✔
241
    switch (reportMethod.toUpperCase()) {
1!
242
      case 'GET':
243
        return 'GET';
×
244
      case 'POST':
245
        return 'POST';
1✔
246
      default:
247
        return 'GET';
×
248
    }
249
  }
250
  return 'GET';
59✔
251
}
252

253
function defineGlobalVariableName() {
254
  function reportExternalWin(args) {
255
    return bidWon(args, true);
2✔
256
  }
257

258
  const partnerId = iiqConfig?.partner || 0;
60!
259
  globalName = `intentIqAnalyticsAdapter_${partnerId}`;
60✔
260
  identityGlobalName = `iiq_identity_${partnerId}`
60✔
261

262
  window[globalName] = { reportExternalWin };
60✔
263
}
264

265
function getRandom(start, end) {
266
  return Math.floor(Math.random() * (end - start + 1) + start);
1✔
267
}
268

269
export function preparePayload(data) {
270
  const result = getDefaultDataObject();
32✔
271
  result[PARAMS_NAMES.partnerId] = iiqAnalyticsAnalyticsAdapter.initOptions.partner;
32✔
272
  result[PARAMS_NAMES.prebidVersion] = prebidVersion;
32✔
273
  result[PARAMS_NAMES.referrer] = getReferrer();
32✔
274
  result[PARAMS_NAMES.terminationCause] = iiqAnalyticsAnalyticsAdapter.initOptions.terminationCause;
32✔
275
  result[PARAMS_NAMES.clientType] = iiqAnalyticsAnalyticsAdapter.initOptions.clientType;
32✔
276
  result[PARAMS_NAMES.siteId] = iiqAnalyticsAnalyticsAdapter.initOptions.siteId;
32✔
277
  result[PARAMS_NAMES.wasServerCalled] = iiqAnalyticsAnalyticsAdapter.initOptions.wsrvcll;
32✔
278
  result[PARAMS_NAMES.requestRtt] = iiqAnalyticsAnalyticsAdapter.initOptions.rrtt;
32✔
279
  result[PARAMS_NAMES.isInTestGroup] = iiqAnalyticsAnalyticsAdapter.initOptions.currentGroup === WITH_IIQ;
32✔
280

281
  if (iiqAnalyticsAnalyticsAdapter.initOptions.currentGroup) {
32✔
282
    result[PARAMS_NAMES.abTestGroup] = iiqAnalyticsAnalyticsAdapter.initOptions.currentGroup;
32✔
283
  }
284
  result[PARAMS_NAMES.agentId] = REPORTER_ID;
32✔
285
  if (iiqAnalyticsAnalyticsAdapter.initOptions.abTestUuid) {
32✔
286
    result[PARAMS_NAMES.abTestUuid] = iiqAnalyticsAnalyticsAdapter.initOptions.abTestUuid;
32✔
287
  }
288
  if (iiqAnalyticsAnalyticsAdapter.initOptions.fpid?.pcid) {
32✔
289
    result[PARAMS_NAMES.firstPartyId] = encodeURIComponent(iiqAnalyticsAnalyticsAdapter.initOptions.fpid.pcid);
32✔
290
  }
291
  if (iiqAnalyticsAnalyticsAdapter.initOptions.fpid?.pid) {
32✔
292
    result[PARAMS_NAMES.profile] = encodeURIComponent(iiqAnalyticsAnalyticsAdapter.initOptions.fpid.pid);
32✔
293
  }
294
  if (iiqAnalyticsAnalyticsAdapter.initOptions.configSource) {
32✔
295
    result[PARAMS_NAMES.ABTestingConfigurationSource] = iiqAnalyticsAnalyticsAdapter.initOptions.configSource
2✔
296
  }
297
  prepareData(data, result);
32✔
298

299
  if (shouldSubscribeOnGAM()) {
32✔
300
    if (!reportList[result.placementId] || !reportList[result.placementId][result.prebidAuctionId]) {
1!
301
      reportList[result.placementId] = reportList[result.placementId]
1!
302
        ? { ...reportList[result.placementId], [result.prebidAuctionId]: 1 }
303
        : { [result.prebidAuctionId]: 1 };
304
      cleanReportsID = setTimeout(() => {
1✔
305
        if (cleanReportsID) clearTimeout(cleanReportsID);
1!
306
        restoreReportList();
1✔
307
      }, 1500); // clear object in 1.5 second after defining reporting list
308
    } else {
309
      logError('Duplication detected, report will be not sent');
×
UNCOV
310
      return;
×
311
    }
312
  }
313

314
  fillEidsData(result);
32✔
315

316
  return result;
32✔
317
}
318

319
function fillEidsData(result) {
320
  if (iiqAnalyticsAnalyticsAdapter.initOptions.dataIdsInitialized) {
32✔
321
    result[PARAMS_NAMES.hadEidsInLocalStorage] =
32✔
322
            iiqAnalyticsAnalyticsAdapter.initOptions.eidl && iiqAnalyticsAnalyticsAdapter.initOptions.eidl > 0;
64✔
323
    result[PARAMS_NAMES.auctionEidsLength] = iiqAnalyticsAnalyticsAdapter.initOptions.eidl || -1;
32!
324
  }
325
}
326

327
function prepareData(data, result) {
328
  const adTypeValue = data.adType || data.mediaType;
32✔
329

330
  if (data.bidderCode) {
32✔
331
    result.bidderCode = data.bidderCode;
31✔
332
  }
333
  if (data.cpm) {
32✔
334
    result.cpm = data.cpm;
32✔
335
  }
336
  if (data.currency) {
32✔
337
    result.currency = data.currency;
32✔
338
  }
339
  if (data.originalCpm) {
32✔
340
    result.originalCpm = data.originalCpm;
31✔
341
  }
342
  if (data.originalCurrency) {
32✔
343
    result.originalCurrency = data.originalCurrency;
31✔
344
  }
345
  if (data.status) {
32✔
346
    result.status = data.status;
31✔
347
  }
348

349
  result.prebidAuctionId = data.auctionId || data.prebidAuctionId;
32✔
350

351
  if (adTypeValue) {
32✔
352
    result[PARAMS_NAMES.adType] = adTypeValue;
31✔
353
  }
354

355
  switch (iiqAnalyticsAnalyticsAdapter.initOptions.adUnitConfig) {
32!
356
    case 1:
357
      // adUnitCode or placementId
358
      result.placementId = data.adUnitCode || extractPlacementId(data) || '';
28✔
359
      break;
28✔
360
    case 2:
361
      // placementId or adUnitCode
362
      result.placementId = extractPlacementId(data) || data.adUnitCode || '';
2!
363
      break;
2✔
364
    case 3:
365
      // Only adUnitCode
366
      result.placementId = data.adUnitCode || '';
1!
367
      break;
1✔
368
    case 4:
369
      // Only placementId
370
      result.placementId = extractPlacementId(data) || '';
1!
371
      break;
1✔
372
    default:
373
      // Default (like in case #1)
UNCOV
374
      result.placementId = data.adUnitCode || extractPlacementId(data) || '';
×
375
  }
376

377
  result.biddingPlatformId = data.biddingPlatformId || 1;
32✔
378
  result.partnerAuctionId = 'BW';
32✔
379
}
380

381
function extractPlacementId(data) {
382
  if (data.placementId) {
30✔
383
    return data.placementId;
4✔
384
  }
385
  if (data.params && Array.isArray(data.params)) {
26✔
386
    for (let i = 0; i < data.params.length; i++) {
1✔
387
      if (data.params[i].placementId) {
2✔
388
        return data.params[i].placementId;
1✔
389
      }
390
    }
391
  }
392
  return null;
25✔
393
}
394

395
function getDefaultDataObject() {
396
  return {
32✔
397
    inbbl: false,
398
    pbjsver: prebidVersion,
399
    partnerAuctionId: 'BW',
400
    reportSource: 'pbjs',
401
    jsversion: VERSION,
402
    partnerId: -1,
403
    biddingPlatformId: 1,
404
    idls: false,
405
    ast: -1,
406
    aeidln: -1
407
  };
408
}
409

410
function constructFullUrl(data) {
411
  const report = [];
29✔
412
  const reportMethod = iiqAnalyticsAnalyticsAdapter.initOptions.reportMethod;
29✔
413
  const currentBrowserLowerCase = detectBrowser();
29✔
414
  data = btoa(JSON.stringify(data));
29✔
415
  report.push(data);
29✔
416

417
  const cmpData = getCmpData();
29✔
418
  const baseUrl = reportingServerAddress(...getDataForDefineURL());
29✔
419

420
  let url =
421
        baseUrl +
29✔
422
        '?pid=' +
423
        iiqAnalyticsAnalyticsAdapter.initOptions.partner +
424
        '&mct=1' +
425
        (iiqAnalyticsAnalyticsAdapter.initOptions?.fpid
29!
426
          ? '&iiqid=' + encodeURIComponent(iiqAnalyticsAnalyticsAdapter.initOptions.fpid.pcid)
427
          : '') +
428
        '&agid=' +
429
        REPORTER_ID +
430
        '&jsver=' +
431
        VERSION +
432
        '&source=' +
433
        PREBID +
434
        '&uh=' +
435
        encodeURIComponent(iiqAnalyticsAnalyticsAdapter.initOptions.clientsHints) +
436
        (cmpData.uspString ? '&us_privacy=' + encodeURIComponent(cmpData.uspString) : '') +
29✔
437
        (cmpData.gppString ? '&gpp=' + encodeURIComponent(cmpData.gppString) : '') +
29✔
438
        (cmpData.gdprString ? '&gdpr_consent=' + encodeURIComponent(cmpData.gdprString) + '&gdpr=1' : '&gdpr=0');
29✔
439
  url = appendSPData(url, iiqAnalyticsAnalyticsAdapter.initOptions.fpid);
29✔
440
  url = appendVrrefAndFui(url, iiqAnalyticsAnalyticsAdapter.initOptions.domainName);
29✔
441

442
  if (reportMethod === 'POST') {
29✔
443
    return { url, method: 'POST', payload: JSON.stringify(report) };
1✔
444
  }
445
  url += '&payload=' + encodeURIComponent(JSON.stringify(report));
28✔
446
  url = handleAdditionalParams(
28✔
447
    currentBrowserLowerCase,
448
    url,
449
    2,
450
    iiqAnalyticsAnalyticsAdapter.initOptions.additionalParams
451
  );
452
  return { url, method: 'GET' };
28✔
453
}
454

455
iiqAnalyticsAnalyticsAdapter.originEnableAnalytics = iiqAnalyticsAnalyticsAdapter.enableAnalytics;
1✔
456

457
iiqAnalyticsAnalyticsAdapter.enableAnalytics = function (myConfig) {
1✔
458
  iiqAnalyticsAnalyticsAdapter.originEnableAnalytics(myConfig); // call the base class function
60✔
459
  initAdapterConfig(myConfig)
60✔
460
};
461

462
iiqAnalyticsAnalyticsAdapter.originDisableAnalytics = iiqAnalyticsAnalyticsAdapter.disableAnalytics;
1✔
463
iiqAnalyticsAnalyticsAdapter.disableAnalytics = function() {
1✔
464
  globalName = undefined;
60✔
465
  identityGlobalName = undefined;
60✔
466
  alreadySubscribedOnGAM = false;
60✔
467
  reportList = {};
60✔
468
  cleanReportsID = undefined;
60✔
469
  iiqConfig = undefined;
60✔
470
  iiqAnalyticsAnalyticsAdapter.initOptions = getDefaultInitOptions()
60✔
471
  iiqAnalyticsAnalyticsAdapter.originDisableAnalytics()
60✔
472
};
473
adapterManager.registerAnalyticsAdapter({
1✔
474
  adapter: iiqAnalyticsAnalyticsAdapter,
475
  code: MODULE_NAME
476
});
477

478
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