This commit is contained in:
janisslsm committed 2026-11-01 12:12:55 +02:00
1 parent 1781d25a15
commit 732c0ad767
33051 files changed
+2591613 -3019689

No files matched your search

@@ -0,0 +1,453 @@
// Metro module 10497 (f10498).
import { createContext, useRef, useEffect } from "react";
import QuestStore from "../../QuestStore";
import { HEARTBEAT_SECONDS, MIN_QUEST_VIEW_TIME_SECONDS, MIN_QUEST_CONTENT_VISIBILITY_PERCENTAGE } from "./ContentImpressionTrackerConstants";
import { AnalyticEvents } from "../../../../Constants";
import { jsx } from "react/jsx-runtime";
import { v4 } from "../../../../_bundle/Module514";
import { shouldMigrateToAdAnalyticsInterface, AdAnalyticsInterfaceExperimentStep } from "../../experiments/AdAnalyticsInterfaceExperiment";
import { getAdMetadataSealed, isQuestExpired, isBillableQuestContent, getAdTrafficMetadataSealed, getQuestPlacementFromQuestContent } from "../../utils/QuestDataUtils";
import { AdCreativeType } from "../../../../_bundle/Module6013";
import { getAdUser } from "../../../ads/utils/AdDataUtils.android";
import { getQuestContentName, getContentProperties } from "./AnalyticsTypes";
import { isIOS, isAndroid } from "../../../../utils/PlatformUtils";
import getDeviceMetadata_native from "../../../device/getDeviceMetadata.native";
import { getBrandSafetyContext } from "./BrandSafetyContext";
import { markAdContentSeen } from "../../QuestActionCreators";
import { captureAdUserAction } from "../../../ads/analytics/captureAdUserAction";
import { AdUserActionType } from "../../../ads/analytics/captureAdUserActionTypes";
import { getQuestLogger } from "../getQuestLogger";
import { trackQuestEvent, trackAdContentEvent } from "./AnalyticsActions";
import { getCurrentQuestHomeSearchSession } from "./QuestHomeSearchSession";
import MonitoringAgent from "../../../monitoring/MonitoringAgent";
import { MetricEvents } from "../../../../_bundle/Module5872";
import { useQuestStatusChanged } from "./ContentImpressionTrackerHooks";
import { useStateFromStores } from "../../../../_bundle/Module589";
import useMountEffect from "../../../../hooks/useMountEffect";
function $mk118168($env) {
return (a0, a1) => {
const r10 = $env;
const r32 = $env.$parent[0];
let metadata_sealed = getAdMetadataSealed(r32.sourceQuestContent, a0);
const shouldExtendSession2 = r32.shouldExtendSession(a0);
r32.trackViewedPlacement(a0);
const migrateQuestContentViewedToCaptureAdUserAction = r32.migrateQuestContentViewedToCaptureAdUserAction;
const adCreativeType = r32.entity.adCreativeType;
const QUEST = AdCreativeType.QUEST;
if (migrateQuestContentViewedToCaptureAdUserAction) {
if (adCreativeType === QUEST) {
const r151 = r32.entity.adContentIds[a1];
const quest2 = QuestStore.getQuest(r151);
if (!(quest2 == null || isQuestExpired(quest2))) {
markAdContentSeen(AdCreativeType.QUEST, [r151]);
}
}
r32.entity.adCreativeType;
AdCreativeType.QUEST;
const r177 = {
adCreativeType: r32.entity.adCreativeType,
adCreativeId: r32.entity.adContentIds[a1]
};
captureAdUserAction({
type: isBillableQuestContent(r32.questContent) ? AdUserActionType.VIEW_EXTERNAL_PAID_AD_PLACEMENT_IMPRESSION : AdUserActionType.VIEW_INTERNAL_SURFACE_IMPRESSION,
surfaceId: r32.questContent,
sourceQuestContent: r32.sourceQuestContent,
impressionId: r32.id,
triggeredByStatusChange: r32.triggeredByStatusChange,
minViewTimeSeconds: r32.minViewTimeSeconds,
minViewportPercentage: r32.minViewportPercentage,
isQuestEnrollmentBlocked: r32.isQuestEnrollmentBlocked,
shouldExtendSession: shouldExtendSession2,
adUser: r10[0],
questContentPosition: r32.questContentPosition,
questContentRowIndex: r32.questContentRowIndex,
trackGuildAndChannelMetadata: r32.trackGuildAndChannelMetadata,
...r177
});
getQuestLogger().info(`${a0} ad content viewed for at least ${r32.minViewTimeSeconds}s at ${getQuestContentName(r32.questContent)}`, {
impressionId: r32.id
});
return void 0;
}
if (adCreativeType === QUEST) {
const questId = r32.entity.adContentIds[a1];
const quest = QuestStore.getQuest(questId);
if (!(quest == null || isQuestExpired(quest))) {
markAdContentSeen(AdCreativeType.QUEST, [questId]);
}
const questLogger = getQuestLogger();
let r24 = quest == null ? void 0 : quest.config.messages.questName;
if (r24 == null) {
r24 = questId;
}
questLogger.info(`${r24} Quest viewed for at least ${r32.minViewTimeSeconds}s at ${getQuestContentName(r32.questContent)}`, {
impressionId: r32.id
});
const properties = {
...r10[2],
...r32.commonProperties()
};
if (metadata_sealed == null) {
metadata_sealed = null;
}
properties.metadata_sealed = metadata_sealed;
let search_session_id = getCurrentQuestHomeSearchSession()?.uuid;
if (search_session_id == null) {
search_session_id = null;
}
properties.search_session_id = search_session_id;
let traffic_metadata_sealed = getAdTrafficMetadataSealed(r32.sourceQuestContent, quest?.id);
if (traffic_metadata_sealed == null) {
traffic_metadata_sealed = null;
}
properties.traffic_metadata_sealed = traffic_metadata_sealed;
trackQuestEvent({
...r10[1],
shouldExtendSession: shouldExtendSession2,
questId,
event: AnalyticEvents.QUEST_CONTENT_VIEWED,
properties
});
} else {
const adContentId = r32.entity.adContentIds[a1];
getQuestLogger().info(`${adContentId} ad content viewed for at least ${r32.minViewTimeSeconds}s at ${getQuestContentName(r32.questContent)}`, {
impressionId: r32.id
});
trackAdContentEvent({
...r10[1],
shouldExtendSession: shouldExtendSession2,
adContentId,
adCreativeType: r32.entity.adCreativeType,
event: AnalyticEvents.QUEST_CONTENT_VIEWED,
properties: {
...r10[2],
...r32.commonProperties()
}
});
}
};
}
let QuestContentImpression, c7042_13;
let env7042 = {};
const c7042_11 = new Set();
const c7042_14 = class QuestContentImpression {
constructor(a0) {
let env18074;
const _this = this;
this.isRunning = false;
this.trackViewedPlacement = (a0) => {
const questPlacementFromQuestContent = getQuestPlacementFromQuestContent(_this.questContent);
if (questPlacementFromQuestContent != null && isBillableQuestContent(_this.questContent)) {
c7042_11.add(`${a0}_${questPlacementFromQuestContent}`);
}
};
this.shouldExtendSession = (a0) => {
const questPlacementFromQuestContent = getQuestPlacementFromQuestContent(_this.questContent);
return questPlacementFromQuestContent != null && !c7042_11.has(`${a0}_${questPlacementFromQuestContent}`) && isBillableQuestContent(_this.questContent);
};
env18074 = {
$parent: env7042
};
env18074[0] = this;
this.onMinViewTimeReached = async () => {
let env31534;
const r25 = env18074;
let c30234_1 = r25;
const r9 = env31534 = {
$parent: r25
};
let c30234_0 = r9;
env31534[0] = void 0;
env31534[1] = void 0;
env31534[2] = void 0;
env31534[0] = await getAdUser(getQuestContentName(env18074[0].questContent));
env31534[1] = {
trackGuildAndChannelMetadata: env18074[0].trackGuildAndChannelMetadata,
sourceQuestContent: env18074[0].sourceQuestContent
};
const apple_advertising_id = env31534[0] != null ? isIOS() ? env31534[0].advertisingId : null : null;
const android_advertising_id = env31534[0] != null ? isAndroid() ? env31534[0].advertisingId : null : null;
env31534[2] = {
min_view_time_seconds: env18074[0].minViewTimeSeconds,
min_viewport_percentage: env18074[0].minViewportPercentage,
triggered_by_status_change: env18074[0].triggeredByStatusChange,
apple_advertising_id,
android_advertising_id,
...getDeviceMetadata_native(),
...getBrandSafetyContext(env18074[0].questContent)
};
env18074[0].entity.adContentIds.forEach($mk118168(c30234_0));
const r108 = env18074[0];
const onImpressionCallback = r108.onImpressionCallback;
if (onImpressionCallback != null) {
onImpressionCallback.call(r108);
}
};
this.beat = function beat(is_termination_beat = false) {
let c26698_1, c26698_2, c26698_3;
let c26698_0 = is_termination_beat;
c26698_1 = void 0;
c26698_2 = void 0;
c26698_3 = void 0;
if (_this.lastBeatTime != null) {
const viewed_time_ms = Math.round(Date.now() - _this.lastBeatTime);
c26698_1 = viewed_time_ms;
c26698_2 = {
trackGuildAndChannelMetadata: _this.trackGuildAndChannelMetadata,
sourceQuestContent: _this.sourceQuestContent
};
c26698_3 = {
is_termination_beat,
viewed_time_ms,
triggered_by_status_change: _this.triggeredByStatusChange
};
_this.entity.adContentIds.forEach((a0, index) => {
if (_this.entity.adCreativeType === AdCreativeType.QUEST) {
const questId = _this.entity.adContentIds[index];
const quest = QuestStore.getQuest(questId);
const questLogger = getQuestLogger();
let r73 = quest == null ? void 0 : quest.config.messages.questName;
if (r73 == null) {
r73 = questId;
}
questLogger.info(`${r73} Quest impression ${c26698_0 ? "terminal " : ""}heartbeat: ${c26698_1}ms since last heartbeat`, {
impressionId: _this.id
});
trackQuestEvent({
...c26698_2,
questId,
event: AnalyticEvents.QUEST_CONTENT_VIEW_TIME,
properties: {
...c26698_3,
..._this.commonProperties()
}
});
} else {
const adContentId = _this.entity.adContentIds[index];
getQuestLogger().info(`${adContentId} ad content impression ${c26698_0 ? "terminal " : ""}heartbeat: ${c26698_1}ms since last heartbeat`, {
impressionId: _this.id
});
trackAdContentEvent({
...c26698_2,
adContentId,
adCreativeType: _this.entity.adCreativeType,
event: AnalyticEvents.QUEST_CONTENT_VIEW_TIME,
properties: {
...c26698_3,
..._this.commonProperties()
}
});
}
});
}
_this.lastBeatTime = Date.now();
};
this.commonProperties = () => ({
impression_id: _this.id,
is_quest_enrollment_blocked: _this.isQuestEnrollmentBlocked,
...getContentProperties(_this.questContent, _this.questContentPosition, _this.questContentRowIndex)
});
this.clone = ({ triggeredByStatusChange }) => {
_this.stop();
return new c7042_14({
questContent: _this.questContent,
questContentRowIndex: _this.questContentRowIndex,
questContentPosition: _this.questContentPosition,
trackGuildAndChannelMetadata: _this.trackGuildAndChannelMetadata,
triggeredByStatusChange,
isQuestEnrollmentBlocked: _this.isQuestEnrollmentBlocked,
onImpression: _this.onImpressionCallback,
sourceQuestContent: _this.sourceQuestContent,
..._this.entity
});
};
this.start = () => {
let c26699_0, c26699_1;
_this.stop(false);
_this.lastBeatTime = Date.now();
_this.heartbeatTimeoutId = window.setInterval(() => _this.beat(), 1000 * HEARTBEAT_SECONDS);
_this.minViewTimeReachedTimeoutId = window.setTimeout(_this.onMinViewTimeReached, 1000 * _this.minViewTimeSeconds);
c26699_0 = {
trackGuildAndChannelMetadata: _this.trackGuildAndChannelMetadata,
sourceQuestContent: _this.sourceQuestContent
};
c26699_1 = {
triggered_by_status_change: _this.triggeredByStatusChange
};
_this.entity.adContentIds.forEach((a0, index) => {
let metadata_sealed = getAdMetadataSealed(_this.sourceQuestContent, a0);
const migrateQuestContentLoadedToCaptureAdUserAction = _this.migrateQuestContentLoadedToCaptureAdUserAction;
const adCreativeType = _this.entity.adCreativeType;
const QUEST = AdCreativeType.QUEST;
if (migrateQuestContentLoadedToCaptureAdUserAction) {
captureAdUserAction({
type: AdUserActionType.END_CONTENT_LOAD,
surfaceId: _this.questContent,
sourceQuestContent: _this.sourceQuestContent,
impressionId: _this.id,
triggeredByStatusChange: _this.triggeredByStatusChange,
trackGuildAndChannelMetadata: _this.trackGuildAndChannelMetadata,
questContentPosition: _this.questContentPosition,
questContentRowIndex: _this.questContentRowIndex,
...{
adCreativeType: _this.entity.adCreativeType,
adCreativeId: _this.entity.adContentIds[index]
}
});
} else if (adCreativeType === QUEST) {
const questId = _this.entity.adContentIds[index];
const quest = QuestStore.getQuest(questId);
const questLogger = getQuestLogger();
let r18 = quest == null ? void 0 : quest.config.messages.questName;
if (r18 == null) {
r18 = questId;
}
questLogger.info(`${r18} Quest became visible at ${getQuestContentName(_this.questContent)}`, {
impressionId: _this.id
});
if (metadata_sealed == null) {
metadata_sealed = null;
}
const properties = {
...c26699_1,
metadata_sealed,
..._this.commonProperties()
};
let traffic_metadata_sealed = getAdTrafficMetadataSealed(_this.sourceQuestContent, quest?.id);
if (traffic_metadata_sealed == null) {
traffic_metadata_sealed = null;
}
properties.traffic_metadata_sealed = traffic_metadata_sealed;
trackQuestEvent({
...c26699_0,
questId,
event: AnalyticEvents.QUEST_CONTENT_LOADED,
properties
});
} else {
const adContentId = _this.entity.adContentIds[index];
getQuestLogger().info(`${adContentId} ad content became visible at ${getQuestContentName(_this.questContent)}`, {
impressionId: _this.id
});
trackAdContentEvent({
...c26699_0,
adContentId,
adCreativeType: _this.entity.adCreativeType,
event: AnalyticEvents.QUEST_CONTENT_LOADED,
properties: {
...c26699_1,
..._this.commonProperties()
}
});
}
});
MonitoringAgent.increment({
name: MetricEvents.QUEST_CONTENT_IMPRESSION,
tags: [`quest_content:${getQuestContentName(_this.questContent)}`]
});
_this.isRunning = true;
};
this.stop = function stop(r3 = true) {
if (r3) {
_this.beat(true);
}
_this.lastBeatTime = void 0;
clearInterval(_this.heartbeatTimeoutId);
clearTimeout(_this.minViewTimeReachedTimeoutId);
_this.isRunning = false;
};
const { adContentIds, adCreativeType, questContent, triggeredByStatusChange, trackGuildAndChannelMetadata, questContentPosition, questContentRowIndex, minViewTimeSeconds = MIN_QUEST_VIEW_TIME_SECONDS, isQuestEnrollmentBlocked, onImpression, sourceQuestContent: sourceQuestContent2 } = a0;
this.id = v4();
this.questContent = questContent;
this.questContentPosition = questContentPosition;
this.minViewTimeSeconds = minViewTimeSeconds;
this.minViewportPercentage = MIN_QUEST_CONTENT_VISIBILITY_PERCENTAGE;
this.trackGuildAndChannelMetadata = trackGuildAndChannelMetadata;
this.triggeredByStatusChange = triggeredByStatusChange;
this.questContentRowIndex = questContentRowIndex;
this.isQuestEnrollmentBlocked = isQuestEnrollmentBlocked;
this.onImpressionCallback = onImpression;
this.sourceQuestContent = sourceQuestContent2;
this.migrateQuestContentLoadedToCaptureAdUserAction = shouldMigrateToAdAnalyticsInterface(AdAnalyticsInterfaceExperimentStep.STEP_1_LOADED, "quest_content_impression");
this.migrateQuestContentViewedToCaptureAdUserAction = shouldMigrateToAdAnalyticsInterface(isBillableQuestContent(questContent) ? AdAnalyticsInterfaceExperimentStep.STEP_5_VIEWED_IMPRESSION : AdAnalyticsInterfaceExperimentStep.STEP_4_VIEWED_NON_IMPRESSION, "quest_content_impression");
AdCreativeType.QUEST;
this.entity = {
adContentIds,
adCreativeType
};
}
getId() {
return this.id;
}
getQuestContentPosition() {
return this.questContentPosition;
}
};
QuestContentImpression = c7042_14;
const context = createContext(void 0);
c7042_13 = context;
export { c7042_14 as QuestContentImpression };
export { context as QuestImpressionContext };
export function QuestContentImpressionTracker(a0) {
const { visible, visibleChanged, focused, reference, focusedChanged, sourceQuestContent } = a0;
const questStatusChanged = useQuestStatusChanged(a0);
const ref = useRef(null);
const stateFromStores = useStateFromStores([QuestStore], () => QuestStore.questEnrollmentBlockedUntil != null, []);
useMountEffect(() => () => {
if (ref.current != null) {
ref.current.stop();
}
});
useEffect(() => {
let r5 = focused;
if (focused) {
r5 = visible;
}
let r4 = visibleChanged;
const r2 = ((visibleChanged ? visibleChanged : focusedChanged) || questStatusChanged) && r5;
let r3 = r2;
if (!r3) {
if (!visibleChanged) {
r4 = focusedChanged;
}
if (r4) {
r4 = !r5;
}
r3 = r4;
}
if (!r3) {
r3 = questStatusChanged;
}
if (r3) {
r3 = ref.current != null;
}
if (r3) {
ref.current.stop();
}
if (r2) {
const r19 = {
isQuestEnrollmentBlocked: stateFromStores,
minViewTimeSeconds: a0.minViewTimeSeconds,
onImpression: a0.onImpression,
questContent: a0.questContent,
questContentPosition: a0.questContentPosition,
questContentRowIndex: a0.questContentRowIndex,
sourceQuestContent,
trackGuildAndChannelMetadata: a0.trackGuildAndChannelMetadata,
triggeredByStatusChange: questStatusChanged
};
a0.adCreativeType;
AdCreativeType.QUEST;
ref.current = new QuestContentImpression({
...r19,
adContentIds: a0.adContentIds,
adCreativeType: a0.adCreativeType
});
ref.current.start();
}
}, [focused, visible, focusedChanged, visibleChanged, a0.adContentIds, a0.onImpression, a0.questContent, a0.questContentPosition, a0.questContentRowIndex, a0.trackGuildAndChannelMetadata, questStatusChanged, a0.minViewTimeSeconds, stateFromStores, sourceQuestContent, a0.adCreativeType]);
return (0, jsx)(c7042_13.Provider, {
value: ref,
children: a0.children(reference, ref)
});
}