Das page_view Event in Google Analytics 4 (GA4)
Das page_view Ereignis in Google Analytics 4 (GA4) ist für viele wohl das wichtigste Ereignis, das sie tracken. Es wird genutzt, um Seitenaufrufe zu messen und damit die Grundlage für viele weitere Analysen.
Ein Seitenaufruf ist dabei nicht nur das Laden einer neuen Seite, sondern auch das Navigieren innerhalb einer Single Page App (SPA). Auf solchen Seiten wird die URL im Browser aktualisiert, ohne dass die Seite – technisch betrachtet – tatsächlich neu geladen wird. Weil der Nutzer aber eine neue Seite sieht, sollte das auch als neuer Seitenaufruf mit eigenem page_view Event gezählt werden.
Grundsätzlich kannst du page_view Ereignisse auch für ähnliche, vergleichbare Nutzerinteraktionen einsetzen, zum Beispiel für Schritte in einem komplexen Formular, das mehrere Schritte hat.
Viele andere Web Analytics Tools behandeln Seitenaufrufe und Ereignisse getrennt. Das war auch beim Vorgänger von GA4, Universal Analytics, so. Für GA4 ist page_view jedoch ein Ereignis wie jedes andere auch.
Implementierung
Wichtige Parameter (und warum sie relevant sind)
GA4 reichert page_view automatisch mit Seiten-Kontext an. Die wichtigsten Parameter sind:
page_location: Die vollständige URL der Seite (Standard istdocument.location.href)page_referrer: Die vorherige Seite, von der der Nutzer gekommen ist (Standard istdocument.referrer)page_title: Der Seitentitel (Standard istdocument.title)
Gerade bei SPAs oder dynamischen UIs lohnt es sich, diese Werte bewusst zu setzen bzw. zu überschreiben, wenn sie im Moment des Trackings noch nicht „stimmen“ (z. B. weil document.title erst nachträglich gesetzt wird).
Automatisches Tracking
GA4 kann page_view Ereignisse automatisch tracken, sodass beim Laden der Website direkt ein page_view Ereignis erfasst wird. Standardmäßig ist das aktiv.
Das trifft sowohl für eine code-basierte Implementierung mit gtag.js als auch für eine Implementierung über Google Tag Manager zu.
Wenn du das ändern möchtest, kannst du den Konfigurationsparameter send_page_view auf false setzen.
Wichtig dabei: Wenn du send_page_view deaktivierst, musst du Pageviews anschließend selbst auslösen. Sonst fehlen dir Seitenaufrufe komplett – und viele Reportings werden unbrauchbar.
Weitere Details findest du in Googles Dokumentationen:
- Tracking von page_view Ereignissen mit der code-basierten Umsetzung mit gtag
- Tracking von page_view Ereignissen mit dem Google Tag Manager
Enhanced Measurement
Wenn du eine Single Page App (SPA) hast und deine Entwickler – warum auch immer – keine page_view Ereignisse gezielt per gtag() tracken oder per dataLayer schicken, kannst du auf Enhanced Measurement zurückgreifen.
Das ist die Funktionalität, die automatisch URL-Änderungen im Browser erkennt und daraus page_view Ereignisse generiert. Das funktioniert zwar nicht immer perfekt, ist aber ein guter Kompromiss und besser als nichts.
Eine wichtige Einstellung in Enhanced Measurement ist „Page changes based on browser history events“: Damit erkennt GA4 URL-Änderungen über die Browser-History (z. B. pushState/replaceState) und erzeugt daraus zusätzliche page_view Events – genau das, was man in vielen SPAs braucht.
Ein typischer Stolperstein: Wenn du Enhanced Measurement und eigene, manuelle Pageviews gleichzeitig nutzt, bekommst du schnell doppelte page_view Events. In so einem Fall solltest du dich bewusst für eine Variante entscheiden (automatisch oder manuell) und die andere deaktivieren.
Außerdem gibt es Setups, in denen sich nur ein URL-Fragment (also alles nach #) ändert. Solche „Hash“-Änderungen werden von automatischen Mechanismen häufig nicht sauber als eigener Pageview erkannt – dann ist eine manuelle Umsetzung oft die zuverlässigere Wahl.
Falls dir das Enhanced Measurement jedoch in die Quere kommt und du es abschalten möchtest, z. B. weil du die page_view Ereignisse lieber selbst tracken möchtest, kannst du das in den Einstellungen deines GA4 Data Streams tun:
Manuelles Tracking (z. B. für SPAs)
Wenn du Pageviews manuell auslöst, solltest du darauf achten, dass die Parameter zur Seite passen, die der Nutzer wirklich sieht (inkl. korrekter URL und Titel). Beispiel (vereinfacht):
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: "page_view",
page_location: window.location.href,
page_title: document.title,
page_referrer: document.referrer
});