Skip to content

Commit 43d2224

Browse files
dmytro-poDimaIntentIQprebidjs-releaseRuzannaAvetisyansiminkovladyslav
authored
IntentIQ ID Module & Analytics Adapter: Fix deprecated GAM module methods (#14553)
* AGT-734: Support region for prebid modules (merge 0_3_4 with master) * AGT-730: move spd to partnerData (merge 0_3_4 to master) * AGT-765: Send ad size and pos in impression reporting module (#58) * AGT-765: pos and size * AGT-765: Tests for position resolving * AGT-765: Test fix * AGT-756: Missed vrref in payload fix (#56) * AGT-756: vrref in payload fix * remove comment * AGT-756: Fix vrref bug * AGT-756: Remove comments * AGT-756: Test for vrref * update requestRtt to show more clear time (#59) * AGT-739: Change time to call server (#57) * fix typo, remove parameter duplication (#60) * fix typo, remove parameter duplication * update doc examples * AGT-721: Documentation for region, size, pos (#61) * fix region parameter in table (#62) * update tests * remove unused test * 0.35 master (#65) * Prebid 10.25.0 release * Increment version to 10.26.0-pre * limelight: Send open rtb bid requests from our prebid js adapter (#14397) * changed requests format to OpenRTB. * Added more tests * fix refererInfo.page fallback for site.page * fix built imp for size-only * fix built imp for size-only * OMS Bid Adapter: add prebid js version to request payload (#14421) * Bump qs from 6.14.1 to 6.14.2 (#14478) Bumps [qs](https://github.com/ljharb/qs) from 6.14.1 to 6.14.2. - [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md) - [Commits](ljharb/qs@v6.14.1...v6.14.2) --- updated-dependencies: - dependency-name: qs dependency-version: 6.14.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump fast-xml-parser from 5.3.4 to 5.3.6 (#14482) Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 5.3.4 to 5.3.6. - [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases) - [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md) - [Commits](NaturalIntelligence/fast-xml-parser@v5.3.4...v5.3.6) --- updated-dependencies: - dependency-name: fast-xml-parser dependency-version: 5.3.6 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Floor module: add enforcement allowlist config option (#14455) * Core: add bidder-scoped floor enforcement * Core: enforce floors allowlist against adapterCode * Various modules: remove legacy GPT targeting fallbacks (#14450) * Core: remove legacy GPT targeting fallbacks * Reconciliation RTD Provider: handle missing RSDK_ADID targeting * Core: fix targetingLock GPT test mock for getConfig * TargetVideo bid adapter: send price floor param (#14406) * TargetVideo bid adapter: send price floor param * Add support for the price floors module * Add imports * Fix getBidFloor function floor params --------- Co-authored-by: dnrstc <danrstc@gmail.com> * New adapter: Verben (#14494) Co-authored-by: Verben <support_trading@verben.com> Co-authored-by: Patrick McCann <patmmccann@gmail.com> * Teal bid adapter: include native and video media types (#14493) * Proxistore Bid Adapter: migration to OpenRTB (#14411) * Update Proxistore endpoint URLs in adapter and tests Updated the Proxistore `COOKIE_BASE_URL` and `COOKIE_LESS_URL` to the new `abs` domain in both the adapter and its corresponding test file. This ensures consistency with the updated API endpoints. * Integrate OpenRTB converter for Proxistore bid adapter, and add OpenRTB request as a separate field. * Refactor Proxistore bid adapter to improve OpenRTB handling, add GDPR-specific URL selection, and enhance test coverage. * Add support for website and language parameters in Proxistore bid adapter requests, with corresponding test coverage. * Handle empty response body in Proxistore bid adapter to avoid runtime errors. --------- Co-authored-by: Anthony Richir <anthony.richir@proxistore.com> * Floxis Bid Adapter: initial release (#13934) * Floxis Bid Adapter : initial release * Added ORTB parameters for blocking * Adjusted documentation with maintainer info * Added more validations, extracted converter to a const * Floxis Bid Adapter: redesign to seat-based architecture with ortbConverter Major rewrite replacing teqblazeUtils with ortbConverter for ORTB 2.x compliance. Changes: - New params: seat (required), region (required), partner (required) - Endpoint URL: https://{subdomain}.floxis.tech/pbjs?seat={seat} - subdomain = region for 'floxis' partner - subdomain = {partner}-{region} for white-label partners - ORTB-native implementation with Floors Module support - 40 comprehensive tests with full code coverage - Updated documentation with examples Addresses all PR #13934 review comments from @osazos * Rename FloxisBidAdapter.md to floxisBidAdapter.md * Code review adjustments --------- Co-authored-by: Patrick McCann <pmccann@cafemedia.com> * InsurAds Bid Adapter: Initial Implementation (#14470) * InsurAds Bid Adapter Implementation * Remove test alias * Storage Settings Example * Adapter rename 1/2 * Adapter rename 2/2 * Update modules/insuradsBidAdapter.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update modules/insuradsBidAdapter.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update test/spec/modules/insuradsBidAdapter_spec.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * The params need to be registered under nexx360 --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * LeagueM BId Adapter: initial release (#14479) * LeagueM BId Adapter: initial release * Update test/spec/modules/leagueMBidAdapter_spec.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update test/spec/modules/leagueMBidAdapter_spec.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update test/spec/modules/leagueMBidAdapter_spec.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update modules/leagueMBidAdapter.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Patrick McCann <patmmccann@gmail.com> * New Adapter: Harion (#14398) * new adapter harion * refactor(adapter): guard added to interpretResponse * Core: disabling fingerprinting apis (#14404) * Core: disabling fingerprinting apis * getFallbackWindow -> utils * Fix several typos in comments and tests (#14498) * Bump ajv from 6.12.6 to 6.14.0 (#14499) Bumps [ajv](https://github.com/ajv-validator/ajv) from 6.12.6 to 6.14.0. - [Release notes](https://github.com/ajv-validator/ajv/releases) - [Commits](ajv-validator/ajv@v6.12.6...v6.14.0) --- updated-dependencies: - dependency-name: ajv dependency-version: 6.14.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Setting alwaysHasCapacity flag to true (#14500) * Adcluster Bid Adapter: Support Adcluster (#14050) * adcluster - new adapter * fixes * video preview id change * video preview id change * Update adclusterBidAdapter_spec.js * fallback * multiformat fix --------- Co-authored-by: Patrick McCann <patmmccann@gmail.com> Co-authored-by: Patrick McCann <pmccann@cafemedia.com> * ReVantage Bid Adapter: initial release (#14180) * Create revantageBidAdapter.js * Create revantageBidAdapter.md * Update revantageBidAdapter.js * Update revantageBidAdapter.js * Update revantageBidAdapter.js * Update revantageBidAdapter.js Fixed trailing slash Error on Line 123 * Create revantageBidAdapter_spec.js * Update revantageBidAdapter_spec.js Fixed Trailing slashes (again) * Update revantageBidAdapter_spec.js * Update revantageBidAdapter_spec.js same thing again * Refactor Revantage Bid Adapter for media types and bids Refactor Revantage Bid Adapter to use media type constants and improve bid response handling. * Refactor RevantageBidAdapter tests for GPP consent * Update modules/revantageBidAdapter.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update modules/revantageBidAdapter.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Validate feedId consistency in batch bid requests Added validation to ensure all bid requests in a batch have the same feedId, logging a warning if they do not. * Add test for rejecting batch with different feedIds * Update syncOptions for image sync URL parameters * Update sync URL to use 'tag=img' instead of 'type=img' * Update print statement from 'Hello' to 'Goodbye' * fixed * Enhance video bid handling and add utility functions Added functions to handle video size extraction and VAST detection. --------- Co-authored-by: Patrick McCann <pmccann@cafemedia.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * AdMatic Bid Adapter : add adrubi alias (#14504) * Admatic Bidder Adaptor * Update admaticBidAdapter.md * Update admaticBidAdapter.md * remove floor parameter * Update admaticBidAdapter.js * Admatic Bid Adapter: alias and bid floor features activated * Admatic adapter: host param control changed * Alias name changed. * Revert "Admatic adapter: host param control changed" This reverts commit de7ac85. * added alias feature and host param * Revert "added alias feature and host param" This reverts commit 6ec8f45. * Revert "Alias name changed." This reverts commit 661c54f. * Revert "Admatic Bid Adapter: alias and bid floor features activated" This reverts commit 7a2e0e2. * Revert "Update admaticBidAdapter.js" This reverts commit 7a845b7. * Revert "remove floor parameter" This reverts commit 7a23b05. * Admatic adapter: host param control && Add new Bidder * Revert "Admatic adapter: host param control && Add new Bidder" This reverts commit 3c797b1. * commit new features * Update admaticBidAdapter.js * updated for coverage * sync updated * Update adloader.js * AdMatic Bidder: development of user sync url * Update admaticBidAdapter.js * Set currency for AdserverCurrency: bug fix * Update admaticBidAdapter.js * update * admatic adapter video params update * Update admaticBidAdapter.js * update * Update admaticBidAdapter.js * update * update * Update admaticBidAdapter_spec.js * Update admaticBidAdapter.js * Update admaticBidAdapter.js * Revert "Update admaticBidAdapter.js" This reverts commit 1216892. * Revert "Update admaticBidAdapter.js" This reverts commit b1929ec. * Revert "Update admaticBidAdapter_spec.js" This reverts commit 1ca6597. * Revert "update" This reverts commit 689ce9d. * Revert "update" This reverts commit f381a45. * Revert "Update admaticBidAdapter.js" This reverts commit 38fd7ab. * Revert "update" This reverts commit a5316e7. * Revert "Update admaticBidAdapter.js" This reverts commit 60a28ca. * Revert "admatic adapter video params update" This reverts commit 31e69e8. * update * Update admaticBidAdapter.js * Update admaticBidAdapter_spec.js * mime_type add * add native adapter * AdMatic Adapter: Consent Management * added gvlid * Update admaticBidAdapter.js * admatic cur update * Update admaticBidAdapter.js * Update admaticBidAdapter.js * Update admaticBidAdapter.js * Update admaticBidAdapter.js * Update admaticBidAdapter.js * Update admaticBidAdapter.js * Update admaticBidAdapter.js * admatic sync update * Update admaticBidAdapter.js * Revert "Update admaticBidAdapter.js" This reverts commit 11e053f. * Revert "Update admaticBidAdapter.js" This reverts commit 11e053f. * Update admaticBidAdapter.js * OMS Bid Adapter: add instl flag to imp in request (#14501) * Zeta SSP Analytics Adapter: pass floors. (#14350) * Zeta SSP Analytics Adapter: pass floors. * Zeta SSP Analytics Adapter: minor fix. * Zeta SSP Analytics Adapter: fix tests. * Revert "Various modules: remove legacy GPT targeting fallbacks (#14450)" (#14510) This reverts commit 299f207. * Prebid 10.26.0 release * Increment version to 10.27.0-pre * DPAI bid adapter: initial release (#14434) * New adapter DPAI * New adapter DPAI * New adapter DPAI: Added end line * New adapter DPAI: Added end line --------- Co-authored-by: Patrick McCann <patmmccann@gmail.com> * Core: remove stale transformBidParams references (#14512) --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Prebid.js automated release <prebidjs-release@prebid.org> Co-authored-by: RuzannaAvetisyan <44729750+RuzannaAvetisyan@users.noreply.github.com> Co-authored-by: Siminko Vlad <85431371+siminkovladyslav@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Patrick McCann <patmmccann@gmail.com> Co-authored-by: danijel-ristic <168181386+danijel-ristic@users.noreply.github.com> Co-authored-by: dnrstc <danrstc@gmail.com> Co-authored-by: verben-gh <ezequiel.espino@verben.com> Co-authored-by: Verben <support_trading@verben.com> Co-authored-by: johnclc <johnclc@users.noreply.github.com> Co-authored-by: Anthony <anthonyrichir@users.noreply.github.com> Co-authored-by: Anthony Richir <anthony.richir@proxistore.com> Co-authored-by: floxis-tech <andrius.nvilnia@gmail.com> Co-authored-by: Patrick McCann <pmccann@cafemedia.com> Co-authored-by: Jose Climaco <josepereira@me.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: morock <98119227+mo4rock@users.noreply.github.com> Co-authored-by: markappmedia <markappmedia@gmail.com> Co-authored-by: mkomorski <marcin.komorski@pollub.edu.pl> Co-authored-by: Vedant Madane <6527493+VedantMadane@users.noreply.github.com> Co-authored-by: pm-priyanka-deshmane <107103300+pm-priyanka-deshmane@users.noreply.github.com> Co-authored-by: adclusterdev <dev@adcluster.com.tr> Co-authored-by: v0idxyz <58184010+v0idxyz@users.noreply.github.com> Co-authored-by: Fatih Kaya <fatih.kaya.84@gmail.com> Co-authored-by: abermanov-zeta <95416296+abermanov-zeta@users.noreply.github.com> Co-authored-by: Demetrio Girardi <dgirardi@prebid.org> Co-authored-by: driftpixelai <166716541+driftpixelai@users.noreply.github.com> * AGT-790: Fix additional parameters (#63) * AGT-790: Fix additional parameters * Fix analytics doc * AGT-787: partnerAuctionId to analytical module (#68) * AGT-787: partnerAuctionId to analytical module * AGT-787: Some fix and tests * AGT-803-Deprecated-GAM-methods-module (#67) * AGT-803-Deprecated-GAM-methods-module * AGT-803-Deprecated-GAM-methods-module * AGT-803-Deprecated-GAM-methods-module * AGT-803-Deprecated-GAM-methods-module --------- Co-authored-by: Oleksii Petrychenko <panleshapan@gmail.com> * update documentation * Merge branch '0.35-master' into release_0.35 * fix: apply URL length guard after payload append for GET reports --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: DimaIntentIQ <139111483+DimaIntentIQ@users.noreply.github.com> Co-authored-by: DimaIntentIQ <dmytro.piskun@intentiq.com> Co-authored-by: Prebid.js automated release <prebidjs-release@prebid.org> Co-authored-by: RuzannaAvetisyan <44729750+RuzannaAvetisyan@users.noreply.github.com> Co-authored-by: Siminko Vlad <85431371+siminkovladyslav@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Patrick McCann <patmmccann@gmail.com> Co-authored-by: danijel-ristic <168181386+danijel-ristic@users.noreply.github.com> Co-authored-by: dnrstc <danrstc@gmail.com> Co-authored-by: verben-gh <ezequiel.espino@verben.com> Co-authored-by: Verben <support_trading@verben.com> Co-authored-by: johnclc <johnclc@users.noreply.github.com> Co-authored-by: Anthony <anthonyrichir@users.noreply.github.com> Co-authored-by: Anthony Richir <anthony.richir@proxistore.com> Co-authored-by: floxis-tech <andrius.nvilnia@gmail.com> Co-authored-by: Patrick McCann <pmccann@cafemedia.com> Co-authored-by: Jose Climaco <josepereira@me.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: morock <98119227+mo4rock@users.noreply.github.com> Co-authored-by: markappmedia <markappmedia@gmail.com> Co-authored-by: mkomorski <marcin.komorski@pollub.edu.pl> Co-authored-by: Vedant Madane <6527493+VedantMadane@users.noreply.github.com> Co-authored-by: pm-priyanka-deshmane <107103300+pm-priyanka-deshmane@users.noreply.github.com> Co-authored-by: adclusterdev <dev@adcluster.com.tr> Co-authored-by: v0idxyz <58184010+v0idxyz@users.noreply.github.com> Co-authored-by: Fatih Kaya <fatih.kaya.84@gmail.com> Co-authored-by: abermanov-zeta <95416296+abermanov-zeta@users.noreply.github.com> Co-authored-by: Demetrio Girardi <dgirardi@prebid.org> Co-authored-by: driftpixelai <166716541+driftpixelai@users.noreply.github.com> Co-authored-by: oleksii-intent <oleksii.pe@intentiq.com> Co-authored-by: Oleksii Petrychenko <panleshapan@gmail.com>
1 parent c5859c1 commit 43d2224

9 files changed

Lines changed: 307 additions & 74 deletions

File tree

libraries/intentIqConstants/intentIqConstants.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export const BLACK_LIST = "L";
99
export const CLIENT_HINTS_KEY = "_iiq_ch";
1010
export const EMPTY = "EMPTY";
1111
export const GVLID = "1323";
12-
export const VERSION = 0.33;
12+
export const VERSION = 0.35;
1313
export const PREBID = "pbjs";
1414
export const HOURS_24 = 86400000;
1515
export const HOURS_72 = HOURS_24 * 3;

libraries/intentIqUtils/gamPredictionReport.js

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,35 @@
11
import { getEvents } from '../../src/events.js';
2-
import { logError } from '../../src/utils.js';
2+
import { isPlainObject, logError } from '../../src/utils.js';
33

44
export function gamPredictionReport (gamObjectReference, sendData) {
55
try {
6-
if (!gamObjectReference || !sendData) logError('Failed to get gamPredictionReport, required data is missed');
6+
if (!gamObjectReference || !sendData) {
7+
logError('Failed to get gamPredictionReport, required data is missed');
8+
return
9+
}
710
const getSlotTargeting = (slot) => {
811
const kvs = {};
912
try {
10-
(slot.getTargetingKeys() || []).forEach((k) => {
11-
kvs[k] = slot.getTargeting(k);
12-
});
13+
if (typeof slot.getConfig === 'function') {
14+
const current = slot.getConfig('targeting');
15+
const targeting = isPlainObject(current?.targeting)
16+
? current.targeting
17+
: (isPlainObject(current) ? current : {});
18+
for (const k in targeting) {
19+
const v = targeting[k];
20+
if (v == null) continue;
21+
kvs[k] = Array.isArray(v) ? v : [typeof v === 'string' ? v : String(v)];
22+
}
23+
return kvs;
24+
}
25+
// Fallback in case an older version of Google Publisher Tag is used.
26+
if (typeof slot.getTargetingKeys === 'function' && typeof slot.getTargeting === 'function') {
27+
(slot.getTargetingKeys() || []).forEach((k) => {
28+
kvs[k] = slot.getTargeting(k);
29+
});
30+
}
1331
} catch (e) {
14-
logError('Failed to get targeting keys: ' + e);
32+
logError('Failed to get slot targeting: ' + e);
1533
}
1634
return kvs;
1735
};

modules/intentIqAnalyticsAdapter.js

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -330,23 +330,18 @@ function fillEidsData(result) {
330330
function prepareData(data, result) {
331331
const adTypeValue = data.adType || data.mediaType;
332332

333-
if (data.bidderCode) {
334-
result.bidderCode = data.bidderCode;
335-
}
336-
if (data.cpm) {
337-
result.cpm = data.cpm;
338-
}
339-
if (data.currency) {
340-
result.currency = data.currency;
341-
}
342-
if (data.originalCpm) {
343-
result.originalCpm = data.originalCpm;
344-
}
345-
if (data.originalCurrency) {
346-
result.originalCurrency = data.originalCurrency;
347-
}
348-
if (data.status) {
349-
result.status = data.status;
333+
if (data.bidderCode) result.bidderCode = data.bidderCode;
334+
if (data.cpm) result.cpm = data.cpm;
335+
if (data.currency) result.currency = data.currency;
336+
if (data.originalCpm) result.originalCpm = data.originalCpm;
337+
if (data.originalCurrency) result.originalCurrency = data.originalCurrency;
338+
if (data.status) result.status = data.status;
339+
if (data.size) result.size = data.size;
340+
if (typeof data.pos === 'number') {
341+
result.pos = data.pos;
342+
} else if (data.adUnitCode) {
343+
const pos = getUnitPosition(pbjs, data.adUnitCode);
344+
if (typeof pos === 'number') result.pos = pos;
350345
}
351346
if (data.size) {
352347
result.size = data.size;
@@ -360,9 +355,7 @@ function prepareData(data, result) {
360355

361356
result.prebidAuctionId = data.auctionId || data.prebidAuctionId;
362357

363-
if (adTypeValue) {
364-
result[PARAMS_NAMES.adType] = adTypeValue;
365-
}
358+
if (adTypeValue) result[PARAMS_NAMES.adType] = adTypeValue;
366359

367360
switch (iiqAnalyticsAnalyticsAdapter.initOptions.adUnitConfig) {
368361
case 1:
@@ -387,7 +380,8 @@ function prepareData(data, result) {
387380
}
388381

389382
result.biddingPlatformId = data.biddingPlatformId || 1;
390-
result.partnerAuctionId = 'BW';
383+
384+
if (data?.partnerAuctionId) result.partnerAuctionId = data.partnerAuctionId;
391385
}
392386

393387
function extractPlacementId(data) {
@@ -408,7 +402,6 @@ function getDefaultDataObject() {
408402
return {
409403
inbbl: false,
410404
pbjsver: prebidVersion,
411-
partnerAuctionId: 'BW',
412405
reportSource: 'pbjs',
413406
jsversion: VERSION,
414407
partnerId: -1,
@@ -424,6 +417,7 @@ function constructFullUrl(data) {
424417
const reportMethod = iiqAnalyticsAnalyticsAdapter.initOptions.reportMethod;
425418
const partnerData = window[identityGlobalName]?.partnerData;
426419
const currentBrowserLowerCase = detectBrowser();
420+
const partnerAuctionId = data?.partnerAuctionId;
427421
data = btoa(JSON.stringify(data));
428422
report.push(data);
429423

@@ -433,8 +427,13 @@ function constructFullUrl(data) {
433427
let url =
434428
baseUrl +
435429
'?pid=' +
436-
iiqAnalyticsAnalyticsAdapter.initOptions.partner +
437-
'&mct=1' +
430+
iiqAnalyticsAnalyticsAdapter.initOptions.partner;
431+
if (partnerAuctionId) {
432+
url +=
433+
'&paucid=' +
434+
encodeURIComponent(JSON.stringify([partnerAuctionId]));
435+
}
436+
url += '&mct=1' +
438437
(iiqAnalyticsAnalyticsAdapter.initOptions?.fpid
439438
? '&iiqid=' + encodeURIComponent(iiqAnalyticsAnalyticsAdapter.initOptions.fpid.pcid)
440439
: '') +
@@ -449,20 +448,25 @@ function constructFullUrl(data) {
449448
(cmpData.uspString ? '&us_privacy=' + encodeURIComponent(cmpData.uspString) : '') +
450449
(cmpData.gppString ? '&gpp=' + encodeURIComponent(cmpData.gppString) : '') +
451450
(cmpData.gdprString ? '&gdpr_consent=' + encodeURIComponent(cmpData.gdprString) + '&gdpr=1' : '&gdpr=0');
451+
452452
url = appendSPData(url, partnerData);
453453
url = appendVrrefAndFui(url, iiqAnalyticsAnalyticsAdapter.initOptions.domainName);
454454

455-
if (reportMethod === 'POST') {
456-
return { url, method: 'POST', payload: JSON.stringify(report) };
455+
if (reportMethod !== 'POST') {
456+
url += '&payload=' + encodeURIComponent(JSON.stringify(report));
457457
}
458-
url += '&payload=' + encodeURIComponent(JSON.stringify(report));
458+
459459
url = handleAdditionalParams(
460460
currentBrowserLowerCase,
461461
url,
462462
2,
463463
iiqAnalyticsAnalyticsAdapter.initOptions.additionalParams
464464
);
465-
return { url, method: 'GET' };
465+
466+
if (reportMethod === 'POST') {
467+
return { url, method: 'POST', payload: JSON.stringify(report) };
468+
}
469+
return { url };
466470
}
467471

468472
iiqAnalyticsAnalyticsAdapter.originEnableAnalytics = iiqAnalyticsAnalyticsAdapter.enableAnalytics;

modules/intentIqAnalyticsAdapter.md

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -21,33 +21,33 @@ No registration for this module is required.
2121
{: .table .table-bordered .table-striped }
2222
| Parameter | Scope | Type | Description | Example |
2323
| --- | --- | --- | --- | --- |
24-
| options.partner| Required | Number | This is the partner ID value obtained from registering with IntentIQ. | `1177538` |
24+
| options.partner| Required | Number | This is the partner ID value obtained from registering with IntentIQ. | `1177538` |
2525
| options.manualWinReportEnabled | Optional | Boolean | This variable determines whether the bidWon event is triggered automatically. If set to false, the event will occur automatically, and manual reporting with reportExternalWin will be disabled. If set to true, the event will not occur automatically, allowing manual reporting through reportExternalWin. The default value is false. | `false` |
2626
| options.reportMethod | Optional | String | Defines the HTTP method used to send the analytics report. If set to `"POST"`, the report payload will be sent in the body of the request. If set to `"GET"` (default), the payload will be included as a query parameter in the request URL. | `"GET"` |
2727
| options.reportingServerAddress | Optional | String | The base URL for the IntentIQ reporting server. If parameter is provided in `configParams`, it will be used. | `"https://domain.com"` |
28-
| options.adUnitConfig | Optional | Number | Determines how the `placementId` parameter is extracted in the report (default is 1). Possible values: 1 – adUnitCode first, 2 – placementId first, 3 – only adUnitCode, 4 – only placementId. | `1` |
29-
| options.gamPredictReporting | Optional | Boolean | This variable controls whether the GAM prediction logic is enabled or disabled. The main purpose of this logic is to extract information from a rendered GAM slot when no Prebid bidWon event is available. In that case, we take the highest CPM from the current auction and add 0.01 to that value. | `false` |
28+
| options.adUnitConfig | Optional | Number | Determines how the `placementId` parameter is extracted in the report (default is 1). Possible values: 1 – adUnitCode first, 2 – placementId first, 3 – only adUnitCode, 4 – only placementId. | `1` |
29+
| options.gamPredictReporting | Optional | Boolean | This variable controls whether the GAM prediction logic is enabled or disabled. The main purpose of this logic is to extract information from a rendered GAM slot when no Prebid bidWon event is available. In that case, we take the highest CPM from the current auction and add 0.01 to that value. | `false` |
3030
| options.ABTestingConfigurationSource | Optional | String | Determines how AB group will be defined. Possible values: `"IIQServer"` – group defined by IIQ server, `"percentage"` – generated group based on abPercentage, `"group"` – define group based on value provided by partner. | `IIQServer` |
3131
| options.abPercentage | Optional | Number | Percentage for A/B testing group. Default value is `95` | `95` |
3232
| options.group | Optional | String | Define group provided by partner, possible values: `"A"`, `"B"` | `"A"` |
33-
| options.gamObjectReference | Optional | Object | This is a reference to the Google Ad Manager (GAM) object, which will be used to set targeting. If this parameter is not provided, the group reporting will not be configured.| `googletag`|
34-
| options.browserBlackList | Optional | String | This is the name of a browser that can be added to a blacklist.| `"chrome"`|
35-
| options.domainName | Optional | String | Specifies the domain of the page in which the IntentIQ object is currently running and serving the impression. This domain will be used later in the revenue reporting breakdown by domain. For example, cnn.com. It identifies the primary source of requests to the IntentIQ servers, even within nested web pages.| `"currentDomain.com"`|
33+
| options.gamObjectReference | Optional | Object | This is a reference to the Google Ad Manager (GAM) object, which will be used to set targeting. If this parameter is not provided, the group reporting will not be configured.| `googletag`|
34+
| options.browserBlackList | Optional | String | This is the name of a browser that can be added to a blacklist.| `"chrome"`|
35+
| options.domainName | Optional | String | Specifies the domain of the page in which the IntentIQ object is currently running and serving the impression. This domain will be used later in the revenue reporting breakdown by domain. For example, cnn.com. It identifies the primary source of requests to the IntentIQ servers, even within nested web pages.| `"currentDomain.com"`|
3636
| options. additionalParams | Optional | Array | This parameter allows sending additional custom key-value parameters with specific destination logic (sync, VR, winreport). Each custom parameter is defined as an object in the array. | `[ { parameterName: “abc”, parameterValue: 123, destination: [1,1,0] } ]` |
37-
| options. additionalParams[0].parameterName | Required | String | Name of the custom parameter. This will be sent as a query parameter. | `"abc"` |
38-
| options. additionalParams[0].parameterValue | Required | String / Number | Value to assign to the parameter. | `123` |
39-
| options. additionalParams[0].destination | Required | Array | Array of numbers either `1` or `0`. Controls where this parameter is sent `[sendWithSync, sendWithVr, winreport]`. | `[1, 0, 0]` |
37+
| options. additionalParams[0].parameterName | Optional | String | Name of the custom parameter. This will be sent as a query parameter. | `"abc"` |
38+
| options. additionalParams[0].parameterValue | Optional | String / Number | Value to assign to the parameter. | `123` |
39+
| options. additionalParams[0].destination | Optional | Array | Array of numbers either `1` or `0`. Controls where this parameter is sent `[sendWithSync, sendWithVr, winreport]`. | `[1, 0, 0]` |
4040

4141
#### Example Configuration
4242

4343
```js
4444
pbjs.enableAnalytics({
45-
provider: 'iiqAnalytics',
46-
options: {
47-
partner: 1177538,
48-
ABTestingConfigurationSource: 'IIQServer',
49-
domainName: "currentDomain.com",
50-
}
45+
provider: "iiqAnalytics",
46+
options: {
47+
partner: 1177538,
48+
ABTestingConfigurationSource: "IIQServer",
49+
domainName: "currentDomain.com",
50+
},
5151
});
5252
```
5353

@@ -62,13 +62,13 @@ To enable this manual reporting functionality, you must set the manualWinReportE
6262
To call the reportExternalWin function, you need to pass the partner_id parameter as shown in the example below:
6363

6464
```js
65-
window.intentIqAnalyticsAdapter_[partner_id].reportExternalWin(reportData)
65+
window.intentIqAnalyticsAdapter_[partner_id].reportExternalWin(reportData);
6666
```
6767

6868
Example use with Partner ID = 123455
6969

7070
```js
71-
window.intentIqAnalyticsAdapter_123455.reportExternalWin(reportData)
71+
window.intentIqAnalyticsAdapter_123455.reportExternalWin(reportData);
7272
```
7373

7474
### Function Parameters
@@ -94,24 +94,22 @@ pos: 0 // The following values are defined in the ORTB 2.5 spec
9494
```
9595

9696
{: .table .table-bordered .table-striped }
97-
| Field | Data Type | Description | Example | Mandatory |
97+
| Field | Data Type | Description | Example | Mandatory |
9898
|--------------------|-----------|--------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------|-----------|
99-
| biddingPlatformId | Integer | Specify the platform in which this ad impression was rendered – 1 – Prebid, 2 – Amazon, 3 – Google, 4 – Open RTB (including your local Prebid server) | 1 | Yes |
100-
| partnerAuctionId | String | Use this when you are running multiple auction solutions across your assets and have a unified identifier for auctions | 3d44542d-xx-4662-xxxx-4xxxx3d8e | No |
101-
| bidderCode | String | Specifies the name of the bidder that won the auction as reported by Prebid and all other bidding platforms | newAppnexus | Yes |
102-
| prebidAuctionId | String | Specifies the identifier of the Prebid auction. Leave empty or undefined if Prebid is not the bidding platform | | |
103-
| cpm | Decimal | Cost per mille of the impression as received from the demand-side auction (without modifications or reductions) | 5.62 | Yes |
104-
| currency | String | Currency of the auction | USD | Yes |
105-
| originalCpm | Decimal | Leave empty or undefined if Prebid is not the bidding platform | 5.5 | No |
106-
| originalCurrency | String | Currency of the original auction | USD | No |
107-
| status | String | Status of the impression. Leave empty or undefined if Prebid is not the bidding platform | rendered | No |
108-
| placementId | String | Unique identifier of the ad unit on the webpage that showed this ad | div-1 | No |
109-
| adType | String | Specifies the type of ad served. Possible values: “banner“, “video“, “native“, “audio“. | banner | No |
110-
| size | String | Size of adUnit item | '320x250' | No |
111-
| pos | number | The pos field specifies the position of the adUnit on the page according to the OpenRTB 2.5 specification | 0 | No |
99+
| biddingPlatformId | Integer | Specify the platform in which this ad impression was rendered – 1 – Prebid, 2 – Amazon, 3 – Google, 4 – Open RTB (including your local Prebid server) | 1 | Yes |
100+
| partnerAuctionId | String | Use this when you are running multiple auction solutions across your assets and have a unified identifier for auctions | 3d44542d-xx-4662-xxxx-4xxxx3d8e | No |
101+
| bidderCode | String | Specifies the name of the bidder that won the auction as reported by Prebid and all other bidding platforms | newAppnexus | Yes |
102+
| prebidAuctionId | String | Specifies the identifier of the Prebid auction. Leave empty or undefined if Prebid is not the bidding platform | 3513ce01-de02-490b-9d87-bfc137697f82 | No |
103+
| cpm | Decimal | Cost per mille of the impression as received from the demand-side auction (without modifications or reductions) | 5.62 | Yes |
104+
| currency | String | Currency of the auction | USD | Yes |
105+
| originalCpm | Decimal | Leave empty or undefined if Prebid is not the bidding platform | 5.5 | No |
106+
| originalCurrency | String | Currency of the original auction | USD | No |
107+
| status | String | Status of the impression. Leave empty or undefined if Prebid is not the bidding platform | rendered | No |
108+
| placementId | String | Unique identifier of the ad unit on the webpage that showed this ad | div-1 | No |
109+
| adType | String | Specifies the type of ad served. Possible values: “banner“, “video“, “native“, “audio“. | banner | No |
112110

113111
To report the auction win, call the function as follows:
114112

115113
```js
116-
window.intentIqAnalyticsAdapter_[partner_id].reportExternalWin(reportData)
114+
window.intentIqAnalyticsAdapter_[partner_id].reportExternalWin(reportData);
117115
```

modules/intentIqIdSystem.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -208,9 +208,16 @@ export function setGamReporting(gamObjectReference, gamParameterName, userGroup,
208208
if (isBlacklisted) return;
209209
if (isPlainObject(gamObjectReference) && gamObjectReference.cmd) {
210210
gamObjectReference.cmd.push(() => {
211-
gamObjectReference
212-
.pubads()
213-
.setTargeting(gamParameterName, userGroup);
211+
if (typeof gamObjectReference.setConfig === 'function') {
212+
gamObjectReference.setConfig({
213+
targeting: {
214+
[gamParameterName]: userGroup
215+
}
216+
});
217+
return;
218+
}
219+
// Fallback in case an older version of Google Publisher Tag is used.
220+
gamObjectReference?.pubads?.()?.setTargeting?.(gamParameterName, userGroup);
214221
});
215222
}
216223
}

0 commit comments

Comments
 (0)