Skip to content

Commit 0f53b50

Browse files
committed
Merge tag '10.16.0' into feature/update-10.11.0
2 parents d7c8476 + 244011b commit 0f53b50

304 files changed

Lines changed: 2041 additions & 933 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/code-reviewer-assignment.yml

Lines changed: 0 additions & 138 deletions
This file was deleted.

libraries/intentIqConstants/intentIqConstants.js

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,12 @@ 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.31;
12+
export const VERSION = 0.32;
1313
export const PREBID = 'pbjs';
1414
export const HOURS_24 = 86400000;
1515

1616
export const INVALID_ID = 'INVALID_ID';
1717

18-
export const SCREEN_PARAMS = {
19-
0: 'windowInnerHeight',
20-
1: 'windowInnerWidth',
21-
2: 'devicePixelRatio',
22-
3: 'windowScreenHeight',
23-
4: 'windowScreenWidth',
24-
5: 'language'
25-
};
26-
2718
export const SYNC_REFRESH_MILL = 3600000;
2819
export const META_DATA_CONSTANT = 256;
2920

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
import { getEvents } from '../../src/events.js';
2+
import { logError } from '../../src/utils.js';
3+
4+
export function gamPredictionReport (gamObjectReference, sendData) {
5+
try {
6+
if (!gamObjectReference || !sendData) logError('Failed to get gamPredictionReport, required data is missed');
7+
const getSlotTargeting = (slot) => {
8+
const kvs = {};
9+
try {
10+
(slot.getTargetingKeys() || []).forEach((k) => {
11+
kvs[k] = slot.getTargeting(k);
12+
});
13+
} catch (e) {
14+
logError('Failed to get targeting keys: ' + e);
15+
}
16+
return kvs;
17+
};
18+
19+
const extractWinData = (gamEvent) => {
20+
const slot = gamEvent.slot;
21+
const targeting = getSlotTargeting(slot);
22+
23+
const dataToSend = {
24+
placementId: slot.getSlotElementId && slot.getSlotElementId(),
25+
adUnitPath: slot.getAdUnitPath && slot.getAdUnitPath(),
26+
bidderCode: targeting.hb_bidder ? targeting.hb_bidder[0] : null,
27+
biddingPlatformId: 5
28+
};
29+
30+
if (dataToSend.placementId) {
31+
// TODO check auto subscription to prebid events
32+
const bidWonEvents = getEvents().filter((ev) => ev.eventType === 'bidWon');
33+
if (bidWonEvents.length) {
34+
for (let i = bidWonEvents.length - 1; i >= 0; i--) {
35+
const element = bidWonEvents[i];
36+
if (
37+
dataToSend.placementId === element.id &&
38+
targeting.hb_adid &&
39+
targeting.hb_adid[0] === element.args.adId
40+
) {
41+
return; // don't send report if there was bidWon event earlier
42+
}
43+
}
44+
}
45+
const endEvents = getEvents().filter((ev) => ev.eventType === 'auctionEnd');
46+
if (endEvents.length) {
47+
for (let i = endEvents.length - 1; i >= 0; i--) {
48+
// starting from the last event
49+
const element = endEvents[i];
50+
if (element.args?.adUnitCodes?.includes(dataToSend.placementId)) {
51+
const defineRelevantData = (bid) => {
52+
dataToSend.cpm = bid.cpm + 0.01; // add one cent to the cpm
53+
dataToSend.currency = bid.currency;
54+
dataToSend.originalCpm = bid.originalCpm;
55+
dataToSend.originalCurrency = bid.originalCurrency;
56+
dataToSend.status = bid.status;
57+
dataToSend.prebidAuctionId = element.args?.auctionId;
58+
};
59+
if (dataToSend.bidderCode) {
60+
const relevantBid = element.args?.bidsReceived.find(
61+
(item) =>
62+
item.bidder === dataToSend.bidderCode &&
63+
item.adUnitCode === dataToSend.placementId
64+
);
65+
if (relevantBid) {
66+
defineRelevantData(relevantBid);
67+
break;
68+
}
69+
} else {
70+
let highestBid = 0;
71+
element.args?.bidsReceived.forEach((bid) => {
72+
if (bid.adUnitCode === dataToSend.placementId && bid.cpm > highestBid) {
73+
highestBid = bid.cpm;
74+
defineRelevantData(bid);
75+
}
76+
});
77+
break;
78+
}
79+
}
80+
}
81+
}
82+
}
83+
return dataToSend;
84+
};
85+
gamObjectReference.cmd.push(() => {
86+
gamObjectReference.pubads().addEventListener('slotRenderEnded', (event) => {
87+
if (event.isEmpty) return;
88+
const data = extractWinData(event);
89+
if (data?.cpm) {
90+
sendData(data);
91+
}
92+
});
93+
});
94+
} catch (error) {
95+
this.logger.error('Failed to subscribe to GAM: ' + error);
96+
}
97+
};

libraries/intentIqUtils/intentIqConfig.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

libraries/medianetUtils/logKeys.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ export const KeysMap = {
125125
'floorData.floorRule as flrrule',
126126
'floorRuleValue as flrRulePrice',
127127
'serverLatencyMillis as rtime',
128+
'pbsExt',
128129
'creativeId as pcrid',
129130
'dbf',
130131
'latestTargetedAuctionId as lacid',

0 commit comments

Comments
 (0)