Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add matomo tracking site #526

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

andriacap
Copy link
Contributor

Cette PR fait référence aux souhaits de certaines personnes de vouloir utiliser une alternative à Google analytics et notamment MATOMO (anciennement PIWIK).

La proposition faite ici est de donner la possibilité de renseigner les deux pramètres nécessaires à l'utilisation de MATOMO (basé sur l'aide de la dernière version en ligne de matomo voir lien ici -> https://developer.matomo.org/guides/tracking-javascript-guide)

Les deux paramètres que l'utilisateur doit renseigner concernent l'url du matomo et l'id du site à suivre ( il faut donc au préalable que l'utilisateur renseignr son GeoNature-Atlas dans Matomo, ce qui lui attribuera un id).

En lien avec les remarques faites dans l'issue #499 , il est possible de surcoucher le script de matomo en paramètre également ( notamment si le script est amené à être différent entre les versions de matomo ... ). Ce dernier point est peut être à discuter ?

Et bien évidemment, toutes suggestions d'améliorations, remarques sont les bienvenus

Merci d'avance pour vos retours

[Refs_issues] : #499

@andriacap andriacap force-pushed the feat/matomo branch 2 times, most recently from e822203 to 25b8510 Compare April 17, 2024 17:09
Reviewed-by: andriac
@camillemonchicourt
Copy link
Member

OK pour intégrer la possibilité d'utiliser MATOMO.
Par contre, je n'ai pas compris comment il serait possible de modifier le code MATOMO si jamais celui-ci évolue, ou si on n'a pas la même version, etc...
Je ne sais pas si il y a différentes possibilités d'intégration avec différentes options mais c'est ce que j'avais compris.
Et je ne sais pas si les versions de Matomo et le code d'intégration associé évolue souvent. Mais si c'est le cas, il faut-être plutôt laisser la possibilité à chacun d'intégrer du code JS dans les pages de son GeoNature-atlas ?

Voici un exemple de code qu'on intègre actuellement dans le JS des pages d'un Geotrek-rando - GeotrekCE/Geotrek-rando-v3#1110

@andriacap
Copy link
Contributor Author

Salut Camille,

Il serait possible de surcoucher le code MATOMO_SCRIPT_TO_INCLUDE en paramètre . Si on garde cette idée alors on n'aurait plus besoin des paramètres MATOMO_URL et MATOMO_SITE_ID car le code fourni par MATOMO suffirait et donc le paramètre MATOMO_SCRIPT_TO_INCLUDE suffirait

@jpm-cbna
Copy link
Contributor

Et je ne sais pas si les versions de Matomo et le code d'intégration associé évolue souvent.

A ma connaissance, non, c'est plutôt rare. Je n'ai jamais eu à le faire et nous avons une installation de Matomo qui a plus de 3 ans.

@camillemonchicourt
Copy link
Member

OK dans ce cas là, on peut rester sur une version plus intégrée et simple pour les administrateurs où on demande en paramètre l'ID et l'URL du Matomo.

@jpm-cbna
Copy link
Contributor

Il serait possible de surcoucher le code MATOMO_SCRIPT_TO_INCLUDE en paramètre . Si on garde cette idée alors on n'aurait plus besoin des paramètres MATOMO_URL et MATOMO_SITE_ID car le code fourni par MATOMO suffirait et donc le paramètre MATOMO_SCRIPT_TO_INCLUDE suffirait

Oui, c'est plus simple en utilisant seulement MATOMO_SCRIPT_TO_INCLUDE. Mais est ce qu'il ne serait pas possible de stocker le code javascript de Matomo dans un fichier ".js" et de l'inclure via une URL ? Cela permettrait d'avoir un fichier JS propre et lisible et une variable MATOMO_SCRIPT_TO_INCLUDE qui ne contiendrait qu'un chemin.

@jpm-cbna
Copy link
Contributor

MATOMO_SCRIPT_TO_INCLUDE qui ne contiendrait qu'un chemin.

D'ailleurs, cela permettrait peut être de faire un pierre deux coups en permettant d'inclure aussi de cette façon le code JS pour Google Analytics...
Il suffirait de renommer le paramètre ANALYTICS_SCRIPT_TO_INCLUDE par exemple.

@camillemonchicourt
Copy link
Member

Bah non, car on disait de faire très simple pour l'utilisateur et de proposer un paramètre MATOMO_ID et MATOMO_URL. 🤔

@hypsug0
Copy link

hypsug0 commented Apr 18, 2024

"Simple is better than complex", Personnellement, j'aurai plutôt vu un template custom ou chacun serait libre d'ajouter lui même ses scripts supplémentaires communs à toutes les pages du site > Google Analytics, Matomo, autre outil stat ou surcouchage JS? Quitte à fournir des exemples de personnalisation. Cela évitera de multiplier les paramètres de config, déjà relativement complets et complexes et simplifiera la maintenance dans le temps. Imaginons un breaking change dans le script matomo poussant à gérer différentes versions?

@camillemonchicourt
Copy link
Member

Oui c'est la proposition initiale que je faisais pour simplifier la maintenance, la capacité à mettre à jour le script si il change, etc...
Et en même temps cela rend le truc plus complexe pour chaque administrateurs qui doit trouver le bon code, le renseigner comme il faut, etc...
Et ceux qui sont déjà sur GA devraient reprendre leur config, supprimer le paramètre, intégrer le nouveau javascript, etc... lors de leur prochaine mise à jour.

Donc plus simple d'une part, plus complexe par ailleurs. 😀

@andriacap
Copy link
Contributor Author

andriacap commented Apr 19, 2024

La solution la plus simple semble être de rester sur le renseignement de paramètres nécessaires au fonctionnement de MATOMO (l'url et et l'id du site 'tracké') . Ca permettrait dans un premier temps de rester sur la même logique que GOOGLE ANALTYICS . Et réflechir pour plus tard à donner la possibilité d'ajouter des scripts ?

@jpm-cbna
Copy link
Contributor

jpm-cbna commented May 6, 2024

Et en même temps cela rend le truc plus complexe pour chaque administrateurs qui doit trouver le bon code, le renseigner comme il faut, etc...

Les outils comme Google Analytics et Matomo fournissent le code Javascript directement quand on ajoute un site à surveiller. Il y a donc juste un copier/coller à faire...

@pbarille
Copy link

Bonjour,

Merci pour cette proposition d'implémentation de matomo à GeoNature-Atlas.
Je viens de la tester sur la base des fichiers identifiés dans la PR et j'ai du faire une modification pour la rendre fonctionelle sur mon instance.

Fichier atlas/configuration/config_schema.py ligne 87 : var u="https://url_matomo/"; remplacé par var u=url_matomo+'/';

Bonne journée,
Pascal

@andriacap
Copy link
Contributor Author

Hello,

Si je comprends bie la tendance serait plus l'utilisation de fichier javascript custom pour l'intégration de MATOMO.
On aurait un fichier analytics-custom.js.sample avec comme example

//Info pour savoir comment récupérer le IDSITE et MATAMO_URL : https://developer.matomo.org/guides/tracking-javascript-guide 
<!-- Matomo -->
<script type="text/javascript">
  var _paq = window._paq = window._paq || [];
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="//{$MATOMO_URL}/";
    _paq.push(['setTrackerUrl', u+'matomo.php']);
    _paq.push(['setSiteId', {$IDSITE}]);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Matomo Code -->

L'utilisateur aurait plus qu'à copier son code généré depuis son compte MATOMO ?

A vos pouces vers le bas ou vers le haut . Et à vos suggestions pour compléter ou pour d'autres propositions

Merci à toute !

@hypsug0
Copy link

hypsug0 commented Jul 16, 2024

Ne faudrait-il pas uniformiser le fonctionnement google analytics et matomo ou autre ? Pourquoi pas un template html custom analytics.html.sample, plus facilement utilisable avec jinja. Il serait alors prérempli avec les configs Google analytics et Matomo utilisés de manière conditionnelle comme c'est déjà le cas avec GA :

{% if configuration.ID_GOOGLE_ANALYTICS != "UA-xxxxxxx-xx" %}
    <!-- Script Google Analytics -->
    <script>
      ...
    </script>
{% endif %}

{% if configuration.MATOMO_URL and configuration.MATOMO_IDSITE %}
    <!-- Script Matomo -->
    <script>
      ...
    </script>
{% endif %}

{% if configuration.ID_GOOGLE_ANALYTICS != "UA-xxxxxxx-xx" %}
<!-- Script Google Analytics -->
<script>
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
ga('create', '{{configuration.ID_GOOGLE_ANALYTICS}}', 'auto');
ga('send', 'pageview');
</script>
{% endif %}

@andriacap
Copy link
Contributor Author

Yes je trouve que c'est une bonne idée

@andriacap
Copy link
Contributor Author

A voir l'avis de la communauté et un "go" pour développement

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants