From d1c2ef104b30e47cd84ba861b3a915c1c19a3054 Mon Sep 17 00:00:00 2001 From: Julien Date: Mon, 10 Sep 2018 00:20:35 +0200 Subject: [PATCH] feat(ga): add google analytics tracking code --- nuxt.config.js | 2 +- plugins/ga.js | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 plugins/ga.js diff --git a/nuxt.config.js b/nuxt.config.js index ab6de32..dec19e0 100644 --- a/nuxt.config.js +++ b/nuxt.config.js @@ -20,7 +20,7 @@ module.exports = { : "http://localhost:3000" }, css: ["normalize.css/normalize.css"], - plugins: [{ src: "@/plugins/global.js" }], + plugins: [{ src: "@/plugins/ga.js" }, { src: "@/plugins/global.js" }], build: { extend(config, { isDev, isClient }) { if (isDev && isClient) { diff --git a/plugins/ga.js b/plugins/ga.js new file mode 100644 index 0000000..3dcf73b --- /dev/null +++ b/plugins/ga.js @@ -0,0 +1,44 @@ +/* eslint-disable */ + +export default ({ app }) => { + /* + ** Only run on client-side and only in production mode + */ + if (process.env.NODE_ENV !== "production") return; + /* + ** Include Google Analytics Script + */ + (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", + "https://www.google-analytics.com/analytics.js", + "ga" + ); + /* + ** Set the current page + */ + ga("create", "UA-125493236-1", "auto"); + /* + ** Every time the route changes (fired on initialization too) + */ + app.router.afterEach((to, from) => { + /* + ** We tell Google Analytics to add a `pageview` + */ + ga("set", "page", to.fullPath); + ga("send", "pageview"); + }); +};