Ecommerce: Trackst du mehrmals die gleiche Transaktion in Google Analytics?7 min Lesezeit

Michaela Linhart 3 Comments

Eines der größten Herausforderungen die ich heuer mit Enhanced Ecommerce in Google Analytics erlebt habe ist, dass die gleichen Transaktionen mehrmals in Google Analytics erfasst werden. Das heißt, statt eine Transaktion einmal (so wie es sich gehört), zehnmal die gleiche. Statt z.B. 30 Euro Transaktions-Umsatz, stolze 300 Euro. Hier erfährst du, OB du ebenfalls gleiche Transaktionen mehrmals in GA erfasst und WAS du dagegen tun kannst… 

Dieses Phänomen habe ich als “Duplicate Transaction”-Problem im Internet gefunden, deswegen nenne ich es ebenfalls so.

Was sind doppelte Transaktionen und woher kommen sie?

Doppelte Transaktionen treten auf, wenn User deine Danke-Seite mehr als einmal aufrufen z.B. weil sich der Link zur Sendungsverfolgung auf deiner Danke-Seite befindet. Manche User rufen nun täglich deine Website auf um ihre Sendung zu verfolgen. Oder weil sie nach mehreren Tagen nochmal überprüfen wollen, was für Produkte sie gekauft haben, wie viel sie ausgegeben haben, usw.

Jedesmal wenn deine User deine Danke-Seite in einer neuen Session aufrufen, wird der Transaktions-Tracking Code erneut ausgeführt und die selbe Transaktion landet ein zweites, ein drittes, ein viertes Mal in Google Analytics.

Duplicate Transactions GA

Screenshot: Duplicate Transactions Google Analytics

Gleiche Transaktion, selbe Session

Der Knackpunkt liegt in „einer neuen Session“: Innerhalb der gleichen Session werden Transaktionen nicht mehrmals in GA erfasst. 

Warum passiert das? Beispielsweise wenn dein User nach der Danke-Seite auf die Startseite geleitet wird und kurz danach wieder zurück zur Danke-Seite springt. Oder: Wenn dein User die Danke-Seite neu ladet.

Warum werden in dem Fall Transaktionen nicht doppelt erfasst? Weil Google Analytics die gleiche Transaktion innerhalb derselben Session herausfiltert. Ganz automatisch.

Gleiche Transaktion, neue Session

Initiiert der User allerdings eine neue Session z.B. 2h später, am nächsten Morgen oder zwei Tage später, und der Transaktion Tracking Code wird erneut abgeschickt, kümmert sich Google Analytics nicht automatisch um die Filterung: Dann landet ein und dieselbe Transaktion zwei Mal, drei Mal, X-Mal in Google Analytics.

Duplicate Transactions: Das Problem

Das Problem dabei ist, dass deine Ecommerce Statistiken dadurch vollkommen verfälscht werden: Du erhälst falsche Umsatz Daten und eine falsche Anzahl deiner Transaktionen.

Deine Ecommerce Metriken werden ins unendliche aufgeblasen und widersprechen jeglicher Realität. Du kannst deine Ecommerce Reports praktisch nehmen und in den Mistkübel werfen: Sie sind nichtssagend und für keine Analyse verwertbar. Leider.

Wie kannst du herausfinden ob du betroffen bist?

Dazu gibt es einen einfachen Weg und super schnellen Weg: Nämlich mit einem Custom Report: Link zur Vorlage

Duplicate Transactions Kontrolle per Custom Report

Screenshot: Duplicate Transactions Kontrolle per Custom Report

Den Custom Report nenne ich “Duplicate Transactions”: Am besten du wählst den Explorer-Typ (inkl. Liniendiagramm deiner Metriken) oder die Flat Table (ohne Liniendiagramm) als Typ aus.

Als Dimension wählst du die Transaktions ID. Als Metrik die Transaktionen.

Klicke auf Speichern und wähle einen längeren Zeitraum z.B. die letzten zwei Monate oder auch nur die letzten zwei Wochen – jedenfalls länger als nur ein paar Tage: Denn je nach Produkt und Userverhalten kann es sein, dass User grundsätzlich immer erst nach 3 oder 5 Tagen nochmal deine Danke-Seite aufrufen. Wenn du einen längeren Zeitraum wählst, kannst du dir ganz sicher sein, dass Duplicate Transactions auftauchen – oder nicht.

Analyse: Keine doppelten Transaktionen

In deinem Custom Report darf jede Transaktions ID natürlich nur ein einziges mal vorkommen: Ist das der Fall, ist das Tracking deiner Transaktionen richtig implementiert und deine Google Analytics Daten soweit korrekt. Du hast keine Duplicate Transactions. Herzlichen Glückwunsch!

No Duplicate Transactions

Screenshot: No Duplicate Transactions in Google Analytics

Analyse: Doppelte Transaktionen

Ist das nicht der Fall, d.h. hast du mehr als eine Transaktion mit derselben Transaktions ID in deinem Custom Report, sendest du Transaktionen mehrfach an Google Analytics.

Duplicate Transactions GA

Screenshot: Duplicate Transactions Google Analytics

Du solltest ab sofort deinen Ecommerce Daten in Google Analytics nicht mehr vertrauen, denn sie stimmen nicht mit der Realität überein.

Aber keine Sorge: Es gibt verschiedene Wege wie du dieses Problem lösen kannst.

Duplicate Transactions: 4 Lösungswege

Genaugenommen gibt es vier Lösungswege:

  1. User nicht auf deine Danke-Seite leiten
  2. Serverseitig das Tracking unterbinden (empfohlen!)
  3. Clientseitig das Tracking unterbinden (im Sourcecode)
  4. Clientseitig das Tracking unterbinden (via GTM)

1. User nicht auf die Danke-Seite leiten

Du kannst z.B. die wichtigsten Informationen von deiner Danke-Seite entfernen, sodass deine User keinen Grund mehr haben deine Danke-Seite mehrmals aufzurufen. Schick ihnen stattdessen z.B. eine Email mit allen Informationen.

Das ist zwar eine Lösung: Auch eine recht einfache und schnell umsetzbare Lösung – aber vermutlich nicht die beste. Denn es kann trotzdem passieren, dass User deine Danke-Seite mehrfach besuchen und dann du hast wiederum falsche Daten in GA.

2. Serverseitig das Tracking unterbinden

Die sauberste, beste aber leider sehr, sehr technische Lösung ist: Das Tracking serverseitig zu unterbinden! D.h. den Tracking Code gar nicht erst mehrfach abzuschicken, auch nicht wenn eine neue Session initiiert wird.

Das ist serverseitig an sich sehr einfach umsetzbar; allerdings benötigst du vermutlich Unterstützung durch deine IT.

Außerdem stellen leider nicht alle Onlineshops serverseitigen Zugriff zur Verfügung – vor allem wenn ein cloudbasiertes Shop-Managementsystem wie Shopify eingesetzt wird.

3. Clientseitig das Tracking unterbinden (im Sourcecode)

In diesem Fall können Duplicate Transactions auch clientseititg unterbunden werden, also direkt im Frontend des Webshops. Dafür ist nur ein zusätzliches if-Statement vor dem dataLayer-Push des Transaktions-Tracking Codes notwendig.

Das ist auch die Lösung, die ich bei mir implementiert haben lasse. Warum? Weil der Enhanced Ecommerce Tracking Code für die Transaktion ohnehin direkt im Sourcecode implementiert werden muss und diese Lösung am schnellsten und einfachsten ist und den geringsten Aufwand verlangt.

Mein Lösungweg:

Duplicate Transactions - Clientseitige Lösung im Webshop

Screenshots: Clientseitige Lösung für Duplicate Transactions

Wir benötigen ein Browser-Cookie , in das jede Transaktions ID des Users gespeichert wird. Vor dem senden des Transaktions- Trackingcodes wird im Sourcecode des Onlineshops eine if-Abfrage hinzugefügt, die überprüft ob in dem Cookie bereits die TransaktionsID vorhanden ist.

Ist sie vorhanden (if = true), wird der Transactions-Tracking Code NICHT abgeschickt; die Transaktion gibt es bereits.

Ist sie nicht vorhanden (if = false), wird der Transaction-Tracking Code abgeschickt; die Transaktion ist neu und findet das erste Mal statt.

Das ganze sieht Quellcode-technisch so aus:

<script>
var transactionID = "deine transactionID";
var transactionCookie = getCookie("gatrackedtransactions");

if(!transactionCookie || transactionCookie.indexOf(transactionID)<0){
dataLayer.push({'ecommerce': {
//...
}});

if(!transactionCookie) transactionCookie="";
document.cookie = "gatrackedtransactions="+transactionCookie+","+transactionID+";path=/; expires=Fri, 31 Dec 9999 23:59:59 GMT;";
} else {
dataLayer.push({
'event': "genericEvent",
'category': "Duplicate Transaction Prevented",     
'action': transactionID     
});}

function getCookie(name) {  
var value = "; " + document.cookie;  
var parts = value.split("; " + name + "=");  
if (parts.length == 2) return parts.pop().split(";").shift();
}
</script>

Und weil mich interessiert wie oft eine Transaktion doppelt oder dreifach getrackt worden wäre, pushe ich im else-Statement ein Event, dass mir genau diese Information an Google Analytics sendet: Duplicate Transaction Prevented.

Einziges Manko: Ruft der User die Danke-Seite auf verschiedenen Geräten auf (zu Hause, in der Arbeit, am Handy), wird die Transaktion trotzdem mehrfach erfasst… Also auch das ist keine 100%ige Lösung, aber eine die bei uns eben sehr gut funktioniert… 

4. Clientseitig das Tracking unterbinden (via GTM)

Eine letzte Lösung habe ich noch: Ebenfalls clientseitig aber nicht über den Sourcecode des Onlineshop sondern über den Google Tag Manager: Dein Freund und Helfer!

Warum kann diese Lösung für dich interessant sein? Weil du für die beiden vorhin genannten Lösungen vermutlich immer Unterstützung durch die IT benötigst. Oft ist es für die IT aber nicht möglich schnell zu reagieren z.B. weil gerade keine Ressourcen zur Verfügung stehen (und auch frühestens erst wieder in einem halben Jahr Zeit dafür ist). In dieser Zeit sind aber die Daten in Google Analytics unbrauchbar. Was du brauchst ist eine schnelle Lösung, die du selbst umsetzen kannst. 

Deswegen habe ich eine Lösung im Blog von lunametrics gefunden, wie du die clientseitige Lösung mit Cookie auch über den GTM implementieren kannst. Jon Meck hat eine wunderbare Step by Step Anleitung geschrieben, die du super einfach nachbauen kannst: https://www.lunametrics.com/blog/2014/07/07/duplicate-transactions/

Wenn dir dieser Blogartikel gefallen hat, dann freue ich mich über ein Like, ein Share und einen Kommentar von dir. Abonniere gerne meinen Newsletter und meine Facebook Seite und lass dich automatisch über neue Blogbeiträge informieren. 

Comments 3

  1. Hi Michaela,

    absoluter Top-Beitrag, bin erst vor kurzen über den Artikel gestoßen. Wir haben bemerkt, dass es auch passieren kann dass Analytics Probleme beim Einspielen von Retouren Daten bei den Transaktions-IDs bekommen kann, haben hier aber keine Lösung gefunden.

    Liebe Grüße,

    Jürgen

    1. Post
      Author

      Hi Jürgen,

      vielen Dank für deinen Kommentar und das Lob. 🙂

      Welche Probleme beim Data-Upload meinst du genau? Eventuell kann ich da weiter helfen.

      Vielleicht hilft dir aber auch schon mein Data-Upload Blogartikel weiter, der sich hauptsächlich mit Refund-Daten beschäftigt.

      Liebe Grüße,
      Michaela

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.