// Metro module 9474 (f9475). import NetworkStore from "../../stores/NetworkStore"; import QuestStore from "./QuestStore"; import { AnalyticEvents } from "../../Constants"; import { getSignalStrength } from "../network/NetStats.android"; import AnalyticsUtils from "../../utils/AnalyticsUtils"; import getDeviceMetadata_native from "../device/getDeviceMetadata.native"; import { isForegrounded } from "../analytics_sessions/SessionForegroundUtils.native"; import NewAdRequestBehaviorExperiment from "./experiments/NewAdRequestBehaviorExperiment"; const trackRoundtrip = function trackRoundtrip(a0, a1, a2) { if (!(Math.random() > 0.1)) { const api_latency_ms = a0.apiResponseTimestamp == null ? null : a0.apiResponseTimestamp - a0.initialSendTimestamp; const signalStrength = getSignalStrength(); const QUEST_DECISION_ROUNDTRIP = AnalyticEvents.QUEST_DECISION_ROUNDTRIP; const r30 = { ...getDeviceMetadata_native(), endpoint: a0.endpoint, was_successful: a0.wasSuccessful, api_latency_ms, mobile_network_type: NetworkStore.getType(), ...signalStrength != null && { mobile_signal_strength_level: signalStrength }, caller_source: a0.callerSource, ad_request_id: a0.adRequestId, fetched_at: a2 }; const previousAdDecision = a0.previousAdDecision; let previous_ad_request_id = previousAdDecision == null ? void 0 : previousAdDecision.adDecisionData?.decision_id; if (previous_ad_request_id == null) { previous_ad_request_id = null; } r30.previous_ad_request_id = previous_ad_request_id; let previous_fetched_at = a0.previousAdDecision?.fetchedAt; if (previous_fetched_at == null) { previous_fetched_at = null; } r30.previous_fetched_at = previous_fetched_at; r30.transition_case = a1; r30.is_foregrounded = isForegrounded(); AnalyticsUtils.track(QUEST_DECISION_ROUNDTRIP, r30); } }; class QuestDecisionRoundtripTracker { constructor() { return { __proto__: new.target.prototype, pendingRequests: new Map() }; } recordQuestRequestAttempt(a0, a1) { let placement = arguments[2]; if (placement === void 0) { placement = null; } const enableNewRequestBehavior = NewAdRequestBehaviorExperiment.getConfig({ location: "recordQuestRequestAttempt" }).enableNewRequestBehavior; let previousAdDecision = null; if (enableNewRequestBehavior) { const r3 = placement != null; previousAdDecision = null; if (r3) { let r23 = QuestStore.questAdDecisionByPlacement.get(placement); if (r23 == null) { r23 = null; } previousAdDecision = r23; } } this.pendingRequests.set(a0, { initialSendTimestamp: Date.now(), endpoint: a0, apiResponseTimestamp: null, wasSuccessful: false, callerSource: a1, adRequestId: null, previousAdDecision, placement }); setTimeout(() => { const pendingRequests = this.pendingRequests; const r6 = pendingRequests.get(a0); if (r6 != null) { trackRoundtrip(r6, "timeout", null); this.pendingRequests.delete(a0); } }, 30000); } recordQuestRequestApiResponse(a0, { wasSuccessful, adRequestId = null, currentQuestId = null, currentFetchedAt = null }) { const r12 = this.pendingRequests.get(a0); if (r12 != null) { const enableNewRequestBehavior = NewAdRequestBehaviorExperiment.getConfig({ location: "recordQuestRequestApiResponse" }).enableNewRequestBehavior; let r31 = "legacy"; let r32 = null; if (enableNewRequestBehavior) { const r14 = currentFetchedAt !== null ? { questId: currentQuestId, adCreativeId: currentQuestId, fetchedAt: currentFetchedAt, ttlMillis: 0, adDecisionData: adRequestId != null ? { decision_id: adRequestId } : void 0 } : null; const previousAdDecision = r12.previousAdDecision; const r36 = previousAdDecision == null; let r19 = "null"; const r18 = r36 ? "null" : previousAdDecision.questId == null ? "no_serve" : "quest"; if (r14 != null) { r19 = r14.questId == null ? "no_serve" : "quest"; } r31 = r18 === "quest" && r19 === "quest" ? previousAdDecision?.questId === r14?.questId ? "same_quest" : "different_quest" : `${r18}_to_${r19}`; r32 = currentFetchedAt; } trackRoundtrip({ ...r12, apiResponseTimestamp: Date.now(), wasSuccessful, adRequestId }, r31, r32); this.pendingRequests.delete(a0); } } } const r36 = { __proto__: QuestDecisionRoundtripTracker.prototype, pendingRequests: new Map() }; export default r36;