Newsletter Management: Tracking und Statistik
Newsletter-Tracking in drei Modi (aus, anonym, personenbezogen mit Einwilligung), Statistik-Dashboard, Zahlen je Newsletter und Datenaufbewahrung mit Aufräumbefehlen für Sylius
Newsletter Management: Tracking und Statistik
Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.
Diese Seite erklärt, was das Plugin über Öffnungen und Klicks misst, wo du die Zahlen siehst und wie lange welche Daten aufbewahrt werden. Das Versenden selbst steht auf Newsletter versenden.
Tracking-Modi
Das Tracking stellst du pro Channel ein: Admin-Seitenleiste, MMKreativ Plugins, Newsletterverwaltung, im Einstellungsformular das Feld Tracking. Standard ist Aus.
| Modus | Was gemessen wird | Was gespeichert wird |
|---|---|---|
| Aus | Nichts. Weder Pixel noch Link-Umschreibung. | Nichts |
| Anonym (nur Zähler) | Öffnungen und Klicks als Zähler pro Newsletter, Link und Tag | Eine Zeile pro Newsletter, Tag und Ziel mit einer Zahl. Kein Empfänger, keine IP, kein Cookie, kein genauerer Zeitpunkt als der Tag. |
| Personenbezogen, mit Einwilligung des Abonnenten | Dieselben Zähler für alle, dazu einzelne Öffnungen und Klicks, aber nur für Abonnenten, die dem mit einer eigenen, freiwilligen Checkbox zugestimmt haben | Zusätzlich je Ereignis: Abonnement, Art (Öffnung oder Klick), Link und Zeitpunkt. Keine IP, kein User-Agent, kein Cookie. |
Auch anonymes Tracking muss in deiner Datenschutzerklärung stehen. Personenbezogenes Tracking erst recht, hier kommt zusätzlich die Einwilligung der Abonnenten dazu.
So funktioniert es
Tracking greift nur bei einem echten Versand, nie bei Vorschau oder Testmail.
graph TD
A["Versandstart"] --> B["Links des HTML in der Link-Tabelle speichern"]
B --> C["Pro Mail: Links durch Tracking-URLs ersetzen"]
C --> D["Unsichtbares Pixel anhängen"]
D --> E["Empfänger öffnet Mail"]
D --> F["Empfänger klickt Link"]
E --> G["Pixel-Aufruf zählt eine Öffnung"]
F --> H["Klick zählt, Weiterleitung auf die gespeicherte URL"]
- Klicks: Die wörtlichen
http(s)-Links des HTML werden beim Start des Versands in einer Link-Tabelle gespeichert (Code, URL). In jeder Mail ersetzt das Plugin sie durch eine Adresse deines Shops (/newsletter/track/click/...), die den Klick zählt und auf die gespeicherte URL weiterleitet. Die Anfrage trägt nur einen kurzen Code und eine Signatur, nie das Ziel, deshalb ist die Route keine offene Weiterleitung. Nicht angefasst werden Platzhalter-Links (Verwaltungs- und Abmelde-Link),mailto:,tel:und Anker. - Öffnungen: Ein unsichtbares 1x1-Pixel (
/newsletter/track/open/...) wird beim Laden der Mail abgerufen und zählt eine Öffnung. - Signaturen: Alle Tracking-Adressen sind mit einem HMAC-SHA256 über das
kernel.secretdeiner Anwendung signiert. Das macht einen Treffer nicht vertrauenswürdig, verhindert aber, dass jemand die Routen nach Newsletter-IDs oder Link-Codes abklopft, die nie an ihn gingen. Eine ungültige Signatur ergibt 404. - Tracking abgeschaltet: Eine Mail, die schon im Postfach liegt, leitet auch nach dem Abschalten weiter. Sie zählt dann nur nicht mehr.
- Abmeldungen: Der Abmelde-Link jeder echten Newsletter-Mail trägt die Newsletter-ID samt Signatur. So lässt sich eine Abmeldung über diesen Link dem Newsletter zuordnen und als Zähler zählen, unabhängig vom Tracking-Modus. Die Zuordnung nennt nur den Newsletter, nie den Abonnenten.
Personenbezogenes Tracking im Detail
- Die Einwilligungs-Checkbox steht im Anmeldeformular und auf der Seite, auf der Abonnenten ihr Abonnement verwalten, getrennt von der Newsletter-Einwilligung. Bleibt sie leer, entsteht kein Nachteil. Das Feld erscheint nur, wenn der Channel im personenbezogenen Modus läuft.
- Der Wortlaut ist der Standardtext des Plugins oder dein eigener Text im Feld Wortlaut der Tracking-Einwilligung.
- Bei jeder Einwilligung speichert das Plugin Zeitpunkt und genauen Wortlaut am Abonnement als Nachweis. Auf der Admin-Seite des Abonnenten siehst du beides, dazu seine Aktivität.
- Die Mail eines zustimmenden Abonnenten trägt in ihren Tracking-URLs eine signierte Empfängermarke (
rundrs). Alle anderen bekommen anonyme URLs. Eine gefälschte Marke, ein inzwischen widerrufenes Einverständnis oder ein Channel, der auf einen anderen Modus zurückgestellt wurde, zählen nur anonym. - Die einzelnen Ereignisse werden gelöscht, wenn der Abonnent die Einwilligung widerruft (Verwaltungsseite oder API), wenn er sich abmeldet, wenn das Abonnement gelöscht wird und nach der Aufbewahrungsdauer (siehe unten).
Ehrliche Grenzen der Zahlen
Anonyme Öffnungen und Klicks sind Zähler, keine eindeutigen Personen. Wer eine Mail dreimal öffnet, zählt dreimal. Die Werte je Zustellung können daher über 100 % liegen und sind keine Öffnungs- oder Klickraten im üblichen Sinn.
- Öffnungen sind ein Richtwert. Mailprogramme und Datenschutz-Proxys laden das Pixel teils selbstständig, andere Programme blockieren Bilder und lösen die Öffnung nie aus.
- Personenbezogene Quoten gelten nur für die zustimmende Gruppe. Geöffnet und Geklickt zählen eindeutige Abonnenten, bezogen auf die Empfänger mit Einwilligung, nicht auf alle.
- Weitergeleitete Mails: Eine weitergeleitete Mail trägt die Marke des ursprünglichen Empfängers, Öffnungen des Empfängers der Weiterleitung werden daher dem Weiterleitenden zugerechnet.
- Zustellung und Abmeldungen sind exakt, auch wenn das Tracking aus war.
Statistik im Admin
Statistik-Dashboard
Das Dashboard öffnest du über den Button Statistik in der Titelleiste der Newsletter-Einstellungen. Oben wählst du Alle Kanäle oder einen einzelnen Channel.
| Bereich | Inhalt |
|---|---|
| Kennzahlen | Anzahl bestätigter, wartender und abgemeldeter Abonnenten sowie die Bestätigungsquote: Anteil der Anmeldungen, die je bestätigt wurden (Double-Opt-in) |
| Abonnenten im Zeitverlauf | Letzte 12 Monate, pro Monat: neue Anmeldungen, bestätigt, abgemeldet und Netto-Zuwachs (bestätigt minus abgemeldet) |
| Letzte Newsletter | Die letzten zehn Newsletter, die versendet werden oder wurden (Status Wird versendet, Versendet oder Abgebrochen) mit Zugestellt (von Empfängern), Fehlgeschlagen, Abmeldungen, Öffnungen und Klicks |
Öffnungen und Klicks zeigt die Tabelle nur für Newsletter, die mit eingeschaltetem Tracking versendet wurden. Ein Strich bedeutet: nichts gemessen.
Zahlen je Newsletter
Die Detailseite eines Newsletters zeigt, sobald der Versand begonnen hat, den Bereich Statistik:
- Zustellung: Zugestellt (von allen Empfängern), Fehlgeschlagen, Übersprungen, Abmeldungen. Diese Zahlen sind exakt.
- Mit Tracking: Öffnungen und Klicks als Gesamtzahl und in Prozent je Zustellung, Pro Tag als Verlauf und die Meistgeklickten Links mit Klickzahl.
- Ohne Tracking: Ein Hinweis, dass das Tracking beim Versand aus war.
- Mit Einwilligung (im personenbezogenen Modus): Empfänger mit Einwilligung, Geöffnet (eindeutig) und Geklickt (eindeutig) samt Quote innerhalb dieser Gruppe, dazu eine Tabelle mit Öffnungen, Klicks und letzter Aktivität je Empfänger (die ersten 100, die zuletzt Aktiven zuerst).
Datenaufbewahrung
Zwei Aufräumbefehle löschen alte Daten. Beide gehören täglich in den Cronjob.
15 3 * * * cd /pfad/zum/shop && php bin/console mmd:newsletter:subscription:purge
20 3 * * * cd /pfad/zum/shop && php bin/console mmd:newsletter:tracking:purge
Die Aufbewahrungsdauern stellst du pro Channel in den Newsletter-Einstellungen ein:
| Einstellung | Standard | Erlaubt | Gelöscht von |
|---|---|---|---|
| Abgemeldete Abonnements aufbewahren (Tage) | 1095 (3 Jahre) | 30 bis 3650 | mmd:newsletter:subscription:purge |
| Unbestätigte Anmeldungen aufbewahren (Tage) | 30 | 7 bis 365 | mmd:newsletter:subscription:purge |
| Tracking-Zähler aufbewahren (Tage) | 365 | 30 bis 3650 | mmd:newsletter:tracking:purge |
| Personenbezogene Tracking-Ereignisse aufbewahren (Tage) | 90 | 7 bis 730 | mmd:newsletter:tracking:purge |
| Befehl | Option | Wirkung | |
| --- | --- | --- | |
mmd:newsletter:subscription:purge |
--older-than=<Tage> |
Überschreibt beide Aufbewahrungsdauern für jeden Channel. Muss eine positive Zahl sein. | |
mmd:newsletter:tracking:purge |
--older-than=<Tage> |
Überschreibt beide Aufbewahrungsdauern für jeden Channel. Muss eine positive Zahl sein. |
Was gelöscht wird und was nicht:
- Abgemeldete Abonnements bleiben nach der Abmeldung als Nachweis der ursprünglichen Einwilligung erhalten, falls später jemand fragt, ob sie je vorlag. Dieser Grund trägt nicht ewig, deshalb löscht der Befehl sie nach der eingestellten Dauer, gerechnet ab der Abmeldung. Die 3 Jahre als Standard orientieren sich an der regelmäßigen zivilrechtlichen Verjährungsfrist (§ 195, § 199 BGB). Passe sie an, wenn deine Rechtsberatung etwas anderes empfiehlt.
- Unbestätigte Anmeldungen (Double-Opt-in-Link nie angeklickt) enthalten keine Einwilligung, es gibt also nichts aufzubewahren. Der Befehl löscht sie nach der eingestellten Dauer, gerechnet ab der Anmeldung. Eine erneute Anmeldung startet die Uhr neu.
- Bestätigte Abonnements fasst der Befehl nie an, egal wie alt sie sind.
- Tracking-Zähler und -Ereignisse löscht
mmd:newsletter:tracking:purgepro Channel nach der jeweiligen Dauer, bezogen auf die Newsletter dieses Channels. - Das Versandprotokoll fasst kein Befehl an. Es ist der Nachweis dessen, was verschickt wurde, und behält seine eigene Kopie der Adresse, auch wenn das zugehörige Abonnement gelöscht wurde.
- Ein Abonnement, dessen Channel inzwischen gelöscht wurde, hat keine Einstellung mehr, aus der sich eine Dauer ergäbe. Der Befehl lässt es unberührt.