function gatherMetricsOnPageUnload()

in src/lib/send-commercial-metrics.ts [160:185]


function gatherMetricsOnPageUnload(): void {
	// Assemble commercial properties and metrics
	const eventTimer = EventTimer.get();
	const transformedEntries = transformToObjectEntries(eventTimer.properties);
	const filteredEventTimerProperties = transformedEntries.filter<ArrayMetric>(
		(item): item is ArrayMetric => typeof item[1] !== 'undefined',
	);
	const mappedEventTimerProperties = mapEventTimerPropertiesToString(
		filteredEventTimerProperties,
	);

	const properties: readonly Property[] = mappedEventTimerProperties
		.concat(devProperties)
		.concat(adBlockerProperties);
	commercialMetricsPayload.properties = properties;

	const metrics: readonly Metric[] = roundTimeStamp(
		eventTimer.marks,
		eventTimer.measures,
	)
		.concat(getOfflineCount())
		.concat(getPerformanceMeasures('dotcom'));
	commercialMetricsPayload.metrics = metrics;

	sendMetrics();
}