Каждая отправленная SMS стоит денег. Если номер давно заблокирован, абонент уехал или телефон выключен — оператор всё равно спишет средства за попытку доставки. DLR (Delivery Receipt) — это техническое уведомление, которое приходит после отправки и показывает, дошло ли сообщение. Научившись читать эти статусы, вы сможете убрать «мёртвые» номера из базы и перестать тратить бюджет на воздух. В статье разберём, какие бывают статусы, как их расшифровать и что делать с данными.
Что такое DLR и зачем он нужен малому бизнесу?
DLR — это ответ от оператора связи на запрос о статусе доставки. Когда вы отправляете SMS через SMPP-протокол, система генерирует уникальный идентификатор сообщения. Через несколько секунд (или минут) приходит пакет с кодом: «доставлено», «не доставлено», «просрочено», «отклонено» и так далее. Для владельца небольшого магазина или салона эти данные — прямой способ увидеть, какие номера реально работают.
Без DLR вы платите за все отправки вслепую. С ними — знаете, что 10% базы не принимает сообщения, и можете очистить список. За год экономия на «мёртвых» номерах может составить заметную сумму, особенно если рассылки идут еженедельно.
Какие статусы SMPP бывают и что они означают?
Стандарт SMPP определяет несколько базовых статусов доставки. Вот основные коды, которые вы увидите в DLR:
| Статус (код) | Значение | Что делать бизнесу |
|---|---|---|
| DELIVRD | Сообщение доставлено абоненту | Номер активен, можно продолжать рассылки |
| UNDELIV | Не удалось доставить (абонент недоступен, телефон выключен, роуминг без настроек) | Повторить попытку через 1–2 дня; если повторный статус тот же — исключить из активной базы |
| EXPIRED | Истёк срок жизни сообщения (обычно 24–48 часов) | Номер может быть временно недоступен; после 2–3 EXPIRED подряд — удалить |
| REJECTD | Оператор отклонил сообщение (неверный формат, спам-фильтр, чёрный список) | Проверить текст и настройки; возможно, номер занесён в стоп-лист оператора |
| UNKNOWN | Статус не определён (редкий случай) | Требуется дополнительный анализ; обычно переотправляют через другой канал |
Коды могут различаться у разных операторов, но общая логика одинакова: DELIVRD — зелёный, всё остальное — сигнал к проверке.
Как потери бюджета связаны с «мёртвыми» номерами?
Допустим, вы отправляете 1000 SMS в месяц. Средняя цена сообщения по Беларуси — около 0,05 BYN (цифра для примера). Если 5% номеров «мёртвые» (не доставляются), вы теряете 50 × 0,05 = 2,5 BYN в месяц. Кажется немного. Но если база растёт и вы не чистите её годами, доля неактивных номеров может достигать 15–20%. Тогда потери — уже десятки рублей ежемесячно. Плюс время на бесполезные отправки и риск попасть в спам-фильтры из-за высокого процента недоставленных сообщений.
Регулярный анализ DLR позволяет видеть динамику: какие номера перестали отвечать, какие операторы чаще «теряют» сообщения. На основе этих данных вы принимаете решение — исключить контакт, изменить время отправки или переключиться на другой канал (Viber, например).
Как настроить приём DLR в своей системе?
Для получения DLR нужно, чтобы ваша платформа (или интеграция через SMPP) поддерживала запрос статуса. Обычно это делается двумя способами:
- Синхронный запрос — после отправки вы отправляете команду query_sm и получаете статус. Подходит для небольшого количества сообщений (до нескольких сотен в день).
- Асинхронное уведомление — оператор сам присылает DLR на заданный вами адрес (например, на ваш сервер). Это основной метод для массовых рассылок: вы не блокируете очередь, а просто обрабатываете входящие пакеты.
В большинстве сервисов рассылок (в том числе тех, что работают через SMPP) приём DLR уже встроен. Вам нужно только включить опцию «получать статусы доставки» в личном кабинете или API. Если используете собственную CRM — убедитесь, что она умеет принимать и парсить входящие DLR-пакеты. Процесс обычно выглядит так: отправка → получение message_id → ожидание deliver_sm → разбор статуса.
Типичные ошибки при работе с DLR
- Игнорировать повторяющиеся UNDELIV. Один сбой — не повод удалять номер. Но если статус «не доставлено» приходит три рассылки подряд — контакт мёртв.
- Путать EXPIRED с UNDELIV. EXPIRED — сообщение вообще не попало на телефон (срок жизни вышел). UNDELIV — телефон был, но не смог принять. Тактика разная.
- Не проверять статусы после повторной отправки. Если вы переотправили на тот же номер и снова получили REJECTD — скорее всего, номер заблокирован оператором. Дальнейшие попытки бесполезны.
- Хранить историю DLR только в CRM. Полезно выгружать статистику в Excel или Google Sheets раз в месяц, чтобы видеть тренды по операторам и времени суток.
- Не учитывать задержки DLR. Иногда уведомление приходит через 10–30 минут после отправки. Не делайте выводов по одному сообщению в первые 5 минут.
Практический совет: как часто анализировать DLR?
Достаточно раз в неделю просматривать отчёт по недоставленным сообщениям. Если база маленькая (до 500 контактов) — можно раз в месяц. Главное — не накапливать «мёртвые души» годами. Заведите правило: если контакт не получил три последовательные рассылки (с интервалом не меньше недели), он автоматически перемещается в «неактивные». Потом, раз в квартал, можно попробовать отправить им сообщение с предложением подтвердить подписку. Те, кто не ответит — окончательно удаляются.
Для тех, кто хочет глубже разобраться в настройке рассылок и экономии бюджета, будет полезен материал о 5 сценариях SMS-рассылок, которые сэкономят бюджет малого бизнеса в 2026.
3 шага, которые можно сделать сегодня:
- Откройте статистику рассылок за последний месяц и посмотрите, сколько сообщений имеют статус UNDELIV или EXPIRED. Если таких больше 5% — пора чистить базу.
- Настройте автоматическое получение DLR в вашей CRM или личном кабинете сервиса рассылок. Убедитесь, что видите не только «доставлено/не доставлено», но и конкретные коды.
- Создайте правило: после трёх неудачных доставок подряд переводить номер в отдельный сегмент и не тратить на него бюджет до повторной верификации.
