Wenn ein User eine Webseite besucht, dann zeichnet Google Analytics die Zeit auf, die er dort verbringt. Allerdings nur dann, wenn der User noch eine weitere Aktion setzt, z.B. der Navigation folgt und eine weitere Seite lädt, oder einen Button klickt. Aber wenn der User die Website auf einer bestimmten Seite verlässt, wird die Zeit, die er ebendort verbracht hat, nicht festgehalten.

Stellt sich die Frage: Ist das eigentlich so schlimm? Und die Antwort lautet – wie so oft: kommt darauf an. Einem Shop-Betreiber wird das ziemlich egal sein, denn der bekommt am Ende sowieso eine – oder eben keine – Interaktion. Anders sieht sie Sache bei Bloggern aus. Denn was, wenn ich über eine Suchmaschine genau jene Seite finde, die alle für mich relevanten Informationen enthält und ich nach dem Lesen der Seite überhaupt kein Bedürfnis mehr habe, mich weiter auf der Website aufzuhalten, weil ich eben sofort auf der ersten Seite, die ich über die Suche geöffnet habe, völlig zufrieden gestellt wurde? Naja, für Google Analytics bin ich dann ein Bounce, also ein User der die Seite (angeblich unzufrieden) sofort wieder verlassen hat. Und das zeigt schon: Mit dieser Annahme, dass es auf der letzten betrachteten Seite keine Time on Page gibt bzw. diese keine Bedeutung hat, kann etwas nicht stimmen.

Zum Glück bin ich nicht der erste, dem das aufgefallen ist. Bei analytical42.com gibt es eine relativ detaillierte Anleitung, wie sich mit Hilfe des Google Tagmanagers eine benutzerdefinierte Dimension anlegen lässt, um die Zeit auf der Exit Seite zu erfassen. Die Lösung, die hier dargestellt ist, ist direkt von https://analytical42.com/2016/track-real-time-on-page/ übernommen. Ich habe sie hier für mich noch einmal zusammengefasst:

Ersten Zeitpunkt erfassen

Die Startzeit wird in Google Tag Manager automatisch erfasst. Sie muss allerdings als Data Layer Variable angelegt werden, damit sie in einem Tag verwendet werden kann.

Data Layer Variable anlegen

Zeit auf der Seite berechnen

Die tatsächliche Zeit, die ein User auf der Seite verbringt, wird berechnet als Differenz zwischen dem Zeitpunkt, zu dem der User die Seite verlässt und dem Zeitpunkt des Ladens der Seite. Auf analytical42.com findet sich dafür der folgende Custom HTML tag mit dem Namen „HTML – beforeunload“:

<script>
window.addEventListener("beforeunload", function(e) {
  dataLayer.push({
    'event' : 'beforeunload'
    'timeOnPage' : new Date().getTime() - {{Page Load Start Time}}
  }};
}};
</script>

Dieser Tag wird entweder auf allen Seiten abgefeuert oder nur auf einzelnen Seiten, auf denen die tatsächliche Zeit gemessen werden soll. Der HTML-Tag wird ausgeführt, sobald der Benutzer die Seite verlässt und berechnet dann die Zeit zwischen dem Aufruf und dem Verlassen der Seite.

„Echte“ Zeit an Google Analytics übergeben

Damit die Information an Google Analytics übergeben werden kann, muss sie in Form einer Data Layer Variable gespeichert werden. Der Name der Variable lautet im Beispiel von analytical42.com „Real Time On Page“. Im Feld „Data Layer Variable Name“ muss „timeOnPage“ eingetragen werden.

Anlegen der Data Layer Variable "Real Time on Page"

Nun muss noch ein Event Trigger angelegt werden, der feuert, sobald der User die Seite schließt. Der Name des Trigger lautet in diesem Beispiel „Event – beforeunload“. Der Wert für das Feld „Event name“ lautet beforeunload. Standardmäßig feuert der Trigger bei allen Events. Um aber beispielsweise jene Sessions auszuschließen, die länger als 30 Minuten dauern (der Standardwert für eine Session in GA), lässt sich hier eine Bedingung einstellen, im konkreten Fall darf die „Real Time on Page“ nicht mehr als 1.800.000 Millisekunden betragen.

Zu guter Letzt muss ein Universal Analytic Tag angelegt werden (mit der entsprechenden Google Analytics Tracking ID). Der Tracking Typ ist in diesem Fall „Timing“. Die Kategorie wird auf „Time on Page“ gesetzt, das Feld Var auf „Time“. Im Feld Value wird die Variable {{Real Time On Page}} eingefügt, die zuvor erstellt wurde. Im Feld Label wird die vordefinierte Variable {{Page Path}} eingefügt. Unter „More Settings“ muss noch ein Feld mit dem Namen „transport“ und dem Wert „beacon“ eingefügt werden.

Das Problem dabei: Die Zeit wird erfasst unabhängig davon, ob die Seite im Vordergrund oder überhaupt nicht sichtbar ist. Auf simoahava.com findet sich eine Lösung, um mittels eines Event-Listeners den Status des Browserfensters abzufragen. Und auf analytics-ninja.com hat sich Yehoshua Coren überlegt, wie man daraus die Zeit berechnen kann, die eine bestimmte Seite im Rahmen einer Session sichtbar war.

Leider verrät er nur des Ergebnis, aber nicht den Weg dorthin.

 

Veröffentlicht von Stefan

Geboren, aufgewachsen, zur Schule gegangen, zu arbeiten begonnen. To be continued.