Wie man eine Web-App für E-Mail-Kampagnen und Zustellbarkeit baut
Planen und bauen Sie eine Web-App zum Erstellen von E-Mail-Kampagnen: sicher senden, Events tracken und Zustellbarkeit verbessern mit Authentifizierung, Suppression und Monitoring.

Was die App leisten sollte (Scope und Ergebnisse)
Bevor Sie einen Provider wählen, die Datenbank entwerfen oder eine Sendeschlange bauen, definieren Sie, wie „Erfolg“ für Ihre E-Mail-Kampagnen-App aussieht. Ein klarer Scope hält das Produkt für Marketer nützlich und schützt die Zustellbarkeit.
Kernziel: Kampagnen ausliefern, ohne die Zustellbarkeit zu schädigen
Mindestens sollte die App einem Team ermöglichen, E-Mail-Kampagnen zu erstellen, zu planen, zu versenden und zu analysieren, während Guardrails durchgesetzt werden, die schlechtes Sendeverhalten verhindern (versehentliche Massenversände, Ignorieren von Opt-outs oder wiederholtes Senden an bounceende Adressen).
Denken Sie an das Ergebnis als: zuverlässige Zustellung + vertrauenswürdiges Reporting + konsistente Compliance.
Sender-Typen klären (verhalten unterschiedlich)
Ihr Scope sollte diese Streams ausdrücklich einbeziehen (oder ausschließen), weil sie unterschiedliche Inhalte, Kadenz und Risiken haben:
- Marketing-Blasts: Promotionen, Newsletter, Ankündigungen an große Audiences.
- Produkt-Updates: Feature-Releases, Wartungsmitteilungen, Community-Nachrichten.
- Transaktional: Quittungen, Passwort-Resets, Sicherheitswarnungen (müssen oft schnell und sehr zuverlässig sein).
- Lifecycle: Onboarding, Re-Engagement, Nurture-Sequenzen, getriggert durch Verhalten.
Wenn Sie mehrere Typen unterstützen, entscheiden Sie früh, ob sie dieselbe Sender-Identität und Suppression-Regeln teilen oder separate Konfigurationen benötigen.
Schlüsselrollen und ihre Rechte definieren
Definieren Sie Berechtigungen klar, damit Teams sich nicht in die Quere kommen:
- Admin: verwaltet Domains/Sender, Compliance-Einstellungen, Nutzerzugänge und Integrationen.
- Marketer: baut Audiences, erstellt Inhalte, plant Sends, führt A/B-Tests durch.
- Analyst: liest Reports, exportiert Daten, validiert Attribution und Trends.
- Support: untersucht „Warum habe ich die Mail nicht erhalten?“, bearbeitet Beschwerden, löst Abmeldungen.
Erfolgsmessgrößen wählen, die reale Ergebnisse abbilden
Vermeiden Sie nur Vanity-Metriken. Tracken Sie eine kleine Auswahl, die sowohl Zustellbarkeit als auch Business-Impact reflektiert:
- Inbox-Rate / Platzierungssignale (sofern verfügbar) und Zustell-Erfolg
- Beschwerderate und Abmelderate
- Bounce-Rate (Hard vs. Soft)
- Engagement (Opens/Clicks mit bekannten Einschränkungen)
- Umsatz- oder Conversion-Attribution, wo anwendbar
Randbedingungen früh festlegen (damit Architektur passt)
Schreiben Sie Grenzen jetzt fest:
- Budget (Provider-Kosten, Datenspeicher, Analytics)
- Teamgröße und Skills (wie viel können Sie 24/7 betreiben?)
- Compliance-Anforderungen (Abmelde-Regeln, Consent-Tracking, Aufbewahrung)
- Sendevolumen und Wachstum (heute vs. 12 Monate)
Ein praktisches Ergebnis für diesen Abschnitt ist ein einseitiger „Product Contract“, der angibt, für wen die App ist, welche Nachrichtenarten sie sendet und welche Metriken Erfolg definieren.
Kernarchitektur und Build-or-Buy-Entscheidungen
Bevor Sie Kästchen auf ein Diagramm zeichnen, entscheiden Sie, was Sie tatsächlich bauen: einen Campaign Manager (UI + Scheduling + Reporting) oder ein E-Mail-Delivery-System (MTA-Level-Verantwortung). Die meisten Teams haben Erfolg, wenn sie die Produkterfahrung bauen und spezialisierte Infrastruktur integrieren.
Build vs. Integrate (was auslagern)
Versand: Nutzen Sie eine E-Mail-API/SMTP-Provider (SES, Mailgun, SendGrid, Postmark etc.), sofern Sie kein dediziertes Deliverability-Team haben. Provider kümmern sich um IP-Reputation, Feedback-Loops, Warm-up-Tools und Webhook-Event-Streams.
Link-Tracking & Analytics: Viele Provider bieten Click/Open-Tracking, aber Sie möchten vielleicht eine eigene Redirect-Domain und Klick-Logs für konsistentes Reporting über Provider hinweg. Wenn Sie Tracking bauen, halten Sie es minimal: ein Redirect-Service plus Event-Ingestion.
Templates: Bauen Sie den Editier-Workflow, erwägen Sie jedoch die Integration eines ausgereiften HTML-E-Mail-Editors (oder zumindest MJML-Rendering). E-Mail-HTML ist gnadenlos; den Editor auszulagern reduziert den Support-Aufwand.
Basisarchitektur: Monolith + Queue vs. Services
Für ein MVP funktioniert ein modularer Monolith gut:
- Web-App (Admin-UI + öffentliche Endpunkte)
- Worker-Prozess für Hintergrundjobs
- Message-Queue für Send-Tasks und Webhooks
Spalten Sie später in Services auf, wenn Skalierung oder Organisationsgrenzen es erfordern (z. B. ein dedizierter Tracking-Service oder eine dedizierte Webhook-Ingestion).
Datenspeicher: „Source of Truth“ vs. Event-Firehose
Nutzen Sie eine relationale Datenbank als System of Record für Tenants, Nutzer, Audiences, Kampagnen, Templates, Zeitpläne und Suppression-Zustand.
Für Sending und Tracking-Events planen Sie einen append-only Event-Store/Log (z. B. eine separate Tabelle, nach Tag partitioniert, oder ein Log-System). Ziel ist es, hochvolumige Events zu ingestieren, ohne das CRUD zu verlangsamen.
Hintergrund-Jobs, die Sie einplanen sollten
- Scheduling (Fan-out: Kampagnenteilnehmer in Send-Tasks aufteilen)
- Rate-Control und Provider-Throttling
- Retries mit Backoff und Idempotency-Keys
- Bounce/Complaint-Verarbeitung aus Webhooks
- Tägliche Rollups (Deliverability- und Kampagnen-Zusammenfassungen)
Multi-Tenant-Entscheidungen
Wenn Sie mehrere Marken/Clients unterstützen, definieren Sie Tenancy früh: tenant-scoped Datenzugriff, pro-tenant Send-Domains und pro-tenant Suppression-Regeln. Auch wenn Sie Single-Tenant starten, gestalten Sie Ihr Schema so, dass ein späteres Hinzufügen von tenant_id keine Rewrite erfordert.
Build-Beschleunigung (ohne sich einzusperren)
Wenn Ihr Hauptziel ist, schnell einen funktionierenden Campaign Manager zu liefern (UI, DB, Background Workers und Webhook-Endpunkte), kann eine Vibe-Coding-Plattform wie Koder.ai helfen, schneller zu prototypisieren und zu iterieren, während Sie die Architektur kontrollieren. Sie können das System in einem chat-getriebenen „Planning Mode“ beschreiben, eine React-basierte Web-App mit Go + PostgreSQL-Backend generieren und den Source Code exportieren, wenn Sie das Repo und Deployment übernehmen wollen.
Das ist besonders nützlich für die „Glue“-Teile—Admin-UI, Segmentierung-CRUD, Queue-gestützte Send-Jobs und Webhook-Ingestion—während Sie weiterhin einen Spezialanbieter für deliverability-kritisches Senden nutzen.
Datenmodell für Kontakte, Kampagnen und Events
Ein klares Datenmodell ist der Unterschied zwischen „Wir haben eine Mail gesendet“ und „Wir können genau erklären, was passiert ist, wem und warum.“ Sie brauchen Entitäten, die Segmentierung, Compliance und verlässliche Event-Verarbeitung unterstützen—ohne Sie in eine Sackgasse zu manövrieren.
Kern-Entitäten (und wie sie zueinanderstehen)
Mindestens sollten diese als erstklassige Tabellen/Collections modelliert werden:
- Users: Personen, die sich einloggen.
- Workspaces: Accounts/Organisationen. Die meisten Objekte gehören zu einem Workspace.
- Audiences: logische Listen (z. B. „Newsletter“, „Kunden").
- Contacts: einzelne Empfänger.
- Segments: gespeicherte Regeln, die Kontakte aus einer Audience auswählen.
- Campaigns: das, was wir senden wollen (Inhalt + Einstellungen).
- Sends: das Ausführungs-Record für einen bestimmten Kampagnenlauf.
- Events: die Timeline dessen, was passiert ist (Delivery, Bounce, Unsubscribe etc.).
Ein gängiges Muster ist: Workspace → Audience → Contact, und Campaign → Send → Event, wobei Send auch auf den Audience/Segment-Snapshot verweist.
Kontaktfelder: Identität stabil halten, Historie explizit
Empfohlene Kontaktfelder:
email(normalisiert + kleingeschrieben), optionalnamestatus(z. B.active,unsubscribed,bounced,complained,blocked)source(Import, API, Formularname, Integration)consent(mehr als ein Boolean):consent_status,consent_timestamp,consent_sourceattributes(JSON/Custom-Felder für Segmentierung: Plan, Stadt, Tags)- Timestamps:
created_at,updated_atund idealerweiselast_seen_at/last_engaged_at
Vermeiden Sie das Löschen von Kontakten nur aus „Sauberkeits“-Gründen. Ändern Sie stattdessen den Status und behalten Sie das Record für Compliance und Reporting.
Campaign- und Send-Felder: Inhalt von Ausführung trennen
Für Kampagnen tracken Sie:
subject,from_name,from_email,reply_totemplate_version(immutable Snapshot-Referenz)tracking_options(Open/Click-Tracking an/aus, UTM-Defaults)
Verwenden Sie dann ein send-Record für operative Details:
scheduled_at,started_at,completed_at- Zieldefinition: audience id + segment id, plus gespeicherte „segment query“-Snapshot
- Zähler: intendierte Empfänger, gesendet, zugestellt, fehlgeschlagen
Event-Modell: eine Tabelle, viele Typen, strikte Auditierbarkeit
Speichern Sie Events als append-only Stream mit konsistenter Form:
event_type:delivered,opened,clicked,bounced,complained,unsubscribed- Foreign Keys:
send_id,contact_id(und optionalmessage_id) - Metadata: Timestamp, IP/User-Agent (wo anwendbar), Bounce-Codes, Click-URL
- Idempotency-Felder: Provider-Event-ID + Hash zur Vermeidung von Duplikaten
Für Auditierbarkeit designen
Für Schlüsselojekte (Contacts, Campaigns, Segments) fügen Sie created_by, updated_by hinzu und erwägen Sie eine kleine Change-Log-Tabelle, die festhält, wer was wann geändert hat und Vorher/Nachher-Werte. Das macht Support, Compliance-Anfragen und Deliverability-Untersuchungen deutlich einfacher.
Audience-Management, Segmentierung und Consent
Audience-Management ist der Punkt, an dem eine E-Mail-Kampagnen-App Vertrauen gewinnt — oder Probleme schafft. Behandeln Sie Kontakte als langlebige Records mit klaren Regeln, wie sie hinzugefügt, aktualisiert und zum Erhalt von Mails berechtigt werden.
Importe, die Ihre Liste nicht verschmutzen
CSV-Import sollte für Nutzer einfach wirken, intern aber strikt sein.
Validieren Sie Pflichtfelder (mindestens E-Mail), normalisieren Sie Groß-/Kleinschreibung und Leerzeichen und lehnen Sie offensichtlich ungültige Adressen früh ab. Führen Sie Deduplizierungsregeln ein (typischerweise nach normalisierter E-Mail) und entscheiden Sie, was bei Konflikten passiert: nur leere Felder überschreiben, immer überschreiben oder „bei Import fragen".
Feldmapping ist wichtig, weil reale Tabellen unordentlich sind ("First Name", "fname", "Given name"). Lassen Sie Nutzer Spalten bekannten Feldern zuordnen und bei Bedarf Custom-Felder erstellen.
Segmentierung: Regeln, keine manuellen Kopien
Segmentierung funktioniert am besten als gespeicherte Regeln, die sich automatisch aktualisieren. Unterstützen Sie Filter basierend auf:
- Attributen (Ort, Plan, Signup-Quelle)
- Engagement (in den letzten 30 Tagen geöffnet, Kampagne X geklickt)
- Tags (VIP, Webinar-Registrant)
- Custom-Filtern (beliebiges Custom-Feld + Operatoren)
Halten Sie Segmente erklärbar: zeigen Sie eine Vorschau-Anzahl und einen „Warum enthalten“-Drilldown für einen Beispielkontakt.
Consent und Präferenzen pro Kontakt
Speichern Sie Consent als erstklassige Daten: Status (opted-in, opted-out), Timestamp, Quelle (Formular, Import, API) und, wenn relevant, für welche Liste oder welchen Zweck er gilt.
Ihr Preference-Center sollte es erlauben, sich für bestimmte Kategorien abzumelden und für andere angemeldet zu bleiben; jede Änderung muss auditierbar sein. Verlinken Sie auf Ihre Preference-Workflow-Seite von /blog/compliance-unsubscribe, wenn Sie diese anderswo behandeln.
Internationalisierung, die Fehler reduziert
Namen und Adressen sind nicht universell. Unterstützen Sie Unicode, flexible Namensfelder, länderspezifische Adressformate und eine Kontakt-Zeitzone für „9 Uhr Ortszeit“-Sends.
Eligibility-Checks vor jedem Versand
Bevor Sie Empfänger in die Queue legen, filtern Sie nur berechtigte Kontakte: nicht abgemeldet, nicht in Suppression-Listen und mit gültiger Einwilligung für diesen Nachrichtentyp. Machen Sie die Regel in der UI sichtbar, damit Nutzer verstehen, warum manche Kontakte keine Mails erhalten.
E-Mail-Komposition: Templates, Previews und Content-QA
Eine perfekte Versand-Pipeline kann trotzdem unterdurchschnittlich performen, wenn der Inhalt schwer lesbar, inkonsistent oder unvollständig ist. Behandeln Sie Komposition als Produkt-Feature: gute E-Mails sollten Standard sein.
Templates, die skalieren (Blöcke + Versionierung)
Starten Sie mit einem Template-System aus wiederverwendbaren Blöcken—Header, Hero, Text, Button, Produkt-Grid, Footer—damit Kampagnen konsistent bleiben.
Fügen Sie Versionierung für Templates und Blöcke hinzu. Editoren sollten:
- eine neue Version erstellen können, ohne die alte zu überschreiben
- sehen, wo ein Block genutzt wird („verwendet in 12 Templates")
- zurückrollen können, wenn eine Änderung das Rendering kaputt macht
Inkludieren Sie Test-Sends auf beiden Ebenen: senden Sie ein Template an sich selbst, bevor es an eine Kampagne gehängt wird, und senden Sie einen Kampagnen-Entwurf an eine kleine interne Liste vor dem Planen.
Editor-Optionen: nach Nutzern wählen
Die meisten Apps unterstützen mehrere Editier-Modi:
- Rohes HTML für Power-User und importierte Designs
- Drag-and-Drop für Geschwindigkeit und Guardrails (mit strikten Layout-Constraints)
- Markdown-to-HTML für textlastige Newsletter (schnelles Schreiben, vorhersehbares Ergebnis)
Speichern Sie die „Source" (HTML/Markdown/JSON-Blocks) und das gerenderte HTML separat, damit Sie nach Bugfixes neu rendern können.
Previews und Plain-Text
Bieten Sie Previews für gängige Breakpoints (Desktop/Mobil) und wichtige Client-Quirks. Selbst einfache Tools helfen: Viewport-Toggles, Dark-Mode-Simulation und eine „Tabellenränder zeigen“-Option.
Generieren und erlauben Sie immer eine Plain-Text-Version. Das hilft Accessibility, reduziert Probleme mit manchen Spam-Filtern und verbessert die Lesbarkeit für textvorziehende Nutzer.
Link-Rewriting + Content-QA
Wenn Sie Klicks tracken, rewriten Sie Links so, dass sie lesbar bleiben (z. B. UTM-Parameter erhalten) und zeigen Sie das Ziel beim Hover an. Halten Sie interne Links in Ihrer App relativ (z. B. /blog/template-guide).
Führen Sie vor dem Versand Prüfungen durch:
- Spam-Trigger-Phrasen und übermäßige Interpunktion/GROSSBUCHSTABEN
- Broken Links und fehlende Alt-Texte bei wichtigen Bildern
- Fehlende Abmeldeadresse und Firmenfooter-Details
- Inkonsistente „From“-Name/Adresse vs. Kampagnen-Einstellungen
Machen Sie den Checker handlungsorientiert: heben Sie genau das Blockelement hervor, schlagen Sie Fixes vor und klassifizieren Sie Probleme als „muss behoben werden" vs. „Warnung".
Sending-Pipeline: Queues, Scheduling und Rate Control
Eine Sending-Pipeline ist das „Verkehrssystem" Ihrer E-Mail-App: sie entscheidet, wie Mails gesendet werden, wann sie freigegeben werden und wie schnell sie hochgefahren werden, ohne die Zustellbarkeit zu gefährden.
Versandmethode wählen
Die meisten Apps starten mit einem Provider-API (SendGrid, Mailgun, SES, Postmark), weil Sie Skalierung, Feedback-Webhooks und Reputation-Tools mit weniger Aufwand erhalten. SMTP-Relays funktionieren, wenn Sie Kompatibilität mit bestehenden Systemen brauchen. Ein selbstverwaltetes MTA bietet maximale Kontrolle, bedeutet aber laufende Betriebsarbeit (IP-Warm-up, Bounce-Verarbeitung, Abuse-Handling, Monitoring).
Ihr Datenmodell sollte den Sender als konfigurierbaren „Delivery Channel" behandeln, damit Sie Methoden später wechseln können, ohne Kampagnen neu schreiben zu müssen.
Queue-first-Architektur (mit Sicherheitsleinen)
Senden Sie nicht direkt aus einer Web-Request. Enqueuen Sie Empfänger-Level-Jobs (oder kleine Batches) und lassen Sie Worker liefern.
Wesentliche Mechaniken:
- Rate Limiting: globale Limits plus Limits pro Sender, pro Kampagne und pro Domain.
- Backoff und Retry: temporäre Fehler (4xx, Timeouts) mit Retry und exponentiellem Backoff; permanente Fehler (5xx, Hard-Bounces) stoppen.
- Idempotency-Keys: stellen Sie sicher, dass ein Job-Replay keine Duplikate sendet. Nutzen Sie einen Key wie
{campaign_id}:{recipient_id}:{variant_id}.
Scheduling und Throttling, die Inboxes respektieren
Scheduling sollte Zeitzonen unterstützen (bevorzugte Zone eines Nutzers speichern; für die Ausführung in UTC konvertieren). Für Zustellbarkeit throttle nach Empfänger-Domain (z. B. gmail.com, yahoo.com). So können Sie „heiße" Domains drosseln, ohne die ganze Kampagne zu blockieren.
Ein praktischer Ansatz ist, Domain-Buckets mit unabhängigen Token-Bucket-Limits zu pflegen und dynamisch anzupassen, wenn Sie Deferrals sehen.
Getrennte Streams zum Schutz der Reputation
Halten Sie transaktionale und marketing Sends in separaten Streams (idealerweise separate Subdomains und/oder IP-Pools). So blockiert eine stark frequentierte Kampagne nicht z. B. Passwort-Resets.
Pro-Empfänger-Ausgang loggen
Speichern Sie eine unveränderliche Ereignis-Historie pro Empfänger: queued → sent → delivered/soft bounce/hard bounce/complaint/unsubscribe. Das unterstützt Support („Warum habe ich das nicht erhalten?“), Compliance-Audits und korrektes Suppression-Verhalten.
FAQ
Was soll die erste Version einer E-Mail-Kampagnenverwaltung tatsächlich können?
Beginnen Sie damit, „Erfolg“ als zuverlässige Zustellung + vertrauenswürdiges Reporting + konsistente Compliance zu definieren. Praktisch bedeutet das: Inhalte erstellen, Sends planen, Bounce/Complaint/Unsubscribe automatisch verarbeiten und für jeden Empfänger genau erklären können, was passiert ist.
Eine hilfreiche einseitige Scope-Zusammenfassung enthält: unterstützte Nachrichtentypen, benötigte Rollen/Berechtigungen, Kernmetriken und Einschränkungen (Budget, Compliance, Volumenwachstum).
Müssen wir Marketing-, Transaktions- und Lifecycle-Mails im gleichen System unterstützen?
Behandle sie als getrennte „Streams“, da Dringlichkeit, Risiko und Volumen unterschiedlich sind:
- Marketing-Blasts: hohes Volumen, höheres Beschwerderisiko
- Transaktional: muss schnell und zuverlässig sein
- Lifecycle: verhaltensgetriggert, braucht genaue Ereignisdaten
Wenn Sie mehrere Streams unterstützen, planen Sie getrennte Konfigurationen (idealerweise separate Subdomains/IP-Pools), damit Marketing-Spitzen nicht z. B. Passwort-Resets verzögern.
Sollen wir eigene Zustell-Infrastruktur bauen oder einen ESP integrieren?
Die meisten Teams sollten einen E-Mail-Provider integrieren (SES, SendGrid, Mailgun, Postmark) und sich auf das Produkterlebnis konzentrieren (UI, Planung, Segmentierung, Reporting). Provider kümmern sich bereits um Reputationstools, Feedback-Loops und skalierbare Zustellung.
Ein eigenes MTA baut man in der Regel nur, wenn man dedizierte Deliverability- und Operations-Kapazität hat (Warm-up, Abuse-Handling, Monitoring und stetiges Tuning).
Welche Datenspeicher brauchen wir für Kampagnen vs. Delivery-Events?
Verwenden Sie eine relationale Datenbank als System of Record (Mandanten, Nutzer, Kontakte, Audiences, Kampagnen, Sends, Suppression-Status). Für starkes Ereignis-Volumen (delivered/opened/clicked/bounced) nutzen Sie ein append-only Event-Log (z. B. partitionierte Tabellen oder ein Log-Pipeline-System), damit Event-Ingestion das CRUD nicht ausbremst.
Bewahren Sie rohe Provider-Payloads für Debugging und Audits auf.
Wie sieht das minimale Datenmodell für Kontakte, Kampagnen und Reporting aus?
Modellieren Sie sowohl die Absicht als auch die Ausführung:
- Campaign: Inhalt + Einstellungen (Subject, From, Template-Snapshot, Tracking-Optionen)
- Send: operative Ausführung (schedule/start/end timestamps, Audience/Segment-Snapshot, Zähler)
- Event: append-only Timeline (delivered, bounced, complained, unsubscribed, etc.)
Diese Trennung macht Support-Anfragen („Was ist mit diesem Empfänger passiert?“) beantwortbar und hält das Reporting konsistent.
Wie verhindern wir das Versenden an abgemeldete oder gesperrte Kontakte?
Bevor Sie Empfänger in die Queue legen, filtern Sie auf eligible contacts:
- Nicht abgemeldet
- Nicht durch Bounces/Complaints gesperrt
- Gültige Einwilligung für diesen Nachrichtentyp
Machen Sie die Regel in der UI sichtbar (und zeigen Sie idealerweise „Warum ausgeschlossen“ für eine Stichprobe), um Verwirrung zu vermeiden und nicht-konforme Sends zu verhindern.
Wie gehen wir zuverlässig mit Bounces, Beschwerden und Abmeldungen um?
Nutzen Sie Webhooks Ihres Providers, aber rechnen Sie mit Duplikaten und Auslieferung in falscher Reihenfolge. Ihr Webhook-Handler sollte:
- Schnell bestätigen, dann asynchron verarbeiten
- Idempotent sein, indem Sie Provider-Event-IDs oder einen stabilen Hash nutzen
- Normierte Events sowie die rohe Payload speichern
Anschließend wenden Sie Suppression-Regeln automatisch an (Hard Bounce, Complaint, Unsubscribe) und aktualisieren den Kontaktstatus sofort.
Wie sieht eine sichere Sending-Pipeline für ein MVP aus?
Planen Sie eine Queue-first-Pipeline:
- Empfänger-Jobs (oder kleine Batches) enqueuen — nie direkt aus einer Web-Request senden
- Global und pro Sender/Kampagne/Domain rate-limitieren
- Temporäre Fehler mit exponentiellem Backoff erneut versuchen
- Idempotency-Keys wie
{campaign_id}:{contact_id}:{variant_id}verwenden, um Duplikate zu vermeiden
Trennen Sie außerdem Transactional- und Marketing-Queues, damit kritische Mails nicht von großen Kampagnen blockiert werden.
Welche DNS-Deliverability-Funktionen sollte die App beim Benutzer konfigurieren helfen?
Unterstützen Sie SPF, DKIM und DMARC mit einer geführten Einrichtung:
- Exakte DNS-Einträge zum Kopieren/Einfügen erzeugen
- Vor typischen Fehlern warnen (z. B. mehrere SPF-Records)
- Einen Verify DNS-Button für Propagation- und Alignment-Checks anbieten
Wenn Sie Click-/Open-Tracking anbieten, unterstützen Sie eine benutzerdefinierte Tracking-Domain (CNAME) und erzwingen TLS, um gebrochene Redirects und Vertrauensprobleme zu vermeiden.
Wie sollen wir Opens, Clicks und Conversions tracken, ohne Nutzer in die Irre zu führen?
Behandle Opens als Richtungsindikator und Clicks als handlungsrelevanter:
- Opens können durch Privacy-Prefetching aufgebläht und durch Bildblocker reduziert werden
- Clicks benötigen Redirect-Tracking, UTM-Unterstützung und grundlegende Bot/Scanner-Filterung
Kennzeichnen Sie Metriken ehrlich (z. B. „unique = best effort“) und bieten Sie Exporte/API-Zugriff, damit Teams Ergebnisse in ihren BI-Tools validieren können.