Как снизить стоимость SMS через SMPP без потери доставки

Стоимость SMS-рассылки снижается прежде всего на уровне настроек: кодировка определяет число символов в сегменте, конкатенация влияет на количество оплачиваемых частей, а DLR показывает реальный результат доставки. В статье разберём пять параметров SMPP, которые полезно проверить малому бизнесу в Беларуси. После настройки вы сможете точнее считать расходы в BYN, убрать лишние повторы и оставить контроль над недоставленными сообщениями.

Из чего складывается стоимость SMS-рассылки?

Итоговая сумма зависит от тарифа оператора или агрегатора, комиссии шлюза и дополнительных надбавок. На практике к этому добавляется число SMS-сегментов: одно длинное сообщение может тарифицироваться как несколько частей. Поэтому цена текста из 90 кириллических знаков и цена короткой фразы на латинице рассчитываются по-разному.

В обзоре тарифов на 2026 год встречается диапазон от 0,01 ₽ до 0,03 ₽ за сообщение. Это ориентир из зарубежного сравнения, а не готовый тариф для Беларуси: при расчётах для бизнеса в Минске, Гомеле или другом городе нужно смотреть цену конкретного маршрута в белорусских рублях (IBZ Source: «Сравнение тарифов операторов для SMS-рассылок: выгодные предложения 2026»).

ПараметрЧто меняетсяЧто проверить
Кодировка Максимальная длина одного сегмента Используется ли GSM-7 или Unicode
Конкатенация Количество частей длинного SMS Учитываются ли UDH-заголовки и порядок частей
DLR Видимость статуса доставки Приходит ли отчёт с понятным идентификатором сообщения
Rate limit Скорость отправки Соответствует ли поток ограничениям шлюза
Повторная отправка Число дополнительных попыток Какие статусы запускают retry и сколько раз

Как кодировка влияет на число SMS-сегментов?

Для GSM-7 обычно используют до 160 знаков в одном SMS. При Unicode, куда попадает кириллица и многие специальные символы, лимит составляет до 70 знаков. В составном сообщении доступный объём каждой части уменьшается, поскольку система добавляет служебные данные для сборки текста на телефоне получателя (IBZ Source: «Оптимизация контента для SMS: длина, структура и призыв к действию»).

Проверьте, как приложение формирует поле data_coding. Если бизнес отправляет текст на русском языке, принудительное переключение на GSM-7 не решит задачу: неподдерживаемые символы исказят сообщение. Зато можно убрать эмодзи, нестандартные кавычки, длинное тире и декоративные символы, если они не нужны клиенту.

Перед запуском рассылки отправьте тестовые варианты на несколько устройств. В отчёте сравните текст, кодировку и число сегментов. Для регулярных уведомлений полезно завести шаблоны с ограниченной длиной: например, отдельно хранить короткий текст для статуса заказа и более подробный вариант для редкого информационного сообщения.

Как настроить конкатенацию в SMPP?

Конкатенация нужна, когда текст не помещается в один сегмент. Шлюз делит сообщение на части, добавляет служебный заголовок и передаёт их оператору. Телефон собирает части по ссылочному номеру. Если приложение само делит текст, а шлюз делает это повторно, клиент может получить дубликаты или несколько отдельных SMS.

Выберите один уровень разбиения. Для интеграции через SMPP зафиксируйте правило: приложение передаёт готовые сегменты либо отправляет полный текст, а шлюз выполняет разбиение. После этого проверьте три поля в журнале: идентификатор сообщения, номер части и общее количество частей.

В очереди храните связь между исходным текстом и всеми сегментами. Если одна часть получила ошибку, система должна показать её отдельно. Повторная отправка всего составного сообщения увеличивает расходы и создаёт риск повторного показа уже доставленных частей.

Зачем нужен DLR и как он помогает экономить?

DLR, или отчёт о состоянии доставки, возвращает результат обработки SMS: сообщение принято, доставлено, отклонено или завершилось ошибкой. Сам факт отправки по SMPP не означает, что клиент получил текст. Без DLR бизнес видит только очередь исходящих сообщений и не может отделить доставленные SMS от проблемных.

Настройте сохранение message_id из ответа шлюза и свяжите его с заказом, клиентом или событием в вашей системе. Отдельно разберите статусы, которые означают временную ошибку, и статусы, после которых повторять отправку бессмысленно. Такой подход сокращает автоматические повторы и показывает, на каком участке возникла проблема.

Для контроля используйте отчёт по четырём показателям: отправлено, доставлено, отклонено и повторено. Если нужен отдельный разбор статусов и автоматизации, пригодится материал как автоматизировать SMS-статусы доставки.

Какие ещё настройки SMPP уменьшают лишние отправки?

Ограничение скорости

Rate limit задаёт допустимое число сообщений в секунду. Слишком быстрый поток вызывает ответы об ограничении или перегружает очередь. Слишком медленный поток растягивает кампанию и задерживает сервисные уведомления. Начните с лимита, который указан в параметрах подключения, затем сравните скорость очереди с фактическими DLR.

Повторные попытки

Retry нужен для временных сбоев сети или шлюза. Его нельзя запускать на любой отрицательный статус. Задайте ограниченное число попыток, интервал между ними и список статусов, которые разрешают повтор. В журнале должна оставаться причина каждой новой отправки.

Приоритеты очереди

Сервисное SMS о коде или заказе не стоит ставить в одну очередь с рекламной кампанией. Разделите потоки по приоритету. При пиковой нагрузке транзакционные сообщения пройдут первыми, а массовая рассылка продолжится после освобождения лимита. Принцип очередей и rate limit разобран в материале как построить очередь SMS в API и SMPP.

Типичные ошибки при экономии на SMPP

  • Убирают кириллицу из текста, но не проверяют отображение сообщения на телефоне получателя.
  • Передают длинный текст в шлюз, который уже получил от приложения готовые сегменты.
  • Считают принятие сообщения шлюзом подтверждением доставки.
  • Повторяют отправку после каждого отрицательного ответа, включая постоянные ошибки.
  • Запускают рекламный поток без ограничения скорости и получают задержку сервисных SMS.
  • Сравнивают только цену одного SMS и не учитывают сегментацию, DLR и плату за дополнительные маршруты.

Для малого бизнеса в Беларуси практичная последовательность выглядит так:

  1. Проверьте кодировку и длину шаблонов, затем посчитайте фактическое число сегментов.
  2. Настройте конкатенацию на одном уровне и сохраните связь между message_id и событием в системе.
  3. Разделите очереди по приоритету, ограничьте повторы и сверяйте расходы с отчётами DLR.

Если отправка идёт через CRM или интернет-магазин, сначала описывают события и статусы, затем выбирают API или SMPP. Для больших объёмов и собственного контроля полезно заранее определить формат DLR, лимиты, правила повторов и обработку составных сообщений. Такой перечень можно использовать как техническое задание для настройки SMPP-шлюза и API-интеграции на площадке smpp.by.