Single-Page-Anwendungsmessung

In diesem Leitfaden wird beschrieben, wie Sie mit analytics.js Seitenaktivitäten auf Websites messen, deren Inhalte ohne herkömmliches ganzseitiges Laden dynamisch geladen werden.

Überblick

Eine Single Page Application (SPA) ist eine Webanwendung oder Website, die beim ersten Seitenaufbau alle für die Navigation auf der Website erforderlichen Ressourcen lädt. Wenn der Nutzer auf Links klickt und mit der Seite interagiert, werden nachfolgende Inhalte dynamisch geladen. Die Anwendung aktualisiert häufig die URL in der Adressleiste, um die traditionelle Seitennavigation zu emulieren. Es wird jedoch keine Anfrage für eine vollständige Seite gestellt.

Das standardmäßige Google Analytics-Tag funktioniert gut bei herkömmlichen Websites, weil der Snippet-Code jedes Mal ausgeführt wird, wenn der Nutzer eine neue Seite lädt. Bei einer Single-Page-Anwendung, bei der neue Seiteninhalte dynamisch statt ganzseitig geladen werden, wird der analytics.js-Snippet-Code nur einmal ausgeführt. Das bedeutet, dass nachfolgende (virtuelle) Seitenaufrufe manuell erfasst werden müssen, wenn neue Inhalte geladen werden.

Tracking virtueller Seitenaufrufe

Wenn deine App Inhalte dynamisch lädt und die URL in der Adressleiste aktualisiert, sollten die auf deinem Tracker gespeicherten Daten ebenfalls aktualisiert werden.

Verwenden Sie zum Aktualisieren des Trackers den Befehl set und geben Sie den neuen Wert page an:

ga('set', 'page', '/new-page.html');

Nachdem Sie den neuen Seitenwert festgelegt haben, wird dieser neue Wert für alle nachfolgenden Treffer verwendet. Um einen Seitenaufruf aufzuzeichnen, muss direkt nach der Aktualisierung des Trackers ein Seitenaufruftreffer gesendet werden.

ga('set', 'page', '/new-page.html');
ga('send', 'pageview');

Technisch gesehen akzeptiert der send-Befehl für Seitenaufruftreffer ein optionales page-Feld als dritten Parameter. Bei der Messung von Single-Page-Anwendungen wird jedoch nicht empfohlen, das Feld page auf diese Weise zu übergeben. Das liegt daran, dass mit dem Befehl send übergebene Felder nicht für den Tracker festgelegt werden. Sie gelten nur für den aktuellen Treffer. Wird der Tracker nicht aktualisiert, treten Probleme auf, wenn Ihre Anwendung Treffer sendet, die keine Seitenaufrufe sind (z.B. Ereignisse oder Interaktionen in sozialen Netzwerken), da diese Treffer dem page-Wert zugeordnet werden, den der Tracker beim Erstellen hatte.

Mehrere URLs für dieselbe Ressource verarbeiten

Einige SPAs aktualisieren nur den Hash-Teil der URL, wenn Inhalte dynamisch geladen werden. Das kann zu Situationen führen, in denen viele verschiedene Seitenpfade auf dieselbe Ressource verweisen. In solchen Fällen ist es in der Regel am besten, eine kanonische URL auszuwählen und nur diesen page-Wert an Google Analytics zu senden.

Nehmen wir als Beispiel eine Website, deren „Über uns“-Seite über jede der folgenden URLs aufgerufen werden kann:

  • /about.html
  • /#about.html
  • /home.html#about.html

Um Duplikate in Ihren Berichten zu vermeiden, sollten Sie alle diese Seitenaufrufe als /about.html erfassen.

Wichtige Aspekte

Dokumentverweis nicht aktualisieren

Wenn Sie ein Tracker-Objekt mit dem Befehl create erstellen, wird der Wert von document.referrer im Feld referrer des Trackers gespeichert. Bei einer Single-Page-Anwendung, die keine ganzseitigen Ladevorgänge verwendet, bleibt das Feld referrer immer unverändert.

Trotzdem ist es nicht erforderlich, das Verweisfeld manuell zu aktualisieren, bevor Treffer für Seitenaufrufe gesendet werden. Google Analytics kann automatisch den richtigen Navigationspfad bestimmen.

Speicherort des Dokuments nicht aktualisieren

So wie der Tracker document.referrer für das Feld referrer verwendet, verwendet er document.location für das Feld location, das Kampagnendaten oder andere Metadaten in Form von Suchparametern enthalten kann, die an das Ende der URL angehängt werden.

Wenn Sie eines der Kampagnenfelder oder andere Metadaten aktualisieren, die in Google Analytics geprüft werden, kann dies dazu führen, dass die aktuelle Sitzung beendet und eine neue Sitzung beginnt. Um dieses Problem zu vermeiden, sollten Sie das Feld location nicht aktualisieren, wenn virtuelle Seitenaufrufe in einer Single-Page-Anwendung gemessen werden. Verwenden Sie stattdessen das Feld page.

Keine neuen Tracker erstellen

Erstellen Sie keine neuen Tracker in einer einseitigen App, um die Funktionsweise des JavaScript-Tracking-Snippets für herkömmliche Websites nachzuahmen. Andernfalls besteht die Gefahr, dass wie oben beschrieben eine falsche Referrer-URL und falsche Kampagnendaten gesendet werden.