Benutzerdefiniertes Tracking


#1

Hallo,
ich bin gerade dabei, einige meiner Seiten auf das Laden in einen Container mit jQuery-Load umzustellen. Wird auf diese Weise eine Seite geladen, kann das Standard-Tracking nicht funktionieren, da der betr. Code ja nur in der Elternseite vorhanden ist und beim Laden mit Ajax nicht neu ausgeführt wird. Ich müsste also selber durch Javascript das Tracking veranlassen. Ich habe bisher diese Seiten gefunden:
http://developer.piwik.org/guides/tracking-javascript-guide
http://developer.piwik.org/api-reference/tracking-javascript
Leider verstehe ich die Erläuterungen und Anweisungen dort nicht. Wenn ich entsprechend der 1. Seite unter “Manually trigger events” diesen Code einfüge:

_paq.push(['trackEvent', 'Menu', 'Freedom']);

(natürlich an meine Gegebenheiten angepasst) ist das zwar syntaktisch korrekt, aber ich verstehe nicht, wie es funktionieren kann. Dabei füge ich doch lediglich ein Array-Element hinzu. Und woher soll Piwick wissen, was unter Menu und Freedom zu verstehen ist?
Direktaufruf der Funktion trackEvent funktioniert nicht, da diese Funktion nicht definiert ist.
Wäre dankbar für eine Hilfestellung. Tutorial oder Beispiele habe ich leider nicht gefunden.
Viele Grüße - Ulrich


(Stefan Giehl) #2

Es handlet sich hier um kein “normales” JavaScript Array. Die “hinzugefügten” Elemente werden ausgewertet und dadurch bestimmte Anfragen an Piwik generiert. Bei trackEvent würde ein Ereigniss in Piwik gezählt werden.
Willst du an dieser Stelle denn ein Ereignis oder eigentlich einen Seitenaufruf tracken? Dafür müsstest du trackPageView verwenden.


#3

Danke für die Antwort und die Erklärung. Das Laden der Seite in einen Container ist praktisch das gleiche wie ein normales Laden. D. h. ich müsste dieses trackPageView verwenden. Geht das auch über _paq.push()?


#4

PS: Habe recherchiert und diese Seite gefunden:
https://developer.piwik.org/guides/tracking-javascript-guide
und dort diesen Code:


_paq.push(['setDocumentTitle', document.title]);
_paq.push(['trackPageView']);

trackPageView hat anscheinend keinen Parameter und es wird offenbar die Seite getrackt, in der der Code steht. Das hilft mir bei meinem Problem nicht. Und die erste Anweisung setzt anscheinend den Title. Ich müsste aber die Seite mit Dateinamen tracken. Oder verstehe ich da wieder etwas falsch?
Das Laden von Content mit Ajax ist doch eigentlich ein gängiges Verfahren und Piwik müsste es unterstützen.


#5

PPS: Hätte wohl gleich besser lesen sollen:

By default, Piwik uses the URL of the current page as the page title in Piwik reports.
D. h. wenn ich als Title den Dateinamen der geladenen Seite angebe, müsste das den selben Effekt haben, wie ein Standardtracking. Offenbar ist hier nicht der Title im Sinne von HTML gemeint.
Kann jemand bestätigen, ob ich das jetzt richtig verstehe?


(Stefan Giehl) #6

Als Title wird als default das verwendet was in document.title gesetzt ist, was dem title element im html entsprechen sollte.
Möglicherweise ist das in der Doku etwas komisch beschrieben.

mit setCustomUrl kannst du die URL from trackPageView üverschreiben.


_paq.push(['setCustomUrl', 'url/to/track']);
_paq.push(['trackPageView']);

Alle verfügbaren Funktionen findest du im übrigen hier: JavaScript Tracking Client: API Reference - Matomo Analytics (formerly Piwik Analytics) - Developer Docs - v3


#7

Vielen Dank für diese weiteren Informationen. Jetzt müsste ich alles haben, was ich brauche.