terriajs
Version:
Geospatial data visualization platform.
43 lines • 1.34 kB
JavaScript
import i18next from "i18next";
import ReactGA from "react-ga4";
import isDefined from "./isDefined";
export default class GoogleAnalytics {
key = undefined;
options = undefined;
start(configParameters) {
this.key = configParameters.googleAnalyticsKey;
this.options = configParameters.googleAnalyticsOptions;
if (process.env.NODE_ENV === "development") {
console.log(i18next.t("core.googleAnalytics.logEnabledOnDevelopment"));
}
initializeGoogleAnalytics(this);
}
logEvent(category, action, label, value) {
const fieldObject = {
hitType: "event",
eventCategory: category,
eventAction: action
};
if (label) {
fieldObject.eventLabel = label;
}
if (isDefined(value)) {
fieldObject.value = value;
}
ReactGA.send(fieldObject);
}
}
function initializeGoogleAnalytics(that) {
if (!isDefined(that.key)) {
console.log(i18next.t("core.googleAnalytics.log"));
return;
}
ReactGA.initialize(that.key, {
gaOptions: { anonymizeIp: true, ...(that.options ?? {}) },
gtagOptions: {
send_page_view: false
}
});
ReactGA.send({ hitType: "pageview" });
}
//# sourceMappingURL=GoogleAnalytics.js.map