48 lines
1.6 KiB
JavaScript
48 lines
1.6 KiB
JavaScript
|
const { key, enabled } = gon.matomo || {};
|
||
|
|
||
|
if (enabled) {
|
||
|
window._paq = window._paq || [];
|
||
|
|
||
|
const url = '//stats.data.gouv.fr/';
|
||
|
const trackerUrl = `${url}piwik.php`;
|
||
|
const jsUrl = `${url}piwik.js`;
|
||
|
|
||
|
// Configure Matomo analytics
|
||
|
window._paq.push(['setCookieDomain', '*.www.demarches-simplifiees.fr']);
|
||
|
window._paq.push(['setDomains', ['*.www.demarches-simplifiees.fr']]);
|
||
|
window._paq.push(['setDoNotTrack', true]);
|
||
|
window._paq.push(['trackPageView']);
|
||
|
window._paq.push(['enableLinkTracking']);
|
||
|
|
||
|
// Load script from Matomo
|
||
|
window._paq.push(['setTrackerUrl', trackerUrl]);
|
||
|
window._paq.push(['setSiteId', key]);
|
||
|
|
||
|
const script = document.createElement('script');
|
||
|
const firstScript = document.getElementsByTagName('script')[0];
|
||
|
script.type = 'text/javascript';
|
||
|
script.id = 'matomo-js';
|
||
|
script.async = true;
|
||
|
script.src = jsUrl;
|
||
|
firstScript.parentNode.insertBefore(script, firstScript);
|
||
|
|
||
|
// Send Matomo a new event when navigating to a new page using Turbolinks
|
||
|
// (see https://developer.matomo.org/guides/spa-tracking)
|
||
|
let previousPageUrl = null;
|
||
|
addEventListener('turbolinks:load', event => {
|
||
|
if (previousPageUrl) {
|
||
|
window._paq.push(['setReferrerUrl', previousPageUrl]);
|
||
|
window._paq.push(['setCustomUrl', window.location.href]);
|
||
|
window._paq.push(['setDocumentTitle', document.title]);
|
||
|
if (event.data && event.data.timing) {
|
||
|
window._paq.push([
|
||
|
'setGenerationTimeMs',
|
||
|
event.data.timing.visitEnd - event.data.timing.visitStart
|
||
|
]);
|
||
|
}
|
||
|
window._paq.push(['trackPageView']);
|
||
|
}
|
||
|
previousPageUrl = window.location.href;
|
||
|
});
|
||
|
}
|