PnX-SI / GeoNature-citizen

Portail web d'inventaire citoyen de la biodiversité à destination du grand public
https://pnx-si.github.io/GeoNature-citizen/
GNU Affero General Public License v3.0
20 stars 29 forks source link

Suivi Matomo (piwik) #180

Open jbdesbas opened 5 years ago

jbdesbas commented 5 years ago

Salut, Etant donné que GeoNature-citizen est en grande partie dédié à de la communication, il me parait important de pouvoir intégrer un service de suivi des visites.

Ci-après un code à coller dans frontend/src/index.html, après le </head>. Ne pas oublier de remplacer MY_MATOMO_URL et MY_MATOMO_SITE_ID https://gist.github.com/jbdesbas/c1d0fcbc1dce12fdf2966a0432511783 Il s'agit du code par défaut fourni par Matomo, avec un ajout permettant de faire fonctionner sur les sites one-page. Il y a sûrement moyen de l'intégrer dans Angular pour le paramétrer et activer depuis le fichier de conf, mais ça sort de mes capacités.

samuelpriou commented 5 years ago

Bonne idée ! Merci @jbdesbas

lpofredc commented 5 years ago

Merci, ça soulève un pb pour les mises à jour (écrasement du index.html). A creuser pour intégrer ça dans un composant du frontend. une piste ? https://stackoverflow.com/questions/56560687/keep-track-of-user-activity-on-each-page

jbdesbas commented 5 years ago

Logiquement il "suffit" d'appeler cette partie à chaque changement de page : _paq.push(['setCustomUrl', location.href]); _paq.push(['setDocumentTitle', document.title]); _paq.push(['trackPageView']);

lpofredc commented 4 years ago

ça pose pour les mises à jour qui écraseront le fichier, d'autre part parce que tout le monde n'utilise pas matamo. A voir si l'on peut pas plutôt utiliser un composant customizable qui permette d'intégrer les stats.

camillemonchicourt commented 4 years ago

Oui je suis du même avis que @lpofredc

samuelpriou commented 4 years ago

Ok. Merci pour vos retours.

samuelpriou commented 4 years ago

Comme évoqué avec Frédéric, une possibilité serait que le fichier index.html deviennent un fichier template personnalisable dans lequel un paramètre Google analytics ou Matomo puisse être ajouté.

lpofredc commented 4 years ago

Donc on revient sur la proposition initiale de @jbdesbas ;) En outre, cela permettra de personnaliser cette page d'accueil correspondant à la page de chargement en mode Application web monopage (SPA): logo, message, animation

samuelpriou commented 4 years ago

@lpofredc. Oui partons sur la proposition de @jbdesbas.

camillemonchicourt commented 4 years ago

Si chacun doit aller s'adapter son template index.html, je trouve assez complexe pour ceux qui en connaissent pas bien les outils de statistiques. Et un peu risqué de casser le fonctionnement ?

Des paramètres code_matomo et code_googleanalytics intégrant le bout de code qui va bien si l'un ou l'autre est renseigné ne serait pas plus adapté ?

lpofredc commented 4 years ago

Cela pourrait en effet être configuré dans le script d'install de citizen. Pas d'option, alors copie/colle simplement le fichier index.html.template en index.html, option matamo ou googleanalytics, alors on intègre dans le fichier index.html le code adapté à chacun.

camillemonchicourt commented 4 years ago

On peut faire plus simple à mon avis pour avoir tous le même fichier et éviter de devoir écrire dans le fichier au moment de l'installation. Si le code_matomo est renseigné, alors je l'utilise, si le code GA est renseigné je l'utilise, sinon aucun des 2.

A écrire dans le bon langage :

{% if configuration.code_matomo %}
<!-- Matomo -->
    <script type="text/javascript">
      .....code_matomo
    </script>
<!-- End Matomo Code -->
{% endif %}
{% if configuration.code_googleanalytics %}
<!-- GA -->
    <script type="text/javascript">
      .....code_googleanalytics
    </script>
<!-- End GA Code -->
{% endif %}
lpofredc commented 4 years ago

@camillemonchicourt , Les bouts de code javascript intégrés dans des composants angular sautent lors des compilations. Et ça semble assez complexe d'avoir une solution générique intégrée dans le code source du front (écrit en TypeScript avec les particularités d'Angular). Il réécrire en "Angular" les codes JS fournis par les outils stats.

Les recherches pour l'intégration des suivis stats sur Angular utilisent principalement la page index.html pour l'intégration de ces bouts de codes, car préservé lors de la compilation du front.

camillemonchicourt commented 4 years ago

Ok je capte.