PnX-SI / GeoNature

Application de saisie et de synthèse des observations faune et flore
GNU General Public License v3.0
100 stars 102 forks source link

Suivi des consultations / téléchargements #3189

Open MathieuLagarde opened 2 weeks ago

MathieuLagarde commented 2 weeks ago

Bonjour,

Afin de rendre compte des téléchargements (données, métadonnées) effectués sur la plateforme Biodiv'Bretagne, nous souhaiterions récupérer les logs relatifs aux requêtes effectuées sur la page Explorer les données (donnant lieu ou pas à un téléchargement), les téléchargements qui ont été effectués (quantité, quelles requêtes, quels fichiers), ainsi que les logs relatifs aux téléchargements des fiches pdf des métadonnées. L'idée générale serait de savoir quelle approche ont les utilisateurs de la plateforme. Recherchent-ils des données sur des taxons ? des sites ? Des données propres à une étude, un programme d'acquisition de données particulier (via les métadonnées) ? Leurs propres données (observateurs, déterminateurs, acteurs) ?

Serait-il possible, dans un premier temps, de mettre en place facilement un système de logs permettant de récupérer ces différentes requêtes dans une logique de première phase exploratoire ?

Avez-vous déjà des stats relatives aux téléchargements des données sur vos plateformes ? Êtes-vous intéressés par cette démarche ? Si oui, quels seraient vos besoins ?

Merci pour vos retours, Mathieu

DonovanMaillard commented 2 weeks ago

Bonjour Mathieu,

La question s'était posée à quelques reprises par le passé. Pour le moment l'absence de logs vient autant d'un "manque de besoin fort" que d'une volonté de ne pas "tracker" les utilisateurs. Mais en effet dans un contexte SINP OpenData, il devient compliqué de savoir qui utilise la base et dans quels buts. Ces infos pourraient parfois aider à prioriser les développements etc.

Sur un autre thème mais qui reste lié, j'ai soulevé la question quelques fois de permettre à la synthèse d'envoyer les données (bouton télécharger) quand la requête renvoie trop de résultats pour le navigateur. Ca permettrait à la fois d'éviter les requêtes longues "en direct", de lever la limite de téléchargement, et de collecter les adresses mails des utilisateurs les plus réguliers pour obtenir des stats et des retours d'utilisateurs.

En région la base "invertébrés" ne sert plus à la consultation (on a une base globale désormais) donc ces sujets là ne sont plus entre mes mains en région, mais ca fait partie des choses qui sont évoquées en région.

camillemonchicourt commented 2 weeks ago

Je pense qu'il n'est pas nécessaire de développer une mécanique complexe et un peu lourde de suivi des utilisations à l'intérieur de GeoNature. D'autant plus que cela peut poser pas mal de questions et de soucis en matière de RGPD. Une piste qui semblerait plutôt à privilégier serait de laisser à chacun la possibilité d'intégrer ou non des outils de suivi/tracage de trafic et d'utilisation avec des systèmes externes comme Matomo ou Google Analytics. En conseillant d'ailleurs plutôt Matomo qui pose moins de soucis en terme de RGPD car ne s'appuie pas sur des cookies.

Cela avait été commencé à être discuté ici : https://github.com/PnX-SI/GeoNature/issues/356

Ce serait assez simple à mettre en place, il suffirait d'ajouter la possibilité que chaque instance puisse customiser et configurer un bout de code JS qu'il souhaite ajouter dans le chargement de toutes les pages de GeoNature.

DonovanMaillard commented 2 weeks ago

Oui, ca demanderait quand même de cibler les actions sur lesquelles on veut des déclencheurs (connexions, requêtes, téléchargements etc), j'imagine que c'est au sein du code de GN que s'intègreraient ces déclencheurs ?

camillemonchicourt commented 2 weeks ago

Non c'est générique et gérer par les outils de suivi.

Par contre le fait que GeoNature soit une SPA peut poser des soucis aux outils de suivi car on n'a pas vraiment une URL par page.

A tester.

lpofredc commented 2 weeks ago

En effet, l'architecture de l'appli n'est pas évidente à traiter.

Cette question c'est aussi posée pour BiodivSports, basée sur GeoTrek et pour suivre l'usage des APIs. nous avons mis en place une solution provisoire qui s'appuie sur les logs du proxy nginx (peut aussi se faire sur traefik) avec goAccess qui génère automatiquement des rapports html, json ou csv.

Il doit être possible de pousser le filtrage des url suivies de diverses manières, en utilisant grep dans un pipe par exemple.

N'y a-t-il pas aussi sentry (déjà intégré à GN) qui offre ce genre de possibilités?

MathieuLagarde commented 1 week ago

Nous utilisons déjà Matomo pour la partie Atlas (notre page d'accueil), et nous avions par le passé demandé à notre prestataire de faire remonter dans Matomo le nombre de téléchargements réalisés par type de fichiers (données, métadonnées, liste des taxons, statuts) (cf. #356 ). Actuellement, notre besoin est différent, puisque nous nous interrogeons sur ce que cherchent les utilisateurs (et donc les requêtes effectuées et les téléchargements qui en découlent) et non à "qui sont ces utilisateurs". Nous n'aurions pas besoin de collecter les IP ou emails. Ce serait paramétrable sur Matomo ?

camillemonchicourt commented 1 week ago

Matomo peut tracer plein de choses sur un site internet classique, mais les outils de suivi de fréquentation s'appuient sur les URL des différentes pages. Or GeoNature est une SPA et ne charge pas des URL différentes à chaque page, chaque recherche, etc... Par exemple dans la Synthèse, on est toujours sur la même URL https://demo.geonature.fr/geonature/#/synthese quoiqu'on fasse dans le module. Et même là, on est en fait toujours sur la même URL https://demo.geonature.fr/geonature/ car le # n'est pas une autre page, donc je ne suis même pas certain qu'un outil de suivi de fréquentation identifie différemment si on est sur Occtax, Synthèse ou autre.

Il faudrait tester et regarder https://developer.matomo.org/guides/spa-tracking, pour voir comment Matomo peut identifier ou non les différentes pages et actions dans une SPA qui est donc toujours sur la même URL.