E-Commerce-Checks im Detail
E-Commerce ist der Bereich, in dem schon kleine Tracking-Lücken zu großen Umsatz-Lücken im Reporting führen. Der Auditor prüft das auf zwei Ebenen: Live (über die GA4 Data API) und in der Tiefe (über BigQuery).
<!-- SCREENSHOT: E-Commerce-Funnel-Sektion mit roter Ampel und Funnel-Visualisierung -->
Was prüft die App?
Vier zentrale Themen liegen hinter den E-Commerce-Checks:
- Pflicht-Events vorhanden -
view_item,add_to_cart,begin_checkoutundpurchasemüssen alle gemessen werden. - Funnel-Completion - wie viele Sessions, die einen
begin_checkoutfeuern, kommen tatsächlich bispurchase? - Duplikate - werden Käufe versehentlich doppelt erfasst?
- Transaktions-Attribution - werden Käufe sauberen Kanälen zugeordnet,
oder landen sie überproportional auf
DirectundUnassigned?
Wann wird ein Check ausgelöst?
Aus dem Code:
| Check | Schwelle |
|---|---|
| Pflicht-Events | alle vier vorhanden = Grün; eines fehlt = Rot |
Funnel-Completion (purchase / begin_checkout) |
>50 % = Grün, 20-50 % = Gelb, <20 % = Rot |
| Duplicate Transactions | >1 % doppelte purchase = Warnung |
| Direct/Unassigned bei Käufen | <15 % = Grün, 15-30 % = Gelb, >30 % = Rot |
Die Logik liegt in app/services/ga4_api_check_service.py:_run_data_checks()
(Pflicht-Events + Attribution) und in den SQL-Queries
ecommerce_funnel.sql,
ecommerce_transactions.sql
und duplicate_events.sql.
Typische Ursachen
- Fehlende
purchase-Events → Checkout läuft auf einer Subdomain ohne Tracking, Payment-Redirect-URL löscht Cookies vor dem Trigger, Headless-/No-JS-Checkout. - Doppelte Transaktionen → Reload der Danke-Seite, Popup-Workflow feuert Trigger mehrfach, fehlerhafte Dedup-Logik im GTM, parallele Universal-Analytics-Implementierung läuft mit. Tieferer Hintergrund im Blog Doppelte Käufe in GA4.
- Unvollständige Item-Daten →
priceunditem_idwerden als(not set)übergeben, weil dynamische Felder nicht im DataLayer landen. - Hoher Direct-Anteil bei Käufen → Payment-Provider als Referrer
(siehe Blog Bank- und Payment-Provider als Referrer)
oder Cross-Domain-Tracking ohne
_ga-Cookie-Pass.
<!-- SCREENSHOT: Doppel-Transaktionen-Tabelle mit Transaction-ID, Timestamp, Umsatz-Impact -->
So gehst du vor
- Pflicht-Events zuerst - wenn
purchasefehlt, lohnt jede weitere Auswertung erst, sobald das Tracking läuft. - Funnel-Sektion
create_ecommerce_funnel_sectionöffnen - sie zeigt die Drop-offs zwischenview_item→add_to_cart→begin_checkout→purchaseals Sankey-/Barchart. - Duplikate-Sektion
create_duplicate_transactions_sectionprüfen - sie listet konkrete Transaction-IDs, die mehrfach gefeuert wurden, inkl. Umsatz-Impact. - Attribution kreuzprüfen mit Attribution & Akquisitions-Qualität.
- Bei Item-Datenproblemen in Event-Qualität & PII-Hinweise
weiterlesen - dort liegt die PII- und
(not set)-Diagnose.