• Added v1.0.2 <-> 2.16.1 to known working versions.


  • Added v1.1.0 <-> 2.16.1 to known working versions.


  • @rod every Piwik version will work.


  • Hi there,

    Is there any other way to implement piwik other then adding it to the header. I've done it in my setup and it seems to be working but when I compare the internal dashboard with piwik the internal dashboard shows about approx three times more unique visits and page views.

    Is there parts of nodebb where the header isn't loaded or other oddity that could explain this.

  • GNU/Linux Admin

    @hmj That discrepancy can likely be explained by Piwik only tracking cold page loads, whereas NodeBB tracks page transitions as well (that is, going between pages).

    @rod I see there is code to fire Piwik when a page transition finishes:

        $(window).on('action:ajaxify.contentLoaded', function(ev, data) {
            firePiwik(data);
        });
    

    Any chance you could test this to ensure that it is actually working?


  • @julian said in How To: Piwik and NodeBB:

    @hmj That discrepancy can likely be explained by Piwik only tracking cold page loads, whereas NodeBB tracks page transitions as well (that is, going between pages).

    What do you mean by that? In my Piwik I see visitors moving between topics

    @rod I see there is code to fire Piwik when a page transition finishes:

        $(window).on('action:ajaxify.contentLoaded', function(ev, data) {
            firePiwik(data);
        });
    

    Any chance you could test this to ensure that it is actually working?

    Yes, I believe this is working. Suggestion on how to test this?

  • Plugin & Theme Dev

    @rod @hmj does piwik count search bots as visitors or ignore them? That might explain the difference.


  • @pichalite I am quite sure that Piwik ignores them, installed a plugin to count bots now and I cannot see that it accounts for around 4k unique visits and at least 40k pageviews per day that are not counted in Piwik. I added GA tracking yesterday as well to compare to the two and GA seems to be in line with Piwik.

    So I'm a bit baffled by the amount of traffic Nodebb is showing in it's backend.

  • GNU/Linux Admin

    @hmj What other plugins do you have installed? Could be one of them are hammering some routes 😦


  • @julian Not sure here is a list of the plugins we are using.

    Activated plugins:
    nodebb-plugin-composer-default
    nodebb-plugin-dbsearch
    nodebb-plugin-emoji-extended
    nodebb-plugin-emoji-one
    nodebb-plugin-markdown
    nodebb-plugin-mentions
    nodebb-plugin-spam-be-gone
    nodebb-plugin-sso-oauth
    nodebb-widget-essentials

    So I've added GA to the mix. I did that with adding it in the same custom header as to validate that my Piwik installation is not on the fritz. Comparing the two I see a little fewer unique visits between the two in piwik but almost exactly the same amount of pageviews.

    Nodebb is still off by a factor of three in unique visits and around a factor of three to ten in pageviews.


  • Did this piwik code break for anyone else on the 1.6 upgrade?

    0_1508334234807_0f84cd27-16b4-442e-b972-e769f9d14e01.png

    Index 86: $(window).on('action:ajaxify.contentLoaded', function(ev, data) {
    Index 89: })();

  • GNU/Linux Admin

    @hmj v1.6.1? or v1.6.0... it may be that the piwik plugin needs updating.

    Edit: Actually, doesn't seem like there is a piwik plugin... are you just putting it in the custom HTML page?


  • @julian Yeah that code at top is put into Appearance -> Custom HTML & CSS -> Custom Header. That had worked fine until the last upgrade.

  • GNU/Linux Admin

    @hmj Are you on the develop branch? The code should still work fine in master.

    Also can you please paste the code here?


  • @julian We are on 1.6.0 and not Develop.

    Our code is almost a carbon copy of the one above in the first post.

     <!-- Piwik -->
    <script type="text/javascript">
    var _paq = _paq || [];
    (function () {
        var u = "https://our.piwik.com/";
    
        function firePiwik (data) {
            if (app && app.user && app.user.uid > 0) {
                _paq.push(['setUserId', app.user.uid.toString()]);
                _paq.push(['setCustomVariable', 1, "appUserUsername", app.user.username, "visit"]);
            }
            _paq.push(['setDocumentTitle', document.title]);
            _paq.push(['setCustomUrl', location.href]);
            _paq.push(['enableHeartBeatTimer']);
            _paq.push(['appendToTrackingUrl', 'bots=1']);
    		if (data.tpl === 'search') {
    			_paq.push(['trackSiteSearch', ajaxify.data.search_query,, ajaxify.data.matchCount]);
    		} else {
    			_paq.push(['trackPageView']);
    		}
            _paq.push(['enableLinkTracking']);
            _paq.push(['setTrackerUrl', u+'stats/piwik.php']);
            _paq.push(['setSiteId', 1]);
        }
        var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
        g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'stats/piwik.js'; s.parentNode.insertBefore(g,s);
    
        $(window).on('action:ajaxify.contentLoaded', function(ev, data) {
            firePiwik(data);
        });
    })();
    </script>
    <noscript><p><img src="https://our.piwik.com/stats/piwik.php?idsite=1&rec=1&bots=1" style="border:0;" alt="" /></p></noscript>
    <!-- End Piwik Code -->
    
  • GNU/Linux Admin

    @hmj can you provide the result of git rev-parse HEAD? I have a feeling you're on a commit with a feature we've temporarily rolled back


  • @julian said in How To: Piwik and NodeBB:

    git rev-parse HEAD

    02370b30d934006fe1db8575cccf6a42ac71431e


  • Awesome , thanks for the info..


  • @julian Resurrecting an old thread, it is still relevant though.

    Since upgrading NodeBB from v1.4.5 to v1.12.1 my Piwik analytics code no longer works. It looks like @hmj had this same problem when he upgraded to v.1.6.0.

    Does anyone have suggestions on what may have changed such that this doesn't seem to work any longer?

    $(window).on('action:ajaxify.contentLoaded', function(ev, data) {
            firePiwik(data);
        });
    

    Thank you.


Suggested Topics

| |