From 7d653d564cb0ca4ae05d6897d94185ea2198462e Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Thu, 28 Jun 2018 19:53:03 +0200 Subject: [PATCH] improvements for SPA tracking --- src/gatsby-browser.js | 2 ++ src/gatsby-ssr.js | 21 ++++++++------------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/gatsby-browser.js b/src/gatsby-browser.js index 815351f..c396b8a 100644 --- a/src/gatsby-browser.js +++ b/src/gatsby-browser.js @@ -35,9 +35,11 @@ exports.onRouteUpdate = ({ location }) => { console.log(`[Matomo] Page view for: ${pathname}`) } } else { + window._paq.push(['setReferrerUrl', pathname]) window._paq.push(['setCustomUrl', pathname]) window._paq.push(['setDocumentTitle', pathname]) window._paq.push(['trackPageView']) + window._paq.push(['enableLinkTracking']) if (window.dev) { console.log(`[Matomo] Page view for: ${pathname}`) diff --git a/src/gatsby-ssr.js b/src/gatsby-ssr.js index e642505..ddf8817 100644 --- a/src/gatsby-ssr.js +++ b/src/gatsby-ssr.js @@ -9,22 +9,20 @@ function buildTrackingCode(pluginOptions) { window.dev = ${pluginOptions.dev} if (window.dev === true || !(navigator.doNotTrack == '1' || window.doNotTrack == '1')) { window._paq = window._paq || []; - window._paq.push(['setTrackerUrl', '${ - pluginOptions.matomoUrl - }/piwik.php']); + window._paq.push(['setTrackerUrl', '${pluginOptions.matomoUrl}/piwik.php']); window._paq.push(['setSiteId', '${pluginOptions.siteId}']); - window._paq.push(['enableLinkTracking']); window._paq.push(['trackPageView']); + window._paq.push(['enableLinkTracking']); window._paq.push(['enableHeartBeatTimer']); window.start = new Date(); + + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.defer=true; g.async=true; g.src='${script}'; s.parentNode.insertBefore(g,s); + if (window.dev === true) { console.log('[Matomo] Tracking initialized') - console.log('[Matomo] matomoUrl: ${pluginOptions.matomoUrl}, siteId: ${ - pluginOptions.siteId - }') + console.log('[Matomo] matomoUrl: ${pluginOptions.matomoUrl}, siteId: ${pluginOptions.siteId}') } - var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; - g.defer=true; g.async=true; g.src='${script}'; s.parentNode.insertBefore(g,s); } ` @@ -37,10 +35,7 @@ function buildTrackingCode(pluginOptions) { } function buildTrackingCodeNoJs(pluginOptions, pathname) { - const html = `tracker` + const html = `tracker` return (