2023-02-04 09:58:39 +01:00
|
|
|
const jsesc = require("jsesc");
|
2023-11-24 10:18:01 +01:00
|
|
|
const { escape } = require("html-escaper");
|
2023-02-04 09:58:39 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns a string that represents the javascript that is required to insert the Google Analytics scripts
|
|
|
|
* into a webpage.
|
2023-08-11 09:46:41 +02:00
|
|
|
* @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
|
2023-02-04 09:58:39 +01:00
|
|
|
*/
|
|
|
|
function getGoogleAnalyticsScript(tagId) {
|
2023-11-24 10:18:01 +01:00
|
|
|
let escapedTagIdJS = jsesc(tagId, { isScriptContext: true });
|
2023-02-04 10:03:00 +01:00
|
|
|
|
2023-11-24 10:18:01 +01:00
|
|
|
if (escapedTagIdJS) {
|
|
|
|
escapedTagIdJS = escapedTagIdJS.trim();
|
2023-02-04 10:03:00 +01:00
|
|
|
}
|
|
|
|
|
2023-11-24 10:18:01 +01:00
|
|
|
// Escape the tag ID for use in an HTML attribute.
|
|
|
|
let escapedTagIdHTMLAttribute = escape(tagId);
|
|
|
|
|
2023-02-04 09:58:39 +01:00
|
|
|
return `
|
2023-11-24 10:18:01 +01:00
|
|
|
<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>
|
2023-02-04 09:58:39 +01:00
|
|
|
`;
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
getGoogleAnalyticsScript,
|
|
|
|
};
|