• google-analytics.js
  • 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,
    };