AMP - Ping // HeartBeatTimer

Hallo,

ich nutze Matomo auch für die AMP-Seiten und das klappt auch ganz gut

<amp-analytics><script type="application/json">
{
	"triggers": {
		"trackPageview": {
			"on": "visible",
			"request": "pageview"
		}
	},
	"requests": {
		"base": "/matomo.php?idsite=2&rec=1&action_name=${title}&url=${sourceUrl}&rand=${random}&apiv=1&urlref=${documentReferrer}&res=${screenWidth}x${screenHeight}&lang=${browserLanguage}&gt_ms=${serverResponseTime}&cs=${documentCharset}&_cvar={\"1\":[\"errorName\",\"${errorName}\"],\"2\":[\"errorMessage\",\"${errorMessage}\"]}",
		"pageview": "${base}"
	}
}
</script></amp-analytics>

Das Problem aber ist, dass AMP-Nutzer meist nur eine Seite aufrufen und die Nutzungszeit auf 0 setzen. Matomo hat doch heartbeat oder Ping. Setze ich aber bspw. Ping=1 oben ein, so wird gar nichts mehr getrackt. Warum ist das so und welchen Lösungsansatz kann ich verfolgen?

<amp-analytics><script type="application/json">
{
	"triggers": {
		"trackPageview": {
			"on": "visible",
			"request": "pageview"
		}
	},
	"requests": {
		"base": "/matomo.php?idsite=2&rec=1&ping=1&action_name=${title}&url=${sourceUrl}&rand=${random}&apiv=1&urlref=${documentReferrer}&res=${screenWidth}x${screenHeight}&lang=${browserLanguage}&gt_ms=${serverResponseTime}&cs=${documentCharset}&_cvar={\"1\":[\"errorName\",\"${errorName}\"],\"2\":[\"errorMessage\",\"${errorMessage}\"]}",
		"pageview": "${base}"
	}
}
</script></amp-analytics>

Danke für Tipps!

Hat keiner eine Idee?

Ist das Vorhaben aber vielleicht auch gar nicht möglich mit Matomo?

Ich persönlich kenne mich mit AMP leider nicht so aus.
Kannst du damit eine JS Code ausführen?

Mit dem Ping Parameter bist du aber wohl auf dem richtigen Weg, denke ich.
Den muss man dann bloß alle 10 Sekunden abfeuern.
In der Matomo Konfiguration muss Heartbeat auch aktiv sein. Wenn du den Tag Manager nutzt, also unter Variable - Matomo Konfiguration.

Hallo und vielen lieben Dank für die Antwort - ja, kann man.

Meinst du das Matomo Backend oder meinst du den Matomo Code für die Webseite?

Wie oben dargestellt, unterscheidet sich die Erfassung der Daten im AMP von der Webseite fundamental. Schön wäre es, wenn man den Ping einfach in den AMP-Code mit einbauen könnte.

im Matomo Tracking Code muss folgende Anweisung stehen:

_paq.push(['enableHeartBeatTimer']);

https://developer.matomo.org/guides/tracking-javascript-guide#accurately-measure-the-time-spent-on-each-page

Also an der Stelle, wo du auch den TrackPageView ausgibst.
Ich weiß aber nicht, wie das in das JSON rein gehört. :slight_smile:

Das ist in der Tat für die Webseite schon erledigt und funktioniert auch - jetzt muss das nur noch für AMP umgesetzt werden

Wenn das über den Parameter (ping) nicht funktioniert und du in AMP → JS nutzen kannst - versuche mal dies:

 <script type="text/javascript">

 setInterval(function () {
 window._paq = window._paq || [];
 window._paq.push(['ping'])
  }, 15000);

 </script>