Added support for Matomo Cloud

This commit is contained in:
Thierry Florac 2022-01-03 16:55:05 +01:00
parent 17941eea7c
commit 6db7827541
1 changed files with 63 additions and 1 deletions

View File

@ -3810,7 +3810,7 @@ tarteaucitron.services.koban = {
2. Push the service :
(tarteaucitron.job = tarteaucitron.job || []).push('matomo');
(tarteaucitron.job = tarteaucitron.job || []).push('matomo'); // (or 'matomocloud' for cloud version)
3. HTML
You don't need to add any html code, if the service is authorized, the javascript is added. otherwise no.
@ -3921,6 +3921,68 @@ tarteaucitron.services.matomohightrack = {
}
};
tarteaucitron.services.matomocloud = {
"key": "matomocloud",
"type": "analytic",
"name": "Matomo Cloud (privacy by design)",
"uri": "https://matomo.org/faq/general/faq_146/",
"needConsent": false,
"cookies": ['_pk_ref', '_pk_cvar', '_pk_id', '_pk_ses', '_pk_hsr', 'mtm_consent', 'matomo_ignore', 'matomo_sessid'],
"js": function () {
"use strict";
if (tarteaucitron.user.matomoId === undefined) {
return;
}
window._paq = window._paq || [];
window._paq.push(["setSiteId", tarteaucitron.user.matomoId]);
window._paq.push(["setTrackerUrl", tarteaucitron.user.matomoHost + "matomo.php"]);
window._paq.push(["setDoNotTrack", 1]);
window._paq.push(["trackPageView"]);
window._paq.push(["setIgnoreClasses", ["no-tracking", "colorbox"]]);
window._paq.push(["enableLinkTracking"]);
window._paq.push([function () {
var self = this;
function getOriginalVisitorCookieTimeout() {
var now = new Date(),
nowTs = Math.round(now.getTime() / 1000),
visitorInfo = self.getVisitorInfo();
var createTs = parseInt(visitorInfo[2]);
var cookieTimeout = 33696000; // 13 mois en secondes
var originalTimeout = createTs + cookieTimeout - nowTs;
return originalTimeout;
}
this.setVisitorCookieTimeout(getOriginalVisitorCookieTimeout());
}]);
tarteaucitron.addScript('https://cdn.matomo.cloud/matomo.js', '', '', true, 'defer', true);
// waiting for Matomo to be ready to check first party cookies
var interval = setInterval(function () {
if (typeof Matomo === 'undefined') return
clearInterval(interval)
// make Matomo cookie accessible by getting tracker
Matomo.getTracker();
// looping through cookies
var theCookies = document.cookie.split(';');
for (var i = 1; i <= theCookies.length; i++) {
var cookie = theCookies[i - 1].split('=');
var cookieName = cookie[0].trim();
// if cookie starts like a matomo one, register it
if (cookieName.indexOf('_pk_') === 0) {
tarteaucitron.services.matomo.cookies.push(cookieName);
}
}
}, 100)
}
};
// Hotjar
/*
1. Set the following variable before the initialization :