Skip to content
Startseite Guides Analytics
Analytics Fortgeschritten

WooCommerce Tracking einrichten: GA4, Google Ads und Meta ohne Plugin-Chaos

Welche Plugin-Kombination für WooCommerce funktioniert, warum der Kauf nur auf die Bestellbestätigung gehört und wie du mit einer Testbestellung prüfst, dass GA4, Google Ads und Meta dieselbe Bestellung genau einmal sehen.

Fabian Weiss, Gründer von FW Delta Fabian Weiss
13 Min. 3 bis 5 Stunden inklusive Testbestellung
Das Problem

Drei Plugins schicken dieselbe Bestellung an GA4, Google Ads und Meta, jedes nach eigenen Regeln und keine Zahl stimmt mit dem Shop überein

Die Lösung

Ein Absender pro Ziel, der Kauf ausschließlich auf der Bestellbestätigung mit Bestellnummer und einheitlichem Betrag, geprüft mit einer echten Testbestellung

WooCommerceGoogle Tag ManagerGoogle Analytics 4Google AdsMeta Pixel

Drei Plugins, drei Absender, drei verschiedene Zahlen

Ein typischer WooCommerce-Shop hat über die Jahre Tracking angesammelt: Google for WooCommerce für die Anzeigen, Facebook for WooCommerce für den Pixel, dazu ein Tag-Manager-Plugin, das eine Agentur irgendwann eingerichtet hat. Jedes dieser Plugins meldet den Kauf auf seine Weise. Eines schickt den Betrag mit Versand, eines ohne. Eines feuert bei jedem Aufruf der Bestellbestätigung, eines nur beim ersten. Am Monatsende zeigt das Werbekonto mehr Bestellungen als der Shop selbst.

Dieser Leitfaden bringt Ordnung in das Setup. Er beantwortet drei Fragen: welches Plugin für welches Ziel zuständig ist, wo genau der Kauf gemessen wird und wie du mit einer einzigen Testbestellung prüfst, ob alles stimmt.


Die Entscheidung: offizielle Plugins, Tag Manager oder Alles-in-einem

Es gibt drei gängige Wege, WooCommerce mit GA4, Google Ads und Meta zu verbinden. Alle drei funktionieren. Gemischt funktionieren sie nicht.

WegWas dahinterstecktPasst, wenn
Offizielle PluginsGoogle for WooCommerce (früher Google Listings & Ads) misst laut FAQ mit einem eigenen Google-Tag für Google Ads. Google Analytics for WooCommerce sendet die GA4-Ereignisse. Facebook for WooCommerce liefert Pixel und Conversions API in einemDu willst keinen Tag Manager pflegen und brauchst nur die Standardereignisse
Google Tag Manager plus Data-Layer-PluginGTM4WP schreibt die Bestelldaten in den Data Layer, alle Tags liegen im Tag ManagerEine Person soll alle Tags an einem Ort sehen, ändern und testen können
Alles-in-einem-PluginPixelYourSite und ähnliche Plugins senden aus WordPress heraus an mehrere PlattformenKleiner Shop, keine Agentur, keine eigenen Ereignisse

Die Kurzfassung der Abwägung:

  • Offizielle Plugins sind am wenigsten Arbeit, aber jedes Plugin entscheidet selbst, was “Betrag” heißt und wann der Kauf gemeldet wird.
  • Tag Manager ist die einzige Variante, bei der du selbst festlegst, welche Zahl an welches Ziel geht. Dafür muss jemand den Container verstehen.
  • Alles-in-einem ist bequem, bis du etwas brauchst, was das Plugin nicht vorgesehen hat.

Unsere Empfehlung für Shops mit Werbebudget: Tag Manager mit GTM4WP, weil sich dort jede Zahl nachvollziehen lässt. Für Shops ohne Werbebudget reichen die offiziellen Plugins, solange du die folgende Regel einhältst.


Die Regel: ein Absender pro Ziel

Für jedes Ziel (GA4, Google Ads, Meta) darf genau ein Absender im Shop stehen. Nicht “am liebsten einer”, sondern genau einer. Sobald zwei Plugins denselben Kauf an dasselbe Werbekonto melden, hast du doppelte Bestellungen, die sich nur teilweise wieder herausrechnen lassen.

Die Plugin-Dokumentation ist an dieser Stelle eindeutig. Google for WooCommerce schreibt in den FAQ, dass das Plugin die Anzeigenleistung mit seinem eigenen Google-Tag misst und liefert einen Filter mit, um dieses Tracking abzuschalten, wenn du stattdessen den Tag Manager nutzt, ausdrücklich um doppeltes Tracking zu vermeiden. Google Analytics for WooCommerce warnt, dass mehrere Tracking-Codes auf derselben Seite Probleme verursachen können. Facebook for WooCommerce bietet ebenfalls einen Filter, um Pixel und Conversions API des Plugins zu deaktivieren.

So sieht eine saubere Aufteilung aus:

ZielAbsenderAlle anderen
GA4Tag Manager (oder Google Analytics for WooCommerce)abgeschaltet
Google AdsTag Manager (oder Google for WooCommerce)abgeschaltet
MetaFacebook for WooCommerce (Pixel plus Conversions API) oder Tag Manager plus eigener Serverabgeschaltet

Ein Punkt wird oft übersehen: Google for WooCommerce kannst du für den Produktfeed und Merchant Center weiter nutzen und trotzdem sein Tracking abschalten. Feed und Messung sind zwei getrennte Funktionen desselben Plugins.


Die Bestellbestätigung ist der einzige Ort für den Kauf

WooCommerce hängt nach dem Checkout den Endpunkt order-received an die Checkout-URL. Die Endpunkt-Dokumentation führt ihn als “Order received (thanks)”. Das ist die Seite, auf der der Kauf gemessen wird. Nirgendwo sonst.

Warum nur dort:

  • Auf der Checkout-Seite existiert die Bestellung noch nicht oder ist noch nicht bezahlt. Wer dort den Kauf meldet, zählt abgebrochene Zahlungen mit.
  • Zahlungsanbieter wie PayPal, Klarna oder Stripe leiten nach der Zahlung zurück in den Shop. Die Payment Gateway API von WooCommerce sieht dafür get_return_url( $order ) vor, also die Bestellbestätigung. Wenn ein Gateway stattdessen eine eigene Danke-Seite zeigt oder die Rückleitung optional ist, kommt der Käufer nie auf order-received an. GTM4WP nennt das in seiner Fehlerliste als häufigste Ursache fehlender Käufe.
  • Neuladen der Bestellbestätigung erzeugt ohne Schutz einen zweiten Kauf. GTM4WP markiert deshalb laut Einstellungsreferenz bereits gemessene Bestellungen und misst standardmäßig nur Bestellungen, die jünger als 30 Minuten sind. Beide Schutzmechanismen sind Einstellungen, keine Selbstverständlichkeit.
  • Eigene Danke-Seiten aus Checkout-Plugins oder Page-Buildern lösen die WooCommerce-Hooks der Bestellbestätigung nicht aus. GTM4WP hat dafür die Option “Custom order received (thank-you) page”, PixelYourSite verlangt für eigene Danke-Seiten sein eigenes Zusatzmodul.

Im Tag Manager sieht der Kauf im Data Layer so aus. GTM4WP erzeugt diesen Push selbst, sobald “Track e-commerce” aktiviert ist:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
  event: "purchase",
  ecommerce: {
    transaction_id: "10482",
    value: 80.00,
    tax: 15.20,
    shipping: 4.90,
    currency: "EUR",
    items: [
      { item_id: "SKU-2201", item_name: "Beispielprodukt", price: 80.00, quantity: 1 }
    ]
  }
});

Der GA4-Tag, der Google-Ads-Conversion-Tag und ein eventueller Meta-Tag hängen alle an demselben Auslöser purchase. Eine Bestellung, ein Push, drei Tags. Die Data-Layer-Dokumentation von Google beschreibt, wie der Tag Manager diese Pushes der Reihe nach abarbeitet.


Bestellnummer, Betrag und Währung

Drei Felder entscheiden darüber, ob Shop und Werbekonto dieselbe Bestellung meinen.

Die Bestellnummer als Transaktions-ID. GA4 nutzt laut Ereignisreferenz die transaction_id, um doppelte Käufe zu vermeiden. Google Ads erkennt laut Hilfe zu Transaktions-IDs die zweite Conversion mit derselben ID als Duplikat und warnt ausdrücklich davor, feste oder wiederholte Werte zu senden, weil das zu deutlich zu wenig gezählten Conversions führt. Nimm die WooCommerce-Bestellnummer, unverändert, in allen drei Zielen. Nur dann kannst du später eine Zahl im Werbekonto einer Bestellung im Shop zuordnen.

Betrag: netto oder brutto, aber überall gleich. GA4 definiert value als Summe aus Preis mal Menge aller Positionen und sagt ausdrücklich: ohne shipping und ohne tax, die getrennt mitgehen. Google Ads erwartet laut Hilfe zu transaktionsspezifischen Werten einen Zahlenwert mit Punkt als Dezimaltrenner plus Währung, legt aber nicht fest, ob Steuer und Versand enthalten sind. Meta verlangt für Purchase laut Pixel-Referenz value und currency als Pflichtfelder, ebenfalls ohne Vorgabe zur Steuer. Das heißt: Die Definition triffst du. Entscheide dich für eine (Warenwert ohne Steuer und Versand ist die naheliegende, weil GA4 sie vorgibt), schreibe sie auf und stelle jedes Plugin darauf ein. GTM4WP hat dafür die Optionen “Exclude tax from revenue” und “Exclude shipping from revenue”, beide standardmäßig aus.

Währung als ISO-Code. EUR, nicht €. Bei Shops mit mehreren Währungen muss die Währung aus der Bestellung kommen, nicht aus der Shop-Einstellung.

FeldGA4Google AdsMeta
Bestellnummertransaction_idtransaction_idevent_id für die Zuordnung von Pixel und Server
Betragvalue ohne Steuer und Versandvalue, Definition liegt bei dirvalue, Definition liegt bei dir
Währungcurrencycurrencycurrency

Auf WordPress laufen Cookie-Banner und Tracking-Plugins nebeneinander und müssen miteinander reden. Dafür gibt es zwei Ebenen.

WP Consent API. Die WP Consent API ist ein Plugin, das die Kommunikation zwischen Cookie-Banner und anderen Plugins vereinheitlicht. Es kennt fünf Kategorien: functional, preferences, statistics, statistics-anonymous und marketing. Wichtig laut Dokumentation: Das Plugin selbst verarbeitet keine Einwilligung und blockiert nichts. Es ist ein Rahmen, über den ein Plugin abfragen kann, ob für eine Kategorie eine Einwilligung vorliegt. Ob dein Tracking-Plugin und dein Cookie-Banner diesen Rahmen nutzen, steht in deren jeweiliger Dokumentation.

Consent Mode für die Google-Tags. Borlabs Cookie beschreibt in seiner Anleitung zu Consent Mode v2 zwei Wege. Der erste läuft über die eigenen Services für Google Analytics und Google Ads, bei denen der Basic Consent Mode mit dem Paket bereits aktiv ist. Der zweite läuft über den Google-Tag-Manager-Service für komplexere Setups. Real Cookie Banner erklärt in seiner Anleitung zu Tag Manager und Consent Mode, dass der Tag Manager bis zur Einwilligung blockiert wird und die Einwilligungen als zusätzliche Consent-Typen an den Tag Manager übergeben werden, sodass ein Tag nur feuert, wenn der passende Typ auf “Granted” steht.

Was das für den Kauf bedeutet: Ohne Einwilligung sendet der Browser im Basic Consent Mode nichts, auch nicht den Kauf. GTM4WP nennt das ausdrücklich als Grund für fehlende Käufe. Das ist kein Fehler, sondern das Ergebnis der Entscheidung, die dein Cookie-Banner umsetzt. Wie du Banner und Consent Mode technisch verbindest, steht im Leitfaden Cookie-Banner mit Consent Mode v2 verbinden.


Eigener Server: drei Wege für WooCommerce

Wenn ein Teil der Käufer die Bestellbestätigung nie sieht oder Tracking im Browser blockiert, hilft nur eine Meldung vom Server. WooCommerce bietet dafür drei Anschlussstellen.

1. Conversions API in Facebook for WooCommerce. Laut Dokumentation ist die Conversions API im Plugin von Haus aus enthalten, ohne zusätzliche Einstellung und die Ereignisse aus Pixel und Server werden über eine gemeinsame Event-ID dedupliziert. Das ist der einfachste Weg zu Meta und der Grund, warum das Plugin in der Tabelle oben der Absender für Meta bleibt, auch wenn alles andere im Tag Manager liegt.

2. Bestell-Webhook oder woocommerce_payment_complete. WooCommerce kann laut Webhook-Dokumentation bei jeder neuen oder geänderten Bestellung eine Nachricht an eine URL schicken, mit einem geheimen Schlüssel signiert. Die Zustellprotokolle liegen unter WooCommerce, Status, Logs. Die Themen dafür heißen order.created und order.updated. Alternativ hängst du dich per Code an die Aktion woocommerce_payment_complete, die WooCommerce laut Payment Gateway API auslöst, sobald die Zahlung bestätigt ist. Ein kleiner Dienst nimmt die Bestellung entgegen und reicht sie mit Bestellnummer, Betrag und Währung an GA4, Google Ads oder Meta weiter. Der Aufbau ist im Leitfaden zu Tracking über den eigenen Server beschrieben.

3. Data Manager API von Google. Die Data Manager API nimmt laut Google Conversion-Ereignisse mit Transaktions-ID als zusätzliche Datenquelle neben dem Google-Tag entgegen und erlaubt nachträgliche Wertkorrekturen, etwa endgültige Warenkorbsummen. Google nennt für diese Mehrquellen-Conversions eine Testphase von 14 Tagen, bevor sie in die Gebotsstrategie einfließen.

Für alle drei gilt: Der Server ergänzt den Browser, er ersetzt ihn nicht. Details zur Deduplizierung stehen im Leitfaden zur Meta Conversions API.


Prüfen mit einer echten Testbestellung

Testmodus, Sandbox und Vorschau reichen nicht. Lege einen Gutschein über 100 Prozent an, bestelle ein echtes Produkt mit einer echten Zahlungsart und gehe die Liste durch. Der Gutschein sorgt dafür, dass kein Geld fließt, die Bestellung aber jeden Schritt durchläuft, den ein Kunde auch durchläuft.

  1. Vor der Bestellung: Aktiviere in GA4 die DebugView. Laut Google-Hilfe geht das über Tag Assistant oder den Parameter debug_mode im Tag. Öffne parallel im Meta Events Manager das Werkzeug für Testereignisse für deinen Pixel.
  2. Checkout: Zahle mit einer Zahlungsart, die extern umleitet, nicht mit Rechnungskauf. Nur so testest du die Rückleitung.
  3. Bestellbestätigung: Filtere die Netzwerkanfragen in den Entwicklerwerkzeugen nach collect (GA4), googleadservices (Google Ads) und facebook.com/tr (Meta). Pro Ziel darf genau ein Kauf abgehen. Notiere Bestellnummer, Betrag und Währung aus jeder Anfrage.
  4. Neu laden: Lade die Bestellbestätigung neu. Es darf kein zweiter Kauf abgehen.
  5. GA4 DebugView: Der Kauf erscheint mit transaction_id, value, currency und den Positionen. Der Betrag entspricht deiner Definition aus dem Abschnitt oben.
  6. Google Ads: Öffne die Conversion-Aktion. Laut Google-Hilfe heißt “Unverified”, dass der Tag noch nie gefeuert hat. Nach der Testbestellung sollte der Status innerhalb der von Google genannten Frist wechseln. Die Übersicht der Status erklärt “Active”, “Needs attention”, “Misconfigured” und “Awaiting conversions”.
  7. Meta Events Manager: Im Testereignis-Werkzeug erscheinen Pixel-Ereignis und Server-Ereignis. Laut Deduplizierungs-Dokumentation werden beide nur zusammengeführt, wenn event_id und event_name übereinstimmen und das zweite innerhalb von 48 Stunden nach dem ersten eintrifft. Das Werkzeug zeigt, welches Ereignis verarbeitet und welches dedupliziert wurde. Werden beide verarbeitet, zählt Meta doppelt.
  8. Storno: Storniere die Testbestellung im Shop, damit sie nicht in der Umsatzstatistik bleibt.
  9. Am nächsten Tag: Vergleiche die Bestellungen des Tages im Shop mit GA4 und dem Werbekonto. Kleine Abweichungen durch Cookie-Ablehnung sind normal, doppelte Bestellnummern sind es nicht.

Die fünf häufigsten Fehler bei WooCommerce

FehlerWoran du ihn erkennstUrsacheLösung
Plugin sendet den Kauf doppeltWerbekonto zeigt mehr Bestellungen als der Shop, oft fast genau doppelt so vieleZwei Plugins melden an dasselbe Ziel oder ein Plugin feuert beim Neuladen erneutEin Absender pro Ziel, Bestellnummer als Transaktions-ID, Schutz gegen Neuladen aktiv lassen
Kauf auf checkout statt order-receivedMehr Käufe als bezahlte Bestellungen, Beträge ohne BestellnummerAuslöser auf der Checkout-URL statt auf dem Endpunkt der BestellbestätigungAuslöser auf den purchase-Push oder die order-received-URL umstellen
Caching-Plugin liefert eine gespeicherte Danke-SeiteAlle Käufe tragen dieselbe Bestellnummer oder der Tag-Manager-Container fehlt nur auf dieser SeiteCheckout-Seiten wurden nicht vom Cache ausgenommenWarenkorb, Checkout und Mein Konto laut WooCommerce-Dokumentation vom Cache ausschließen
Zahlungsanbieter leitet auf eine andere SeiteKäufe mit PayPal oder Klarna fehlen, Rechnungskauf ist vollständigRückleitung im Gateway aus oder eigene Danke-Seite ohne WooCommerce-HooksAutomatische Rückleitung aktivieren, eigene Danke-Seite im Plugin eintragen, Server-Weg für den Rest
Steuer und Versand uneinheitlichGA4-Umsatz und Werbekonto-Umsatz weichen um einen festen Prozentsatz oder einen festen Betrag abEin Plugin sendet brutto mit Versand, das andere nettoEine Definition festlegen, jedes Plugin darauf einstellen, mit der Testbestellung nachrechnen

Wo das hingehört

WooCommerce-Tracking ist nicht schwer, es ist nur an vielen Stellen gleichzeitig konfiguriert. Der Service Web-Tracking macht genau das: Plugin-Bestand prüfen, Absender festlegen, Kauf auf der Bestellbestätigung mit Bestellnummer und Betrag aufsetzen, Testbestellung als Abnahme. Wenn ein Teil der Bestellungen den Browser nie erreicht, kommt Tracking über den eigenen Server dazu, nicht davor.

Wenn du erst wissen willst, ob dein Shop überhaupt betroffen ist, reicht der Tracking-Check. Er zeigt dir, welche Absender auf deiner Bestellbestätigung aktiv sind und ob die Bestellnummer sauber ankommt.

FW Delta richtet die Technik ein. Welche Einwilligung dein Cookie-Banner einholen muss und mit welcher Rechtsgrundlage, bleibt bei dir und deiner Rechtsberatung. Dieser Leitfaden ist eine technische Anleitung, keine Rechtsberatung.

Newsletter

Research für technische Entscheidungen

Neue Reports, Benchmarks und technische Analysen zu SaaS-Ökonomie, AI Engineering und eigener Infrastruktur.

Original Research Öffentliche Quellen Keine Sales-Mails

Mit der Anmeldung erhältst du neue Analysen und Updates von FW Delta per E-Mail. Du kannst deine Einwilligung jederzeit widerrufen. Weitere Informationen in der Datenschutzerklärung.