From 1727d4a69c4861b692958cdfbb9523560450b613 Mon Sep 17 00:00:00 2001 From: Joey Wunderlich Date: Mon, 17 Jul 2023 15:02:33 -0700 Subject: [PATCH] clean up PageviewPerformanceData tick a bit (#9602) * clean up PageviewPerformanceData tick a bit * remove the if not props as that seems to be getting race conditioned or something --- docfiles/pxtweb/cookieCompliance.ts | 10 ++++++++++ docfiles/tracking.html | 17 ++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/docfiles/pxtweb/cookieCompliance.ts b/docfiles/pxtweb/cookieCompliance.ts index 5f90df494ebe..d9035ee5d294 100644 --- a/docfiles/pxtweb/cookieCompliance.ts +++ b/docfiles/pxtweb/cookieCompliance.ts @@ -194,6 +194,16 @@ namespace pxt { return false; } + if (envelope.baseType == "PageviewPerformanceData") { + const pageName = envelope.baseData.name; + envelope.baseData.name = window.location.origin; + if (!envelope.baseData.properties) { + envelope.baseData.properties = {}; + } + envelope.baseData.properties.pageName = pageName; + // no url scrubbing for webapp (no share url, etc) + } + if (typeof pxtConfig === "undefined" || !pxtConfig) return true; const telemetryItem = envelope.baseData; diff --git a/docfiles/tracking.html b/docfiles/tracking.html index efb50a3533bd..0dbd111310e0 100644 --- a/docfiles/tracking.html +++ b/docfiles/tracking.html @@ -9,10 +9,25 @@ sdk.addTelemetryInitializer(function (envelope) { // App Insights automatically sends a page view event on setup, but we send our own later with additional properties. // This stops the automatic event from firing, so we don't end up with duplicate page view events. - if(envelope.baseType == "PageviewData" && !envelope.baseData.properties) { + if (envelope.baseType == "PageviewData" && !envelope.baseData.properties) { return false; } + if (envelope.baseType == "PageviewPerformanceData") { + var pageName = envelope.baseData.name; + envelope.baseData.name = window.location.origin; + if (!envelope.baseData.properties) { + envelope.baseData.properties = {}; + } + envelope.baseData.properties.pageName = pageName; + var scrubbedUrl = scrubUrl(envelope.baseData.uri); + envelope.baseData.uri = scrubbedUrl; + if (envelope.ext && envelope.ext.trace) { + var toUrl = new URL(scrubbedUrl); + envelope.ext.trace.name = toUrl ? toUrl.pathname : ""; + } + } + var telemetryItem = envelope.baseData; telemetryItem.properties = telemetryItem.properties || {}; telemetryItem.properties["cookie"] = isProduction;