Matomo E-Commerce Tracking

Integration für deinen Onlineshop

In der dynamischen Welt des E-Commerce ist die genaue Verfolgung von Kundeninteraktionen entscheidend für den Erfolg. Jeder Kauf, die Aufnahme eines Artikels in den Warenkorb oder der Klick auf einen Call-to-Action (CTA) und jedes Scrollen liefert wertvolle Daten. Mit der richtigen Interpretation kann dieses Wissen den Erfolg deines Online-Geschäfts unterstützen.

Hier kommt die Analytics mit Matomo ins Spiel – eine leistungsstarke und flexible Open Source Tracking-Lösung, die Datenschutz großschreibt und gleichzeitig tiefe Einblicke in das Verhalten der Besuchenden ermöglicht. In diesem Artikel zeige ich dir die einzelnen Ereignisse beim E-Commerce-Tracking und wie man diese in Matomo mithilfe der Events integriert.

Für verschiedene Onlineshops gibt es teils kostenfreie oder kostenpflichtige Erweiterungen, die dir die meiste Arbeit abnehmen können. Ob dies immer die beste Wahl ist, werde ich zu einem späteren Zeitpunkt auf dieser Seite versuchen zu erörtern.

Warum du E-Commerce-Tracking in Matomo nutzen solltest

Lernen um zu verbessern...

Durch eine erweiterte Erfassung der typischen E-Commerce-Aktionen wie das Ansehen von Artikeln, die Aufnahme von Artikel in den Warenkorb und natürlich die Bestellung - jeweils mit Informationen zu den entsprechenden Artikel und Warengruppen - kannst du viele wertvolle Informationen zum Nutzerverhalten erhalten.  Diese Informationen helfen dir zu verstehen, was Kunden suchen und wo Verbesserungen erforderlich sein könnten. Die Auswertung von bevorzugten Kategorien und/oder Hersteller kann dir helfen, dein Sortiment zu optimieren. Und es gibt so viele weitere Möglichkeiten, aus diesem Wissen Optimierungen vorzunehmen. Aber: das musst du auch wollen! Denn jede Auswertung benötigt Zeit, sowohl in der Erfassung als auch vor allem bei der Auswertung.

E-Commerce & die DSGVO

In der EU gibt es die GDPR, welche in Deutschland unter dem Begriff der DSGVO bekannt ist. Dieses Gesetz regelt diverse Dinge rund um den Datenschutz. Ich darf und möchte hier keine Rechtsberatung geben, möchte dich aber darauf hinweisen, dass aufgrund verschiedener Anforderungen in der DSGVO das detaillierte Tracking von Aktivitäten in einem Onlineshop eventuell nur nach Abfrage eines Consent zulässig sind. Bitte besprich also mit deinem Datenschutzbeauftragten vor der Implementierung des vollständigen E-Commerce-Trackings, welche Daten ohne die Einwilligung gemessen werden dürfen und welche die Einwilligung (aka Consent) benötigen.

Aktivieren von E-Commerce in Matomo

Zum Aktivieren der E-Commerce-Berichte muss man die Datenerfassung in den Einstellungen der jeweiligen Webseite aktivieren.

Die folgenden Einstellungen können nur von einem Haupt-Administrator (Super-User) durchgeführt werden. Solltest du die nachfolgenden Anweisungen bei dir nicht nachvollziehen können, hast du vermutlich nicht die ausreichenden Berechtigungen

Gehe hierzu wie folgt vor:

  1. in der Kopfnavigation "Einstellungen" klicken
  2. In der linken Navigation auf "Webseiten" und darunter auf "Verwalten".
  3. Klick dann bei der jeweiligen Webseite auf das Icon zum "bearbeiten"
  4. Scrolle in den Einstellungen weiter nach unten bis zum Abschnitt "E-Commerce".
  5. Aktiviere hier die Auswahl auf "Ecommerce aktivieren" (in der deutschen Übersetzung ist Matomo hier etwas inkonsequent)

Solltest Du in den Einstellungen den Abschnitt "E-Commerce" nicht sehen, dann ist die Erweiterung inaktiv. Gehe dann auf "Plugins" in der linken Navigation und dort auf "Plugins verwalten". Suche dann nach der Erweiterung "Ecommerce" und prüfe, ob diese aktiv ist.

Die Erfassung von Details zum E-Commerce in Matomo wird über die Erweiterung "Ecommerce", welche im Core von Matomo enthalten ist, angeboten. Das bedeutet, jede Matomo-Installation kann verwendet werden. Aber

Schritte zur Aktivierung des E-Commerce-Trackings in Matomo

* Matomo verstehen und optimal nutzen *
Die individuelle Schulung für dein Unternehmen!
Jetzt Erstgespräch vereinbaren

Übersicht der E-Commerce Events in Matomo

Im Matomo gibt drei Kategorien von Aktionen (Ereignisse), die Sie für ein vollständiges E-Commerce-Tracking integriert werden sollten:

  1. Produktansichten (setEcommerceView)
    Die Erfassung von Produktansichten ist optional. Sie ermöglicht die Ermittlung von Konversionsraten auf Produktbasis. Ebenfalls optional können mit diesem Ereignis auch Kategorieseiten erfasst werden.
    Die Erfassung von Informationen mit setEcommerceView ist eine Erweiterung für die Seiteninformationen und muss somit vor dem Event trackPageView bereitstehen.
  2. Warenkorbaktualisierungen (trackEcommerceCartUpdate)
    Der Inhalt des Warenkorbs kann optional erfasst werden. Werden Warenkorbinhalte übergeben und erfolgt keine Bestellung, so stehen die Informationen zu den Artikeln und der Warenkorbsumme als „verlassene Warenkörbe“ zur Verfügung.
  3. Bestellung mit (trackEcommerceOrder)
    Dies ist das einzige, zwingend notwendige Ereignis für ein E-Commerce-Tracking mit Matomo.

Die nachfolgende Grafik gibt einen Überblick über die einzelnen Aktionen bzw. Ereignisse.

E-Commerce Events in Matomo in der Übersicht

Produktansichten mit Matomo erfassen

Conversion-Rates werden häufig als wichtige Metrik eingesetzt. Unabhängig vom E-Commerce-Tracking kann Matomo auf Basis von Zielen die Conversion-Rate für die gesamte Webseite berechnen. Sobald das E-Commerce-Tracking aktiviert ist, wird automatisch auch der Kauf als Ziel bereitgestellt und somit eine E-Commerce-Conversion für die gesamte Webseite berechnet. Um eine Conversion auf Basis einzelner Artikel und/oder Kategorien zu ermitteln, müssen über die Aktion setEcommerce-View Informationen zum jeweils angesehenen Artikel und ggf. auch den Kategorien an Matomo übergeben.

Mit der Aktion setEcommerceView wird sowohl eine Produkt-Detailseite als auch die Information über eine angesehene Kategorie an Matomo übertragen. Der Unterschied zwischen beiden Varianten besteht in der Verwendung der Parameter.

Wichtig: Die mit setEcommerceView erfassten Informationen stellen eine Erweiterung für die Informationen einer Seite dar. Dementsprechend müssen die Informationen immer vor dem trackPageView Anruf bereitgestellt werden.

Für das Tracking von Produktansichten mit
    setEcommerceView
stehen folgende Parameter zur Verfügung:

  • Artikelnummer (productSKU, erforderlich)
    Jeder Artikel benötigt eine eindeutige Artikelnummer. Diese Kennung muss hier als Text (String) übergeben werden.
  • Artikelname (productName, empfohlen)
    Der zweite Parameter beinhaltet den Namen des Artikels. Sinnvollerweise sollte diese Angabe sowohl in der Artikel-Dateiseite als auch später im Warenkorb und bei der Bestellung identisch sein. Dieser Wert muss ebenfalls als Text (String) bereitgestellt werden.
  • Kategoriename(n) (categoryName, optional)
    Sofern für den Artikel eine Hauptkategorie oder verschiedene Kategorien zugewiesen sind, können diese entweder als Text (String) oder als Array übergeben werden. Auch hier ist wieder darauf zu achten, dass diese Informationen sinnvollerweise sowohl in der Artikel-Detailseite als auch später im Warenkorb und vor allem bei der Bestellung identisch sind. Die Bereitstellung mehrerer Kategorien erfolgt z.B. in dieser Form: ["Bücher", "Neuerscheinung", "Technik"]
    Sollten keine Kategorien verfügbar sein, kann diese Angabe mit dem Wort „false“ (ohne Anführungszeichen) übersprungen werden.
  • Preis (price, optional)
    Die Bereitstellung des Artikel-Einzelpreises ist optional und muss entweder als Ganzzahl oder als Fließkommazahl mit einem Punkt (.) als Dezimaltrenner bereitgestellt werden. Sofern im Rahmen der Artikel-Detailseite kein Einzelpreis verfügbar ist, kann die Angabe mit dem Wort „false“ (ohne Anführungszeichen) übersprungen werden. Als letzter Parameter kann er auch entfallen.

Beispiel für eine Artikel-Detailseite

// Artikel-Details für Matomo bereitstellen
_paq.push(['setEcommerceView',
    "0123456789",                // (productSKU, erforderlich)
    "Suchmaschinen-Optimierung", // (productName, empfohlen)
    "Bücher",                    // (categoryName, optional)
    49.90                        // (price, optional)
]);

// Erst nach der Bereitstellung der Daten mit setEcommerceView
// darf das trackPageView Event ausgelöst werden
_paq.push(['trackPageView']);

Kategorieansichten mit Matomo erfassen

Eine Kategorie wird, wie die Produktdetailansicht, mit der Aktion setEcommerceView an Matomo übergeben. Allerdings gibt es in diesem Fall weder die Artikel-ID (productSKU) noch einen Artikelnamen (productName). Beide Angaben müssen mit dem Wert „false“ (ohne Anführungszeichen) übergeben werden. Dafür ist der Kategoriename (categoryName) als Text (String) eine Pflichtangabe. Der vierte Parameter Preis darf ebenfalls nicht verwendet und muss entweder mit einem „false“ belegt werden oder kann als letzter Parameter auch entfallen.

// Artikel-Details für Matomo bereitstellen
_paq.push(['setEcommerceView',
    false, (keine productSKU)
    false, // (kein productName)
    "Bücher" // categoryName ist notwendig
]);

// Zur Übergabe wird trackPageView aufgerufen
_paq.push(['trackPageView']);

Matomo und der Warenkorb

Matomo speichert den Warenkorb nur als Information in der Besuchersession. Änderungen am Warenkorb können, obwohl die Events dies vermuten lassen, nicht auf zuvor erfasste Warenkörbe angewendet werden!

Sofern mit dem Ereignis trackEcommerceCartUpdate der Warenkorbinhalt an Matomo übergeben wird, wird dieser Warenkorb bis zum Ende des Besuchs beibehalten und gilt, sofern keine Bestellung ausgelöst wurde, als "verlassener Warenkorb".

Änderungen am Warenkorb

Ändern sich Artikel im Warenkorb, so muss der vollständige, aktuelle Warenkorb zuerst mit dem Event addEcommerceItem Artikel für Artikel in das Warenkorb-Objekt aufgenommen werden. Erst danach könnte man mit removeEcommerceItem einzelne Artikel aus dem temporären Warenkorb-Objekt entfernen. Dies erscheint nur bei einer Single Page Application (SPA) als sinnvoll. In den allermeisten Onlineshops wie Shopware, WooCommerce, JTL, Magento und anderen wird nach einem Seitenwechsel das zuvor angelegte JavaScript-Objekt des Warenkorbs von Matomo nicht mehr existieren und muss somit neu erfasst werden. Eventuell könnte bei mehrfachen Warenkorb-Aufnahmen innerhalb einer Seite, welche per Ajax realisiert werden, eine partielle Änderung möglich sein. Dies sollte fallweise geprüft werden.

Die Aktion addEcommerceItem ist im Aufbau dem setEcommerceView sehr ähnlich und nutzt als 5. Parameter die Anzahl der jeweiligen Artikel-Position im Warenkorb. Wird dieser Wert nicht übergeben, wird der Standard 1 verwendet.

Aufnahme von Artikel in den Matomo Warenkorb

Im Gegensatz zu setEcommerceView erfolgt die Übertragung des Warenkorbs mithilfe der Aktion trackEcommerceCartUpdate unabhängig von der trackPageView Aktion. Bei der Übergabe sollte der Gesamtwert des Warenkorbs bereitgestellt werden. Eine Summe der Einzelpositionen ist nicht vorgesehen. Im addEcommerceItem gibt es nur den Einzelpreis und die Anzahl der Artikel-Position im Warenkorb.

Parameter von addEcommerceItem

Mit der Aktion addEcommerceItem werden einzelne Artikel in das Warenkorb-Objekt aufgenommen. Für jede Artikel-ID darf nur ein Eintrag übergeben werden.

  • Artikelnummer (productSKU, erforderlich)
    Eindeutige Produkt-Kennung wie im setEcommerceView
    Übergabe als Text (String)
  • Artikelname (productName, empfohlen)
    Name des Artikels wie im setEcommerceView
    Übergabe als Text (String)
  • Kategoriename(n) (categoryName, optional)
    Name der Kategorie(n) wie im setEcommerceView
    Übergabe als Text (String) oder als Array. Wenn nicht verfügbar, dann das Wort false verwenden
  • Preis (price, optional)
    Einzelpreis des Artikels als Ganzzahl oder Fließkommazahl mit einem Punkt (.) als Dezimaltrenner. Sofern nicht verfügbar, das Wort false verwenden.
  • Anzahl (quantity, optional)
    Anzahl der Einzelartikel im Warenkorb als Ganzzahl. Standard ist 1.

Parameter von trackEcommerceCartUpdate

Die Aktion trackEcommerceCartUpdate wird für die Übergabe des aktuellen JavaScript-Objektes des Warenkorbs verwendet und sollte als Parameter die Gesamtsumme der im Warenkorb befindlichen Artikel übergeben. Wird dieser Wert nicht gesetzt, so wird Matomo den Warenkorb mit einem Betrag von 0 annehmen.

  • Warenkorbwert (price, optional)
    Gesamtpreis aller Artikel im Warenkorb. In der Regel nur der Artikel ohne eventuelle Versandkosten. Wenn Versandkosten bereits bekannt sind, sollten diese ggf. als eigener Artikel zusätzlich erfasst werden.
    Die Angabe hat als Ganzzahl oder Fließkommazahl mit einem Punkt (.) als Dezimaltrenner zu erfolgen. Sofern kein Wert vorhanden ist, kann die Zahl 0 übergeben werden oder der Parameter entfallen.

Beispiel für ein Warenkorb Update

// Erster Artikel im Warenkorb
_paq.push(['addEcommerceItem',
    "0123", // (productSKU, erforderlich)
    "Suchmaschinen-Optimierung", // (productName, empfohlen)
    "Bücher", // (categoryName, optional)
    49.90, // (price, optional)
    1 // (quantity, optional)
]);

// Zweiter Artikel im Warenkorb
_paq.push(['addEcommerceItem',
    "5678", // (productSKU, erforderlich)
    "Webanalytics", // (productName, empfohlen)
    "Bücher", // (categoryName, optional)
    29.90, // (price, optional)
    1 // (quantity, optional)
]);

// Übergabe der Daten an Matomo durch
// trackEcommerceCartUpdate mit Gesamtpreis
_paq.push(['trackEcommerceCartUpdate', 79.80]);

Bestellung am Matomo senden

Der wohl wichtigste Schritt

Ob du die Artikeldetailseiten, die Kategorieseiten oder die Aufnahme und Änderung am Warenkorb an Matomo übergibst, bleibt dir überlassen. Aber um E-Commerce-Tracking durchzuführen, ist die Übergabe der Bestellung zwingend notwendig. Natürlich empfehle ich dringend auch die anderen Ereignisse zu nutzen. Aber an dem folgenden führt kein Weg vorbei.

Die Erfassung einer Bestellung ähnelt der Übergabe der Werte für ein Update des Warenkorbes. Zuerst müssen im Warenkorb-Objekt alle Einzelpositionen des bestellten Warenkorbes mit addEcommerceItem bereitgestellt und im Abschluss mit der Aktion trackEcommerceOrder diese Artikel zu einer Bestellung übergeben werden.

Die Aktion trackEcommerceOrder benötigt die folgenden Informationen.

Parameter von trackEcommerceOrder

Die Fixierung einer Bestellung erfolgt mit der Aktion
   trackEcommerceOrder
und den folgenden Parameter:

  • Bestellnummer (orderId, erforderlich)
    Eine eindeutige Referenznummer, um Duplikate zu vermeiden. Übergabe als Text (String)
  • Gesamtumsatz (grandTotal, erforderlich)
    Die Rechnungssumme, einschließlich Steuern und Versand und abzüglich etwaiger Rabatte.
    Übergabe als Ganzzahl oder Fließkommazahl mit einem Punkt als Dezimaltrenner.
  • Zwischensumme (subTotal, optional) – Integer/Float
    Die Gesamtsumme der Artikel ohne Versandkosten, aber incl. Steuern (Bruttobetrag)
  • Steuern (tax, optional)
    Summe der gesamten enthaltenen Steuer unabhängig vom Steuersatz
    Übergabe als Ganzzahl oder Fließkommazahl mit einem Punkt als Dezimaltrenner.
  • Versandkosten (shipping, optional)
    Der für den Versand berechnete Betrag incl. Steuer
    Übergabe als Ganzzahl oder Fließkommazahl mit einem Punkt als Dezimaltrenner.
  • Rabatt (discount, optional)
    Wurde ein Rabatt angeboten? Wenn nein, dann ist der Standardwert false. Andernfalls kann eine Fließkommazahl mit einem Punkt als Dezimaltrenner übergeben werden

Beispiel für eine Bestellung

// Erster Artikel für die Bestellung
_paq.push(['addEcommerceItem',
    "0123", // (productSKU, erforderlich)
    "Suchmaschinen-Optimierung", // (productName, empfohlen)
    "Bücher", // (categoryName, optional)
    49.90, // (price, optional)
    1 // (quantity, optional)
]);

// Zweiter Artikel für die Bestellung
_paq.push(['addEcommerceItem',
    "5678", // (productSKU, erforderlich)
    "Webanalytics", // (productName, empfohlen)
    "Bücher", // (categoryName, optional)
    29.90, // (price, optional)
    1 // (quantity, optional)
]);

// Übergabe der Daten an Matomo durch
// trackEcommerceCartUpdate mit Gesamtpreis
_paq.push(['trackEcommerceOrder',
    "0815", // (orderId, erforderlich)
    85.70, // (grandTotal, erforderlich)
    79.80, // (subTotal, optional)
    5.81, // (tax, optional)
    5.90, // (shipping, optional)
    false // (discount, optional)
]);

Vernetze dich mit Joachim Nickel
LinkedIn Termin buchen E-Mail