У процесі надсилання SMS через SMPP важливо не лише передати повідомлення, а й отримати підтвердження його доставки. Для цього використовується механізм Delivery Receipt (DLR), який дозволяє відправнику дізнатися про статус кожного SMS. Звіт про доставку передається через SMSC і містить інформацію про те, чи було повідомлення успішно доставлено, чи знаходиться воно у черзі на відправку, чи було відхилено оператором.
Статуси доставки відіграють ключову роль у моніторингу ефективності SMS-розсилок, а також допомагають виявляти можливі проблеми з номерами, маршрутизацією та фільтрацією повідомлень операторами. Залежно від кінцевого статусу, відправник може здійснити подальші дії, наприклад, повторне відправлення, аналіз чорного списку або виправлення формату номерів.
Статус повідомлення передається у спеціальному параметрі message_state у відповіді SMSC. Цей параметр може набувати кількох значень, кожне з яких описує поточний стан відправленого SMS.
Статус | Код | Опис |
---|---|---|
DELIVERED | 0 | Повідомлення успішно доставлено абоненту. |
ENROUTE | 1 | Повідомлення передано до SMSC і чекає на доставку. |
EXPIRED | 2 | Час життя повідомлення спливло, повідомлення не доставлено. |
DELETED | 3 | Повідомлення видалено із системи до доставки. |
UNDELIVERABLE | 4 | Повідомлення не може бути доставлене (недоступний номер, технічна помилка тощо). |
ACCEPTED | 5 | Повідомлення прийняте SMSC, але ще не надіслано на номер. |
UNKNOWN | 6 | Невідомий статус, можливо, помилка обробки SMSC. |
REJECTED | 7 | Повідомлення відхилено оператором або системою SMSC. |
DELIVERED означає, що повідомлення успішно дійшло до абонента та було оброблено його мобільним пристроєм. Це підтвердження того, що SMS надійшло до телефону і, ймовірно, було прочитано.
ENROUTE вказує на те, що повідомлення надіслано в SMSC, але поки не доставлене. Такий стан можливий, якщо телефон тимчасово недоступний, вимкнений або знаходиться поза зоною покриття мережі.
EXPIRED означає, що термін зберігання повідомлення в системі минув, але воно так і не було доставлене. Це може статися, якщо телефон залишався вимкненим надто довго, або абонент перебуває в зоні, де його мережа не підтримує SMS.
UNDELIVERABLE вказує на неможливість доставки з технічних причин, наприклад, якщо номер не існує або оператор не підтримує SMS.
REJECTED означає, що оператор або SMSC відмовилися надсилати повідомлення. Це може бути пов'язане з блокуванням номера, неприпустимим контентом або фільтруванням антиспам-системами.
Код помилки | Опис |
---|---|
0x00000000 | Успішна обробка повідомлення. |
0x0000000A | Недостатньо кредиту (для передплачених облікових записів). |
0x00000015 | Неправильний формат номера (наприклад, код країни відсутній). |
0x00000043 | Повідомлення заблоковано фільтрами оператора (наприклад, спам-фільтр). |
0x00000058 | Номер у чорному списку оператора. |
0x00000060 | Оператор не підтримує SMS. |
0x00000063 | Помилка маршрутизації, повідомлення не може бути надіслано. |
0x00000088 | Перевищено обмеження швидкості надсилання повідомлень (Rate Limit). |
Крім стандартних статусів, SMSC може передавати деталізовані коди помилок, які допомагають визначити причину недоставки. недостатній баланс на обліковому записі.
Іншою поширеною причиною недоставки є некоректний формат номера. Якщо номер введено неправильно або не відповідає міжнародному стандарту E.164, SMSC може відхилити повідомлення.
Також можливі помилки, пов'язані з фільтрацією повідомлень оператором. Багато мобільних операторів застосовують антиспам-фільтри, які можуть блокувати SMS, якщо вони містять заборонені слова, посилання або відправляються з непідтвердженого Sender ID.
Моніторинг статусів повідомлень дозволяє не тільки контролювати успішність розсилок, але й вживати заходів для покращення їх ефективності. Наприклад, якщо у звітах про доставку часто зустрічаються статуси EXPIRED, це може означати, що база номерів містить багато неактивних користувачів. У цьому випадку варто оновити базу даних та видалити неактивні номери.
Якщо у звітах переважають помилки REJECTED, це може свідчити про проблеми з фільтрацією повідомлень оператором. У такому разі рекомендується зв'язатися з провайдером SMS та уточнити вимоги до Sender ID або змісту повідомлень.
При великій кількості повідомлень UNDELIVERABLE варто перевірити, чи немає помилок у форматуванні номерів і чи не використовуються застарілі маршрути.
Якщо повідомлення залишаються у статусі ENROUTE надто довго, це може означати, що SMSC затримує їх доставку. У цьому випадку можна запитати у оператора інформацію про причини затримки або змінити маршрут надсилання.
Статуси доставки в SMPP дозволяють відстежувати долю надісланих повідомлень та виявляти можливі проблеми з їхньою доставкою. Їх правильний аналіз допомагає як контролювати якість розсилок, а й знижувати витрати з допомогою виключення неефективних відправок.
Використання механізмів повторного відправлення, актуалізація бази номерів та дотримання вимог операторів дозволяють мінімізувати кількість помилок та підвищити конверсію SMS-кампаній.
Для отримання додаткової інформації про статуси доставки та коди помилок, рекомендується звернутися до технічної підтримки.