Zum Inhalt springen
OmniChannels.ai

Millionen SMS pro Tag senden: Leitfaden für hohes Volumen

Millionen SMS pro Tag senden: TPS-Planung, SMPP-Binds und Windowing, Warteschlangen, Drosselung, DLR-Verarbeitung, Absenderkennungen, Ruhezeiten und Monitoring-KPIs.

Aktualisiert 11 Min. Lesezeit

Von OmniChannels.ai Editorial Team · Geprüft von BroadNet Messaging Solutions Team

SMS und OTP

Kurze Antwort

Um Millionen SMS pro Tag zu versenden, dimensionieren Sie den Durchsatz für die Spitze, nicht für den Tagesdurchschnitt: Teilen Sie die zu sendenden Segmente durch die Sekunden Ihres Sendefensters, addieren Sie Reserve für OTP-Verkehr und wählen Sie das SMPP-Window mindestens als TPS mal Round-Trip-Zeit. Nutzen Sie mehrere Binds, Warteschlangen je Netzbetreiber und einen Rate Limiter mit Backoff bei Drosselung, verarbeiten Sie Zustellberichte getrennt und halten Sie OTP und Werbung auseinander.

Auf dieser Seite
  1. Wie viele SMS pro Sekunde brauchen Sie für Millionen pro Tag?
  2. Wie planen Sie den Durchsatz nach der geschäftigsten Stunde statt nach dem Durchschnitt?
  3. Was ist ein SMPP-Bind und wie viele brauchen Sie?
  4. Wie funktioniert SMPP-Windowing?
  5. Wie bauen Sie Warteschlangen und Rate Limiting im großen Maßstab auf?
  6. Wie routen Sie pro Netzbetreiber im großen Maßstab?
  7. Wie verarbeiten Sie Zustellberichte im großen Maßstab?
  8. Was müssen Sie vor dem Versand pro Land registrieren?
  9. Wie halten Sie Ruhezeiten im großen Maßstab ein?
  10. Warum sollten Sie OTP- und Werbeverkehr trennen?
  11. Welche KPIs sollten Sie überwachen?
  12. Wie sieht eine Startcheckliste für einen Versand mit mehreren Millionen aus?
  13. So unterstützt Sie OmniChannels.ai

Das Wichtigste

  • Zehn Millionen Nachrichten pro Tag bedeuten im Schnitt nur etwa 116 pro Sekunde, doch eine in vier Stunden gepresste Aktion braucht etwa 694 pro Sekunde, und jedes zusätzliche Segment vervielfacht das.
  • Die SMPP-Spezifikation erlaubt es einem Sender, viele Anfragen zu stellen, ohne auf Antworten zu warten; die Zahl ausstehender Anfragen bleibt der Implementierung überlassen, das Window muss also abgestimmt und justiert werden. Eine gute Startregel ist ein Window von mindestens TPS mal Round-Trip-Zeit in Sekunden.
  • Drosselung (ESME_RTHROTTLED, 0x58) und volle Warteschlange (ESME_RMSGQFUL, 0x14) sind Signale, langsamer zu werden und mit Backoff zu wiederholen, nicht sofort erneut zu senden.
  • Zustellberichte sind ein zweiter Datenstrom mit hohem Volumen: Planen Sie Consumer, Speicherung und Abgleich dafür so sorgfältig wie für die Submits.
  • Kapazität wird pro Konto und pro Route mit Ihrem Anbieter vereinbart; lassen Sie sich Ihre Spitzenwerte schriftlich bestätigen und testen Sie sie vor dem Start.

Dieser Leitfaden richtet sich an Entwickler, Messaging-Operations-Leiter und Einkaufsteams, die zwischen einer und zehn Millionen SMS pro Tag senden oder bald senden werden. Er zeigt, wie Sie ein Tagesvolumen in ein Durchsatzziel übersetzen, SMPP-Binds und Windows konfigurieren, Warteschlangen und Rate Limiting aufbauen, Zustellberichte im großen Maßstab verarbeiten und was Sie pro Land vorbereiten müssen. Die Zahlen in den Beispielen sind illustrative Planungswerte, keine Aussagen über die Kapazität eines Anbieters.

Wie viele SMS pro Sekunde brauchen Sie für Millionen pro Tag?

Sie brauchen die Zahl der Segmente geteilt durch die Sekunden des Fensters, in dem Sie tatsächlich senden können. Der Durchsatz, gemessen in TPS (pro Sekunde übermittelte Nachrichten oder Segmente), ist ein Spitzenwert, kein Tagesdurchschnitt. Siehe Durchsatz (TPS).

Berechnen Sie zuerst den Durchschnitt, dann die Spitze für Ihr reales Sendefenster:

Nachrichten pro Tag Durchschnitt pro Sekunde über 24 h Bei Versand in 4 Stunden Bei Versand in 2 Stunden
1.000.000 11,6 69,4 138,9
5.000.000 57,9 347,2 694,4
10.000.000 115,7 694,4 1.388,9

Zwei Multiplikatoren verändern die Tabelle:

  • Segmente. Eine Nachricht, die länger als ein Segment ist, wird als mehrere Teile übermittelt, und die meisten Plattformen zählen jeden Teil. 10 Millionen Nachrichten mit durchschnittlich 1,5 Segmenten sind 15 Millionen Submits. Steuern Sie das mit den SMS-Zeichenlimits und dem Zeichenzähler.
  • Reserve. Addieren Sie Verkehr, der nicht zur Kampagne gehört, etwa OTPs, und einen Puffer für Wiederholungen und langsame Netzbetreiber. Dreißig Prozent sind ein gängiger Planungsansatz, keine Regel.

Wie planen Sie den Durchsatz nach der geschäftigsten Stunde statt nach dem Durchschnitt?

Planen Sie nach der Stunde oder dem Fenster mit dem meisten Verkehr, denn dann bauen sich Warteschlangen auf und tritt Drosselung auf. Nutzen Sie diese Formel:

Benötigte TPS = (Kampagnensegmente ÷ Fenstersekunden + Spitzen-TPS für OTP und Alarme) × (1 + Reserve).

Praxisbeispiel: ein regionaler Händler

Ein fiktiver Händler sendet an einem Tag 6 Millionen Werbenachrichten an Kunden am Golf, durchschnittlich 1,4 Segmente je Nachricht. Der Versand soll innerhalb des erlaubten Tagesfensters in vier Stunden abgeschlossen sein.

  • Segmente: 6.000.000 × 1,4 = 8.400.000.
  • Fenster: 4 Stunden = 14.400 Sekunden, also 8.400.000 ÷ 14.400 = 583 pro Sekunde.
  • Spitzenverkehr für OTP und Alarme während der Kampagne: 40 pro Sekunde (eigene Messung).
  • Reserve: 30 Prozent.
  • Benötigt: (583 + 40) × 1,3 ≈ 810 pro Sekunde.

Diesen Wert lässt sich der Händler vor dem Start vom Anbieter pro Route schriftlich bestätigen. Er ist ein Planungswert; er sagt nichts darüber, was eine Plattform tragen kann.

Was ist ein SMPP-Bind und wie viele brauchen Sie?

Ein SMPP-Bind ist eine langlebige TCP-Sitzung zwischen Ihrem System und dem SMSC des Anbieters, authentifiziert mit Zugangsdaten und einer erlaubten IP-Adresse. SMPP (Short Message Peer-to-Peer) ist das Telekommunikationsprotokoll für den SMS-Austausch und auf dauerhaftes Volumen ausgelegt. Siehe SMPP-Bind und SMPP oder REST-API.

Es gibt drei Bind-Typen: Transmitter (nur Senden), Receiver (nur Berichte und eingehende Nachrichten) und Transceiver (beides in einer Sitzung). Die meisten Sender nutzen Transceiver-Binds.

So bestimmen Sie die Zahl der Binds:

  1. Nehmen Sie Ihre benötigten Spitzen-TPS.
  2. Teilen Sie durch die Rate pro Bind, die Ihr Anbieter für Ihr Konto vereinbart.
  3. Runden Sie auf und fügen Sie mindestens einen Reserve-Bind hinzu, damit eine getrennte Verbindung den Versand nicht anhält.
  4. Legen Sie OTP-Verkehr auf eigene Binds oder ein eigenes Konto.

Binds werden pro Konto bereitgestellt; fragen Sie also nach der Anzahl, der Rate pro Bind und den erlaubten Quell-IPs. Unsere Seite zum SMPP-Gateway und die SMPP-Entwicklerdokumentation beschreiben die Verbindung.

Wie funktioniert SMPP-Windowing?

Das Window ist die Zahl der submit_sm-Anfragen, die Sie gleichzeitig ausstehend haben können. SMPP ist asynchron: Die Spezifikation besagt, dass ein Sender mehrere Anfragen senden darf, ohne auf die Antworten zu warten, und ordnet über die sequence_number in jeder PDU eine Antwort ihrer Anfrage zu. Die maximale Zahl ausstehender Operationen legt die Spezifikation nicht fest; sie wird von der Implementierung auf jeder Seite bestimmt.

Aus der Warteschlangenrechnung folgt die Regel:

Window ≥ Ziel-TPS × Round-Trip-Zeit (Sekunden).

Ziel-TPS Round Trip 50 ms Round Trip 150 ms Round Trip 300 ms
100 5 15 30
400 20 60 120
810 41 122 243

Ein Window von 1 bedeutet, dass der Sender auf jede Antwort wartet, was den Durchsatz auf eins geteilt durch die Round-Trip-Zeit begrenzt. Ein größeres Window hilft, bis Sie die vom Anbieter erlaubte Rate erreichen; darüber hinaus erzeugen Sie nur Drosselung. Behandeln Sie die Zahl als etwas, das Sie mit dem Anbieter abstimmen und testen, nicht als etwas, das Sie maximieren. Verteilen Sie die TPS bei mehreren Binds: Vier Binds bei insgesamt 810 TPS tragen je etwa 203.

Wie bauen Sie Warteschlangen und Rate Limiting im großen Maßstab auf?

Setzen Sie eine dauerhafte Warteschlange zwischen Ihre Anwendung und die SMPP-Verbindung und leeren Sie sie mit einem Rate Limiter, den Sie zur Laufzeit ändern können. Die Warteschlange fängt Lastspitzen ab; der Limiter hält Sie bei der vereinbarten Rate.

  • Token Bucket pro Bind und pro Route. Mit der vereinbarten TPS auffüllen; für jedes submit_sm einen Token entnehmen, jedes Segment gezählt.
  • Eine Warteschlange pro Priorität. Zuerst OTP und Alarme, dann Transaktionsnachrichten, dann Werbung.
  • Backoff bei Fehlern. Bei ESME_RTHROTTLED (0x58) oder ESME_RMSGQFUL (0x14) pausieren, dann mit exponentiellem Backoff und Jitter wiederholen. Nicht in einer engen Schleife erneut senden.
  • Verbinden Sie sich mit Backoff neu nach einer Trennung und verfolgen Sie ausstehende Sequenznummern, damit Sie abgleichen können, was angenommen wurde.
  • Halten Sie Sitzungen am Leben. Die Spezifikation definiert einen enquire_link-Timer, um zu prüfen, ob die Gegenstelle noch eine aktive Sitzung hat, und einen Inaktivitäts-Timer, nach dem eine Sitzung getrennt werden kann. Senden Sie enquire_link im Leerlauf.
  • Idempotente Submits. Speichern Sie Ihre eigene Nachrichten-ID vor dem Submit, damit eine Wiederholung nicht doppelt sendet.

Wie routen Sie pro Netzbetreiber im großen Maßstab?

Bilden Sie Warteschlangen und Rate Limits pro Zielnetzbetreiber ebenso wie pro Bind, denn ein langsamer Netzbetreiber sollte die anderen nicht blockieren. Netzbetreiber können A2P-Verkehr pro Absender oder pro Route begrenzen, das effektive Limit eines Landes kann also unter der Kontorate liegen.

  1. Ordnen Sie jede Nummer ihrem Netzbetreiber zu. Eine Nummernabfrage hilft; siehe HLR-Lookup.
  2. Führen Sie eine Warteschlange und einen Limiter pro Netzbetreiber oder Routengruppe.
  3. Beobachten Sie Zustellrate und Berichtsverzögerung pro Netzbetreiber und bremsen Sie die, die sich verschlechtern.
  4. Fragen Sie Ihren Anbieter, ob Direktrouten genutzt werden; siehe Direktrouten und Grey Routes.

Wie verarbeiten Sie Zustellberichte im großen Maßstab?

Behandeln Sie Zustellberichte als zweiten Datenstrom, der so groß ist wie der erste. Ein Bericht trifft als deliver_sm auf Ihrem Bind ein, und Sie müssen jeden mit deliver_sm_resp beantworten. Die Spezifikation definiert diese End- und Zwischenzustände im Bericht: DELIVRD, EXPIRED, DELETED, UNDELIV, ACCEPTD, UNKNOWN und REJECTD. Siehe Zustellberichte und Zustellstatus erklärt.

Ein zuverlässiger Entwurf:

  1. Schnell bestätigen. Beantworten Sie deliver_sm_resp, sobald der Bericht in einer Warteschlange liegt.
  2. Asynchron verarbeiten mit Workern, die den Bericht über die Nachrichten-ID dem Original zuordnen.
  3. Die Verarbeitung idempotent machen. Berichte können wiederholt eintreffen, und Zustellung in falscher Reihenfolge ist möglich.
  4. Segmente behandeln. Je nach Route erhalten Sie einen Bericht pro Teil oder pro Nachricht; testen Sie das.
  5. Ein Timeout setzen für Nachrichten, die nie einen Endstatus erhalten, und sie als unbekannt markieren.
  6. Bericht-Consumer vom Submit-Pfad fernhalten, damit ein Rückstau den Versand nicht bremst.

Was müssen Sie vor dem Versand pro Land registrieren?

Die Regeln für Absenderkennungen unterscheiden sich je Land, und in manchen Märkten werden nicht registrierte Absender blockiert oder ersetzt. Beispiele: Die VAE und Saudi-Arabien verlangen die Registrierung bei den Netzbetreibern, Indien verlangt die DLT-Registrierung des Headers und jeder Vorlage, und die USA nutzen 10DLC oder Toll-free statt alphanumerischer Absender. Die Vorlaufzeiten reichen in den von uns beobachteten Märkten von wenigen Werktagen bis zu etwa einem Monat.

Beginnen Sie zuerst mit den Registrierungen, denn sie liegen auf dem kritischen Pfad zum Start. Prüfen Sie SMS-Marketing-Regeln nach Ländern, den Absenderkennungs-Checker und den Leitfaden zur Absenderkennung für die VAE und Saudi-Arabien. Wir bereiten Registrierungen gemeinsam mit Ihnen vor und reichen sie über unseren Registrierungsservice ein; Genehmigungen bleiben bei Regulierungsbehörden und Netzbetreibern.

Wie halten Sie Ruhezeiten im großen Maßstab ein?

Planen Sie Werbung nach der Ortszeit und der Länderregel jedes Empfängers und halten Sie nicht werblichen Verkehr aus dieser Beschränkung heraus. Einige Märkte veröffentlichen Zeitfenster: Die VAE untersagen Werbe-SMS von 21:00 bis 07:00 Uhr, Saudi-Arabien von 22:00 bis 09:00 Uhr und im Ramadan von 01:00 bis 12:00 Uhr. Siehe Ruhezeiten.

  • Gruppieren Sie die Liste vor dem Einreihen nach Land und Zeitzone.
  • Geben Sie jede Gruppe in eine eigene Warteschlange frei, wenn ihr Fenster öffnet.
  • Stoppen Sie Werbe-Warteschlangen am Fensterende und übertragen Sie den Rest auf den nächsten Tag.
  • Planen Sie die Abfolge mit dem Sendezeit-Planer.

Ein enges Fenster erhöht die benötigten TPS, prüfen Sie es daher in der Planungsformel.

Warum sollten Sie OTP- und Werbeverkehr trennen?

OTP- und Alarmnachrichten sind zeitkritisch, Werbekampagnen sind Massenverkehr; teilen sie sich eine Warteschlange oder einen Bind, kann eine Kampagne einen Login-Code verzögern. Nutzen Sie getrennte Binds oder Konten, getrennte Absenderkennungen, wo Regeln es verlangen, getrennte Warteschlangen mit strikter Priorität und getrenntes Monitoring. OTPs sind keine Werbung, daher gelten Ruhezeiten für sie nicht. Schützen Sie OTP-Routen auch vor Missbrauch: siehe Prävention von SMS-Pumping-Betrug und den OTP-Leitfaden.

Welche KPIs sollten Sie überwachen?

Überwachen Sie Submit-Gesundheit, Warteschlangenalter, Berichtsergebnisse und Berichtsverzögerung, aufgeteilt nach Land und Netzbetreiber. Alarmieren Sie bei Abweichungen von Ihrer eigenen Baseline.

KPI Formel Aussage
Submit-Erfolgsrate Akzeptierte submit_sm_resp ÷ gesendete submit_sm Gesundheit von Bind und Konto
Drosselungsrate ESME_RTHROTTLED-Antworten ÷ gesendete submit_sm Rate oder Window zu hoch eingestellt
Warteschlangenalter (p95) Zeit von Eintritt in die Warteschlange bis Submit Kapazitätsengpass
Zustellrate DELIVRD ÷ Nachrichten mit Endstatus Qualität von Route und Inhalt
Anteil fehlgeschlagen und abgelaufen (UNDELIV + EXPIRED + REJECTD) ÷ Endstatus Nummerngültigkeit, Absenderkennung, Filterung
Berichtsverzögerung (Median und p95) Berichtszeit − Submit-Zeit Langsamkeit der Netzbetreiber
Berichtsabdeckung Endstatus ÷ übermittelte Nachrichten Fehlende Berichte
Abmelderate STOP-Antworten ÷ zugestellte Werbenachrichten Passung von Zielgruppe und Inhalt

Zur Diagnose siehe SMS-Zustellrate verbessern.

Wie sieht eine Startcheckliste für einen Versand mit mehreren Millionen aus?

  1. Benötigte Spitzen-TPS aus Segmenten, Fenster und OTP-Last berechnet.
  2. Rate pro Bind, Zahl der Binds, Window und Quell-IPs schriftlich vom Anbieter bestätigt.
  3. Absenderkennungen für jedes Land registriert, bei Bedarf mit Vorlagen.
  4. Lasttest mit einem Bruchteil des Volumens, dann schrittweise hochfahren; nicht mit dem Maximum starten.
  5. Warteschlangen, Limiter, Backoff und Idempotenz getestet, einschließlich einer erzwungenen Trennung.
  6. Berichts-Pipeline mit vollem Berichtsvolumen getestet.
  7. Ruhezeiten-Planung pro Land verifiziert.
  8. OTP-Verkehr getrennt und überwacht.
  9. Dashboards und Alarme aktiv, mit einem Verantwortlichen in Bereitschaft.
  10. Ein Stopp-Knopf, der Werbe-Warteschlangen sofort anhält.

So unterstützt Sie OmniChannels.ai

BroadNet liefert SMS über direkte Netzbetreiberanbindung und unterstützt SMPP 3.4 über TLS mit pro Konto bereitgestellten Binds, dazu eine REST-API, Bulk-Versand, Zwei-Wege-SMS, Unicode und Arabisch, HLR-Lookup und Zustellberichte. Die Kapazität wird pro Konto und pro Route dimensioniert: Nennen Sie uns Ihre Ziele, das Spitzenvolumen, Sendefenster und Absenderkennungen, und wir vereinbaren mit Ihnen Durchsatz, Binds und Registrierungen. Unser Team bereitet Registrierungen von Absenderkennungen vor. Kontaktieren Sie den Vertrieb mit Ihrem Volumenplan oder lesen Sie das Wholesale-Programm.

Häufige Fragen

Wie viele SMS pro Sekunde brauche ich, um eine Million Nachrichten zu senden?

Teilen Sie die Zahl der Segmente durch die Sekunden Ihres Sendefensters. Eine Million einsegmentige Nachrichten in einer Stunde erfordert etwa 278 pro Sekunde, in vier Stunden etwa 69, über einen ganzen Tag verteilt etwa 12. Mehrsegmentige Nachrichten zählen auf den meisten Plattformen je Segment, eine zweisegmentige Nachricht verdoppelt also die benötigte Rate.

Was ist die SMPP Window Size und wie stelle ich sie ein?

Das Window ist die Zahl der submit_sm-Anfragen, die Sie gleichzeitig ausstehend haben dürfen, also gesendet, aber noch nicht beantwortet. Die SMPP-Spezifikation erlaubt asynchrone Anfragen, überlässt das Limit aber der Implementierung. Eine praktische Regel: Window mindestens Ziel-TPS mal Round-Trip-Zeit in Sekunden, dann nur bis zu dem Limit erhöhen, das Ihr Anbieter vereinbart, denn eine Überschreitung führt zu Drosselung.

Wie viele SMPP-Binds brauche ich für hohes Volumen?

Das hängt von Ihrer Spitzenrate, dem mit dem Anbieter vereinbarten Limit pro Bind und Ihren Redundanzanforderungen ab. Teilen Sie die Spitzen-TPS durch die vereinbarte Rate pro Bind, runden Sie auf und fügen Sie mindestens einen Reserve-Bind hinzu, damit eine getrennte Verbindung den Versand nicht stoppt. Halten Sie OTP-Verkehr auf eigenen Binds oder Konten. Binds werden pro Konto bereitgestellt.

Was tue ich, wenn ich ESME_RTHROTTLED erhalte?

Werden Sie langsamer. Die Spezifikation definiert ESME_RTHROTTLED (0x58) als Überschreiten der erlaubten Nachrichtenlimits durch den Sender. Pausieren oder reduzieren Sie die Submits, wiederholen Sie abgelehnte Nachrichten mit exponentiellem Backoff und Jitter und wiederholen Sie niemals in einer engen Schleife, denn das verlängert die Drosselung. Tritt es regelmäßig auf, liegen Window oder Rate über dem vereinbarten Limit.

Wie verarbeite ich Millionen von Zustellberichten?

Bestätigen Sie jedes deliver_sm sofort mit deliver_sm_resp, legen Sie den Bericht in eine Warteschlange und verarbeiten Sie ihn asynchron in einen nach Nachrichten-ID geschlüsselten Speicher. Machen Sie die Verarbeitung idempotent, denn Berichte können wiederholt eintreffen. Betreiben Sie die Bericht-Consumer getrennt vom Submit-Pfad und überwachen Sie, wie weit sie zurückliegen.

Darf ich Werbe-SMS über Nacht senden?

In mehreren Märkten nicht. Die VAE untersagen Werbe-SMS von 21:00 bis 07:00 Uhr und Saudi-Arabien von 22:00 bis 09:00 Uhr sowie im Ramadan von 01:00 bis 12:00 Uhr. Planen Sie Werbung nach der Ortszeit jedes Empfängers und senden Sie OTPs und Alarme getrennt, da sie keine Werbung sind.

Quellen

  1. SMPP Protocol Specification v3.4, SMPP Developers Forum
  2. 3GPP TS 23.040: Technical realization of the Short Message Service (SMS)
  3. TDRA spam policy, UAE
  4. CST Regulations for Curbing SPAM Messages and Calls, Saudi Arabia