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

Шаг 1: Поймите разницу между статусами доставки и прочтения SMS

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

Это сильно отличается от современных мессенджеров (таких как WhatsApp, iMessage или RCS), где "свободный диалог позволяет отправлять сообщения, изображения и видео кому угодно" с индикаторами набора текста и синими галочками "прочитано". Стандартные SMS операторов не имеют встроенного сетевого пакета, который сообщал бы шлюзу о том, что пользователь нажал на текстовое сообщение, чтобы открыть его.

Вместо этого мы полагаемся на значения статусов SMS-шлюза, определенные вашим провайдером. Вот что обычно означают эти статусы в логах вашего SMS-шлюза:

СтатусТехническое значениеОзначает ли это "Прочитано"?
SentСообщение покинуло шлюз и было принято сетью сотового оператора.Нет. Телефон может быть даже выключен.
DeliveredМобильный телефон получателя отправил оператору подтверждение о получении. Это ваш статус получения SMS.Не обязательно. Оно находится на устройстве, но пользователь мог его еще не открыть.
FailedСообщение не смогло дойти до телефона (например, номер отключен, ошибка маршрутизации сети).Нет.

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

Шаг 2: Настройте ваш Android SMS-шлюз для проверки статуса доставки SMS

Чтобы начать отслеживать сообщения, вам нужен SMS-шлюз, который изначально предоставляет отчеты о доставке, не скрывая их за дорогими корпоративными контрактами. Традиционные шлюзы, такие как Twilio, требуют сложной регистрации A2P 10DLC, одобрения операторов и взимают высокую плату за каждый сегмент сообщения. Более простой и экономичной альтернативой для малого бизнеса является MySMSGate.

MySMSGate превращает ваш собственный Android-телефон и SIM-карту в SMS-шлюз. Поскольку вы отправляете сообщения со своего локального номера телефона, вы обходите блокировки регистрации операторов и можете легко проверить статус доставки SMS прямо из панели управления или через API.

Чтобы настроить шлюз и начать отслеживать статус доставки, выполните следующие шаги:

  1. Перейдите на страницу регистрации MySMSGate и создайте бесплатный аккаунт.
  2. Скачайте и установите приложение MySMSGate для Android на свой телефон.
  3. Отсканируйте QR-код на веб-панели с помощью мобильного приложения, чтобы мгновенно привязать телефон. Никакие API-ключи не нужно вводить вручную.
  4. Отправьте тестовое SMS из веб-панели.

Как только сообщение будет отправлено, ваш Android-телефон в реальном времени вернет отчет о доставке операторского уровня в вашу панель управления MySMSGate. Если сообщение не удастся доставить, MySMSGate автоматически вернет средства на ваш баланс, защищая ваши операционные расходы.

Шаг 3: Настройте webhook обратного вызова для статусов доставки Android SMS Gateway

Для разработчиков, интегрирующих SMS-уведомления в собственную CRM, систему бронирования или другое ПО, опрос API-эндпоинта для проверки статуса доставки неэффективен. Вместо этого следует настроить android-sms-gateway delivery reports status callback с использованием вебхуков.

В этом разделе объясняется, как получить статус доставки SMS через API webhook. Когда ваш подключенный Android-телефон доставляет сообщение на устройство получателя, он получает внутренний отчет о доставке от локального оператора. MySMSGate фиксирует это событие и мгновенно отправляет обновление статуса на ваш сервер.

Вот пример того, как обработать данные android-sms-gateway delivery reports status callback sms в приложении на Python Flask:

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/webhooks/sms-status', methods=['POST'])
def handle_sms_status_callback():
    data = request.json
    
    # Extract key parameters from the MySMSGate webhook payload
    message_id = data.get('message_id')
    status = data.get('status')  # e.g., 'delivered', 'failed', 'sent'
    recipient = data.get('to')
    error_code = data.get('error_code')
    
    print(f"Message {message_id} to {recipient} updated to status: {status}")
    
    if status == 'delivered':
        # Update your database to mark notification as delivered
        # update_booking_notification_status(message_id, 'Delivered')
        pass
    elif status == 'failed':
        # Handle failed delivery (e.g., alert staff, retry via alternative channel)
        # log_failed_delivery(message_id, error_code)
        pass
        
    return jsonify({"status": "success"}), 200

if __name__ == '__main__':
    app.run(port=5000)

Реализовав этот обратный вызов, ваше бэкенд-приложение всегда будет синхронизировано со статусом исходящих сообщений в реальном времени, что позволит вам создавать автоматизированные сценарии для повторной отправки при ошибках доставки.

Шаг 4: Отслеживайте фактический статус "Прочитано" с помощью умных ссылок

Поскольку стандартные протоколы SMS не поддерживают встроенные отчеты о прочтении, как современный бизнес отслеживает, открыл ли клиент сообщение? Стандартным решением в индустрии является отслеживание с помощью умных ссылок (Smart Link Tracking).

Вместо отправки простого текста вы добавляете в SMS уникальную сокращенную ссылку для отслеживания. Когда получатель переходит по ссылке, он на долю секунды направляется через ваш сервер отслеживания, после чего перенаправляется на конечную страницу (например, счет, подтверждение бронирования или детали приема). Это перенаправление происходит за миллисекунды и служит вашим "отчетом о прочтении".

Вот пошаговый процесс реализации этого метода:

  1. Сгенерируйте уникальный токен: Для каждого отправляемого SMS создайте короткий уникальный идентификатор (например, myshop.co/r/x89D2).
  2. Свяжите токен в вашей базе данных: Свяжите x89D2 с номером телефона получателя, конкретным отправленным сообщением и статусом "Прочитано", изначально установленным в значение False.
  3. Отправьте SMS: Отправьте сообщение, содержащее короткий URL-адрес, через API или панель управления MySMSGate.
  4. Зафиксируйте перенаправление: Когда пользователь переходит по ссылке, ваш сервер регистрирует входящий запрос для x89D2, обновляет запись в базе данных на Read = True вместе с меткой времени и сразу же перенаправляет пользователя на целевую страницу.

Этот метод обеспечивает 100% точное отслеживание прочтений и предоставляет ценные данные об активности пользователей, помогая вам оптимизировать шаблоны сообщений.

Шаг 5: Сравнение отслеживания статуса SMS на разных шлюзах

При выборе платформы для вашего бизнеса полезно посмотреть, как разные шлюзы справляются с отслеживанием доставки, ценообразованием и сложностью системы. Хотя многие разработчики ищут руководство по twilio sms delivery status callback, они часто обнаруживают, что настройка и поддержка облачной инфраструктуры Twilio для простых локальных уведомлений избыточно сложна и дорога.

Ниже приведено прямое сравнение возможностей отслеживания и функций MySMSGate и традиционных облачных шлюзов:

ФункцияMySMSGateТрадиционные облачные шлюзы (Twilio / Plivo)
Отслеживание статуса доставкиВ реальном времени через вебхуки и панель управленияВ реальном времени через вебхуки
Модель оплатыФиксированная цена $0.02 за SMS. Без ежемесячной платы.Динамическая ($0.05 - $0.08+ за SMS) + ежемесячная аренда номеров
Тарификация длины сообщенияЕдиная фиксированная плата за сообщение независимо от длиныОплата за сегмент из 160 символов (составные сообщения стоят в два/три раза дороже)
Sender ID и регистрация 10DLCНе требуется. Отправка с вашей собственной Android SIM-карты.Обязательная регистрация, сборы операторов и строгие проверки с задержками
Возврат средств за недоставленные сообщенияАвтоматический возврат при ошибке доставкиБез возврата средств. Вы платите за неудачные попытки.
Сложность настройкиСканирование QR-кода на Android-телефонеСложная техническая настройка API и верификация регуляторами

Для локального бизнеса, работающего за пределами США, MySMSGate предлагает гораздо более практичный подход. Вы можете узнать больше об альтернативных вариантах в нашем подробном руководстве по сравнению альтернатив Twilio или ознакомиться с нашим руководством по самым дешевым SMS API, чтобы оптимизировать свой бюджет на коммуникации.

Часто задаваемые вопросы

Здесь собраны ответы на самые частые вопросы об отслеживании доставки и прочтения SMS.

Можно ли увидеть, что SMS прочитано или открыто?

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

В чем разница между статусами доставки и прочтения?

Статус доставки означает, что сеть оператора успешно передала текстовое сообщение на мобильный телефон получателя. Статус прочтения означает, что пользователь открыл и просмотрел сообщение. Стандартные SMS отслеживают только доставку; для отслеживания прочтения требуются ссылки на уровне приложения.

Как получать отчеты о доставке в реальном времени с помощью MySMSGate?

MySMSGate передает отчеты о доставке прямо из сети оператора вашего Android-телефона обратно в ваш аккаунт. Вы можете просматривать эти статусы доставки в реальном времени на веб-панели или настроить webhook обратного вызова, чтобы получать мгновенные POST-запросы на свой сервер.

Нужно ли мне одобрение оператора или регистрация 10DLC для отслеживания статуса доставки?

Нет. Когда вы используете MySMSGate, вы отправляете сообщения через свой собственный Android-телефон и SIM-карту. Поскольку вы используете свою личную или рабочую мобильную линию, вам не нужна регистрация 10DLC, верификация бренда или одобрение оператора для отправки и отслеживания ваших сообщений.