GTM: Warum du das native Scrolltracking von Google nicht einsetzen solltest12 min Lesezeit

Michaela Linhart 68 Comments

Vor kurzem hat Krista Seiden, Google Evangelist, in ihrem Blogposte das neue Scrolltracking-Feature im Google Tag Manager vorgestellt: Und seitdem wird im Netz über nichts anderes mehr gesprochen. Ich meine, man sollte einen zweiten Blick auf die Details werfen…

Natives Scroll Tracking: Worum geht es?

Google Analytics verfügt leider nicht über eine Visualisierung der Scroll-Tiefe, wie wir es beispielsweise von Hotjar kennen:

Scrolltracking mit Hotjar auf hausdorf.at

Screenshot: Scrolltracking mit Hotjar auf hausdorf.at

Trotzdem ist es super interessant zu wissen, wie weit User auf der Website scrollen bzw. ob sie überhaupt scrollen – und die oft mühsam aufbereiteten Inhalte vollends ansehen. Dieses User Engagement ist bei Content Websites wie Blogs genauso spannend wie für alle anderen Websites, wenn es um die Startseite oder sehr lange Produktdetailseiten geht.

Deswegen haben geniale Tekkis einen Weg gefunden, das Scroll-Verhalten via Event-Tracking über den Google Tag Manager zu erfassen: Tolle Lösungen gibt es bei OptimizeSmart, bei LunaMetrics oder AmazeeMetrics.

Natürlich erforderte der Einbau dieser Lösungen ein wenig technisches Grundverständnis und vielleicht ein bisschen mehr Arbeit. Aber: Es hat gut funktioniert und die Lösung sah in etwa so in Google Analytics aus.

Scrolltracking via GTM bisher

Screenshot: Scrolltracking in GA via GTM bisher

>> Nun die Revolution: Google hat im Google Tag Manager einen neuen Trigger hinzugefügt. Genau das selbe Scrolltracking lässt sich jetzt auch super bequem und direkt über den Google Tag Manager aktivieren: Ohne technisches Grundverständnis, ohne Arbeitsaufwand. Setup Zeit: 5 Minuten. ????

NEU: Scroll Tracking Setup im GTM…

Wie das Scroll Tracking Setup im GTM geht, kannst du direkt bei Krista im Blog nachlesen: „Step-by-Step: New Scroll Depth Trigger in Google Tag Manager“

Kurzgefasst: Es sind 3 sehr einfache Schritte notwendig.

  • Neue Scroll-Tracking Build-In Variablen aktivieren: Dazu gehst du einfach im GTM auf Variablen → Built-In Variablen Konfiugration. Es öffnet sich rechts im Browser ein Pop Up. Du scrollst runter bis Scrolling und wählst alle 3 Variablen aus.
GTM Built-In Variable konfigurieren

Screenshot: GTM Built-In Variable konfigurieren

  • Neuen Scroll-Tracking Tag anlegen:
    • Name: z.B. GA – Event – Scolltracking
    • Tag Typ: Universal Analytics
    • Track Typ: Event
    • Event Category: z.B. Scrolltracking
    • Event Action: die neue Build-In Variable “Scroll Depth Threshold”
    • Event Label: die Build-In Variable “Page Path”, damit du weißt auf welcher Seite gescrollt wurde.
GTM Scroll Tracking Tag anlegen

Screenshot: GTM Scroll Tracking Tag anlegen

  •  Dem Scroll-Tracking Tag den neuen Trigger zuordnen: Und das ist eigentlich das spannende Neue! 
    • Trigger Typ: „Scroll Depth“ unter “User Engagement”
    • Vertical oder Horizontal Srcolling auswählen.
    • Prozentwerte auswählen:  Ab wie viel Prozent gescrollt, das Event ausgelöst werden soll.
    • Auf allen Seiten oder bestimmte Seiten auswählen.
GTM Scroll Tracking Trigger aktivieren

Screenshot: GTM Scroll Tracking Trigger aktivieren

Speichern. Publishen. Fertig.

… und warum ich nicht so begeistert davon bin

Krista hat ihrem Blogartikel auf jeden Fall nicht übertrieben: In 5 Minuten hatte ich das neue Scrolltracking in meinem Blog schon aktiv.

Ein Blick in die Developer-Console… und beim scrollen schossen mir nur so die Events um die Ohren: Ich habe in meinem Trigger 10er Schritte eingebaut, d.h. wenn ich auf meinem Blog 10%, 20%, 30%… 90%, 100% scrolle, dann wird jedes Mal ein Event abgefeuert. Sprich: 10 Events pro Blogartikel.

Scrolltracking Check in der Developer Console

Screenshot: Scrolltracking Check in der Developer Console

Das mag für meinen kleinen Blog mit 20 Seitenaufrufen am Tag und durchschnittlich 2,07 Seitenaufrufe pro Sitzung kein Problem sein: Werden eben 20 weitere Events abgefeuert.

ABER bei großen Seiten, egal ob Onlineshop, Informationsseite, Portal oder Applikation, wo im Schnitt 10+ Seiten aufgerufen werden, wo gestöbert und verweilt wird und wo auf jeder Seite 20, 50, 70 andere Events abgefeuert werden, sehe ich ein gröberes Problem.

Und zwar:

Google Analytics Limit: 500 Hit pro Session

Google Analytics hat ein Limit von max. 500 Hits, die garantiert innerhalb einer Session verarbeitet werden. Alles was darüber hinaus passiert, kann (muss aber nicht) einfach abgeschnitten und weggeworfen werden. Das gilt übrigens auch für Google Analytics 360 Kunden…

500 Hits pro Sessions klingt zwar im ersten Moment viel: Aber bei einer Ecommerce Website beispielsweise, bei dem Enhanced Ecommerce vollständig eingebaut ist und jeder Product View, jede interne Promotion getrackt wird und zusätzlich noch zig Events für diverse Button- und Link Klicks, eventuell sogar Wetter-Informationen und andere Third-Party Daten zur Session hinzu gespeichert werden, könnte das knapp werden.

Wenn es also passiert, dass jede oder zumindest jede zweite, dritte Session über 500 Hits erzeugt und der Rest weggeworfen wird, dann verfälscht das natürlich die Statistik im gröberen Ausmaß: Denn das restliche User-Verhalten wird einfach nicht mehr aufgezeichnet.

Das bedeutet, dass z.B. ab Seite 5 keine Scroll-Daten mehr für weitere Produktdetailseiten erfasst werden. Funktionieren diese Seiten dann schlechter? Nein, sie werden nur nicht mehr erfasst.

Noch schlimmer: Was ist, wenn erst nach 10 Seiten eine Transaktion erfolgt? Sie wird in Google Analytics möglicherweise nicht mehr aufgezeichnet… ?

Lösung #1: Nur auf bestimmten Seiten scrollen

Statt das Scroll-Tracking per Default auf allen Seiten zu aktivieren, kann es natürlich auch nur auf bestimmten Seiten aktiviert werden z.B. der Startseite, Kategorieseiten oder Content Seiten…

Doof ist dann, wenn plötzlich doch eine User Engagement Analyse für die Produktdetailseite verlangt wird und die Daten nicht vorhanden sind…

Zwar kann der Trigger im GTM sehr schnell angepasst werden – aber es dauert wieder ein paar Tage oder Wochen bis relevante Daten in Google Analytics verfügbar sind. Und wer will schon wochenlang auf seinen Report warten?

Lösung #2: Scroll-Prozentsatz verringern

Auch das ist eine mögliche Lösung: Statt in 10er Schritte kann das Scrollen auch auf 25er-Schritte reduziert werden. Statt zehn Events werden dann immerhin nur mehr vier pro Seite gefeuert: Eine Reduktion von 60%.

ABER: Auch dann gefällt mir die Lösung als Google-Analytics-Free User eigentlich nicht. Denn mich interessiert, wie viel Prozent des Website-Contents  die User gesehen haben und nicht wie viel sie hin & her scrollen.

Als Beispiel: Wenn ein User in Summe 75% scrollt, dann hat er zwangsweise 0%, 25% und 50% durchlaufen und 75% erreicht. Mich interessieren die 75%, nicht aber die 0-50%…

Wo diese Art von Tracking spannend sein könnte, ist bei GA360 Kunden, die sich mit Custom Funnels einen wunderschönen benutzerdefinierten Scroll-Trichter bauen können: Siehe als Beispiel mein Blogpost über Custom Funnels während meiner Zeit bei e-dialog.

Scroll Tracking Funnel bei GA360 User

Screenshot: Scroll Tracking Funnel bei GA360 Kunden

Lösung #3: Eigenes Scroll-Tracking implementieren

Deswegen habe ich mich gegen den Einbau des neuen Scrolltrackings von Google entschieden: Weil es meiner Meinung nach keine optimale Lösung für große Websites ist. 

Vielmehr habe ich eine Lösung aus dem Netz auf meine Bedürfnisse angepasst: So wird lediglich EIN EINZIGES SCROLL-EVENT beim verlassen der Seite gefeuert.

Das kann sein, wenn der User auf die nächste Seite innerhalb meiner Website springt oder die Website verlässt, indem er im Browser eine neue Website öffnet, eine Suche durchführt, etc.

Vorteil: Schließt der User den Browser, wird das Scroll-Event dank Browser-Eventhandling „beforeunload“ trotzdem abgeschickt!

So sieht meine Scroll-Lösung im Detail aus

Meine Scrolltracking-Lösung besteht aus zwei Tags, zwei Trigger und einer neuen Variable.

  • Neue Variable „percent“ anlegen: Damit die gescrollten Prozente in Google Analytics erfasst werden, brauchen wir eine neue benutzerdefinierte Variable im GTM.
    • Name: percent
    • Variablen Typ: Data Layer Variable
    • Data Layer Variable Name: percent
GTM Neue Variable percent

Scrennshot: GTM Neue Variable „percent“

  • Neuen Scroll-Tracking Tag anlegen:
    • Name: z.B. GA – Custom HTML – Scolltracking
    • Tag Typ: Custom HTML
    • Inhalt: JS Code hinein kopieren (siehe graues Kästchen)
  • Trigger: Page View – DOM Ready (Standard Trigger)
<script>
 var maxscrolled = 0;
 
 window.addEventListener("scroll", function(){
  var scrollpoint = (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0)+window.innerHeight;
 if(window.maxscrolled < scrollpoint){
 window.maxscrolled = scrollpoint;
 }
 });

window.addEventListener("beforeunload", function() {
 var percent = (Math.round(window.maxscrolled/document.body.scrollHeight*10)*10);
 dataLayer.push({
 'event': 'scrolltracking',
 'percent': (percent>100 ? 100 : percent)+""
 });
 });

</script>

Den Code kurz erklärt: Es wird eine globale Variable maxscrolled angelegt und zwei Event Listener (Funktionen) ausgeführt. Eine Funktion wird beim scrollen ausgelöst: Diese speichert jedes mal nach dem scrollen den Scrollpunkt in die globale Variable maxscrolled.  Die zweite Funktion wird bei „beforeunload“ (bevor die aktuelle Seite verlassen wird) ausgelöst: Sie nimmt den Wert von maxscrolled und setzt ihn in Relation zur Länge der Website.  Wird die Seite verlassen, wird der gescrollte Wert via dataLayer-Push Event an den GTM abgeschickt.

  • Neuen Scroll-Tracking Event-Tag anlegen: Damit das abgefeuerte Event im GTM erfasst wird, muss ein weiterer Tag angelegt werden.
    • Name: z.B. GA – Event – Scolltracking
    • Tag Typ: Universal Analytics
    • Track Typ: Event
    • Event Category: z.B. Scrolltracking
    • Event Action: die benutzerdefinierte Variable „percent“ von vorhin
    • Event Label: die Build-In Variable “Page Path”, damit du weißt auf welcher Seite gescrollt wurde
    • Event Value: die benutzerdefinierte Variable „percent“ von vorhin
    • Non-Interaction Hit: True

Achtung: Events beeinflussen deine Bouncerate (>>Details siehe hier).

Ich setze den non-interaction Event Parameter im GTM deswegen auf „true“. D.h. die Scrollevents beinflussen meine Bouncerate NICHT. Würdest du mit meiner Lösung den ni-Parameter auf „false“ setzen, würden User die 0% gescrollt haben (also tatsächlich abgesprungen sind) fälschlicherweise nicht als Bouncer gewertet werden.

  • Trigger: Es muss ein neuer Trigger angelegt werden, der auf das im Code genannten Event „scrolltracking“ hört.
    • Custom Event Name: z.B. Event – Scrolltracking
    • Trigger Typ: Custom Event
    • Event Name: scrolltracking
GTM Trigger Scrolltracking Event

Screenshot: GTM Trigger Scrolltracking Event

Speichern. Publishen. Fertig.

Hinweis: Um die durchschnittliche Scrolltiefe pro Seite zu analysieren, wird die Scrolltiefe zusätzlich zur „Event Action“ in den „Event Value“ geschrieben. In Google Analytics unter Verhalten –> Ereignisse –> Seiten erhälst du dadurch eine wunderbare Übersicht über die durchschnittliche Scrolltiefe pro Seite.

Vorteil dieser Lösung

Der große Vorteil dieser Lösung ist einerseits, dass sich die Anzahl der Hits im Rahmen halten – auch wenn das Scrolltracking auf allen Seiten aktiviert wird.

Andererseits wird die Auswertung wesentlich vereinfacht, denn wenn in 500 Sessions die Website bei 60% verlassen wurde, dann sind das 500 Sessions. In dieser Anzahl befinden sich nicht auch noch die Sessions, welche auf der Website zu 70%, 80%, 90% oder gar 100% gescrollt haben.

Ein bisschen so wie: Einfach ehrlich, einfach Granny’s. ????

Scrolltracking via GTM bisher

Screenshot: Scrolltracking via GTM

Außerdem ist es mit dieser Lösung möglich, die durchschnittliche Scrolltiefe pro Seite zu erfassen – was zusätzlich einen schönen Überblick über die meist gescrollten Seiten liefert:

Google Analytics - Avg. Scrolldepth per Page

Google Analytics – Avg. Scrolldepth per Page

Ein weiterer Vorteil: Meine Lösung ist schnell kopiert und im eigenen GTM aufgesetzt – mit Copy & Paste auch ohne technische Kenntnisse.

Fazit: GTM Scrolltracking nativ vs. selbst implementiert

Der neue Scroll-Trigger im GTM ist zweifellos großartig und es ist kein Wunder, dass die ganze Webanalyse Community gerade völlig aus dem Häuschen ist: Scroll Tracking ist schnell und super easy aufgesetzt, sogar in weniger als 5 Minuten.

Man muss sich nicht selbst um die Lösung kümmern, mit JS-Workarounds arbeiten und läuft auch nicht Gefahr “irgendwas falsch zu machen”. Für kleine Blogs, Websites mit überschaubaren Traffic und geringer Seitentiefe der Himmel auf Erden…

ABER große Websites mit Tonnen an Traffic oder einer hohen Seitentiefe empfehle ich nicht, von einer Sekunde auf die andere von der eigenen Lösung auf die Neue umzusteigen.

Vielmehr solltest du vorher überprüfen, ob du nicht Gefahr läufst ins 500-Hit-Limit pro Session zu gelangen – oder es andere Gründe gibt, die eigene Lösung weiterhin laufen zu lassen z.B. weil die Analyse genau auf dich zugeschnitten ist.

Und wen du bisher keine Lösung implementiert hast: Dann solltest du dir ebenfalls vorher Gedanken machen, ob das neue Feature für deine Website das Passende ist. In erster Linie geht es nicht um ein perfektes Scroll-Tracking! Vielmehr geht es darum, keine wichtigen Hits zu verlieren und die Website durch hunderte Events (wenn auch nur geringfügig) zu verlangsamen. 

So, jetzt aber ran an den Ein- und Umbau der neuen Trigger in deinem GTM… und danach auf ins Scroll-Analyse Abenteuer!

<Hier folgt ein Screenshot, wie viele User diesen Blogartikel bis zum Ende gescrollt haben>

Alles klar?

Dann freue ich mich über ein Like, ein Share und ein Kommentar von dir. Abonniere gerne meinen Newsletter und meine Facebook Seite und lass dich automatisch über neue Beiträge informieren.

Noch nicht ganz? Schreibe mir gerne deine Fragen in die Kommentare.

Ich helfe, wo ich kann.

???? Happy Analyzing,

Deine Michaela

Es ist nie zu spät für gute News:

Jederzeit abbestellbar

  • Hi Michaela,
    nice! Sehr gute Lösung mit dem Script.

    Habe ein paar Gedanken zu dem Thema

    1. Ich überlege, vielleicht hat es auch Sinn die Gesamthöhe in Pixel zu messen, dann könnte man mittellange Artikel untereinander vergleichen und in Event Action zB zu speichern, Scrollwert als Integer könnte man in Event Value setzen (dann sieht man auch Durchschnitt des Wertes), page Path gar nicht eintragen (ist in Dimension „Page“ eher gespeichert), dafür in Event Label könnte man theoretisch Stufe des Wertes wie 25,50,75,100% für weitere Zwecke (zb Funnelbildung) eintragen. Und in Custom Report in Flat Table alles abbilden.

    2. Noch eine Idee: mit meinem Kommentar wird sich die Gesamthöhe der Seite sich erhöhen. Falls hier noch eine Diskussion mit mehreren Teilnehmern entsteht, wird die Seite noch länger. Also, es wäre hilfreich, ein Anker nach dem Artikelende zu setzen und die Scrolltiefe nur bis seiner Position zu messen.

    LG
    Igor

    • Hi Igor,

      vielen Dank für deine Anmerkungen. 🙂

      Ich bin mir nicht sicher ob es Sinn macht, die Gesamthöhe in Pixel zu messen, da die Bildschirmgröße je nach Device immer unterschiedlich ist: Beispiel Smartphone Nexus 5X vs. 27“ Desktop Bildschirm….

      Um lange / kurze / mittellange Artikel zu vergleichen, könnte man auch die Anzahl der Wörter in eine Custom Dimension mitspeichern und vergleichen. Oder: Man definiert ab z.B. 500 Wörter ist der Artikel mittellang und schreibt in eine Custom Dimension „Artikellänge“ „mittellang“ hinein.

      -> Für Blogs gibt es unzählige, geniale Tracking- und Analyse Möglichkeiten. Dazu habe ich zusammen mit Siegfried Stepke einen Beitrag im Suchradar-Magazin veröffentlicht (Ausgabe Juni 2016). Hier der Inhalt auch im e-dialog Blog: https://www.e-dialog.at/blog/webanalyse/google-analytics-advanced-content-tracking-am-beispiel-blog/

      Bezüglich Anker nach Artikelende: Das ist eine großartige Idee für Blogs! Werde ich bei mir auf jeden Fall ausprobieren! 🙂 Für Ecommerce Seiten macht das vermutlich weniger Sinn… 1) weil die Seiten meist nicht länger werden und 2) weil das Scrolling bis zum Footer nicht mehr trackbar wäre. Hier müsste man sich also auf jeden Fall Gedanken machen ob das für die eigene Website sinnvoll ist… Für Blogs macht es aber definitiv Sinn. 🙂

      Liebe Grüße,
      Michaela

      • Hi Michaela, hast Recht, Gesamthöhe in Pixel zu messen hat kein Sinn ^^ Guter Tipp mit den Worte zählen! Und danke für den Link (ich werde demnächst Blogtracking konzipieren, soll nicht all zu wild sein, aber Scrolltracking finde ich schon wichtig).

        Bei Ecommerce-Seiten bin fast deiner Meinung. Fast, weil in Category-Seiten würde ich doch schon gern quantitativ Scrolltiefe auswerten.

        LG
        Igor

  • Sehr coole Methode. Mich hat das mit den vielen Ereignissen auch immer gestört, aber so geht das natürlich viel feiner. Gratuliere zu der eleganten Lösung. Habe ich schon im Einsatz!

  • Eventuell verbesserbar: bei Nicht-Scrollen gibt es ein „undefined“, besser wäre „0“. Und mir kommt vor, dass manchmal nicht der korrekt Wert übergeben wird …. Möglicherweise gibt es da Störungen durch Page Builder?

    • Hi Heinz,

      viiielen Dank für dein Kommentar. Code ist ausbessert.:-)

      Es wird jetzt „0“ übergeben, wenn nicht gescrollt wird. Dazu musste der percent-Parameter als String umgewandelt werden… Weil maxscrolled wird ja eigentlich mit 0 initialisiert und wenn nicht gescrollt wird, müsste auch „0“ übergeben werden. Aber Google wandelt den Integer „0“ in undefined um… Problem gelöst indem einfach ein String übergeben wird. 🙂

      Bezüglich falsche Werte: Tatsächlich! Das passiert, wenn ich nur in meinem eigenen Browser teste… Die 1. Codezeile in der 1. Funktion hat sich geändert. Die Berechnung müsste jetzt auch in allen anderen Browsern und nicht nur Google Chrome funktionieren. 😉

      Gerne den Code einfach austauschen, dann sollte das Tracking jetzt korrekt funktionieren. 🙂

      Liebe Grüße,
      Michaela

  • Hallo Michaela,

    super Artikel (wie ja immer!), aber ich musste schmunzeln über den zweiten Teil des Blog-Beitrags, weil auch du die grandiose Neuerung Element Visible Trigger im Beitrag „versteckt“ hast, obwohl sie durchaus einen eigenen Beitrag verdient hätte.
    Was sagt denn Krista Seiden (oder Simo Ahava) zu den 500 Hits?
    Und dann hattest du geschrieben, dass auf Seite 5 die Anzahl der Hits evtl. erschöpft sein könnte. 100 Hits pro Seite ist aber schon recht üppig, selbst auf einer großen Seite, oder?

    • Hi Arne,
      da hast du recht: Der Element Visible Trigger verdient auf jeden Fall einen eigenen Beitrag. Danke für den Hinweis. 🙂

      Tatsächlich habe ich zum 500 Hit-Limit noch gar nicht so viel gelesen. Vermutlich wird das gerne „unter den Teppich gekehrt“…

      Ob man in dieses 500 Hit-Limit fällt kommt ganz stark auf die Implementierung an: Einmal ist das tatsächlich bei einem Kunden vorgekommen – und das war kein Ecommerce Anbieter. Allerdings wurden Product Views und Internal Promotion Events Ende nie gefeuert. Und wenn auf einer Website 50 „Produkte“ (mit lazy loading „unendlich“ viele), 20 Internal Promotions, plus zusätzliche Events und der Pageview gefeuert werden, dann kann das schon auch auf 100 Hits pro Seite kommen.

      Allerdings können Ecommerce Events zusammengefasst werden: Wenn statt 50 einzelne Events, zwei oder drei Events gefeuert werden, dann reduziert sich die Anzahl der Hits natürlich deutlich. Also es gibt mit Sicherheit ein paar Workarounds: Dazu muss man aber wissen, dass es dieses Limit gibt und das die eigene Implementierung optimierungs-bedürftig ist…

      Ich gehe also schon davon aus, dass es Websites gibt, die mit dem Tracking übertreiben. Dazu eine nicht so gute Implementierung und es kann passieren, dass wegen dem Scrolltracking ins Hit-Limit gefallen wird.

      Aber: Du hast auf jeden Fall recht – 100 Hits pro Event ist tatsächlich üppig. Und 500 Hits pro Sessions reichen in der Regel völlig aus. 🙂

      Ganz liebe Grüße,
      Michaela

  • Hi Michaela,

    danke für diese sehr coole Idee zum Scrolltracking. Das gefällt mir wirklich gut. 🙂

    Zwei kleine Ideen sind mir bei der Implementierung gekommen:
    – Wenn man das sessionStorage statt der globalen Variablen maxscrolled nutzt, könnte man den Code mit
    (function() {

    })();
    kapseln. Damit würde man evtl. Probleme mit dem globalen Namespace verhindern. Gerade bei großen Websites gibt’s ja vielleicht schon Variablen mit dem gleichen Namen.

    – Wenn man die Scrolltiefe zusätzlich als Event Value an GA sendet, kann man sich dort sehr schön die durchschnittliche Scrolltiefe für die einzelnen Seiten ausweisen lassen. Damit bekommt deine Lösung dann noch einmal mehr Charme…

    Schöne Grüße
    Christian

    • Hi Christian,

      vielen Dank für deinen Input! Klasse Ideen!

      zu 1) Stimmt, das wäre technisch auf jeden Fall eine sauberere Lösung, an die ich gar nicht gedacht hatte.

      Allerdings kann die Variable auch im sessionStorage schon vorhanden sein – deswegen sollte auch hier ein eindeutiger Name genutzt werden. Wobei die Wahrscheinlichkeit vermutlich viel geringer ist…

      Deswegen sollte man generell mit eindeutigen Variablen-Namen arbeiten und z.B. einen Prefix nutzen. Beispiel: ml_maxscrolled (für Michaela Linhart) oder ak_maxscrolled (für AnalyticsKiste)

      Dann ist man auf jeden Fall auf der sicheren Seite – egal ob mit meiner aktuellen Lösung oder deiner technisch schöneren Lösung über den sessionStorage.

      zu 2) Die Scrolltiefe zusätzlich als Event Value setzen ist eine suuuper Idee. Daran hatte ich auch gar nicht gedacht…

      Das baue ich gleich noch in den Blogartikel ein – vielen Dank. 🙂

      Liebe Grüße,
      Michaela

  • Sali Michaela

    Danke für den spannenden Post. Ist eingebaut. 🙂

    Wie wertest Du die Daten bei was für Cases wie aus? Wie sind hier deine Erfahrungen? Schaust Du vor allem auf die Durchschnittswerte oder auch auf die Verteilung der Werte auf der 0-100 Achse?

    Vielen Dank und liebe Grüsse
    Michael

  • Andreas sagt:

    Ihr Artikel ist super…habe alles genauso gemacht (Custom Lösung) wie beschrieben.

    Im Debug Modus habe ich auch beim Verlassen den scrolltrigger (das event) im Debug Window…
    (meine GTM Kenntnisse sind sehr begrenzt)

    Doch leider werden GAR KEINE Daten/Event hits in GA angezeigt.
    Die GA ID habe ich manuell eingetragen…non interactive habe ich auf true gestellt…

    Haben Sie irgendeine Idee?

    Eine Auswertung des Debug kann ich leider ebenfalls nicht nachvollziehen, denn beim Verlassen der Seite wird es ja alles gezündet, die neue Seite lädt sich und das Debug Window wird gelöscht / neu befüllt.

    • Hallo Andreas,

      ich frag zuerst mal vorsichtig: Hast du deine Einstellungen nach dem testen im Vorschaumodus auch gepublished?

      Wenn in der Vorschau alles passt, nur in GA keine Daten einlaufen, klingt es so, als wäre das Tracking noch nicht live.

      Vermutlich wird das aber nicht das Problem sein:

      Tipp #1: Es kann bis zu 24h dauern bis Daten in GA verarbeitet sind. D.h. wenn du das Event heute einbaust, wirst du nicht sofort Daten im Ereignis-Report sehen.

      Du kannst aber in den Real-Time Reports überprüfen, ob die Events korrekt einlaufen. Gehe dazu in GA auf Real-Time –> Events. Hier siehst du die gerade aktiven Events und alle Events, die in den letzten 30 Minuten gefeuert wurden.

      Tipp #2: Eine weitere Überprüfungs-Möglichkeit gibt es über die Developer Console (F12 in Google Chrome). Hier kannst du den Network-Stream anschauen, d.h. alle Parameter die an GA gesendet wurden. Gib ins Suchfeld „collect“ ein, damit du überprüfen kannst ob deine Events korrekt versendet werden.

      Außerdem kannst du nachsehen ob dein Code eine Fehlermeldung wirft; ggfs. hast du irgendeine Einstellung vergessen?

      Liebe Grüße,
      Michaela

  • […] GTM: Warum du das native Scrolltracking von Google nicht einsetzen solltest: Scroll-Tracking für Fortgeschrittene – Vermeiden unnötiger Ereignisse (DE) […]

  • Philip sagt:

    Hallo Michaela,

    danke dir für die Tipps ! Bei uns führt diese Lösung allerdings zu einem deutlichem Anstieg an Sessions mit 0 PageViews. MeineVermutung ist, dass User das Scroll-Tracking-Event auslösen, nachdem die Session expired ist. Hast du eine Möglichkeit, das zu verhindern? Das führt natürlich dazu, dass die Daten unvollständig sind, allerdings wäre mir das lieber als Sessions ohne Page Views.

    Liebe Grüße,
    Philip

    • Hi Philip,

      ich hatte dieses Problem früher auch schon mal und es lag daran, dass das Event VOR dem Pageview gefeuert wurde. Auch das Event initiiert eine Session in GA, allerdings eben ohne Pageview.

      Es ist also super, super wichtig, dass immer zuerst der Pageview und dann erst Events gefeuert werden.

      Am einfachsten geht das mit Tag Sequencing: Du kannst direkt beim Scroll Tracking Tag unter Advanced > Tag Sequencing sagen: „Fire a tag before Scroll Tracking Tag“ Hier kannst du dann den Pageview auswählen.

      Damit ist sichergestellt, dass immer zuerst der Pageview und erst danach dein Scroll Tag ausgelöst wird und im besten Fall sollte dies dein Problem lösen.

      Liebe Grüße,
      Michaela

      P.S. Der Pageview-Tag (PV-Tag) ist der Basis-GA-Tracking Code, der mit dem Universal Analytics Tag auf ALLEN Seiten der Website eingebaut werden muss, damit Tracking stattfinden kann.
      Ich nenne ihn immer PV-Tag aber gemeint ist damit der Univeral-Analytics-Basis-Tracking-Tag (UA-Tag).

  • Martin sagt:

    Nette Lösung. Allerdings lässt sich die Einstellung „Treffer ohne Interaktion“ nicht mit dem Wert „true“ verwenden, denn dann wird komischerweise nicht mehr getrackt. Ohne Impact auf die Interaktion („False“) funktioniert es.

    Ebenso bekomme ich leider keine Durchschnittswerte – habe die Lösung 1:1 kopiert. Gab es zwischenzeitlich Änderungen an der Funktionsweise?

  • Martin sagt:

    Hallo Michaela,

    super Lösung! Leider kann ich „Treffer ohne Interaktion“ nicht auf false ändern, denn dann funktioniert das Script nicht mehr und der Tag feuert nicht. Habe deine Lösung via Copy & Paste eingebunden. Gab es da eine Änderung seitens Google oder müsste der Code abgeändert werden?

    Viele Grüße
    Martin

    • Hi Martin,

      danke für deine Kommentare im Blog und sry für die späte Rückmeldung.

      Den ni=true Bug kann ich mir gerade überhaupt nicht erklären; eigentlich dürfte er keinen Einfluss auf den Code haben. Ich schau mir das am Wochenende genauer an und geb dir dann bescheid.

      Bezüglich Druchschnittswert: Kann es daran liegen, dass du den Event Value Parameter nicht befüllst? Wenn du da keinen Wert übergibst, kann Google auch nichts berechnen.

      Danke und lg,
      Michaela

  • Lucas von Fürstenberg sagt:

    Hallo Michaela,

    Super Artikel, macht total Sinn es so umzusetzen.

    Könnte man beim Video Tracking eine ähnliche Funktion nutzen? Da habe ich bei der nativen Variante ja auch mehrere gefeuerte Events und können nicht sinnvoll summieren.

    Habe selber leider nicht genug Ahnung von JS, aber da das Problem und die Messung über die nativen Variablen sehr ähnlich ist, kann man das vielleicht irgendwie adaptieren?

    Fände ich sehr spannend.
    Gruß
    Lucas

    • Hi Lucas,

      genau – für Video Tracking könnte man eine ähnliche Funktion nutzen, d.h. nur ein einziges Event beim Verlassen der Seite feuern, mit der Anzahl der angesehenen Zeit in %.

      Der Code sieht allerdings etwas anders aus und auch die Berechnung unterscheidet sich, deswegen ist da ein guter Input für einen weiteren Blogartikel. 🙂

      Liebe Grüße,
      Michaela

  • Stefan Kasbauer sagt:

    Hallo Michaela,

    vielen Dank für diesen Beitrag.
    Mir ist bei der Auswertung aufgefallen, dass ich ganz unterschiedliche Werte bekomme, wenn mir ich den durchschnittlichen Wert pro Seite bzw. pro Ereignislabel, das ja die Page URL ist, ansehe. Weißt du, woran das liegt und was die richtige Art für die Auswertung ist?

    Danke!

    • Hi Stefan,

      vielen Dank für deinen Kommentar!

      Der Seitenwert und der Ereigniswert sind zwei verschiedene Metriken, deswegen erhälst du zwei unterschiedliche Werte.

      Der Seitenwert ist ein Durchschnittswert, die ien User besucht hat, bis er auf eine Zielseite weitergeleitet wurde oder eine Transaktion durchgeführt hat. Der Seitenwert berechnet sich pro Seite wie folgt berechnet: (Transaction Revenue + Total Goal Value) / Unique Pageviews (Details siehe Google Doku)

      Der Ereigniswert ist hingegen eine Zahl, die für jedes Ereignis anders genutzt werden kann. Im Fall vom Scrolltracking kann die Scrolltiefe in den Ereigniswert geschrieben werden. GA berechnet automatisch den durchschnittlichen Wert für dieses Ereignis – in unserem Fall die durchschnittliche Scrolltiefe pro Seite. Ein anderes Beispiel könnte Video-Tracking sein: In den Ereigniswert wird die Dauer des angeschauten Youtube Videos erfasst. GA berechnet daraufhin wie lange ein Video im Durchschnitt angesehen wurde.

      Je nachdem was du also analysieren möchtest, liefert dir der Seitenwert eine Info darüber wie qualitativ die Seite zur Zielerreichung z.B. Transaktion beigetragen hat. Der Ereigniswert beim Scrollevent informiert dich darüber wie viel die Seite im Durchschnitt gescrollt wurde.

      Ich hoffe, dass beantwortet deine Frage. 🙂

      Ganz liebe Grüße,
      Michaela

  • Jessica sagt:

    Hey Michaela,

    vorab finde ich deine Methode wirklich toll! Ich bin am überlegen das Tracking für unseren Blog zu nutzen, doch habe ich mich gefragt, inwieweit dein Scrolltracking die Absprungrate beeinflusst. Da beim Verlassen einer Seite ein Event gefeuert wird, müsste das ja die Absprungrate ziemlich stark beeinflussen/senken oder habe ich etwas überlesen?

    Viele Grüße aus Köln!

    • Hi Jessica,

      vielen Dank für deinen Hinweis: Die Absprungrate habe ich in meinem Beitrag tatsächlich nicht erwähnt.

      Das werde ich aber gleich nachholen. 🙂

      Ich setze beim Scrolltracking den non-interaction Parameter immer auf „false“, d.h. die Scrollevents beinflussen meine Bouncerate NICHT.

      Würdest du mit meiner Lösung den ni-Parameter auf „true“ setzen, würden User die 0% gescrollt haben (also tatsächlich abgesprungen sind) fälschlicherweise als Nicht-Bouncer gewertet werden. Hier müsste ich also meinen Tracking Code anpassen…

      Ich werde mir da mal was überlegen und bei Gelegenheit anpassen.

      Wenn du eine gute Idee hast, gerne her damit. 🙂

      lg, Michaela

  • Markus A. Frick sagt:

    Hi Michaela,

    großartiger & wie gewohnt ausführlicher Artikel mit viel Mehrwert – vielen Dank schon mal dafür!

    Meine Frage dazu:
    Gibt es eine Lösung für die von dir beschriebene (eigene) Scroll-Tracking Lösung unter SPA (= Single Page Application, bspw. in unserem Fall REACT) Technologie?

    Simo Ahava meinte im #measure Slack auf Nachfrage schon, dass „beforeUnload“ unter SPA leider nicht funktioniert.
    Wie könnte man allenfalls dennoch Hits einsparen und dennoch am besten granular in 10er Schritten, ohne dass uns das Volumen bei dem vielen Traffic um die Ohren fliegt 😉
    Oder führt kein Weg daran vorbei, es unter SPA (wieder) mit der „herkömmlichen“-Variante anzugehen?

    LG,
    Markus

    • Hi Markus,
      vielen Dank für deinen spannenden Kommentar.
      Lösungen gibt es zwar schon dafür, aber die sind leider sehr individuell – je nachdem wie die Seite aussieht bzw. aufgebaut ist.

      Grundsätzlich könntest du aber statt dem „beforeUnload“ ein anderes Event senden, an dem du erkennst, dass zu einer neuen Seite gewechselt wird. Bspw. bei einem Link-Klick. Dann könntest du die Scrolltiefe bei jedem Link-Klick an GA pushen. Achtung: Zusätzlich musst du jetzt noch die Variable mit der Scrolltiefe auf 0% zurücksetzen, weil es ja keinen Page-Refresh gibt und somit alle Variablen bestehen bleiben.

      Das wäre zumindest das Prinzip, die konkrete Umsetzung kommt wie gesagt drauf an, wie die deine SPA technisch aussieht.

      Hilft dir das weiter?
      Liebe Grüße,
      Mimi

  • Micha sagt:

    Moinsen 🙂

    Danke für den Blog Beitrag und die supe Lösung. Verwende sie nun auch so auf meinem Blog.
    Jedoch werden gefühlt zu wenig Events ausgelöst, denn bei so gut wie allen Seiten ist die Anzahl der Seitenaufrufe höher als die Anzahl der ausgelösten Events und eigentlich müsste doch jeder Seitenbesucher ein Scrolltrackingevent auslösen, oder?

    Viele Grüße
    Micha

    • Hi Micha,

      um wie viel % unterscheidet sich die Anzahl der Events und Pageviews pro Seite? Abartig hoch (<80%)?

      Weil es kann schon passieren, dass wenn der User das Browserfenster "zu schnell liest" das Event nicht mehr rechtzeitig abgeschickt und somit nicht mehr an GA gesendet wird.

      Das kann passieren, sollte allerdings nicht häufig passieren.

      Abweichungen zwischen 10-20% sind üblich, alles höher bedarf einer ausführlichen Kontrolle.

      Liebe Grüße,
      Michaela

  • Isabell Mader sagt:

    Hallo Michaela,
    vielen Dank für deinen tollen Post. Nun hab ich noch eine Frage.
    Du schreibst:
    Ich setze den non-interaction Event Parameter im GTM deswegen auf „false“. D.h. die Scrollevents beinflussen meine Bouncerate NICHT.
    Ist es nicht genau umgekehrt?
    non-interaction = false –> wird als Interaktion gezählt und hat positiven Einfluss auf die Absprungrate.
    Viele Grüße
    Isabell

  • Hi,
    zunächst einmal vielen Dank für diesen tollen Artikel. Ich bin nämlich auf der Suche nach einer Möglichkeit die tatsächliche Verweildauer herauszufinden. Insbesondere da ich eine sehr hohe Bouncerate habe. Was aber eben an „OnePage Betrachtern“ liegen könnte und genau das will ich herausfinden um das richtig interpretieren zu können. Du schreibst das du das mit dem NI so eingestellt hast das die Bouncerate nicht beeinflusst wird, da 0% Scroller sonst auch als nicht Bouncer gezählt werden. Was ja gut ist, weil ich denke 0% scrollen heißt „nicht relevant“->bounce.

    Wäre es nicht sinnvoll bzw. ist es nicht möglich bei 10-20% Scrolltiefe das ganze dann noch mit einfließen zu lassen in die Scrollrate?
    Also sobald jemand scrollt ist es kein Bounce mehr und beeinflusst dann die Bouncerate.
    Hoffe es ist klar wie und was ich meine? ????
    Lässt sich das abbilden?
    Ich hatte den GTM mal vor 2-3 Jahren rudimentär getestet, meine Kenntnisse darin sind daher Rookie, auch wenn ich mich da recht schnell wieder zurechtfinden werde.

    Line Grüße
    Dominic

    PS: Danke nochmal für den tollen Artikel

    • Hallo Dominic,
      das ist eine hervorragende Idee und gerade für OnePager eine ausgezeichnete Lösung.

      Ich bin mir nicht sicher ob das geht, wenn du die Google-eigene Lösung nutzt.

      Wenn du dein eigenes Scroll-Tracking implementiert hast, geht das auf jeden Fall. Einfach ein if in den Code dazu: Wenn 0% gescrollt, sendest du ein Event mit ni=1 (Bouncer). Wenn größer 0% gescrollt, sendest du ein Event mit ni=0 (Kein Bouncer).

      Ich hoffe, dass hilft dir weiter.

      Liebe Grüße,
      Michaela

  • Nancy sagt:

    Hallo Michaela,

    danke für dein Script, es gefällt mir wirklich super! Ich habe nur leider ein Problem, vielleicht kannst du mir helfen (bin noch GTM Anfänger). Jedes Mal, wenn ein Kauf auf meiner Seite stattfindet, wird den dazugehörigen Scrollereignissen auch der Umsatz zugeschrieben. Also für 10%, 20%, 30% usw. jeweils auch die z.B 10€ Umsatz. Somit habe ich dann unter Ecommerce enormen Umsatz 🙁 Hast du vielleicht eine Idee, was ich falsch mache?

    Danke und VG
    Nancy

    • Hallo Nancy,

      welche von den verschiedenen Lösungen in meinem Blog hast du bei dir implementiert?
      Schickst du für jedes gescrollte % (zB 10%, 20%, etc.) ein eigenes Event?
      Oder schickst du ein einziges Event beim verlassen der Seite?

      In jedem Fall sollte das einen Ecommerce Umsatz nicht beeinflussen… Auf was hast du deinen Trigger gesetzt?

      Und meinst du mit Ecommerce tatsächlich die Reports unter Conversions –> Ecommerce? Oder deine Ziele?

      Wenn du mir einbisschen mehr Infos rund um deine Implementierung verrätst, finden wir die Lösung bestimmt schnell. 🙂

      Liebe Grüße,
      Michaela

      • Nancy Bott sagt:

        Hallo Michaele,

        entschuldige meine späte Rückmeldung. Ich hab das ganze Thema nun doch an eine IT-Firma abgegeben. Mir fehlt da einfach die Kompetenz. Dennoch vielen Dank für deine Mühen.

        LG Nancy

  • Tom sagt:

    Hallo,

    habe das ganze mal nachgebaut. Scheint zu klappen.

    Was mir aufgefallen ist: Kann es sein, dass das Event bei Links, die in einem neuen Tab öffnen nicht ausgelöst werden?

    Grüße
    Tom

    • Hallo Tom,

      eigentlich müssten die Events auch bei Links die in einem neuen Tab öffnen, ausgelöst werden, weil es ja die selbe Website mit (hoffentlich) dem selben Tracking Code ist.

      Wenn du in der Developer Console testest, musst du die Seite nochmal neu laden, weil die Codes schneller laden, als die Developer Console öffnet, dann kannst du das direkt überprüfen.

      Liebe Grüße,
      Michaela

  • Florian sagt:

    Hi Michaela,

    Danke auch für den tollen Artikel! Ich bin auch ein Beginner was den Tag Manager betrifft und hätte eine kurze Frage => In deinen beiden neuen Tags verwendest du aber zusätzlich schon auch den „all pages“ Trigger oder?

    Danke und mfg Florian

    • Florian sagt:

      Habe ein bisschen research betrieben und habe schon meine Antwort 🙂

      Allerdings ist noch eine andere Frage aufgetaucht:

      Was wählst du in den Google Analytics Settings aus? Ich habe mal aus nem Bauchgefühl heraus eine neue Variable mit unserer Tracking ID hinzugefügt.

      Im preview sehe ich nur diesen Events Tag INaktiv => Wird der erst gefeuert, wenn ich ´die Seite verlasse?

      LG Florian

      • Wenn du im Pageview Tag auf „Google Analytics Settings“ gehst, kannst du eine eigene, universelle Settings-Variable für das Tracking in Google Analytics auswählen.

        Pflichtfeld #1: Die UA-ID aus Google Analytics – sprich die Property-ID z.B. UA-1234567-8, in welche die Daten getrackt werden sollen.

        Pflichtfeld #2: Unter More Settings –> Fields to Set –> AnonymizeIP auf true setzen!

        Der Vorteil der Settings Variable ist, dass wann immer du einen neuen GA Tag im GTM anlegst und deine universelle Settings Variable auswählst, die Einstellungen in der Settings-Variable automatisch für die Tags übernommen wird. So kannst du bspw. nie auf die Anonymisierung der IP Adresse vergessen.

        Liebe Grüße,
        Michaela

    • Hi Florian,
      erstmals vielen Dank für deine Kommentare – ich antworte einfach kurz überall. 🙂

      Den All-Pages Trigger brauchst du bei meiner Lösung vom Scrolltracking nicht – das Event wird immer automatisch bei „beforeunload“, also bevor der User die aktuelle Seite verlässt, ausgelöst.

      Deswegen wird pro Seite auch immer nur ein Scroll-Prozentwert an Google Analytics übergeben.

      Liebe Grüße,
      Michaela

  • Florian sagt:

    Hi Michaela,

    Tut mir sehr Leid, dass ich mich nochmal melden muss 🙂 Ich denke das Tracking funktioniert nun soweit, auch wenn ich nicht sicher bezüglich der Google Analytics Settings im Tag bin (siehe vorige Frage).

    Bei der Auswertung unter Verhalten > Events > Seiten ist mir nun aufgefallen, dass ich unter „Event Action“ ein paar Scrolltiefen habe (zB 70, 50, 80 etc.), die aber 0 Sekunden „Session Duration“ haben.

    Wie kann das sein? Ist das Tracking bei mir nicht ganz korrekt?

    Danke und nochmals LG Florian

    • Hi Florian,
      ich freue mich über jedes Kommentar und finde es großartig, dass du dich so intensiv mit dem Scrolltracking in GA auseinandersetzt – ein mega spannendes Thema. 🙂

      Kannst du mir einen Screenshot von deiner 0 Sekunden Session Duration zeigen? zB Email an support@analyticskiste.blog oder gerne im Kommentar hochladen.

      Ich vermute zwar woran das liegt, möchte aber zuvor einen Blick darauf werfen.

      Danke und lg,
      Mimi

  • Alex sagt:

    Hallo Michaela,

    toller Beitrag und eine gute Alternative zu Google’s Standardlösung.
    Funktioniert deine Variante bzw. der Event „beforeunload“ auch beim Internet Explorer und auf mobilen Geräten? Und wie ist es wenn jemand den Tab wechselt anstatt zu schließen oder eine andere Seite aufzurufen – wird dann „beforeunload“-Event noch ausgeführt?

    Gruß
    Alex

    • Hallo Alex,
      vielen Dank für deine Fragen – sehr spannend!

      Meine Scrolltracking Lösung funktioniert auch bei IE 11 und auf mobilen Geräten. Einen Überblick bei welchen Browsern „beforeunload“ funktioniert, findest du auf dieser Seite: https://caniuse.com/#search=beforeunload

      Zu deiner zweiten Frage: „beforeunload“ wird nur dann ausgeführt, wenn die Seite geschlossen wurde.

      Bei einem Tab-Wechsel wird die Seite nicht geschlossen, deswegen wird das Scrolltracking Event nicht ausgeführt. Erst wenn der User den Browser schließt / das Tab schließt, wird die Seite geschlossen und das Scroll-Event an GA geschickt.

      Wenn der User eine andere Seite aufruft (egal ob eigene Seite oder neue Domain), wird die Seite „gschlossen“ und „beforeunload“ somit ausgeführt.

      Liebe Grüße,
      Michaela

      • Aaron sagt:

        Hallo Michaela

        Bei mir funktioniert alles soweit, jedoch wird der Event nur ausgelöst, wenn ich den Browser (Chrome) ganz verlasse. Wenn ich intern wechsle (also eigene Seite) wird kein Tag abgefeuert, nur wenn ich den Browser ganz schliesse. Woran könnte dies liegen?

        Liebe Grüsse
        Aaron

  • Johannes sagt:

    Hallo Michaela,

    Danke für den sehr hilfreichen Artikel, deine Lösung funktioniert bestens.

    Liebe Grüße
    Johannes

  • Chris sagt:

    Hallo Michaela,

    sehr spannender Blog und super Artikel!

    Bei mir werden allerdings die Werte bei „Event Value“ nicht mit übertragen nach Google Analytics. Alle Event Values sind 0, obwohl ich mich komplett an deine Anleitung gehalten habe.

    Die Tags feuern richtig und überall laufen Werte rein, nur eben wird beim Event Value nichts aus „percent“ mit eingetragen – hast du da eine Lösung für?

    Viele Grüße
    Chris

    • Hallo Chris,
      danke, dass du mir zusätzlich Screenshots deiner Implementierung zur Verfügung gestellt hast – das hilft enorm beim Troubleshooting. Dein Setup sieht auf jeden Fall schon mal gut aus.

      Ein Tag Screenshot fehlt jedoch noch – nämlich der wo die Prozent dem Event Value zugeordnet wird: Der Haupt-Tag sozusagen. Ich geh davon aus, dass es hier hackt – ev. hast du vergessen den Prozent-Wert dem Event-Value zuzuordnen?

      Wenn es das nicht ist, bitte nochmal melden. 🙂

      Liebe Grüße,
      Michaela

  • Jens sagt:

    Hi Michaela,
    wirklich guter Inhalt. ich habe nach dem lesen des ersten Beitragen gedacht ich lesen einen Artikel eines Kerles! War dann überrascht das dem nicht so ist! Bin halt gewöhnt das technische Dinge eher von Kerlen kommen.

  • Kerstin sagt:

    Hallo Michaela,
    danke für diesen großartigen Beitrag! Ich habe lange nach einer Lösung gesucht, um genauere GA Zahlen zu bekommen und das ist die perfekte Lösung dafür! Ich habe es direkt eingebaut und bin gespannt, ob ich alles richtig gemacht habe und es funktioniert 🙂

  • Gesa sagt:

    Hallo Michaela,
    erst einmal vielen herzlichen Dank für Deine tolle Seite! Ich bin erst durch Corona und die Umstellung meiner Elterngeldberatung auf ein Online-Business mit den Themen Webseite usw. beschäftigt. Ich verfüge daher leider bisher nur über ein sehr gering ausgeprägtes technisches Verständnis. Da ich aber die genauen Verweildauern v. a. bei meinen Blogbeiträgen auswerten möchte, bin ich auf deine Lösung hier geraten, um ein weiteres Event auszulösen. Und die Aussicht, sehen zu können, wie weit meine Blogbeiträge gelesen werden, erscheint mir auch sehr verlockend. Deswegen habe ich gedacht „Nur Mut“ und mich ans Werk gemacht. Vieles erschließt sich mir allerdings nicht so ohne weiteres, deswegen muss ich noch ein paar Fragen stelle und hoffe, sie sind nicht zu dumm:

    1) Ich habe die von Dir vorgestellte Lösung im GoogleTagManager eingerichtet. Ich habe alle von Dir im Blogbeitrag beschriebenen Schritte durchgeführt und anschließend im Vorschaumodus meine Seite eingegeben und dann stand da im Ergebnis, dass sowohl GA – Event – Scolltracking als auch GA – Custom HTML – Scolltracking „fired“ wurde. Anschließend habe ich dann die neue Version veröffentlicht.

    2) Dann habe ich aber hier in den Kommentaren noch gelesen, dass ich anscheinend noch folgende Schritte machen muss:
    – percent in String umwandeln?
    – Tag Sequencing einstellen, muss das bei dem Event Scrolltracking gemacht werden oder bei dem Custom HTML-Tag?
    – „if in den Code dazu: Wenn 0% gescrollt, sendest du ein Event mit ni=1 (Bouncer). Wenn größer 0% gescrollt, sendest du ein Event mit ni=0 (Kein Bouncer).“ Wo wird das gemacht? Wie muss der Code denn dann aussehen?
    – Prozent dem Event Value zuordnen?

    Ich bin überfordert! Wo und wie mache ich das denn?

    3) Wenn ich unter Google Analytics bei Ereignisse schaue, gibt es dort keine unter „Wichtigste Ereignisse“ zur Auswahl (sonst allerdings auch nirgendwo unter dem Menüpunkt Ereignisse). Muss ich das auch erst einrichten?

    Vielen Dank für Deine Hilfe und Deine Anleitung 🙂
    Liebe Grüße,
    Gesa

    • Hallo Gesa,
      ich freue mich, dass du auf meinen Blog gestoßen bist.

      Um die Verweildauer deiner Blogbeiträge auszuwerten, hilft dir eventuell dieser Blogartikel weiter: Time Spend On Site – 3 Lösungen, die echte Sitzungsdauer deiner User zu messen.

      Zu 2): Das stimmt – die Infos in den Kommentaren können sehr verwirrend sein. Das sind tlw. sehr spezifische bzw. individuelle oder auch fortgeschrittene Lösungen. Fürs erste ist man mit der „Basisversion“ im Blogartikel sehr gut ausgestattet. Wenn du diese aufgesetzt hast und alles korrekt läuft – perfekt! Ausgezeichnet!

      –> zu percent in String: Diese Anpassung habe ich im Code vorgenommen; du brauchst nichts weiter beachten.

      –> „if-Bedingung“: Das ist eine advanced-Lösung die ich noch nicht eingebaut habe. Sie ist im ersten Schritt nicht notwendig, du bekommst auch ohne ihr gute Ergebnisse. Wenn man sehr, sehr genau arbeiten möchte, ist diese Lösung natürlich schön – und ich habe auch vor sie nachzutragen, sobald ich Zeit habe. Wenn du die Lösung jetzt schon haben möchtest, lass uns doch bezüglich individueller Beratung sprechen: support@analyticskiste.blog

      -> Prozent dem Event Value zuordnen: Das betrifft nur das Setup von Chris – er hat vergessen diesen Tag anzulegen und deswegen hat das Scrolltracking bei ihm nicht geklappt. Hat er ausgebessert. Klappt jetzt.

      Wichtig: Alle wichtigen Infos aus den Kommentaren füge ich in den Blogartikel dazu, damit eine universelle, funktionierende Lösung verfügbar ist und man sich nicht alles selbst in den Kommentaren zusammen suchen muss. Das ist mir wichtig! 🙂

      Zu 3): GTM hast du veröffentlicht? Dann solltest du in Google Analytics unter Verhalten –> Ereignisse -> Wichtigste Ereignisse dein „Scrolltracking“ Event sehen. Du musst nichts weiter einrichten.

      Wenn du in diesem Bericht kein „Scrolltracking“ Event hast, schick mir gerne nochmal eine Nachricht an support@analyticskiste.blog. Dann ist vermutlich irgendwo „ein Hund drin“. 🙂

      Liebe Grüße,
      Michaela

      • Gesa sagt:

        Hallo Michaela,

        vielen lieben Dank für die Antworten auf meine ganzen Fragen. Da bin ich beruhigt, dass ich die Sachen größtenteils noch nicht brauche.

        Tatsächlich war es so, dass nach einigen Stunden ganz automatisch das Scrolltracking-Event aufgetaucht ist. Es funktioniert ganz hervorragend und ist wirklich interessant auszuwerten!

        Vielen Dank nochmal und ein schönes Wochenende,
        Gesa

  • Christian sagt:

    Hallo Michaela,
    danke für den Post und dafür, dass du das Thema so klar nachvollziehbar beschreibst!
    Ich habe das gleich umgesetzt, erhalte aber leider keine Ergebnisse in GA.

    Drei Gedanken hatte ich dazu:
    1
    Bei deinen Erläuterungen habe ich Angaben zu einem Feld vermisst:
    Beim Tag-Typ Universal Analytics muss eine Angabe zu Google Analytics-Einstellungen gemacht werden. Ich habe es bei {{Google Analytics-Einstellungen}} belassen. Bin mir da aber nicht sicher.
    2.
    Der andere Gedanke: Ich habe alles angelegt etc. Aber explizit „veröffentlicht“ habe ich nichts – da gab es keinen Button dazu.
    3.
    Ein dritter Gedanke: Ich kann das Funktionieren schlussendlich nur in GA überprüfen, indem ich sehe, dass Daten eingehen, oder? Müssen in GA weitere Einstellungen definiert werden (du hast von „Verhalten –> Ereignisse –> Seiten “ geschrieben), um das zu sehen? Da war ich – konnte aber auch nach einige Tagen nichts sehen.

    Vielleicht siehst du ja den Fehler schon oder es gibt eine ganz andere einfache Lösung?
    Herzlichen Dank!

    Christian

    • Hallo Christian,

      vielen Dank für deinen Kommentar und ausgezeichnet, dass du mir Screenshots von deinem Setup direkt per Email zukommen lassen hast – das hilft mir sehr beim überprüfen. :-))

      Zu 1) Genau, hier gibst du deine Analytics-Settings Variable an. Diese hast du vermutlich bereits beim Pageview Tag erstellt und kannst du hier wiederverwenden – alles richtig gemacht.

      Zu 2) Wenn du keinen „Veröffentlichen“ Button siehst, dann hast du vermutlich nicht die Berechtigung Tags im GTM zu veröffentlichen. Kann das der Fall sein?

      Ansonsten siehst du rechts oben einen auffallend blauen „Senden“ Button – gleich neben deiner GTM-ID und den grauen „In Vorschau ansehen“ Button. Siehst du den blauen Button?

      Das bringt mich zu 3) Du kannst das GTM Setup vor der Veröffentlichung im GTM überprüfen indem du auf den grauen „In Vorschau ansehen“ klickst. Dann kannst du prüfen ob die Streams beim scrollen raus gehen.

      Ich empfehle IMMER vor der Veröffentlichung zu testen, da du sonst möglicherweise Fehler publisht die das Tracking und somit deine Daten beeinflussen – oder im schlimmsten Fall sogar deine Website.

      Ansonsten müssen in Universal Analytics KEINE weiteren Einstellungen vorgenommen werden.

      Sobald der GTM gepublisht ist, fließen die Scrolldaten in GA ein und du kannst sie unter Verhalten –> Ereignisse –> Wichtigste Ereignisse sofort sehen und deine Analysen starten.

      Zusammenfassung: Wichtig ist, dass du den GTM publisht. Wenn du den blauen „Senden“ Button nicht siehst, dann womöglich weil du keine Berechtigung hast. In dem Fall bitte bei deiner IT etc. nachfragen.

      Liebe Grüße nach Hamburg,
      Michaela