Heartbeat Timer funktioniert nicht mehr

Ich habe schon seit längerem den Heartbeat Timer aktiv und funktionierte über sehr lange Zeit wunderbar, aber mir fällt erst jetzt auf, dass dieser nun seinen Dienst aufgegeben hat. Wenn ich noch vor Wochen in der Developer Konsole des Browsers die Ping Requests gemäß eingestelltem Intervall sehen konnte, tut sich darin jetzt nichts mehr und das egal in welchem Browser. Der besagte Ping wird nur dann jeweils 1x aktiv, wenn ich kurz mal den Tab wechsle, bzw. zwischen offenen Tabs hin und her wechsle. Es gibt nirgendwo einen Fehler, sodass die Ursache während der letzten Updates zu suchen wäre.

Gibt es darüber irgendwelche Infos warum der nun nicht mehr funktioniert?

Gibt es irgendwelche Neuigkeiten zu dem Thema?

Und ein weiteres Mal nachgefragt, warum funktioniert der HeartBeatTimer nicht mehr?

Hallo,

Es tut mir leid, dass ich vorher nicht geantwortet habe.

Es stellt sich heraus, dass dies kein Fehler ist, sondern Absicht:

https://github.com/matomo-org/matomo/pull/15058

Alle paar Sekunden eine Anfrage an Matomo zu schicken ist mit vielen Besuchern schnell sehr ineffizient. Daher sendet der Timer jetzt nur mehr Daten, wenn der Besucher die Seite verlässt (was somit dieselben Ergebnisse liefern sollte).

Die Dokumentation dazu ist aber noch veraltet und ich habe ein Issue aufgemacht, dass das behoben gehört.

https://github.com/matomo-org/matomo/issues/15612

Okay, macht so weit Sinn, aber nicht ganz. Was dabei verloren geht, ist die Verweilzeit der zuletzt aufgerufenen Seite vorausgesetzt es wurde mehr als 1 Seite aufgerufen. Gibt es nur 1 aufgerufene Seite trifft das Gleiche zu. Alles in Allem wird dadurch die Gesamtverweilzeit verfälscht. Sehe ich das richtig?

Hallo,

Der Text auf JavaScript Tracking Client: Integrate - Matomo Analytics (formerly Piwik Analytics) - Developer Docs - v3 wurde inzwischen angepasst (vielleicht musst du die Seite neuladen).

Ich verstehe das Problem nicht ganz. Es wird immer ein Ping gesendet, wenn die Seite verlassen wird (entweder auf eine andere auf derselben Webseite oder komplett weg von der Webseite). Somit sollte auch bei z.b. 3 Seitenaufrufen, die letzte Seite richtig getimed sein.

Woher soll denn das Signal bei der ersten einzigen und gleichzeitig letzten oder bei der letzten von mehreren Seiten kommen? Ich habe unzählige Seiten mit nur 1 Seitenaufruf, aber ohne Angaben zu den Verweilzeiten. Dieser effizientere HeartBeatTimer ist aus meiner Sicht alles andere als effizient. Da kann man es auch gleich ohne diesen Timer betreiben. Dann stimmen die Zeiten zwar auch nicht, aber zumindest wird dann die Standard Sitzungszeit als Wert verwedet.

@Serpent_Driver um es etwas besser zu verstehen: Was ist den genau das Problem mit dem effizienteren HeartBeatTimer?

Woher soll denn das Signal bei der ersten einzigen und gleichzeitig letzten oder bei der letzten von mehreren Seiten kommen?

Das Signal kommt vom Browser. Wenn man die Seite verlässt, zum Beispiel auf eine andere Webseite geht oder den Browser schließt, dann gibt der Browser uns bescheid und wir senden den Ping.

Das Problem ist eigentlich offensichtlich und es ist nicht so, wie Du es meinst. Wird mehr als 1 Seite aufgerufen, funktioniert diese neue Funktionsweise des Timers, aber eben nicht beim Aufruf von nur 1 Seite, wobei auch nicht vollständig. Beim Aufruf von nur 1 Seite und wenn die Verweilzeit unter der Zeit für den Wert für den HeartBeatTimer erfolgt keine Erhebung der Verweilzeit. Das Gleiche gilt auch beim Aufruf der letzten von mehren aufgerufenen Seiten. Es gab zwar auch bei der früheren Methode keine vollständige Erfassung, aber diese war um Längen besser als die Aktuelle.

Mal zwei ganz doofe Fragen:

  1. Bei meinem Handy habe ich meistens >90 Tabs offen. Wird es bei Smartphones registriert, dass man den Tab nicht mehr anschaut?

  2. Jeder kennt das beliebte “exit Popup” das auftaucht wenn man mit seiner Maus aus dem Browserfenster geht. Bei 90% der Seiten poppt es zu früh auf, weil ich mit der Maus irgendwie das Ding ausgelöst habe, ohne dass ich das Fenster tatsächlich schließen wollte. Haben ich diesen Fehler nicht auch bei der neuen Regelung der heartbeat Funktion?

Hallo @thomas_matomo - Nur das ich das richtig verstehe. Es ist mir mit der HeardBeatTimer Funktion immer noch möglich die Time on Site - bei einer Singale Page dadurch besser zu messen? Da ja sonst die Seite per default mit 0 sec. gemessen werden würde. Richtig?

Heart beat ermöglicht derzeit die “Time on site” genauer zu messen. Auch bei einer single page app. Die “Time on site” sollte dann eher selten 0s sein.

Es aktuell derzeit jedoch nicht die “Time on page” bei der letzten Seite. Die würde derzeit immer noch auf 0s stehen.

Hilft das @Bigby oder vielleicht ist etwas nicht ganz klar?

Hallo @thomas_matomo,

erstmal danke das du mir geantwortet hast! Also ich habe den Begriff “Single Page” falsch verwendet und meine “Onepage/r”. Wir haben einen “Onepage/r” und wollten hier realistische “Time on Site” Daten erheben. Daher war die Frage: “Ob durch das HearBeatTimer - Event diese Daten verbessert werden?”

Da bei dem “Onpage/r” Einstiegsseite = Ausstiegsseite ist, machen wir uns sorgen wie wir hier realistische Daten erheben können.

Danke für dein Feedback!

@ Bigby

Deine Frage lässt sich nur insofern beantworten, als dass és eine wie auch immer geartete Nutzeraktion braucht. Es genügt also schon, wenn der Nutzer nur mit der Maus ins Nichts klickt, damit der Timer was zu zählen hat. Demnach würde es auch auf einem One Pager funktionieren. Allerdings, wird die Seite aufgerufen, ohne dass eine Aktion erfolgt und wird der Tab geschlossen, scheint die Heartbeat Funktion kein Signal zu bekommen, sodass es dann bei 0 Sekunden bleibt. Ein Wechsel zu einer anderen Seite gehört aber auch zu einer Aktion. Eine 100%ige Erfassung bekommst also nicht, ist aber nahe dran.

1 Like

Der HeartBeatTimer sendet auch ein Signal wenn die Seite/Onepager verlassen wird oder wenn auf ein anderes Fenster gewechselt wird. Selbst wenn ansonsten keine Aktion war. Es wird nur nicht gemessen sollte der Besucher auf der Seite für mehr als 30 Minuten inaktiv sein und dann die Seite verlassen (zum Beispiel schließt Browser).

1 Like

Stimmt, hätte ich noch ergänzen sollen. Allerdings kann ich das mit den 30 Minuten nicht bestätigen. Im Falle dessen, dass es keine Nutzerkativität mehr gibt, endet die Sitzung nach der letzten Aktivität, zumindest kann ich nur das feststellen.

1 Like