uptime-kuma/server/google-analytics.js
Louis Lam e9bf02fc2c Merge branch '1.23.X' into 1.23.X-merge-to-2.X.X-2
# Conflicts:
#	package-lock.json
#	package.json
#	server/model/monitor.js
#	server/monitor-types/tailscale-ping.js
#	server/socket-handlers/general-socket-handler.js
#	server/uptime-kuma-server.js
2023-11-25 03:25:03 +08:00

28 lines
1,022 B
JavaScript

const jsesc = require("jsesc");
const { escape } = require("html-escaper");
/**
* Returns a string that represents the javascript that is required to insert the Google Analytics scripts
* into a webpage.
* @param {string} tagId Google UA/G/AW/DC Property ID to use with the Google Analytics script.
* @returns {string} HTML script tags to inject into page
*/
function getGoogleAnalyticsScript(tagId) {
let escapedTagIdJS = jsesc(tagId, { isScriptContext: true });
if (escapedTagIdJS) {
escapedTagIdJS = escapedTagIdJS.trim();
}
// Escape the tag ID for use in an HTML attribute.
let escapedTagIdHTMLAttribute = escape(tagId);
return `
<script async src="https://www.googletagmanager.com/gtag/js?id=${escapedTagIdHTMLAttribute}"></script>
<script>window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date());gtag('config', '${escapedTagIdJS}'); </script>
`;
}
module.exports = {
getGoogleAnalyticsScript,
};