Modification de piwik.js pour ne pas prolonger la durée de vie des cookies


#1

Bonjour,

Je voudrais modifier le Tracker pour ne pas renouveler la durée de validitée des cookies ID lors des nouvelles visites (voir la recommendation de la CNIL sur la durée de conservation conservation [1] ). La seule solution que j’ai trouvée c’est de modifier piwik.js:


            function setVisitorIdCookie(uuid, createTs, visitCount, nowTs, lastVisitTs, lastEcommerceOrderTs) {
                //removed setCookie(getCookieName('id'), uuid + '.' + createTs + '.' + visitCount + '.' + nowTs + '.' + lastVisitTs + '.' + lastEcommerceOrderTs, configVisitorCookieTimeout, configCookiePath, configCookieDomain);
                var endCookieTs = createTs*1000 + configVisitorCookieTimeout - nowTs*1000; 
                setCookie(getCookieName('id'), uuid + '.' + createTs + '.' + visitCount + '.' + nowTs + '.' + lastVisitTs + '.' + lastEcommerceOrderTs, endCookieTs, configCookiePath, configCookieDomain);
            }

Est il possible d’obtenir le même résultat avec un plug-in. J’ai regardé le code php et les hooks mais je n’ai pas trouvé de solution évidente.

Si ce n’est pas le cas, serait il possible d’intégrer ce code dans piwik.js? Il y’aurait biensur un paramétre à passé dans le script de tracking pour modifier l’appel, mais ce serait déjà plus simple que de demander de modifier piwik.js.

Merci

[1] http://www.cnil.fr/documentation/fiches-pratiques/fiche/article/ce-que-le-paquet-telecom-change-pour-les-cookies


(Matthieu Aubry) #2

Il suffit en fait d’appeler la fonction javascript:

piwikTracker.setVisitorCookieTimeout( 86400 ); // cookie de duree de 1 an

il y a aussi d’autres cookie timer:

setSessionCookieTimeout

setReferralCookieTimeout

documente en bas de http://piwik.org/docs/javascript-tracking/


#3

Matt,

Merci pour al réponse, mais si j’appelle cette fonction la durée de vie du cookie sera prolongé à chaque nouvelles visite alors que c’est ce que je veux éviter.
Si j’ai bien compris, je peu appeler d’abord “getVisitorInfo” pour avoir la date de création du cookie puis “setVisitorCookieTimeout” avec le bon timeout.

Merci


(Matthieu Aubry) #4

Je comprends, c’est une bonne idee en effet !

Si vous arrivez a le faire marcher pouvez vous poster le code?
On pourrait faire la meme chose pour les autres cookies.

Je pourrais par exemple le mettre dans une FAQ.


#5

J’ai ajouté le code suivant au tag javascript et cela semble confionner: le cookie n’est plus prolongé lors des visites.
Si il y’a des commentaires ou des modifications à apporter n’hésitez pas.


"_paq.push([function() {
	var now = new Date(),
    		nowTs = Math.round(now.getTime() / 1000),
   		visitorInfo = this.getVisitorInfo();
	var createTs = parseInt(visitorInfo[2]);
	var cookieTimeout = 15768000; // 6 mois en secondes
	var endCookieTs = createTs + cookieTimeout - nowTs;
	this.setVisitorCookieTimeout(endCookieTs);
}]);"

Merci


(Matthieu Aubry) #6

Depuis Piwik 2.8.0 ceci est fait automatiquement et il n’y a plus besoin de mettre le code en plus. J’ai contacte la CNIL pour demander de mettre a jour le PDF d’instructions.

Source: Piwik users do not need cookie consent in France: make Piwik privacy enabled. · Issue #6341 · matomo-org/piwik · GitHub