mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-10 03:14:58 -04:00
Add Google Tag Manager for analytics (#541)
This commit is contained in:
@@ -1,69 +0,0 @@
|
||||
(function (window) {
|
||||
"use strict";
|
||||
|
||||
window.GOVUK = window.GOVUK || {};
|
||||
|
||||
// Stripped-down wrapper for Google Analytics, based on:
|
||||
// https://github.com/alphagov/static/blob/master/doc/analytics.md
|
||||
const Analytics = function (config) {
|
||||
window.ga('create', {
|
||||
'trackingId': config.trackingId,
|
||||
'cookieDomain': config.cookieDomain,
|
||||
'cookieExpires': config.expires * 24 * 60 * 60
|
||||
});
|
||||
|
||||
window.ga('set', 'anonymizeIp', config.anonymizeIp);
|
||||
window.ga('set', 'allowAdFeatures', config.allowAdFeatures);
|
||||
window.ga('set', 'transport', config.transport);
|
||||
window.ga('set', 'title', 'U.S. Notify');
|
||||
|
||||
};
|
||||
|
||||
Analytics.load = function () {
|
||||
/* jshint ignore:start */
|
||||
(function (i, s, o, g, r, a, m) {
|
||||
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
|
||||
(i[r].q = i[r].q || []).push(arguments)
|
||||
}, i[r].l = 1 * new Date(); a = s.createElement(o),
|
||||
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
|
||||
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
|
||||
/* jshint ignore:end */
|
||||
|
||||
};
|
||||
|
||||
Analytics.prototype.trackPageview = function (path, title, options) {
|
||||
|
||||
// strip UUIDs
|
||||
const page = `${window.location.pathname}${window.location.search}`.replace(
|
||||
/[a-f0-9]{8}-?[a-f0-9]{4}-?4[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}/g, '…'
|
||||
);
|
||||
window.ga('send', 'pageview', page);
|
||||
|
||||
};
|
||||
|
||||
// https://developers.google.com/analytics/devguides/collection/analyticsjs/events
|
||||
Analytics.prototype.trackEvent = function (category, action, options) {
|
||||
|
||||
options = options || {};
|
||||
|
||||
var evt = {
|
||||
eventCategory: category,
|
||||
eventAction: action
|
||||
};
|
||||
|
||||
if (options.label) {
|
||||
evt.eventLabel = options.label;
|
||||
delete options.label;
|
||||
}
|
||||
|
||||
if (typeof options === 'object') {
|
||||
$.extend(evt, options);
|
||||
}
|
||||
|
||||
window.ga('send', 'event', evt);
|
||||
|
||||
};
|
||||
|
||||
window.GOVUK.Analytics = Analytics;
|
||||
|
||||
})(window);
|
||||
@@ -1,40 +0,0 @@
|
||||
(function (window) {
|
||||
"use strict";
|
||||
|
||||
window.GOVUK = window.GOVUK || {};
|
||||
|
||||
const trackingId = 'UA-75215134-1';
|
||||
|
||||
// Disable analytics by default
|
||||
window[`ga-disable-${trackingId}`] = true;
|
||||
|
||||
const initAnalytics = function () {
|
||||
|
||||
// guard against being called more than once
|
||||
if (!('analytics' in window.GOVUK)) {
|
||||
|
||||
window[`ga-disable-${trackingId}`] = false;
|
||||
|
||||
// Load Google Analytics libraries
|
||||
window.GOVUK.Analytics.load();
|
||||
|
||||
// Configure profiles and make interface public
|
||||
// for custom dimensions, virtual pageviews and events
|
||||
window.GOVUK.analytics = new GOVUK.Analytics({
|
||||
trackingId: trackingId,
|
||||
cookieDomain: 'auto',
|
||||
anonymizeIp: true,
|
||||
allowAdFeatures: false,
|
||||
transport: 'beacon',
|
||||
expires: 365
|
||||
});
|
||||
|
||||
// Track initial pageview
|
||||
window.GOVUK.analytics.trackPageview();
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
window.GOVUK.initAnalytics = initAnalytics;
|
||||
})(window);
|
||||
Reference in New Issue
Block a user