From cc664889f89f211b5bc9610dd4effab698e45903 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Tue, 25 Mar 2025 07:03:51 -0500 Subject: [PATCH] Stop double-counting page vies --- jam-ui/src/helpers/analytics.js | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/jam-ui/src/helpers/analytics.js b/jam-ui/src/helpers/analytics.js index 4fe39ec6c..df5790541 100644 --- a/jam-ui/src/helpers/analytics.js +++ b/jam-ui/src/helpers/analytics.js @@ -2,19 +2,36 @@ import ReactGA from "react-ga4"; var initialized = false; +// Noticed that ReactGA.initialize logs a page view, +// so the 1st logPageView will end up double-counting the initial path landed on +var ignoredFirstPageView = false; + export const initGA = () => { - if(process.env.REACT_APP_GOOGLE_ANALYTICS_ID) { - ReactGA.initialize(process.env.REACT_APP_GOOGLE_ANALYTICS_ID); - initialized = true; + try { + if (process.env.REACT_APP_GOOGLE_ANALYTICS_ID) { + ReactGA.initialize(process.env.REACT_APP_GOOGLE_ANALYTICS_ID); + initialized = true; + } else { + initialized = false; + console.log("no GA ID found"); + } } - else { - initialized = false; - console.log("no GA ID found"); + catch (error) { + console.log("Error initializing GA", error); } }; export const logPageView = (path) => { if(initialized) { - ReactGA.send({hitType: "pageview", page: path}); + if(ignoredFirstPageView) { + try { + ReactGA.send({hitType: "pageview", page: path}); + } + catch(error) { + console.log("Error logging page view", error); + } + else { + ignoredFirstPageView = true; + } } }; \ No newline at end of file