Matomo

Ce plugin inspiré du plugin Piwik assure une interface minimale vers le logiciel de mesure d’audience de site web Matomo [1]

La configuration se limite à l’URL du serveur Matomo, et le site Id configuré dans Matomo.
Si le plugin Piwik était précédemment installé, le plugin Matomo reprend automatiquement les éléments de configuration tels qu’ils étaient configurés pour le plugin Piwik.

Footnotes

[1Matomo s’appellait précédemment Piwik

Discussion

4 discussions

  • 20

    Bonjour

    Je teste ce plugin en ayant installé Matomo sur le serveur à cette adresse https://matomo.spipfactory.org
    J’ai bien paramétré le plugin avec cette adresse et l’id du site.
    Le script de Matomo est bien visible dans le head du site.
    Mais au bout de quelques jours, aucune visite n’est répertoriée sur Matomo.
    Pour un autre site j’ai eu 1 visite par jour pendant 3 jours puis 0 les 2 jours suivants.

    Une idée ?

    • Bonjour

      Des pistes:

      Est-ce que ltracker est inclus dans les pages générées?

      Avec les outils de dev du navigateur, est-ce qu’on voit des requêtes allant au serveur matomo quand on charge une page?

    • Je ne comprends pas ta première question.

      Pour la 2e, je vois l’image jointe

    • Le tracker: c’est un bout de code JS que le plugin Matomo insère dans les page. Ca commence par

      var _paq = window._paq = window._paq || [];

      Pour ton image, je ne vois qu’une petite barre bleue.

    • Alors c’est OK pour le tracker, je vois bien le script dans le head.

      Dans la console, je vois ceci

      Échec du chargement pour l’élément <script> dont la source est « https://https//matomo.spipfactory.org/matomo.js »

      d’où pourrait venir ce https:// en trop ?

    • J’ai trouvé pour le double hhhtps:// il ne faut pas le mettre dans la config du plugin..
      Je vais voir si ça règle problème.

    • Le double https:// c’est un bug discuté plus bas dans le forum, je vais publier une version 0.4.0 qui règle le problème. Cette nuit si j’ai le temps.

    • Ok et merci.
      En tout cas ça semble fonctionner bien mieux.

    • La nouvelle version 0.5.0 est disponible, qui corrige les bugs d’incohérence de schémas d’URL.

    • Merci.
      Mais si on voit bien la nouvelle version sur cette page, on ne voit pas de mise à jour proposée dans le privé d’un site.

    • Oui, c’est juste une modification du code, il n’y a ni données ni configuration à migrer, donc il ne dit rien, mais ça doit afficher que tu as la version 0.5.0.

    • ce que je veux dire, c’est que pour mettre à jour, il a fallu que je passe par “Télécharger un plugin depuis son archive” au lieu de juste cliquer sur “Mettre à jour”

    • @Jean-Christophe

      probablement que la tache interne a SPIP qui met à jour les informations depuis le référentiel distant n’était pas passé. Ca n’est pas instantanée.

    • J’ai comme un doute car sur un autre site, la mise à jour n’est toujours pas proposée.
      De plus, sur cette page, la version 0.5.0 est proposée dans “Autres téléchargements” et non dans “Téléchargements” où on voit encore la version 0.3.0

    • Ah bah oui. Emmanuel Dreyfus refuse de déposer sur la forge communautaire sont code. Donc effectivement ca ne peut pas suivre avec le gestionnaire de version de SPIP... bon on va voir s’il a changé d’avis depuis le temps... sachant que je suis toujours disponibles pour aider à utiliser la forge...

    • En fait il n’y aurait pas de problème si quelqu’un n’avait pas mis le plugin sur la forge alors que je ne souhaitait pas y avoir recours. Mais ça c’est pas grave, le quelqu’un n’a qu’à continuer à la recopier.

    • Alors non Emmanuel. C’est précisement parce que vous refusez — pour des raisons qui vous sont propres — d’utiliser la forge communautaire, que la mise à jour de matomo vers la 0.5.0 ne peut pas se faire directement via l’interface de SPIP, mais nécessite comme l’a expliqué Jean-Christophe, que celui ci

      “passe par « Télécharger un plugin depuis son archive » au lieu de juste cliquer sur « Mettre à jour »”.

      Maintenant, vous avez fait votre choix. Mais n’aller pas dire qu’il ne pose pas de problème aux utilisateurtrices finaux pour les mises à jour.

    • Je me suis déjà exprimé sur le sujet: c’est du logiciel libre, faites-en ce que vous voulez.

    • Je répondais simplement à votre affirmation selon laquelle il n’y aurait pas de problème si on n’avais pas mis sur la forge, qui est une contre vérité manifeste. Pour le reste, vous faites bien ce que vous voulez.

    • Quelqu’un en a mis une version sur la forge. De ce fait, les gens s’attendent à mettre à jour depuis la page des plugins. Je ne maintiens pas la version sur la forge, donc cette attente ne trouve pas satisfaction. Cette insatisfaction constitue un problème.

      Quel acte selon vous a créé ce problème?

    • Bah simplement que tout les plugins sauf exceptions peuvent être mis à jour depuis l’espace de gestion des plugins. Donc vous choisissez volontairement de ne pas fournir cette fonctions aux utilisateurs. Libre à vous. Mais ne pas vous étonner ensuite que des gens n’arrivent pas à mettre à jour directement, comme il le font pour l’immense majorité des plugins.

    Reply to this message

  • Voila un test. J’ai ajusté au cas où l’URL commence déjà par //
    Est-ce que tu vois d’autres corner cases?

    <?php
    
    function matomo_ajouter_schema($url) {
      if (strpos($url, "//") === 0)
        return $url;
      $parts = parse_url($url);
      return (empty($parts["scheme"])) ? "//".$url : $url;
    }
    
    printf("%s\n",  matomo_ajouter_schema("www.example.net"));
    printf("%s\n",  matomo_ajouter_schema("https://www.example.net"));
    printf("%s\n",  matomo_ajouter_schema("http://www.example.net"));
    printf("%s\n",  matomo_ajouter_schema("//www.example.net"));

    Reply to this message

  • J’ai du ajuster un peu au cas où l’URL est déjà en //. Voila un test, est-ce que j’ai envisagé tous les coups pourris?

    <?php
    
    function matomo_ajouter_schema($url) {
      if (strpos($url, "//") === 0)
        return $url;
      $parts = parse_url($url);
      return (empty($parts["scheme"])) ? "//".$url : $url;
    }
    
    printf("%s\n",  matomo_ajouter_schema("www.example.net"));
    printf("%s\n",  matomo_ajouter_schema("https://www.example.net"));
    printf("%s\n",  matomo_ajouter_schema("http://www.example.net"));
    printf("%s\n",  matomo_ajouter_schema("//www.example.net"));
    

    Reply to this message

  • 2

    Bonjour,

    Le snippet Matomo généré semble erroné. Voici un exemple de snippet généré pour l’adresse “test.domain.com” et l’id XX

    <!-- Matomo -->
    <script type="text/javascript">
      var _paq = window._paq = window._paq || [];
      _paq.push(['trackPageView']);
      _paq.push(['enableLinkTracking']);
      (function() {
        var p = ('https:' == document.location.protocol) ? 'https://' : 'http://';
        var u = p + 'test.domain.com/';
        _paq.push(['setTrackerUrl', u+'matomo.php']);
        _paq.push(['setSiteId', XX]);
        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>
    <noscript><p><img src="test.domain.com/matomo.php?idsite=XX&amp;rec=1" style="border: 0;" alt=""/></p></noscript>
    <!-- End Matomo Code -->

    Avec le test sur le protocole (variable “p”) cela oblige à entrer dans la configuration du plugin une adresse sans protocole, or la balise img générée ne reprend pas les variables “p” ou “u”, donc soit on se retrouve avec un double protocole dans la variable “u”, soit sans protocole dans l’image

    • Dans la dernière version de matomo, il n’y a plus le test de protocole, ce qui suppose qu’on saisit une url avec protocole dans la configuration. Je veux bien faire ça, mais comment assurer la compatibilité ascendante?

      On ferait un truc comme ça?

      [(#CONFIG{matomo/url, #CONFIG{piwik/urlpiwik}})|matomo_ajouter_schema]
      function matomo_ajouter_schema($url) {
        $parts = parse_url($url);
        return (empty($parts["scheme"])) ? "https://".$url : $url;
      }

      On suppose https:// par défaut? Ou alors on met juste // pour que ça utilise le même protocole que le site courant.

    • La version avec // me parait la bonne :)

    Reply to this message

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom