- Désactiver les exports de données
- Permettre aux visiteurs de refuser d'être suivis (Opt-out)
- S'assurer que les adresses IP sont anonymes
- S'assurer que les cookies tiers et le cross-domain ne sont pas utilisés
- S'assurer que la mesure du "User ID" n'est pas utilisée
- S'assurer que la mesure du e-commerce n'est pas utilisée
- S'assurer que les cartes de chaleurs et enregistrements de session sont désactivés
- Vérifier qu'il n'y a pas de collecte de données personnelles (dimension et événements personnalisés)
Si vous êtes dans le cas où une ou plusieurs de ces conditions sont rédhibitoires, pas de panique. Ce guide contient toutes les explications pour configurer et activer la demande de consentement pour Matomo via le service tarteaucitron.
Déjà utilisé par bon nombre de kiubistes sur leurs sites, gratuit, très complet et extrêmement simple d'utilisation, tarteaucitron (abrégé en TAC dans la suite de cet article) prend en charge nativement la gestion du tracker Matomo et de ses cookies. Il fonctionne avec le service Matomo Cloud mais aussi avec les dernières versions de Matomo en mode auto-hébergé (On-Premise).
Cependant, cette prise en charge comporte deux défauts :
- Les URLs des trackers ne sont pas tout à fait à jour
- TAC gère Matomo en opt-out par défaut
Pour installer manuellement TAC sur un site, il suffit de télécharger la dernière version sur le site officiel et de le déployer dans son site ou alternativement d'utiliser une version mise à disposition par un CDN. On utilisera ici celui de Cloudflare.
On ajoute alors dans le
<head>
des pages de son site la librairie TAC :<script src="https://cdnjs.cloudflare.com/ajax/libs/tarteaucitronjs/1.9.6/tarteaucitron.js" integrity="sha512-gXl6bTROZxxymUcoVPuH93os9XPq+SrORZCtUiYDNoaxrrJhDX9o0b/kl3a+MeQJxeYqUBejvkCi4gziE6xrqQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
Vient ensuite la déclaration d'un gestionnaire sur-mesure
matomoconsent
pour TAC, à ajouter avant la balise </body>
:<script>
tarteaucitron.services.matomoconsent = {
"key": "matomoconsent",
"type": "analytic",
"name": "Matomo (privacy by design)",
"uri": "https://matomo.org/faq/general/faq_146/",
"needConsent": true,
"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 || tarteaucitron.user.matomoHost === 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());
}]);
// Handle specific cdn matomo cloud url
var isCloud = tarteaucitron.user.matomoHost.match(/^https:\/\/([^\.]+\.matomo\.cloud\/)/)
var trackerDomain = isCloud ? 'https://cdn.matomo.cloud/' + isCloud[1] : tarteaucitron.user.matomoHost;
tarteaucitron.addScript(trackerDomain + '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.matomoconsent.cookies.push(cookieName);
}
}
}, 100);
}
};
À noter que ce gestionnaire active la fonction "Do Not Track" (cf
["setDoNotTrack", 1]
) du tracker Matomo pour un meilleur respect de la vie privée des internautes.Et juste après, l'initialisation classique de TAC à personnaliser selon vos besoins :
tarteaucitron.init({
"privacyUrl": "/donnees-personnelles.html", /* Privacy policy url */
"cookieName": "tarteaucitron" /* Cookie name */
});
</script>
Il est très important de laisser la valeur de
cookieName
à tarteaucitron
.Il ne reste plus qu'à activer le module Matomo dans la console d'administration de votre site en précisant bien que la gestion du consentement se faire via TAC et Kiubi se charge du reste.
Le module va exécuter automatique le gestionnaire
matomoconsent
dans toutes les pages du site, ce qui va permettre le tracking des visites et des commandes uniquement des internautes ayant donné leurs consentements. Il ne reste plus qu'à serveiller l'arrivée des données dans Matomo !