diff --git a/src/desktop-metrics.html b/src/desktop-metrics.html index 937b87d5e..23adc0f6c 100644 --- a/src/desktop-metrics.html +++ b/src/desktop-metrics.html @@ -11,7 +11,9 @@ } const SAVED_GOOGLE_ANALYTICS_DESKTOP_KEY = "SAVED_GOOGLE_ANALYTICS_DESKTOP_KEY"; + const SAVED_CUSTOM_USER_ID_KEY = "SAVED_CUSTOM_USER_ID"; let gaReady = false, loadedGoogleAnalyticsID; + let savedCustomUserID = localStorage.getItem(SAVED_CUSTOM_USER_ID_KEY); const url = window.location.href; const urlParams = new URLSearchParams(window.location.search); @@ -90,7 +92,11 @@ document.head.appendChild(gaScript); gtag('js', new Date()); - gtag('config', analyticsID); + const configParams = {}; + if (savedCustomUserID) { + configParams.client_id = savedCustomUserID; + } + gtag('config', analyticsID, configParams); gaReady = true; } @@ -109,6 +115,16 @@ async function processRequest(event) { const payload = event.payload; + if (payload.customUserID && payload.customUserID !== savedCustomUserID) { + savedCustomUserID = payload.customUserID; + localStorage.setItem(SAVED_CUSTOM_USER_ID_KEY, payload.customUserID); + if (gaReady) { + gtag('config', loadedGoogleAnalyticsID, { + client_id: savedCustomUserID, + send_page_view: false + }); + } + } if(payload.analyticsID && loadedGoogleAnalyticsID !== payload.analyticsID) { localStorage.setItem(SAVED_GOOGLE_ANALYTICS_DESKTOP_KEY, payload.analyticsID); installGoogleAnalytics(); diff --git a/src/utils/Metrics.js b/src/utils/Metrics.js index 6b382c81f..d34d48e27 100644 --- a/src/utils/Metrics.js +++ b/src/utils/Metrics.js @@ -254,7 +254,6 @@ define(function (require, exports, module) { script.onload = function(){ gtag('js', new Date()); - // TODO use googleAnalyticsIDDesktop for desktop analytics gtag('config', brackets.config.googleAnalyticsID, { 'page_title': 'Phoenix editor', 'page_path': '/index.html',