Skip to content

Commit 37dcd50

Browse files
fixing page tracking within SPA
1 parent 72d3b2c commit 37dcd50

File tree

1 file changed

+31
-21
lines changed

1 file changed

+31
-21
lines changed

website/src/components/MatomoTracking/MatomoTracking.tsx

Lines changed: 31 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,37 @@ declare global {
77
}
88
}
99

10-
export default function MatomoTracking(): JSX.Element | null {
11-
useEffect(() => {
12-
if (!ExecutionEnvironment.canUseDOM) {
13-
return;
14-
}
15-
16-
var _paq = window._paq = window._paq || [];
17-
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
18-
_paq.push(["setCookieDomain", "*.overture.bio"]);
19-
_paq.push(['trackPageView']);
20-
_paq.push(['enableLinkTracking']);
21-
22-
(function() {
23-
var u="//webstats.oicr.on.ca/piwik/";
24-
_paq.push(['setTrackerUrl', u+'piwik.php']);
25-
_paq.push(['setSiteId', '76']);
26-
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
27-
g.async=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
28-
})();
29-
30-
}, []);
10+
export default function piwikiTracking(): JSX.Element | null {
11+
useEffect(() => {
12+
if (!ExecutionEnvironment.canUseDOM) {
13+
return;
14+
}
15+
16+
var _paq = window._paq = window._paq || [];
17+
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
18+
_paq.push(["setCookieDomain", "*.overture.bio"]);
19+
_paq.push(['setDocumentTitle', document.title]);
20+
_paq.push(['setCustomUrl', window.location.pathname]);
21+
_paq.push(['trackPageView']);
22+
_paq.push(['enableLinkTracking']);
23+
24+
(function() {
25+
var u="//webstats.oicr.on.ca/piwik/";
26+
_paq.push(['setTrackerUrl', u+'piwiki.php']);
27+
_paq.push(['setSiteId', '76']);
28+
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
29+
g.async=true; g.src=u+'piwiki.js'; s.parentNode.insertBefore(g,s);
30+
})();
31+
32+
// Track route changes
33+
const router = require('@docusaurus/router').default;
34+
router.events.on('routeDidUpdate', () => {
35+
_paq.push(['setDocumentTitle', document.title]);
36+
_paq.push(['setCustomUrl', window.location.pathname]);
37+
_paq.push(['trackPageView']);
38+
});
39+
40+
}, []);
3141

3242
return null;
3343
}

0 commit comments

Comments
 (0)