GA4-E-Commerce-Tracking prüfen: fehlende Bestellungen
GA4 zeigt weniger Bestellungen als dein Shop-Backend? Die häufigsten Ursachen von Consent bis Doppelzählung und wie du sie mit DebugView findest.
Inhalt
- Erst messen, dann suchen
- Die zehn häufigsten Ursachen im Überblick
- Ursache 1: Das purchase-Ereignis feuert nicht
- Ursache 2: Consent blockiert die Messung
- Ursache 3: Doppelte Zählung
- Ursache 4: Umsatz stimmt nicht, Bestellzahl schon
- Ursache 5: Artikel fehlen im Bericht
- Ursache 6: Zahlungsanbieter als Quelle aller Umsätze
- Ursache 7: Ein Einbruch mit Datum
- Der komplette Prüfablauf
- Was du mit korrekten Daten anders machst
Im Shop-Backend stehen 240 Bestellungen, in GA4 stehen 187. Oder umgekehrt: GA4 meldet mehr Käufe, als du tatsächlich hattest. Beides macht jede Auswertung wertlos, weil du Conversion-Rate, ROAS und Kanalleistung auf falschen Zahlen rechnest. Dieser Artikel geht die Ursachen in der Reihenfolge durch, in der du sie prüfen solltest – von der häufigsten zur seltensten.
Erst messen, dann suchen
Bevor du irgendetwas änderst, brauchst du eine belastbare Abweichung. Sonst jagst du einem Problem nach, das es nicht gibt.
- Wähle einen abgeschlossenen Monat, nicht die letzten sieben Tage. Kleine Zeiträume schwanken zu stark.
- Lies im Shop-Backend die Zahl der bezahlten Bestellungen und den Umsatz für diesen Monat.
- Lies in GA4 unter Monetarisierung die Käufe und den Umsatz für denselben Zeitraum.
- Achte auf zwei Fallen: Die Zeitzone deiner GA4-Property muss zur Zeitzone deines Shops passen, sonst verschieben sich die Tagesgrenzen. Und du musst wissen, ob dein Backend Storno und Erstattungen schon abgezogen hat.
- Rechne die Abweichung in Prozent aus.
Beispiel: Backend 240 Bestellungen, GA4 187 Käufe. Das sind rund 22 Prozent Lücke – klar zu viel, hier steckt ein Fehler dahinter. Bei 240 gegen 232 wäre die Sache dagegen unauffällig.
Eine kleine Unterzählung ist normal und technisch nicht vermeidbar. Adblocker, abgelehnte Messung, Browser mit strengem Tracking-Schutz und abgebrochene Seitenladevorgänge gehen immer ab. Erwarte keine Deckungsgleichheit.
Die zehn häufigsten Ursachen im Überblick
| Symptom | Wahrscheinliche Ursache | Wo du nachsiehst |
|---|---|---|
| GA4 zählt deutlich weniger Käufe | Messung wird bei Ablehnung im Banner blockiert | Consent-Einstellungen, Zustimmungsrate |
| Käufe werden gezählt, Umsatz bleibt leer | currency oder value fehlt | DebugView, Parameter des purchase-Ereignisses |
| Gar keine Käufe | purchase feuert nicht auf der Bestätigungsseite | DebugView bei Testbestellung |
| GA4 zählt mehr Käufe als das Backend | Ereignis wird doppelt gesendet | gleiche transaction_id mehrfach |
| Umsatz stimmt, Artikel fehlen | items-Array leer oder falsch benannt | DebugView, Artikelbericht |
| Umsatz systematisch zu hoch oder zu niedrig | Versand oder Steuer im value anders als im Backend | Definition von value |
| Alle Käufe kommen von einem Zahlungsanbieter | Weiterleitung startet neue Sitzung | Liste unerwünschter Verweise im Datenstream |
| Käufe nur bei einer Zahlungsart | Bei dieser Zahlart gibt es keine klassische Danke-Seite | Testbestellung je Zahlungsart |
| Sprunghafter Einbruch an einem Datum | Theme-, App- oder Tag-Änderung | Änderungsprotokoll, Release-Termine |
| Zahlen driften langsam auseinander | Adblocker- und Browseranteil steigt | Kanal- und Geräteverteilung |
Die Tabelle ist die Kurzfassung. Jetzt die Details.
Ursache 1: Das purchase-Ereignis feuert nicht
Der Klassiker. Prüfe es so:
- Öffne in GA4 den Verwaltungsbereich und dort die DebugView.
- Aktiviere den Debug-Modus auf deinem Gerät – über die Vorschau im Google Tag Manager oder über die Google-Analytics-Debugger-Erweiterung für Chrome.
- Führe eine echte Testbestellung durch. Nicht simulieren, wirklich bestellen. Nutze dafür einen Rabattcode mit hohem Wert oder eine Testzahlart, falls dein Shop das unterstützt.
- Beobachte die DebugView während des Bestellvorgangs. Erscheint
purchase? Wann?
Wenn purchase gar nicht erscheint, gibt es meist einen dieser Gründe:
Die Bestätigungsseite lädt das Tag nicht. Bei vielen Shopsystemen ist die Danke-Seite technisch anders aufgebaut als der restliche Shop. Ein Tag, das nur im normalen Theme liegt, läuft dort nicht mit.
Die Bestellung endet nicht auf einer eigenen Seite. Manche Zahlungsarten und Express-Checkouts schließen den Kauf in einem Overlay ab oder leiten direkt auf eine Statusseite des Anbieters. Dann gibt es keinen Seitenaufruf, an den du das Ereignis hängen kannst.
Die Daten für das Ereignis stehen noch nicht bereit. Wenn das Skript den Bestellwert aus dem Seiteninhalt liest, aber vor dem Aufbau der Seite ausgeführt wird, sendet es ein leeres oder unvollständiges Ereignis.
Wichtig: Teste jede Zahlungsart einzeln. Es kommt häufig vor, dass Kauf auf Rechnung und Kreditkarte messbar sind, ein Wallet oder ein Ratenkauf aber nicht – und wenn dieser Anteil groß ist, erklärt das die ganze Lücke.
Ursache 2: Consent blockiert die Messung
Wenn dein Cookie-Banner die Messung erst nach Zustimmung freigibt, fehlen dir alle Bestellungen von Besuchern, die ablehnen oder das Banner ignorieren. Das ist kein Fehler, sondern Absicht – du musst es nur einrechnen.
So kommst du der Größenordnung näher:
- Die meisten Banner-Tools zeigen dir eine Zustimmungsrate. Lies sie ab.
- Rechne: Backend-Bestellungen mal Zustimmungsrate ergibt grob die Zahl, die in GA4 ankommen kann.
- Liegt GA4 in dieser Größenordnung, ist dein Tracking technisch in Ordnung. Liegt es deutlich darunter, suche weiter.
Rechenbeispiel: 240 Bestellungen im Backend, Zustimmungsrate rund 78 Prozent. Erwartbar sind dann etwa 187 Käufe in GA4 – genau der Wert aus dem Beispiel oben. In diesem Fall war das Tracking nie kaputt.
Prüfe zusätzlich, ob das Banner nach Zustimmung wirklich freigibt. Ein häufiger Fehler: Der Besucher klickt zu, aber das Analytics-Tag wird erst beim nächsten Seitenaufruf aktiv. Dann fehlt der Einstieg, und der Kauf landet als Direct-Zugriff ohne Quelle. Warum das deine Kanalauswertung ruiniert, steht im Artikel zu den Traffic-Quellen im Shop.
Ursache 3: Doppelte Zählung
Wenn GA4 mehr Käufe zeigt als dein Backend, wird gezählt, was es nicht gibt. Drei typische Auslöser:
Das Tag ist zweimal eingebaut. Etwa einmal über die Shop-Integration und einmal manuell im Theme. Dann feuert jedes Ereignis doppelt, nicht nur purchase. Ein Indiz: Auch Seitenaufrufe sind auffällig hoch und die Interaktionszeit unrealistisch.
Die Bestätigungsseite wird neu geladen. Der Kunde drückt F5, schickt die Bestätigungsmail an sich selbst weiter und öffnet den Link, oder er benutzt den Zurück-Button. Ohne Schutz feuert purchase jedes Mal erneut.
Kein transaction_id. GA4 kann doppelte Käufe anhand der Bestellnummer erkennen und ausfiltern. Fehlt die transaction_id oder ist sie bei jedem Aufruf neu generiert, greift dieser Schutz nicht.
Gegenmaßnahme: Immer die echte Bestellnummer als transaction_id senden, und das Ereignis serverseitig oder per Sitzungsmerker nur einmal pro Bestellung auslösen lassen.
Ursache 4: Umsatz stimmt nicht, Bestellzahl schon
Wenn die Käufe passen, aber der Umsatz abweicht, liegt es an der Definition von value. Klär drei Fragen und schreibe die Antwort auf:
- Brutto oder netto?
- Versandkosten enthalten?
- Rabatte schon abgezogen?
Dann vergleiche mit der Definition im Backend. Sehr häufig sendet der Shop brutto inklusive Versand, während im Backend der Nettowarenwert berichtet wird. Beides ist richtig, nur nicht vergleichbar.
Prüfe außerdem, ob value als Zahl und nicht als Text gesendet wird. Ein Wert wie 1.299,00 mit deutschem Format oder ein Eurozeichen im Feld führt dazu, dass GA4 nichts oder Unsinn verbucht. Erwartet wird ein Punkt als Dezimaltrennzeichen und kein Währungssymbol.
Ursache 5: Artikel fehlen im Bericht
Käufe und Umsatz sind da, aber der Artikelbericht bleibt leer oder zeigt seltsame Einträge. Dann ist das items-Array das Problem.
Prüfe in der DebugView beim purchase-Ereignis:
- Ist
itemsüberhaupt vorhanden? - Enthält jeder Eintrag
item_idunditem_name? - Stimmen
priceundquantitypro Artikel? - Sind die
item_id-Werte dieselben wie inview_itemundadd_to_cart?
Der letzte Punkt wird oft übersehen. Wenn die Produktseite die Artikelnummer sendet und die Bestellseite die Variantennummer, kann GA4 den Weg vom Aufruf bis zum Kauf nicht verbinden. Die Trichteranalyse zeigt dann Sprünge, die es nicht gibt.
Ursache 6: Zahlungsanbieter als Quelle aller Umsätze
Wenn du in der Trafficgewinnung siehst, dass ein Zahlungsanbieter plötzlich dein bester Kanal ist, ist die Sache klar: Die Weiterleitung zum Bezahlen und zurück startet eine neue Sitzung, und der Kauf wird dieser Sitzung zugeschrieben.
Lösung: Im Datenstream unter den Tag-Einstellungen die Liste unerwünschter Verweise öffnen und die Domains aller Zahlungsanbieter eintragen, die deine Kunden durchlaufen. Die Einstellung wirkt ab dem Zeitpunkt der Änderung, nicht rückwirkend.
Ursache 7: Ein Einbruch mit Datum
Wenn die Kurve an einem bestimmten Tag abstürzt, war es kein schleichendes Problem, sondern eine Änderung. Gehe rückwärts vor:
- Notiere das Datum aus dem GA4-Bericht.
- Schau nach, was an diesem Tag passiert ist: Theme-Update, neue App oder Erweiterung, Änderung am Cookie-Banner, neues Zahlungsmodul, Umbau des Checkouts.
- Prüfe, ob eine App entfernt wurde, die das Tracking bereitgestellt hat. Das passiert häufiger als erwartet.
Deshalb lohnt es sich, technische Änderungen mit Datum zu notieren. Ohne diese Liste ist die Fehlersuche Raten.
Der komplette Prüfablauf
Arbeite ihn von oben nach unten ab, nicht quer.
- Abweichung belastbar messen. Ganzer Monat, gleiche Zeitzone, Erstattungen berücksichtigt.
- Zustimmungsrate einrechnen. Wenn die Lücke damit erklärt ist, bist du fertig.
- Testbestellung mit DebugView. Je Zahlungsart einmal.
- Parameter prüfen.
transaction_id,value,currency,items. - Auf Doppelzählung prüfen. Gleiche Bestellnummer mehrfach? Tag zweimal eingebaut?
- Wertdefinition abgleichen. Brutto/netto, Versand, Rabatte.
- Verweisliste prüfen. Zahlungsanbieter ausgenommen?
- Zeitverlauf ansehen. Gibt es ein Datum für den Bruch?
- Nach der Korrektur zwei Wochen beobachten und die Abweichung erneut rechnen.
Wenn du die Grundeinrichtung nebenbei mitprüfen willst, geht der Artikel Google Analytics 4 für Online-Shops einrichten alle Einstellungen der Reihe nach durch. Für Shopify-Shops sind die typischen Lücken in Shopify mit Google Analytics 4 verbinden beschrieben.
Was du mit korrekten Daten anders machst
Sobald GA4 und Backend zusammenpassen, werden drei Auswertungen brauchbar, die vorher nur Rauschen waren.
Der Kauftrichter. Mit vollständigen Ereignissen kannst du messen, wie viele Besucher von add_to_cart über begin_checkout bis purchase kommen. Genau dort findest du die teuersten Stellen, siehe Warenkorbabbrüche reduzieren.
Die Kanalbewertung. Erst mit korrekt zugeordneten Käufen kannst du sagen, welcher Kanal Umsatz bringt und welcher nur Sitzungen.
Werbeentscheidungen. Wenn du Gebote auf Conversions steuerst, entscheidet die Datenqualität direkt über dein Budget. Die saubere Trennung zwischen GA4 und Google Ads beschreibt der Artikel zum Conversion-Tracking in Google Ads.
Setz dir einen festen Termin, an dem du GA4-Umsatz und Backend-Umsatz einmal im Monat nebeneinanderlegst. Tracking bleibt nicht von allein richtig – es bricht bei der nächsten Änderung am Shop. In ecomando läuft dieser Abgleich als Messabdeckung mit, damit ein Bruch nicht erst drei Monate später auffällt.
Häufige Fragen
Wie groß darf die Abweichung zwischen GA4 und Shop-Backend sein?
Eine kleine Abweichung im einstelligen Prozentbereich ist normal, weil Adblocker, abgelehnte Cookies und Zeitzonen immer etwas kosten. Sobald GA4 dauerhaft deutlich weniger Bestellungen zeigt als dein Backend, liegt ein technischer Fehler vor, den du suchen solltest.
Warum zeigt GA4 mehr Bestellungen als mein Shop?
Fast immer wird das purchase-Ereignis doppelt gesendet, etwa weil das Tag zweimal eingebaut ist oder die Bestellbestätigung nach dem Neuladen der Seite erneut feuert. Prüfe, ob dieselbe transaction_id mehrfach vorkommt.
Wie prüfe ich das purchase-Ereignis am schnellsten?
Öffne die DebugView im Verwaltungsbereich von GA4, aktiviere den Debug-Modus auf deinem Gerät und führe eine Testbestellung durch. In der DebugView siehst du das Ereignis mit allen Parametern in wenigen Sekunden.
Kostet ein Cookie-Banner mich Bestelldaten?
Ja, wenn Besucher die Messung ablehnen, werden ihre Ereignisse nicht oder nur eingeschränkt erfasst. Der Verlust hängt von der Zustimmungsrate ab, deshalb solltest du diese Rate kennen, bevor du dein Tracking für defekt erklärst.
Muss die Währung im purchase-Ereignis stehen?
Ja. Ohne den Parameter currency ordnet GA4 den Umsatz nicht korrekt zu, und in den Monetarisierungsberichten bleiben Umsatzspalten leer, obwohl Käufe gezählt werden.


