Delivery Receipt (DLR) – это подтверждение, что SMS достигла мобильного прибора получателя. Он включает статус доставки и, при необходимости, код ошибки. DLR необходим для точного измерения эффективности кампаний.
Как формируется DLR в сети операторов
Когда SMS передаётся из сервера отправителя в систему оператора, в пору доставки он генерируется в виде микрочата, который возвращается отправителю. Сейчас большинство операторов используют протокол SMPP или HTTP API для выдачи DLR. В таблице ниже показаны основные поля, которые включают большинство провайдеров:
| Поле | Описание |
|---|---|
message_id | уникальный ID сообщения |
to | номер получателя |
status | статус доставки (DELIVRD, EXPIRED, etc.) |
timestamp | момент получения DLR |
error_code | код ошибки, если статус не гарантирован |
Дополнительные расширённые поля доступны через API GET /api/dlr, где можно получить подробный отчёт по каждому сообщению.
Ключевые статусы DLR и их значение
- DELIVRD – сообщение доставлено и прочитано
- DLVRD – доставлено, но не подтверждёно прочтением
- EXPIRED – сообщение истекло, не найдено в сети
- UNDELIV – не доставлено, возникла ошибка
- UDUB – получатель отдал трубку, сообщение не принято
Что делать при ошибках DLR
Если в status встречается UNDELIV или UDUB, провайдер обычно отправляет error_code 1004 или 1022. Как правило, это связано с неактивным номером или заблокировкой SMS оператором. Внутри бизнес‑логики стоит реализовать автоматическое обновление контактов и повторную попытку в течение 2–3 часов, если сообщение критично:
// Пример pseudocode для обработки DLR
if (dlr.status === 'UNDELIV') {
if (dlr.error_code === 1004) {
flagNumberAsInvalid(dlr.to);
} else {
scheduleRetry(dlr.message_id, 180); // 3 часа
}
}
Внедрение DLR в цепочку маркетинга
Для успешного использования DLR необходимо интегрировать их в систему аналитики. На каждом этапе:
- Отправка – регистрируйте
message_idв вашей БД. - Получение DLR – асинхронно сохраняйте статус в таблице
sms_dlr. - Отображение – показывайте финальный статус в панели аналитики.
- Адаптация – корректируйте частоту рассылок на основе метрик
delivery_rateиbounce_rate.
Пример REST‑вызова для получения DLR
GET /api/dlr?message_id={id}&format=json
Response:
{
"message_id": "12345",
"to": "+79161234567",
"status": "DELIVRD",
"timestamp": "2026-05-13T12:34:56Z",
"error_code": null
}
Оптимизация доставки: как увеличить процент DLR с статусом DELIVRD
- Проверка списка получателей на корректность номеров.
- Установка трафик‑пулинга – балансировка нагрузки между провайдерами.
- Настройка моорпинга (межрегиональная маршрутизация) для избежания «запутывания» сообщения в сети.
- Использование жёсткой политик эхо‑отправки – провайдеры массовых рассылок проверяют метрики доставки ежедневно.
Зачем анализировать DLR в режиме реального времени
Если dlr.status изменяется с UNDELIV на DELIVRD, это указывает на временные проблемы сети – возможно, оператор устраняет проблемы с сетью. Подобные сигналы позволяют переассемблировать кампанию без лишних расходов.
Практические рекомендации по выбору провайдера для DLR
При выборе провайдера оценивайте:
- Поддержку
SMPPс SSL‑шифрованием. - Гарантированную доставку DLR в минимум 100 мс после завершения доставки.
- Наличие удобного API и логики обработки
error_code, описанную в политиках безопасности. - Оптимальные цены за DLR – большинство провайдеров разделяют затраты по тарифу
/sms/dlr. - Надёжность и репутацию – провайдеры с расширенными рейтингами.
Сравнение SMS‑агрегатора и прямого подключения к оператору
| Критерий | Агрегатор | Прямое подключение |
|---|---|---|
| Стоимость | Более высокая, но более удобная | Ниже, но требует собственной инфраструктуры |
| Время внедрения | Коротко, 1–2 недели | Месяцы, настройка SMPP |
| Поддержка DLR | Включена, но может быть задержана | Гарантированная, быстрее |
| Гибкость | Ограничена политиками агрегатора | Полный контроль над роутингом |
Заключение
DLR – ключевой индикатор успешности SMS‑кампаний. Экспертно настроенный процесс обработки статусов позволяет не только повышать доставляемость, но и оптимизировать расходы. Используйте встроенные API, обрабатывайте ошибки в реальном времени и анализируйте метрики, чтобы в любой момент корректировать стратегию. Таким образом, вы максимизируете ROI ваших SMS‑акций и повышаете доверие пользователей к вашему бренду.
FAQ
Как быстро приходят DLR? В большинстве случаев в течение 1–3 секунд после завершения доставки, но иногда может быть задержка до 30 секунд в зависимости от оператора.
Могу ли я получать DLR для коротких номеров (short code)? Да, большинство операторов поддерживают DLR для short code, однако требуется отдельная настройка в системе провайдера.
Что делать, если DLR не приходит? Проверьте ваше подключение на уровне SMPP/HTTP, убедитесь, что ваш message_id уникален и не дублируется, а также свяжитесь с техподдержкой провайдера.
Ссылки на полезные ресурсы
Как работает SMS API: Архитектура, протоколы и маршрутизация