Как читать DLR-отчёт SMPP-шлюза: 5 метрик качества транзакционных SMS

Как читать DLR-отчёт SMPP-шлюза: 5 метрик качества транзакционных SMS

Чтобы понимать, доходят ли транзакционные SMS до клиента и где они теряются, нужно смотреть DLR-отчёт SMPP-шлюза — отчёт о статусе доставки. Этот отчёт возвращает шлюз после попытки отправить сообщение: «доставлено», «в очереди», «отклонено оператором», «абонент недоступен» и т. д. В Беларуси DLR-отчёт формируется на уровне шлюза по правилам SMPP-протокола, и разные шлюзы отдают данные в разном виде: в личный кабинет, в callback по HTTP, в виде сырых PDU. Без чтения отчёта вы отправляете сообщения вслепую и узнаёте о проблемах по жалобам клиентов, а не по факту. Ниже — пять метрик, которые показывают качество доставки, и инструкция, как их извлечь из отчёта.

Что такое DLR и зачем его читать

DLR (Delivery Receipt) — это отчёт о доставке, который возвращает шлюз по SMPP-протоколу после попытки отправить сообщение. Отчёт приходит с задержкой: обычно от 1 секунды до нескольких минут, реже — до часа. Шлюз передаёт DLR тремя способами: в личный кабинет, в HTTP-callback на ваш сервер или в виде PDU-пакета по тому же SMPP-соединению. Каждый DLR содержит идентификатор сообщения, статус доставки, код ошибки (если есть) и временную метку. Без чтения DLR вы отправляете SMS и не знаете, дошёл ли код подтверждения или уведомление о статусе заказа. Платформы для автоматизации рассылок в 2025–2026 годах предлагают готовые визуальные отчёты и API для получения DLR — разбираться в сыром протоколе SMPP не обязательно, если платформа уже агрегирует данные (источник: smsblog.ru).

Ошибка новичка — ориентироваться только на количество «отправлено». Отправленное сообщение не равно доставленному. По данным vc.ru, в рейтингах сервисов 2026 года отслеживание DLR на уровне кампаний и операторов называют обязательной практикой для интернет-магазинов (источник: vc.ru). Если шлюз не возвращает DLR или возвращает их с задержкой больше часа — это повод сменить провайдера.

Как получить DLR: три канала

Прежде чем читать метрики, убедитесь, что DLR вообще доходят до вас. Шлюз может передавать отчёты через:

  • Личный кабинет — самый простой вариант. Отчёты появляются в разделе «Статистика» или «Журнал отправки». Подходит, если объём до 5000 SMS в сутки и не требуется мгновенная реакция.
  • HTTP-callback — шлюз делает POST-запрос на ваш URL с данными DLR в формате JSON или form-data. Нужен сервер, который принимает запросы и сохраняет статусы в базу. Подходит для интеграции с CRM и автоматической реакции на сбои.
  • SMPP PDU — сырой протокол. DLR приходит как отдельный пакет по тому же соединению, что и исходящие сообщения. Подходит для высоконагруженных систем, но требует инженера, который разберётся в спецификации.

Если шлюз не предлагает ни один из этих вариантов — вы работаете вслепую. Уточните у провайдера, поддерживает ли он DLR, и в каком формате отдаёт данные. Большинство платформ для транзакционных SMS в Беларуси поддерживают минимум личный кабинет и HTTP-callback.

5 метрик, которые реально показывают качество

В DLR-отчёте обычно 7–12 полей, но для оценки качества доставки хватает пяти метрик. Остальные — служебные и нужны только при глубокой отладке.

МетрикаЧто показываетНормальное значениеКогда бить тревогу
Submitted (SUBMIT_SM)Сообщение принято шлюзом в обработку100% от отправленныхНиже 100% — шлюз не принял часть сообщений, проблема на стороне API или лимитах
Delivered (DLR success)Сообщение доставлено на устройство абонента95–99% от submittedНиже 95% — массовые сбои оператора или фильтрация спам-фильтрами
Buffered / QueuedСообщение в очереди оператора, ещё не доставленоДо 2% в любой момент времениВыше 5% в течение часа — оператор перегружен или абонент вне зоны
Failed / RejectedСообщение не доставлено по технической причинеДо 3% от submittedВыше 5% — коды ошибок покажут причину: неверный номер, блокировка оператором, чёрный список
Time-to-DLR (latency)Время между SUBMIT и DLR1–30 секунд для транзакционныхВыше 2 минут — задержка критична для OTP-кодов и уведомлений о доставке

Метрика Submitted — это входной контроль: если шлюз не принял сообщение, дальнейшие статусы не появятся. Delivered — главная метрика качества. Показатель ниже 95% говорит о проблемах на стороне оператора или фильтрации. Time-to-DLR особенно важен для транзакционных SMS: код авторизации, который приходит через 5 минут, бесполезен — клиент уже ушёл (источник: p1sms.ru о скорости доставки OTP-кодов).

Как извлечь метрики из отчёта: пошагово

Шаг 1. Откройте журнал отправки в личном кабинете шлюза за последние 24 часа. Экспортируйте данные в CSV или Excel — большинство платформ это позволяют.

Шаг 2. Отфильтруйте по типу сообщений. Разделите транзакционные (OTP, подтверждения заказа, статус доставки) и сервисные (напоминания о встрече). Метрики качества для них отличаются: OTP критичны к скорости, сервисные — к проценту Delivered.

Шаг 3. Посчитайте Delivered Rate = Delivered / Submitted × 100%. Это основной показатель качества. Если ниже 95% — смотрите коды ошибок в Failed.

Шаг 4. Посчитайте Average Time-to-DLR. Для транзакционных SMS норма — до 30 секунд. Если медиана выше 2 минут — клиенты не дождутся кода.

Шаг 5. Сгруппируйте Failed по коду ошибки. Типичные коды: «абонент недоступен» (норма для выключенных телефонов), «номер не существует» (проблема с базой), «отклонено оператором» (фильтрация или блокировка).

Если платформа не показывает эти метрики в готовом виде, простой тест качества SMS-шлюза поможет проверить, стоит ли вообще работать с этим провайдером.

Что делать, когда метрики падают

Delivered Rate упал ниже 95%. Первое действие — посмотрите коды ошибок. Если массово «отклонено оператором» — шлюз отправляет через канал, который оператор фильтрует. Решение: запросите у провайдера альтернативный маршрут или включите ротацию каналов. Если «абонент недоступен» — это нормально для выключенных телефонов и не влияет на качество канала, только на базу номеров. Если «номер не существует» — проблема в вашей базе, чистите её регулярно.

Time-to-DLR вырос до нескольких минут. Для транзакционных SMS это критично. Проверьте нагрузку на шлюз: если вы отправляете 10 000 OTP в минуту и шлюз не справляется — переходите на провайдера с большей пропускной способностью или распределяйте отправку по времени. Скорость доставки OTP напрямую влияет на конверсию авторизаций (источник: p1sms.ru).

Submitted ниже 100%. Шлюз не принял часть сообщений. Причины: превышен лимит на количество сообщений в секунду, неверный формат номера, блокировка по IP. Посмотрите лог API — там будет код ошибки.

Подробнее о том, как метрики доставки влияют на лояльность клиентов в 2026 году, — в материале о ключевых метриках доставки SMS.

Типичные ошибки при чтении DLR

  • Считать отправленные за доставленные. Отправленное SMS — это сообщение, которое шлюз принял в обработку. Доставленное — то, на которое пришёл положительный DLR. Разница может достигать 10–15%, и это нормально, но считать её нельзя.
  • Игнорировать коды ошибок. «Failed» — это общая метрика. Без кода ошибки вы не поймёте, проблема в операторе, в номере или в вашей базе.
  • Смотреть только на агрегированные цифры. Delivered Rate 97% за месяц скрывает ситуацию, когда вчера вечером было 80%, а утром — 99%. Смотрите динамику по часам и дням.
  • Не разделять транзакционные и маркетинговые. Маркетинговые SMS фильтруются операторами жёстче, и нормальный Delivered Rate для них — 85–90%. Сравнивать с транзакционными бессмысленно.
  • Забывать про Time-to-DLR. OTP-код, который пришёл через 3 минуты, — это провал конверсии, даже если DLR показывает Delivered.

Как часто проверять DLR

Для транзакционных SMS — ежедневно. Если у вас интернет-магазин и клиенты получают коды подтверждения и уведомления о статусе заказа, падение качества доставки заметите по жалобам в течение часа. Настройте алерт: если Delivered Rate за последние 100 сообщений ниже 90% — уведомление администратору. Для сервисных уведомлений (напоминания о встрече, статус доставки) достаточно проверять раз в неделю: там задержка в несколько часов не критична.

Если объём отправок большой и метрики падают регулярно, стоит задуматься о ротации каналов между операторами — это снижает зависимость от одного маршрута. Подробнее о управлении лимитами операторов при отправке транзакционных SMS — в отдельном материале.

Что делать, если шлюз не отдаёт DLR

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

  • Запросить у провайдера включение DLR. Обычно это бесплатная опция, но требует доработки на его стороне.
  • Сменить провайдера, если текущий не поддерживает DLR или поддерживает только в личном кабинете без callback.
  • Использовать HTTP-callback вместо личного кабинета — так вы получите данные в реальном времени и сможете реагировать автоматически.

Платформы для транзакционных SMS в Беларуси обычно поддерживают все три канала DLR. Если ваш шлюз не отдаёт отчёты вообще — это красный флаг.

3 шага, которые можно сделать сегодня:

  1. Откройте журнал отправки в личном кабинете шлюза и посчитайте Delivered Rate за последние 7 дней. Если ниже 95% — ищите причину в кодах ошибок.
  2. Настройте HTTP-callback для получения DLR в реальном времени, если до сих пор работаете через личный кабинет. Это ускорит реакцию на сбои.
  3. Добавьте алерт в админку или CRM: Delivered Rate ниже 90% за последние 100 сообщений — уведомление вам на почту или в мессенджер.