Merge pull request #8310 from kuangp/feat/gaAddress

feat(analytics-module-ga): support self hosted analytics.js
This commit is contained in:
Johan Haals
2021-12-03 10:32:29 +01:00
committed by GitHub
3 changed files with 22 additions and 1 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-analytics-module-ga': patch
---
Support self hosted analytics.js script via `scriptSrc` config option
+7
View File
@@ -27,6 +27,13 @@ export interface Config {
*/
trackingId: string;
/**
* URL to Google Analytics analytics.js script
* Defaults to fetching from GA source (eg. https://www.google-analytics.com/analytics.js)
* @visibility frontend
*/
scriptSrc?: string;
/**
* Whether or not to log analytics debug statements to the console.
* Defaults to false.
@@ -42,18 +42,25 @@ export class GoogleAnalytics implements AnalyticsApi {
private constructor({
cdmConfig,
trackingId,
scriptSrc,
testMode,
debug,
}: {
cdmConfig: CustomDimensionOrMetricConfig[];
trackingId: string;
scriptSrc?: string;
testMode: boolean;
debug: boolean;
}) {
this.cdmConfig = cdmConfig;
// Initialize Google Analytics.
ReactGA.initialize(trackingId, { testMode, debug, titleCase: false });
ReactGA.initialize(trackingId, {
testMode,
debug,
gaAddress: scriptSrc,
titleCase: false,
});
}
/**
@@ -62,6 +69,7 @@ export class GoogleAnalytics implements AnalyticsApi {
static fromConfig(config: Config) {
// Get all necessary configuration.
const trackingId = config.getString('app.analytics.ga.trackingId');
const scriptSrc = config.getOptionalString('app.analytics.ga.scriptSrc');
const debug = config.getOptionalBoolean('app.analytics.ga.debug') ?? false;
const testMode =
config.getOptionalBoolean('app.analytics.ga.testMode') ?? false;
@@ -82,6 +90,7 @@ export class GoogleAnalytics implements AnalyticsApi {
// Return an implementation instance.
return new GoogleAnalytics({
trackingId,
scriptSrc,
cdmConfig,
testMode,
debug,